1、源程序#includestdio.h#includestdlib.h#includestring.h#includeconio.h#defineHEADER1-STUDENT-n#defineHEADER2|number|name|Comp|Math|Eng|sum|ave|mici|n#defineHEADER3|-|-|-|-|-|-|-|-|n#defineFORMAT|%-10s|%-15s|%4d|%4d|%4d|%6d|%6.2f|%4d|n#defineDATAp-data.num,p-data.name,p-data.cgrade,p-data.mgrade,p-data.eg
2、rade,p-data.total,p-data.ave,p-data.mingci#defineEND-nintflag=0;typedefstructstudentcharnum10;charname15;intcgrade;intmgrade;integrade;inttotal;floatave;intmingci;typedefstructnodestructstudentdata;structnode*next;Node,*Link;voidmenu();voidprintfdata(Node*pp);voidprintheader();voidNofind();Node*Loca
3、te(Linkl,charfindmess,charnameornum);voidstringinput(char*t,intlens,char*notice);intnumberinput(char*notice);voidAdd(Linkl);voidQur(Linkl);voidModify(Linkl);voidTongji(Linkl);voidSort(Linkl);voidSave(Linkl);voidWrong();voidDisp(Linkl);voidDel(Linkl);voidInsert(Linkl);/*/voidmain()Linkl;FILE*fp;intse
4、lect;charch;intcount=0;intflag=0;Node*p,*r;l=(Node*)malloc(sizeof(Node);if(!l)printf(nallocatememoryfaliue);return;l-next=NULL;r=l;fp=fopen(C:student,ab+);if(fp=NULL)printf(n=cannotopenfile!n);exit(0);while(!feof(fp)p=(Node*)malloc(sizeof(Node);if(!p)printf(memorymallocfailure!n);exit(0);if(fread(p,
5、sizeof(Node),1,fp)=1)p-next=NULL;r-next=p;r=p;count+;fclose(fp);printf(n=openfilesucess,thetotalrecordsnumberis:%d.n,count);menu();while(l)system(cls);menu();p=r;printf(nPleaseEnteryourchoice(0-9):);scanf(%d,&select);if(select=0)if(flag=1)getchar();printf(n=Whethersavethemodifiedrecordtofile?(y/n):)
6、;scanf(%c,&ch);if(ch=y|ch=Y)Save(l);printf(=thankyouforuseness!);getchar();break;switch(select)case1:Add(l);break;case2:Del(l);break;case3:Qur(l);break;case4:Modify(l);break;case5:Insert(l);break;case6:Tongji(l);break;case7:Sort(l);break;case8:Save(l);break;case9:system(cls);Disp(l);break;default:Wr
7、ong();getchar();break;/*/voidmenu()system(cls);textcolor(10);gotoxy(10,5);cprintf(TheStudentsGradeManagementSystemn);gotoxy(10,8);cprintf(*Menu*n);gotoxy(10,9);cprintf(*1inputrecord2delectrecord*n);gotoxy(10,10);cprintf(*3searchrecord4modifyrecord*n);gotoxy(10,11);cprintf(*5insertrecord6countrecord*
8、n);gotoxy(10,12);cprintf(*7sortrecord8saverecord*n);gotoxy(10,13);cprintf(*9displayrecord0quitsystem*n);gotoxy(10,14);cprintf(*n);/*/voidprintfdata(Node*pp)Node*p;p=pp;printf(FORMAT,DATA);/*/voidWrong()printf(nnnnn*Eroor:inputhaswrong!pressanykeytocontinue*n);getchar();/*/voidNofind()printf(n=Notfin
9、dthisstudent!n);/*/voidDisp(Linkl)Node*p;p=l-next;if(!p)printf(n=Notstudebtrecord!n);getchar();return;printf(nn);printheader();while(p)printfdata(p);p=p-next;printf(HEADER3);getchar();/*/voidprintheader()printf(HEADER1);fflush(stdin);printf(HEADER2);fflush(stdin);printf(HEADER3);fflush(stdin);/*/Nod
10、e*Locate(Linkl,charfindmess,charnameornum)Node*r;if(strcmp(nameornum,num)=0)r=l-next;while(r)if(strcmp(r-data.num,findmess)=0)returnr;r=r-next;elseif(strcmp(nameornum,name)=0)r=l-next;while(r)if(strcmp(r-data.name,findmess)=0)returnr;r=r-next;return0;/*/voidstringinput(char*t,intlens,char*notice)cha
11、rn255;doprintf(notice);scanf(%s,n);if(strlen(n)lens)printf(nexccedtherequiredlength!n);while(strlen(n)lens);strcpy(t,n);/*/intnumberinput(char*notice)intt=0;doprintf(notice);scanf(%d,&t);if(t100|t100|tnext;system(cls);Disp(l);while(r-next!=NULL)r=r-next;while(l)while(l)stringinput(num,10,inputnumber
12、(press0returnmenu):);flag=0;if(strcmp(num,0)=0)return;s=l-next;while(s)if(strcmp(s-data.num,num)=0)flag=1;break;s=s-next;if(flag=1)getchar();printf(=Thenumber%sisnotexisting,tryagain?(y/n):,num);scanf(%c,&ch);if(ch=y|ch=Y)continue;elsereturn;elsebreak;p=(Node*)malloc(sizeof(Node);if(!p)printf(nalloc
13、atememoryfalure);return;strcpy(p-data.num,num);stringinput(p-data.name,15,Name:);p-data.cgrade=numberinput(ClanguageScore0-100:);p-data.mgrade=numberinput(MathScore0-100:);p-data.egrade=numberinput(EnglishScore0-100:);p-data.total=p-data.egrade+p-data.cgrade+p-data.mgrade;p-data.ave=(float)(p-data.t
14、otal/3);p-data.mingci=0;p-next=NULL;r-next=p;r=p;flag=1;return;/*/voidQur(Linkl)intselect;charsearchinput20;Node*p;if(!l-next)system(cls);printf(nNostudentrecord!n);getchar();return;system(cls);printf(n1Searchbynumber2Searchbynamen);printf(pleasechoice1,2:);scanf(%d,&select);if(select=1)stringinput(
15、searchinput,10,inputtheexistingstudentnumber:);p=Locate(l,searchinput,num);if(p)printheader();printfdata(p);printf(END);printf(pressanykeytoreturn);getchar();elseNofind();getchar();elseif(select=2)stringinput(searchinput,15,inputtheexistingstudentname:);p=Locate(l,searchinput,name);if(p)printheader(
16、);printfdata(p);printf(END);printf(pressanykeytoreturn);getchar();elseNofind();getchar();elseWrong();getchar();/*/voidDel(Linkl)intsel;Node*p,*r;charfindmess20;if(!l-next)system(cls);printf(nNostudentrecord!n);getchar();return;system(cls);Disp(l);printf(n1Deletebynumber2Deletebynamen);printf(pleasec
17、hoice1,2:);scanf(%d,&sel);if(sel=1)stringinput(findmess,10,inputtheexistingstudentnumber:);p=Locate(l,findmess,num);if(p)r=l;while(r-next!=p)r=r-next;r-next=p-next;free(p);printf(ndeletesuccess!n);getchar();flag=1;elseNofind();getchar();elseif(sel=2)stringinput(findmess,15,inputtheexistingstudentnam
18、e);p=Locate(l,findmess,name);if(p)r=l;while(r-next!=p)r=r-next;r-next=p-next;free(p);printf(n=deletesuccess!n);getchar();flag=1;elseNofind();getchar();elseWrong();getchar();/*/voidModify(Linkl)Node*p;charfindmess20;if(!l-next)system(cls);printf(n=Nostudentrecord!n);getchar();return;system(cls);print
19、f(modifystudentrecorder);Disp(l);stringinput(findmess,10,theexistingstudentnumber:);p=Locate(l,findmess,num);if(p)printf(Number:%s,n,p-data.num);printf(Name:%s,p-data.name);stringinput(p-data.name,15,inputnewname:);printf(Clanguagescore:%d,p-data.cgrade);p-data.cgrade=numberinput(ClanguageScore0-100
20、:);printf(Mathscore:%d,p-data.mgrade);p-data.mgrade=numberinput(MathScore0-100:);printf(Englishscore:%d,p-data.egrade);p-data.egrade=numberinput(EnglishScore0-100:);p-data.total=p-data.egrade+p-data.cgrade+p-data.mgrade;p-data.ave=(float)(p-data.total/3);p-data.mingci=0;printf(n=next;system(cls);Disp(l);while(1)stringinput(s,10,pleaseinputinsertlocationaftertheNumber:);flag=0;v=l-next;while(v)if(strcmp(v-data.num,s)=0)flag=1;break;v=v-next;if(flag=1)break;elsegetchar();printf(n=Th
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1