|
 2.3 Кб |
|
| Господа программисты, требуется помощь по конверту листинга с Visual C++ на Turbo C++ под консоль. + наладка работоспособности программы, а именно сортировки
Заранее ОГРОМНОЕ СПАСИБО!
#include "stdafx.h"
#include <string.h>
#define N 10 // максимальное количество слов
#define M 50 //максимальная длина слова
class FIO
{
public:
int InterWord();
int PrintFile();
//int Print();
int Sort();
int Search();
FIO();
~FIO(){}
private:
int count;
int n;
char fio[N][M];
};
FIO::FIO()
{
int i=0;
int j=0;
n=0;
for(i=0;i<N;i++)
for(j=0;j<M;j++) fio[i][j]=0;
}
int FIO::InterWord ()
{
char str[M]={0};
if (n<N)
{
printf("\nInter new word (max length %d symbols):",M);
scanf("%s",&fio[n]);
//strcpy(&fio[n],str);
n++;
return 0;
}
else
{
printf("Can't add new string!");
return 1;
}
}
int FIO::Sort ()
{
int i;
int j;
int r;
char str[M]={0};
for(i=0;i<n-1;i++)
{
for(j=0;j<n-i-1;j++)
{
if (strcmp(fio[j],fio[j+1])>0)
{
strcpy(str,fio[j]);
strcpy(fio[j],fio[j+1]);
strcpy(fio[j+1],str);
}
}
}
return 0;
}
int FIO::Search ()
{
int i;
int k;
char str[M]={0};
printf("\nInter serach word:");
scanf("%s",str);
printf("\n************* List ************\n");
for(i=0;i<n;i++)
{
if(strlen(fio[i])>strlen(str))
k=strlen(str);
else
k=strlen(fio[i]);
if (strncmp(fio[i],str,k)==0)
printf("\nFIO %s",fio[i]);
}
printf("\n************* List ************\n");
return 0;
}
int FIO::PrintFile ()
{
int i;
char str[100]={0};
FILE *f;
printf("Inter file name:");
scanf("%s",str);
if (strlen(str)==0) return 1;
f=fopen(str,"w");
if (f!=NULL)
{
for(i=0;i<n;i++)
{
fprintf(f,"%02d. %s\n",i+1,fio[i]);
}
fclose(f);
}
return 0;
}
/*int FIO::Print ()
{
int i;
printf("\n************* List ************\n");
for(i=0;i<n;i++)
{
printf("%02d. %s\n",i+1,fio[i]);
}
printf("\n************* List ************");
return 0;
}
*/
int main(int argc, char* argv[])
{
int c=1;
FIO mfio;
while(c>0)
{
printf("\nInter command:\n0 - quit\n1 - add new word\n2 - search \n3 - sort list\n4 - print list to file\ncommand: ");
scanf("%d",&c);
if(c==0) break;
if(c==1)
{
mfio.InterWord ();
}
if (c==2)
{
mfio.Search();
}
if (c==3)
{
mfio.Sort ();
}
if (c==4)
{
mfio.PrintFile();
}
}
return 0;
}
|
| |
|
|
|
|
|
|
|
для: enzo
(30.01.2007 в 01:30)
| | Именно Turbo C++? | |
|
|
|
|
|
|
|
для: cheops
(30.01.2007 в 01:45)
| | Да именно турбо C++ =\ | |
|
|
|
|
|
|
|
для: enzo
(30.01.2007 в 01:30)
| | Закоментарьте
и добавьте
Проект и конечный exe-файл нужен или у вас Турбо C имеется? | |
|
|
|
|
|
|
|
для: enzo
(30.01.2007 в 01:30)
| | >+ наладка работоспособности программы, а именно сортировки
А что с ней не так? | |
|
|
|
|
|
|
|
для: cheops
(30.01.2007 в 02:00)
| | да с <stdio.h> компилируется без проблем. Но суть переделки и в том чтобы заменить команды C( или же Visual C++) на Turbo C++. | |
|
|
|
|
|
|
|
для: enzo
(30.01.2007 в 02:12)
| | Собственно ничего кроме #include "stdafx.h" от Visual Studio больше и нет. Да и в нём лишь определение iostream.h и tchar.h - т.е. ничего нелегального - из-за iostream, программа не требовала <stdio.h>, а так его можно воткнуть убрав "stdafx.h" и программа будет компилироваться и в Turbo С++, и в Visual Studio, и в C++ Builder, и в GCC. Cуть языков высокого уровня как раз и заключается в том, что хорошо написанная программа должна одинаково успешно компилироваться на любом компиляторе и в любой операционной системе. | |
|
|
|
|
|
|
|
для: cheops
(30.01.2007 в 02:22)
| | Клмпилируется она у меня без проблем, и даже отлично работает. Но преподователь требует её именно с функциями Turbo C++, а разницы между языками я, к сожалению, не знаю... | |
|
|
|
|
|
|
|
для: enzo
(30.01.2007 в 02:27)
| | Дело в том, что у вас программа не откомпилировалась бы под Turbo C++, используй вы какие-то новые библиотеки или даже STL, который кстати входит в стандарт C++. Дело в том, что Turbo С++ 3.0 это компилятор созданный в 1992 году - 15 лет назад!!! Даже стандарта C++ ещё не существовало, не было Windows 95 и конечно же ещё не было Visual Studio - уж поверьте Turbo С++ заверещал бы, если чего-нибудь не потребное обнаружил. У вас из C++ используются только классы - всё остальное кандовый C и его стандартная библиотека. Можете смело показывать программу преподавателю - не к чему придраться. | |
|
|
|
|
 8.5 Кб |
|
|
для: cheops
(30.01.2007 в 02:38)
| | но я компилирую именно Turbo C++ версии 3.0!!! =D и всё прекрасно работает ;) | |
|
|
|
|
|
|
|
для: enzo
(30.01.2007 в 02:48)
| | кстати и у преподавателя именно он и стоит ;) | |
|
|
|
|
|
|
|
для: enzo
(30.01.2007 в 02:48)
| | Вкурсе этого :), на нём же проверял вашу программу (вот раздумываю сносить его или оставить :)... Хм... странно, что вас всё ещё Turbo С++ мучат (открыл его (на 1200x1600 этот квадратик импозантно выглядит) - вспомнил 16-цветные мониторы 800x600, аж дурно стало :) - у нас в Университете сейчас сразу с C++ Builder начинают. Уже лет 5-7 вроде как от линейки Turbo отказались...
PS Мысль посетила, что ваш преподаватель будет делать, когда все на Windows Vista перейдут, что-то меня сомнения берут, что там Turbo C++ работать будет... | |
|
|
|
|
|
|
|
для: cheops
(30.01.2007 в 02:58)
| | а нас один симестр мучают консолью Turbo, а потом за Билдер сажают... =) | |
|
|
|