«Программалау» ПӘнінің ОҚУ-Әдістемелік кешені



бет9/16
Дата27.05.2018
өлшемі2,32 Mb.
#40952
1   ...   5   6   7   8   9   10   11   12   ...   16

2. Есептің шарттары:

Берілгендер кестесінің жолдарында келесідей ақпарат бар: авторы, атауы, басылым, шығарылған жылы. Авторлар тізімін және олардың кітаптарының санын анықтау керек.


3. Есептің шешуі:


  1. Есепті шешу алгоритмінің блок-схемасы:



БАСЫ



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)Бағдарламаны тестілеу нәтижесі:
Мәтіндік файл:


Бағдарлама жұмысы:


Алынған мәтіндік файл:




Достарыңызбен бөлісу:
1   ...   5   6   7   8   9   10   11   12   ...   16




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет