Форум С++

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: enzo   (30.01.2007 в 01:30)
Господа программисты, требуется помощь по конверту листинга с 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;
}



Ваше имя:

Пароль:

Цитировать

Используйте тэги для выделения текста:
Код: [code][/code]
Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url]

Сообщение:

Прикрепить: