#include<iostream> #include<cstdlib> #include<cstddef> #include<string> #include<iomanip> #include<fstream> using namespace std; struct xueshengguanli { string name; string xibie; string banbie; string sex; int num; float zongheCJ; xueshengguanli *next; }; typedef xueshengguanli* xueshengGL; xueshengGL Input(xueshengGL head) { char SEL='y'; int m=0; xueshengGL p1,p2,top; ofstream out_stream; out_stream.open("student.txt",ios::app); //以追å æ°æ®ä¿¡æ¯æå¼æ件 if(out_stream.fail()) { cout<<"æå¼æ件失败.\n"; exit(1); } while(SEL=='y'||SEL=='Y') { p1=new xueshengguanli; p1->next=NULL; cout<<"\n请è¾å
¥ä½ çå§å:"; cin>>p1->name; cout<<"\n请è¾å
¥ä½ çå¦å·:"; cin>>p1->num; cout<<"\n请è¾å
¥ä½ çæ§å«(ç·/女):"; cin>>p1->sex; cout<<"\n请è¾å
¥ä½ çç³»å«:"; cin>>p1->xibie; cout<<"\n请è¾å
¥ä½ ççå«:"; cin>>p1->banbie; cout<<"\n请è¾å
¥ä½ ç综åæ绩:"; cin>>p1->zongheCJ; if(m==0) { head=p1; p2=head; m=1; } else { p2->next=p1; p2=p1; } cout<<"\næ¯å¦ç»§ç»è¾å
¥?(y/n)\n"; //å¤ææ¯å¦ç»§ç»è¾å
¥ cin>>SEL; } top=head; //åå
¥æ件 while(head!=NULL) { out_stream<<head->name<<" "<<head->num<<"\t"<<head->sex<<"\t"<<head->xibie <<"\t"<<head->banbie<<"\t"<<head->zongheCJ; head=head->next; } out_stream.close(); //å
³éæ件 if(SEL=='n'||SEL=='N') cout<<"è¾å
¥å®æ¯.\n"; return top; //è¿åé¾è¡¨å¤´ç»ç¹å°å } //ä»æ件é读åæ°æ® xueshengGL WenJian(xueshengGL top) { int n=0; xueshengGL p,h; ifstream in_stream; in_stream.open("student.txt"); if(in_stream.fail()) { cout<<"æå¼æ件失败.\n"; return 0; } while(1) { if(in_stream.eof()) break; else {p=new xueshengguanli; p->next=NULL; in_stream>>p->name>>p->num>>p->sex>>p->xibie>>p->banbie>>p->zongheCJ; if(n==0) { top=p; h=top; n=1; } else { h->next=p; h=p; } } } in_stream.close(); return top; } void xuanzhe(xueshengGL top) { int h; while(h<1||h>3) { cout<<"\n请è¾å
¥ä½ è¦ä¿®æ¹ç项ï¼"; cin>>h; if(h==1) { cout<<"\n请è¾å
¥æ°çç³»å«:"; cin>>top->xibie; break; } else if(h==2) { cout<<"\n请è¾å
¥æ°ççå«:"; cin>>top->banbie; break; } else if(h==3) { cout<<"\n请è¾å
¥æ°ç综åæ绩:"; cin>>top->zongheCJ; break; } else cout<<"\nè¾å
¥é误!请éè¾!\n"; } } //ä¿®æ¹ xueshengGL Change(xueshengGL top) { string NAME; int NUM,l=0; char SEL='y'; xueshengGL q,head; cout<<"\n请è¾å
¥ä¿®æ¹äººçå§å:"; cin>>NAME; cout<<"\n请è¾å
¥ä¿®æ¹äººçå¦å·:"; cin>>NUM; top=WenJian(top); q=top; while(top!=NULL) { if(top->name==NAME&&top->num==NUM) { l=1; while(SEL=='y'||SEL=='Y') { cout<<"\n1ç³»å« 2çå« 3综åæ绩\n"; xuanzhe(top); cout<<"\nè¿æ¯ä¿®æ¹åçå¦çä¿¡æ¯:\n"; cout<<"\nå§å"<<"\t"<<"å¦å·"<<"\t"<<"æ§å«"<<"\t"<<"ç³»å«"<<"\t"<<"çå«"<<"\t"<<"综åæ绩\n"; cout<<top->name<<"\t"<<top->num<<"\t"<<top->sex<<"\t"<<top->xibie<<"\t" <<top->banbie<<"\t"<<top->zongheCJ<<endl; cout<<"\næ¯å¦ç»§ç»ä¿®æ¹?(y/n)\n"; cin>>SEL; } if(SEL=='n'||SEL=='N') cout<<"è¾å
¥å®æ¯,ä»»æé®è¿å\n"; break; } else top=top->next; } //ä¿®æ¹åå¦çä¿¡æ¯åå
¥æ件 if(l==1) { head=q; ofstream out_stream; out_stream.open("student.txt",ios::trunc); //以è¦çæ件åæ°æ®æ¹å¼æå¼æ件 if(out_stream.fail()) { cout<<"æå¼æ件失败.\n"; exit(1); } while(head!=NULL) { out_stream<<head->name<<" "<<head->num<<"\t"<<head->sex<<"\t"<<head->xibie <<"\t"<<head->banbie<<"\t"<<head->zongheCJ; head=head->next; } out_stream.close(); } else cout<<"\n对ä¸èµ·ï¼æ²¡æä½ è¦ä¿®æ¹ç人.\n\n"; return q; } //å é¤ xueshengGL Del(xueshengGL top) { string NAME; int NUM,l=0,n=0; xueshengGL p,h,q,back,head; cout<<"\n请è¾å
¥ä¿®æ¹äººçå§å:"; cin>>NAME; cout<<"\n请è¾å
¥ä¿®æ¹äººçå¦å·:"; cin>>NUM; ofstream out_stream; ifstream in_stream; in_stream.open("student.txt"); if(in_stream.fail()) { cout<<"æå¼æ件失败.\n"; cout<<"è¿æ²¡æå¦çä¿¡æ¯\n\n"; return 0; } while(1) { if(in_stream.eof()) break; else {p=new xueshengguanli; p->next=NULL; in_stream>>p->name>>p->num>>p->sex>>p->xibie>>p->banbie>>p->zongheCJ; if(n==0) { top=p; h=top; n=1; } else { h->next=p; h=p; } } } in_stream.close(); q=top; while(1) { if(NAME==top->name&&NUM==top->num&&top->next==NULL) { l=2; top=q->next; out_stream.open("student.txt",ios::trunc);//å é¤æ件 break; } if(NAME==top->name&&NUM==top->num&&top->next!=NULL) { l=1; top=q->next; cout<<"\nå é¤æå.\n"; break; } if(q->next==NULL) { printf("\nNot Found!\n"); break; } back=q; q=q->next; if(NAME==q->name&&NUM==q->num) { l=1; back->next=q->next; cout<<"\nå é¤æå.\n"; break; } } //å é¤å¦çä¿¡æ¯åéæ°åå
¥æ件 if(l==1) { head=top; out_stream.open("student.txt",ios::trunc); if(out_stream.fail()) { cout<<"æå¼æ件失败.\n"; exit(1); } while(head!=NULL) { out_stream<<head->name<<" "<<head->num<<"\t"<<head->sex<<"\t"<<head->xibie <<"\t"<<head->banbie<<"\t"<<head->zongheCJ; head=head->next; } out_stream.close(); } else if(l==2) cout<<"\nå é¤æå.\n"; else cout<<"\næ¾ä¸å°æ¤äººä¿¡æ¯!\n"; return top; } //æ¥è¯¢ xueshengGL LookUp(xueshengGL top) { string XM; int number,l=0; cout<<"\n请è¾å
¥ä½ æ¥è¯¢çå§å:"; cin>>XM; cout<<"\n请è¾å
¥ä½ æ¥è¯¢çå·¥å·:"; cin>>number; top=WenJian(top); while(top!=NULL) { if(XM==top->name&&number==top->num) { l=1; cout<<endl; cout<<"\nè¿æ¯ä½ è¦æ¥è¯¢äººçä¿¡æ¯.\n"; cout<<"\nå§å"<<"\t"<<"å¦å·"<<"\t"<<"æ§å«"<<"\t"<<"ç³»å«"<<"\t"<<"çå«"<<"\t"<<"综åæ绩\n"; cout<<top->name<<"\t"<<top->num<<"\t"<<top->sex<<"\t"<<top->xibie<<"\t" <<top->banbie<<"\t"<<top->zongheCJ<<endl; break; } else top=top->next; } if(l==1) cout<<"\nè°¢è°¢ä½ çæ¥è¯¢.\n"; else cout<<"\n对ä¸èµ·ï¼æ²¡æä½ è¦æ¥è¯¢äººçä¿¡æ¯.\n"; cout<<endl; return top; } xueshengGL sort(xueshengGL top) { string name1,xibie1,banbie1,sex1; int num1; float zongheCJ1; int n=0,l=0; xueshengGL p1,p2,p3,p,h,head; ifstream in_stream; in_stream.open("student.txt"); if(in_stream.fail()) { cout<<"æå¼æ件失败.\n"; cout<<"è¿æ²¡æå¦çä¿¡æ¯ä¿å\n\n"; return 0; } while(1) { if(in_stream.eof()) break; else {p=new xueshengguanli; p->next=NULL; in_stream>>p->name>>p->num>>p->sex>>p->xibie>>p->banbie>>p->zongheCJ; l=1; if(n==0) { top=p; h=top; n=1; } else { h->next=p; h=p; } } } in_stream.close(); for(p1=top;p1->next!=NULL;p1=p1->next) { l=1; for(p2=p1->next;p2!=NULL;p2=p2->next) { if(p1->zongheCJ<p2->zongheCJ) { name1=p1->name; p1->name=p2->name; p2->name=name1; num1=p1->num; p1->num=p2->num; p2->num=num1; sex1=p1->sex; p1->sex=p2->sex; p2->sex=sex1; xibie1=p1->xibie; p1->xibie=p2->xibie; p2->xibie=xibie1; banbie1=p1->banbie; p1->banbie=p2->banbie; p2->banbie=banbie1; zongheCJ1=p1->zongheCJ; p1->zongheCJ=p2->zongheCJ; p2->zongheCJ=zongheCJ1; } } } p3=top; cout<<"\n以ä¸æ¯å
¨é¨å¦çç综åæ绩ç±é«å°ä½çæåº:\n"; cout<<"\nå§å"<<"\t"<<"å¦å·"<<"\t"<<"æ§å«"<<"\t"<<"ç³»å«"<<"\t"<<"çå«"<<"\t"<<"综åæ绩\n"; while(p3!=NULL) { cout<<p3->name<<"\t"<<p3->num<<"\t"<<p3->sex<<"\t"<<p3->xibie<<"\t" <<p3->banbie<<"\t"<<p3->zongheCJ<<endl; p3=p3->next; } if(l==1) { head=top; ofstream out_stream; out_stream.open("student.txt",ios::trunc); //以è¦çæ件åæ°æ®æ¹å¼æå¼æ件 if(out_stream.fail()) { cout<<"æå¼æ件失败.\n"; exit(1); } while(head!=NULL) { out_stream<<head->name<<" "<<head->num<<"\t"<<head->sex<<"\t"<<head->xibie <<"\t"<<head->banbie<<"\t"<<head->zongheCJ; head=head->next; } out_stream.close(); } else cout<<"\n谢谢.\n"; cout<<endl; return top; } void display(xueshengGL top) { int l=0,n=0; xueshengGL p,h; ifstream in_stream; in_stream.open("student.txt"); if(in_stream.fail()) { cout<<"æå¼æ件失败.\n"; cout<<"è¿æ²¡æå¦çä¿¡æ¯\n\n"; return; } while(1) { if(in_stream.eof()) break; else {p=new xueshengguanli; p->next=NULL; in_stream>>p->name>>p->num>>p->sex>>p->xibie>>p->banbie>>p->zongheCJ; l=1; if(n==0) { top=p; h=top; n=1; } else { h->next=p; h=p; } } } in_stream.close(); if(l==1) { cout<<"\n以ä¸æ¯å
¨é¨å¦çä¿¡æ¯:\n"; cout<<"\nå§å"<<"\t"<<"å¦å·"<<"\t"<<"æ§å«"<<"\t"<<"ç³»å«"<<"\t"<<"çå«"<<"\t"<<"综åæ绩\n"; while(top!=NULL) { cout<<top->name<<"\t"<<top->num<<"\t"<<top->sex<<"\t"<<top->xibie<<"\t" <<top->banbie<<"\t"<<top->zongheCJ<<endl; top=top->next; } cout<<endl<<endl; } return; } int main() { xueshengGL head; int sel; cout<<"\n\n ---------------------------------------------\n"; cout<<"\t\t* 设计è
*\n" <<"\t\t* *\n" <<"\t\t* å¦å·: *\n"; cout<<" ---------------------------------------------\n\n"; while(1) { cout<<"\t\t-------------------------------\n" <<"\t\t欢è¿ä½¿ç¨å¦çä¿¡æ¯ç®¡çç³»ç»\n" <<"\t\t 1è¾å
¥å¦çä¿¡æ¯\n" <<"\t\t 2ä¿®æ¹å¦çä¿¡æ¯\n" <<"\t\t 3å é¤å¦çä¿¡æ¯\n" <<"\t\t 4æ¥æ¾å¦çä¿¡æ¯\n" <<"\t\t 5å¦ç综åæ绩æåºä¿¡æ¯\n" <<"\t\t 6æ¾ç¤ºå¦çä¿¡æ¯\n" <<"\t\t 0è¿å\n" <<"\t\t-------------------------------\n\n\n"; cout<<"è¯·ä½ éæ©æä½ç±»å:"; cin>>sel; cout<<"\n"; switch(sel) { case 1:head=Input(head); break; case 2:head=Change(head); break; case 3:head=Del(head); break; case 4:head=LookUp(head); break; case 5:head=sort(head); break; case 6:display(head); break; case 0:{ cout<<"谢谢使ç¨åè§\n\n"; exit(0); } default : cout<<"è¾å
¥æé误请éæ°è¾å
¥!\n\n"; } } return 0; }
追é®æä¹æè§ä¸å¯¹
å¯ä»¥æ ¹æ®æçé¢ç® 帮æç¼ä¸ä¸ªç¨åºå
ææææ
æ¥