Форум: Форум C++Разное
Новые темы: 00
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Visual C++ -> Turbo C++
 
 автор: enzo   (30.01.2007 в 01:30)   письмо автору
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;
}


  Ответить  
 
 автор: cheops   (30.01.2007 в 01:45)   письмо автору
 
   для: enzo   (30.01.2007 в 01:30)
 

Именно Turbo C++?

  Ответить  
 
 автор: enzo   (30.01.2007 в 01:50)   письмо автору
 
   для: cheops   (30.01.2007 в 01:45)
 

Да именно турбо C++ =\

  Ответить  
 
 автор: cheops   (30.01.2007 в 01:56)   письмо автору
 
   для: enzo   (30.01.2007 в 01:30)
 

Закоментарьте
#include "stdafx.h"

и добавьте
#include <stdio.h>

Проект и конечный exe-файл нужен или у вас Турбо C имеется?

  Ответить  
 
 автор: cheops   (30.01.2007 в 02:00)   письмо автору
 
   для: enzo   (30.01.2007 в 01:30)
 

>+ наладка работоспособности программы, а именно сортировки
А что с ней не так?

  Ответить  
 
 автор: enzo   (30.01.2007 в 02:12)   письмо автору
 
   для: cheops   (30.01.2007 в 02:00)
 

да с <stdio.h> компилируется без проблем. Но суть переделки и в том чтобы заменить команды C( или же Visual C++) на Turbo C++.

  Ответить  
 
 автор: cheops   (30.01.2007 в 02:22)   письмо автору
 
   для: 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уть языков высокого уровня как раз и заключается в том, что хорошо написанная программа должна одинаково успешно компилироваться на любом компиляторе и в любой операционной системе.

  Ответить  
 
 автор: enzo   (30.01.2007 в 02:27)   письмо автору
 
   для: cheops   (30.01.2007 в 02:22)
 

Клмпилируется она у меня без проблем, и даже отлично работает. Но преподователь требует её именно с функциями Turbo C++, а разницы между языками я, к сожалению, не знаю...

  Ответить  
 
 автор: cheops   (30.01.2007 в 02:38)   письмо автору
 
   для: enzo   (30.01.2007 в 02:27)
 

Дело в том, что у вас программа не откомпилировалась бы под Turbo C++, используй вы какие-то новые библиотеки или даже STL, который кстати входит в стандарт C++. Дело в том, что Turbo С++ 3.0 это компилятор созданный в 1992 году - 15 лет назад!!! Даже стандарта C++ ещё не существовало, не было Windows 95 и конечно же ещё не было Visual Studio - уж поверьте Turbo С++ заверещал бы, если чего-нибудь не потребное обнаружил. У вас из C++ используются только классы - всё остальное кандовый C и его стандартная библиотека. Можете смело показывать программу преподавателю - не к чему придраться.

  Ответить  
 
 автор: enzo   (30.01.2007 в 02:48)   письмо автору
8.5 Кб
 
   для: cheops   (30.01.2007 в 02:38)
 

но я компилирую именно Turbo C++ версии 3.0!!! =D и всё прекрасно работает ;)

  Ответить  
 
 автор: enzo   (30.01.2007 в 02:49)   письмо автору
 
   для: enzo   (30.01.2007 в 02:48)
 

кстати и у преподавателя именно он и стоит ;)

  Ответить  
 
 автор: cheops   (30.01.2007 в 02:58)   письмо автору
 
   для: enzo   (30.01.2007 в 02:48)
 

Вкурсе этого :), на нём же проверял вашу программу (вот раздумываю сносить его или оставить :)... Хм... странно, что вас всё ещё Turbo С++ мучат (открыл его (на 1200x1600 этот квадратик импозантно выглядит) - вспомнил 16-цветные мониторы 800x600, аж дурно стало :) - у нас в Университете сейчас сразу с C++ Builder начинают. Уже лет 5-7 вроде как от линейки Turbo отказались...

PS Мысль посетила, что ваш преподаватель будет делать, когда все на Windows Vista перейдут, что-то меня сомнения берут, что там Turbo C++ работать будет...

  Ответить  
 
 автор: enzo   (30.01.2007 в 03:21)   письмо автору
 
   для: cheops   (30.01.2007 в 02:58)
 

а нас один симестр мучают консолью Turbo, а потом за Билдер сажают... =)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования