2. Есептің шарттары:
Берілгендер кестесінің жолдарында келесідей ақпарат бар: авторы, атауы, басылым, шығарылған жылы. Авторлар тізімін және олардың кітаптарының санын анықтау керек.
3. Есептің шешуі:
Есепті шешу алгоритмінің блок-схемасы:
БАСЫ
book *ps
int n
avtor *pp
int I
ps=Inputbookfile(n)
pp=perech(ps,n,I)
outputperech(pp,I)
outputperechfile(pp,I)
delete []ps
delete []pp
СОҢЫ
Book
inputbookfile(n)
book t;
book *ps
file
Fin.open(file)
fin==Null
Файл ашылмаған
Exit(1)
k=0
Файлдан оқу
Файл
k++
fin.good
k--
Fin.close()
Fin.open(file)
i=0
i
Файлдан оқу
Файл
i++
Fin.close()
Return ps
avtor
perech(ps,n,I)
int zi,j,fl
Avtor *t
t=new avtor[k]
Динамикалық жады жоқ
t==Null
kk=0
Exit(1)
i=0
i
fl=0
j=0
j
strcmp(x[i],avtor.t[i].avtor)==0
fl=1
t[j].kolvo++
Fl==0
strcpy(t[kk].avtor,x[i]avtor)
Return t
t[kk].avtor
k++
outputperech(pp,I)
outputperechfile(pp,I)
file
int i
Автор
Саны
Fout.open(file)
!fout.good
Файл құрылмаған
i=0
i
Exit(1)
i=0
i
y[i].avtor,
y[i].kolvo
Файлға жазу
Файл
i++
i++
return
fout.close()
return
2) С++ тіліндегі бағдарлама мәтіні:
#include
#include
#include
#include
#include
#include
struct book
{char avtor[15];
char name[15];
char izdat[15];
int god;
};
struct avtor
{char avtor[15];
int kolvo;
};
book *inputbookfile(int &k);
avtor *perech(book x[],int k,int &kk);
void outputperech(avtor y[],int kk);
void outputperechfile(avtor y[],int kk);
book *inputbookfile(int &k)
{int i;
book t;
book *ps;
ifstream fin;
char file[10];
cout<<"Name of input file:\n";
cin>>file;
fin.open(file);
if (fin==NULL) {cout<
k=0;
do {fin>>t.avtor>>t.name>>t.izdat>>t.god;
k++; }while (fin.good());
k--;
fin.close();
fin.open(file);
ps=new book[k];
if(ps==NULL){cout<<"No memory\n";getch();exit(1);}
for (i=0;i
fin>>ps[i].avtor>>ps[i].name>>ps[i].izdat>>ps[i].god;
fin.close();
return ps;
}
avtor *perech(book x[],int k,int &kk)
{
int i,j,fl;
avtor *t;
t=new avtor[k];
if(t==NULL){cout<<"No memory";getch();exit(1);}
kk=0;
for(i=0;i
{fl=0;
for(j=0;j
if(strcmp(x[i].avtor,t[j].avtor)==0){fl=1;t[j].kolvo++;}
if (fl==0){strcpy(t[kk].avtor,x[i].avtor);
t[kk].kolvo=1;
kk++;}
}
return t;
}
void outputperech(avtor y[],int kk)
{int i;
cout<<"ABTOP Koli4ECTBO\n";
for(i=0;i
cout<
}
void outputperechfile(avtor y[],int kk)
{ofstream fout;
int i;
char file[10];
cout<<"Name of output file:\n";
cin>>file;
fout.open(file);
if (!fout.good()) {cout<
for (i=0;i
fout<
fout.close();
}
void main()
{book *ps;
int n;
avtor *pp;
int l;
ps=inputbookfile(n);
pp=perech(ps,n,l);
outputperech(pp,l);
outputperechfile(pp,l);
delete[] ps;
delete[] pp;
}
3)Бағдарламаны тестілеу нәтижесі:
Мәтіндік файл:
Бағдарлама жұмысы:
Алынған мәтіндік файл:
Достарыңызбен бөлісу: |