16.02.2008, 19:06
общий
это ответ
Здравствуйте, Tanyha!
код в приложении. ваш вариант с массивом kino неподходит. каждый элемент структуры ссылается на следующий.
Приложение:
#include<iostream>//#include <cstdlib>//#include <ctime>//#include <cmath>using namespace std; //#include <windows.h>//#include <conio.h>struct kino{char film[100];char regiser[100];char ganr[100];int reyting;int cena;kino *next;};void add(kino *ps);void search1(kino*st,kino*fi,char*str);void search2(kino*st,kino*fi,char*str);void search3(kino*st,kino*fi,char*str);void search4(kino*st,kino*fi,int qw);void show(kino*st,kino*fi){ kino*p=st; kino*er=0; while(er!=fi) { cout<<"film: "<<p->film<<endl; cout<<"regiser: "<<p->regiser<<endl; cout<<"ganr: "<<p->ganr<<endl; cout<<"reyting: "<<p->reyting<<endl; cout<<"cena: "<<p->cena<<endl; er=p; p=p->next; }}int main(){ kino *start=new kino; kino *finish=start; add (start); int swi=0,sw2=0; char str[100];while(swi!=4){ cout<<"Enter 1 to add\nEnter 2 to show\nEnter3 to search\nEnter 4 to exit:"; cin>>swi; if(swi==1) { finish->next=new kino; finish=finish->next; add(finish); } else if(swi==2) { show(start,finish); } else if(swi==3) { cout<<"Enter 1 to search on name of film\nEnter 2 to search on nsme of regiser\nEnter 3 to search on ganr\nEnter 4 to search on reything: "; cin>>sw2; switch (sw2) { case 1 : cin>>str; search1(start,finish,str); break; case 2 : cin>>str; search2(start,finish,str); break; case 3 : cin>>str; search3(start,finish,str); break; case 4 : cin>>sw2; search4(start,finish,sw2); break; } }}return 0;}void search1(kino*st,kino*fi,char*str){ kino*p=st; kino*er=0; while(er!=fi) { if(!strcmp(str,p->film)) show(p,p); er=p; p=p->next; }}void search2(kino*st,kino*fi,char*str){ kino*p=st; kino*er=0; while(er!=fi) { if(!strcmp(str,p->regiser)) show(p,p); er=p; p=p->next; }}void search3(kino*st,kino*fi,char*str){ kino*p=st; kino*er=0; while(er!=fi) { if(!strcmp(str,p->ganr)) show(p,p); er=p; p=p->next; }}void search4(kino*st,kino*fi,int s2){ kino*p=st; kino*er=0; while(er!=fi) { if(s2==p->reyting) show(p,p); er=p; p=p->next; }}/////////////////////////////////////////////////////////void add(kino*ps){//kino*ps=new kino[++n];cout<<"Dobavte zapici"<<endl;cin>>ps->film;cin>>ps->regiser;cin>>ps->ganr;cin>>ps->reyting;cin>>ps->cena;}