#include #include #include #include #include #include #include #include struct node { struct data { char name[25],lastname[15]; int cntcourse,unit; long double average,code ; struct namecourse { char name[15]; int unit; double mark; } namecourse[20]; } data; node *next; }; node *start=NULL; //**********tabe namayesh*************** void Display() { int m=0; clrscr(); node *p; cout<<"********************************************************************************"; cout<<"* Code * * Name * * Dorooose kol * * Vahede Kol * *" ; cout<<"********************************************************************************"; for( p=start ; p ; p=p->next) { for(int i=0;idata.cntcourse;i++) { m+=(p->data.namecourse[i].unit); } cout<<" "<data.code<<" "<data.name<data.cntcourse<* * * * * * * * * * * "; cout<<"\n\n Code daneshjoo ra vared konid: "; cin>>b; (n->data.code)=b; cout<<"\n\n Name daneshjoo ra vared konid: "; gets(x); cout<<"\n Famil daneshjoo ra vared koni: "; gets(y); clrscr(); cout<<"\n* * * * * * * * *< Daryafte moshakhasateh doroos daneshjoo >* * * * * * * * * * "; cout<<"\n Tedade darshayeh daneshjooo ra vared konid : "; cin>>a; n->data.cntcourse=a; for(int k=0;kdata.namecourse[k].name); cout<<"\nVahede darse "<>n->data.namecourse[k].unit; cout<<"\nNomreyeh darse "<>n->data.namecourse[k].mark; } strcpy(n->data.name,x); strcat(n->data.name," "); strcat(n->data.name,y); n->next=start; start=n; return; } //******Tabe hazf******************** void Remove() { node *p,*temp; int x; cout<<"\n\n code daneshjooye hazfy ra vared konid : "; cin>>x; if(!start){ cout<<"\n\n * List khali ast:"; getch(); } if(x==start->data.code) { temp=start; start=start->next; delete temp; cout<<"\nPak shod"; getch(); return; } p=start; while(p->next && p->next->data.code!=x) p=p->next; if(p->next==NULL) { cout<<"\n\ncode vared shode dar list mojoood nemibashad ! ! !"; return; } temp=p->next; p->next=p->next->next; delete temp; cout<<"\nPak shod"; getch(); } ///*****Average*********************** void Average() { int k,found ; double sum,sumunits; node *p; int m; clrscr(); cout<<"\n\nCode daneshjoo ra jahat moadel giri vared konid : "; cin>>m; found=0; for( p=start ; p ; p=p->next ) if(p->data.code==m) { found=1; sum=0; sumunits=0; for(k=0;k<(p->data.cntcourse);k++) { sum+=(p->data.namecourse[k].mark)*(p->data.namecourse[k].unit); sumunits+=(p->data.namecourse[k].unit); } clrscr(); cout<<"\n* Modele mohasebe shode barayeh daneshjooye ba moshakhasateh zir\n\nCode = "<data.name<A[j+1]) { k=A[j]; A[j]=A[j+1]; A[j+1]=k; } } //********Sort************* void Sort() { int i; struct sort{ char name[20]; int code; }*R,k; int n=0; node *p; for( p=start ; p ; p=p->next ) n++; R=new sort [n]; for( i=0,p=start;p;p=p->next,i++) { strcpy(R[i].name,p->data.name); R[i].code=p->data.code; } for( i=0;iR[j+1].code) { k=R[j]; R[j]=R[j+1]; R[j+1]=k; } cout<<"\n\n****************************************************************************"; cout<<"\n * * Code * * Name * * "; cout<<"\n****************************************************************************"; for(i=0;iisplay nsert ort emove verage xit:\t"; ans=toupper(getch()); if(ans=='A') Average(); if(ans=='I') Insert(); if(ans=='R') Remove(); if(ans=='D') Display(); if(ans=='S') Sort(); if(ans=='E') exit(0); } getch(); }