C語言專業(yè)課程設計學生成績標準管理系統(tǒng)完整版_第1頁
C語言專業(yè)課程設計學生成績標準管理系統(tǒng)完整版_第2頁
C語言專業(yè)課程設計學生成績標準管理系統(tǒng)完整版_第3頁
C語言專業(yè)課程設計學生成績標準管理系統(tǒng)完整版_第4頁
C語言專業(yè)課程設計學生成績標準管理系統(tǒng)完整版_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

#include<stdio.h>#include<stdlib.h>#include<io.h>#include<string.h>/*strcmp函數(shù)原型包含*/ #defineN100/*定義最大學生人數(shù)為100*/structstudent/*學生結(jié)構(gòu)體定義*/{charno[11];/*學號,10位*/charname[10];/*姓名,3個漢字*/chargrade[10];/*班級*/charpro[20];/*專業(yè)*/floatscore[5];/*儲存5門功課成績*/floatave;/*儲存平均分*/intyear;/*入年*/}stu[N];intnum;voidpanduani(int);/*經(jīng)過i值,判定信息要查找信息是否存在*/voidoutput();/*輸出學生成績函數(shù)(公共函數(shù))*/voidinit();/*系統(tǒng)初始化函數(shù)*/voidnewfile();/*建立新數(shù)據(jù)文件*/voidread1();/*從數(shù)據(jù)文件中讀取數(shù)據(jù)*/voidweihu();/*維護界面函數(shù)*/voidnew1();/*新增一個學生成績函數(shù)*/voidxiugai();/*修改學生成績*/voidxgcj(int);/*修改成績*/voiddelete1();/*刪除學生信息函數(shù)*/voidtongji();/*統(tǒng)計界面函數(shù)*/voidtongji1();/*計算每個學生平均分*/voidtongji2();/*計算每門課程平均分*/voidpaixu1();/*排序函數(shù)*/voidpaino();/*按學號排序*/voidpaiave();/*按平均分排序*/voidpaidkcj();/*按單科成績排序*/voidchange(int,int);/*交換結(jié)構(gòu)體數(shù)組中兩個統(tǒng)計*/voidoutputx(int);/*選擇輸出單科成績*/voidfind1();/*查找界面函數(shù)*/intfind(charsno[]);/*按學號查找*/intfindname(charcname[]);/*按姓名查找*/voidfindyear(intcyear);/*按入年查找*/voidsave();/*保留文件*/voidstop();/*停頓函數(shù)*/voidstop()/*停頓函數(shù)(公共函數(shù))*/{printf("PressAnyKeyToContinue...\n");getchar();}voidoutput()/*輸出學生成績函數(shù)(公共函數(shù))*/{inti,j;printf("===================================================================\n");printf("學號姓名班級專業(yè)入年C語言高數(shù)大物電路模電\n");printf("===================================================================\n");for(i=0;i<num;i++){printf("%s%s%s%s%d",stu[i].no,stu[i].name,stu[i].grade,stu[i].pro,stu[i].year);for(j=0;j<5;j++)printf("%.1f",stu[i].score[j]);printf("\n");}stop();}voidinit()/*系統(tǒng)初始化函數(shù)*/{if(access("stu.dat",0))/*判定文件是否存在*/newfile();/*若不存在,新建數(shù)據(jù)文件*/elseread1();/*若存在,讀取數(shù)據(jù)*/}voidnewfile()/*建立新數(shù)據(jù)文件*/{inti;FILE*fp;if((fp=fopen("stu.dat","wb"))==NULL)/*創(chuàng)建二進制文件*/{printf("創(chuàng)建文件失敗,請重新運行程序.\n");/*顯示"創(chuàng)建文件失敗,請重新運行程序"*/exit(0);/*終止程序*/}printf("首次運行,進行數(shù)據(jù)初始化...\n");/*顯示"首次運行,進行數(shù)據(jù)初始化..."*/stop();printf("請輸入學生人數(shù):");/*顯示"請輸入學生人數(shù):"*/scanf("%d",&num);for(i=0;i<num;i++){printf("請輸入第%d個學生學號:",i+1);/*顯示"請輸入第i+1個學生學號:"*/getchar();/*吃回車*/gets(stu[i].no);printf("姓名:");/*顯示"姓名:"*/gets(stu[i].name);printf("班級:");/*顯示"班級:"*/gets(stu[i].grade);printf("專業(yè):");/*顯示"專業(yè):"*/gets(stu[i].pro);printf("入年n:");/*顯示"入年"*/scanf("%d",&stu[i].year);printf("C語言成績:");/*顯示"C語言成績"*/scanf("%f",&stu[i].score[0]);printf("高數(shù)成績:");/*顯示"高數(shù)成績"*/scanf("%f",&stu[i].score[1]);printf("大物成績:");/*顯示"大物成績"*/scanf("%f",&stu[i].score[2]);printf("電路成績:");/*顯示"電路成績"*/scanf("%f",&stu[i].score[3]);printf("模電成績:");/*顯示"模電成績"*/scanf("%f",&stu[i].score[4]);fwrite(&stu[i],1,sizeof(structstudent),fp);/*把第i+1名學生成績寫入文件*/}fclose(fp);printf("========================\n");printf("剛才輸入%d個數(shù)據(jù)為:\n",num);/*顯示"剛才輸入num個數(shù)據(jù)為:"*/printf("========================\n\n");output();}voidread1()/*從數(shù)據(jù)文件中讀取數(shù)據(jù)*/{FILE*fp;num=0;/*num為數(shù)據(jù)文件中實際存放學生人數(shù)*/fp=fopen("stu.dat","r");if(fp==NULL)/*數(shù)據(jù)文件不存在*/{printf("文件打開失敗!重新運行程序\n");/*顯示"文件打開失敗!重新運行程序"*/exit(0);}while(!feof(fp))/*文件結(jié)束檢測"*/{fread(&stu[num],1,sizeof(structstudent),fp);num++;}num--;fclose(fp);printf("\t\t\t=======================================\n");printf("\t\t\t現(xiàn)有%d個學生成績:\n",num);/*顯示"現(xiàn)有NUM個學生成績:"*/printf("\t\t\t=======================================\n\n");output();}voidweihu()/*維護界面函數(shù)*/{charc1;while(1){printf("\n\n\n\t\t\t************************\n");printf("\t\t\t*維護*\n");printf("\t\t\t*1.新增*\n");/*新增*/printf("\t\t\t*2.刪除*\n");/*刪除(按學號)*/printf("\t\t\t*3.修改*\n");/*修改*/printf("\t\t\t*9.返回*\n");/*返回*/printf("\t\t\t************************\n");printf("\t\t\t請選擇:\n");/*請選擇:*/c1=getchar();getchar();if(c1=='9')break;switch(c1){case'1':new1();break;case'2':delete1();case'3':xiugai();break;default:printf("選擇有誤,請重選!\n");/*"選擇有誤,請重選!"*/}}}voidnew1()/*新增一個學生成績函數(shù)*/{printf("請輸入學號:");/*顯示"請輸入學號:"*/gets(stu[num].no);printf("姓名:");/*顯示"姓名:"*/gets(stu[num].name);printf("班級:");/*顯示"班級:"*/gets(stu[num].grade);printf("專業(yè):");/*顯示"專業(yè):"*/gets(stu[num].pro);printf("入年:");/*顯示"入年"*/scanf("%d",&stu[num].year);printf("C語言成績:");/*顯示"C語言成績"*/scanf("%f",&stu[num].score[0]);printf("高數(shù)成績:");/*顯示"高數(shù)成績"*/scanf("%f",&stu[num].score[1]);printf("大物成績:");/*顯示"大物成績"*/scanf("%f",&stu[num].score[2]);printf("電路成績:");/*顯示"電路成績"*/scanf("%f",&stu[num].score[3]);printf("模電成績:");/*顯示"模電成績"*/scanf("%f",&stu[num].score[4]);num++;printf("\n======================================\n");printf("現(xiàn)有%d個學生成績:\n",num);/*顯示"現(xiàn)有NUM個學生成績:"*/printf("======================================\n\n");output();}voidxiugai()/*修改學生成績*/{charxg[11];inti;printf("\n請輸入要修改學生學號:\n\n");gets(xg);for(i=0;i<num;i++)if(strcmp(stu[i].no,xg)==0)break;if(i==num){printf("\n數(shù)據(jù)文件無該生信息!\n\n請重新輸入學號.\n\n");stop();return;}xgcj(i);}voidxgcj(intx)/*修改成績*/{charxueke[5][10]={"C語言","高數(shù)","物理","電路","模電"};char(*p)[10],c;intj,k;p=xueke;for(;;){printf("\n");printf("\t\t\t************************************\n\n");printf("\t\t\t成績\n");printf("\t\t\t1.C語言\n");/*C語言*/printf("\t\t\t2.高數(shù)\n");/*高數(shù)*/printf("\t\t\t3.物理\n");/*大學物理*/printf("\t\t\t4.電路\n");/*電路*/printf("\t\t\t5.模電\n");/*模電*/printf("\t\t\t9.返回\n\n");/*返回上級*/printf("\t\t\t************************************\n\n");printf("\t請選擇要修改成績(按.5.9):\n");c=getchar();getchar();if(c=='9')break;elseif(c>='1'&&c<='5'){k=c-49;printf("\n請輸入%s成績:\n",p+k);scanf("%f",&stu[x].score[k]);printf("\n修息為:\n");printf("學號姓名班級專業(yè)入年C語言高數(shù)大物電路模電\n");printf("===================================================================\n");printf("%s%s%s%s%d",stu[x].no,stu[x].name,stu[x].grade,stu[x].pro,stu[x].year);for(j=0;j<5;j++)printf("%.1f",stu[x].score[j]);printf("\n");}elseprintf("\n選擇有誤,請重選!\n\n");stop();}}intfind(charsno[])/*按學號查找*/{inti;for(i=0;i<num;i++)if(strcmp(stu[i].no,sno)==0)/*判定兩個字符串相等*/returni;/*查找成功*/return-1;/*查找失敗*/}voiddelete1()/*刪除學生信息函數(shù)*/{charcno[11];inti,j;printf("請輸入要刪除學生學號:");/*"請輸入要刪除學生學號"*/gets(cno);i=find(cno);if(i!=-1){for(j=i;j<num;j++)stu[j]=stu[j+1];num--;printf("現(xiàn)有%d個學生成績:\n",num);/*顯示"現(xiàn)有NUM個學生成績:"*/output();}else{printf("請輸入正確學號.\n");stop();}}voidtongji()/*統(tǒng)計界面函數(shù)*/{inti;charc2;while(1){printf("\n\n\n\t\t\t*******************************\n");printf("\t\t\t*統(tǒng)計*\n");printf("\t\t\t*1.學生平均分*\n");/*計算學生平均分*/printf("\t\t\t*2.課程平均分*\n");/*計算每門課程平均分*/printf("\t\t\t*9.返回*\n");/*返回*/printf("\t\t\t*******************************\n");printf("\t\t\t請選擇:\n");/*請選擇:*/c2=getchar();getchar();if(c2=='9')break;switch(c2){case'1':tongji1();printf("\n\n學生平均分為:\n");printf("===========================================\n");printf("學號姓名入年平均分\n");printf("===========================================\n");for(i=0;i<num;i++)printf("%s%s%d%.2f\n",stu[i].no,stu[i].name,stu[i].year,stu[i].ave);stop();break;case'2':tongji2();break;default:printf("選擇有誤,請重選\n");/*"選擇有誤,請重選!"*/}}}voidtongji1()/*計算每個學生平均分*/{inti,j;for(i=0;i<num;i++){stu[i].ave=0;for(j=0;j<5;j++)stu[i].ave+=stu[i].score[j];stu[i].ave=stu[i].ave/5;}}voidtongji2()/*計算每門課程平均分*/{inti,j;floatsum;floatavec[5];/*儲存每門課平均分*/for(j=0;j<5;j++){sum=0;for(i=0;i<num;i++)sum+=stu[i].score[j];avec[j]=sum/num;}printf("\n\n各科平均分:\n");/*"各科平均分:"*/printf("===================================\n");printf("C語言高數(shù)大物電路模電\n");printf("===================================\n");for(i=0;i<5;i++)printf("%-7.1f",avec[i]);printf("\n");stop();}voidpaixu1()/*排序界面*/{charc3;for(;;){printf("\n\n\n");printf("\t\t\t***********************************\n");printf("\t\t\t*排序*\n");printf("\t\t\t*1.按學號排序*\n");/*按學號排序*/printf("\t\t\t*2.按平均分排序*\n");/*按平均分排序*/printf("\t\t\t*3.按單科成績排序*\n");/*按單科成績排序*/printf("\t\t\t*9.返回*\n");/*返回*/printf("\t\t\t***********************************\n\n");printf("\t請選擇:(按):\n");/*請選擇:*/c3=getchar();getchar();if(c3=='9')break;switch(c3){case'1':paino();break;case'2':paiave();break;case'3':paidkcj();break;default:printf("\n選擇有誤,請重選!\n\n");/*選擇有誤,請重選!*/stop();}}}voidpaino()/*按學號排序*/{/*按學號從低到高冒泡法排序*/inti,j;for(i=0;i<num;i++)for(j=0;j<num-1-i;j++)if(strcmp(stu[j].no,stu[j+1].no)>0)change(j,j+1);printf("\n排序后為:\n");/*"排序后為:"*/output();}voidpaiave()/*按平均分排序*/{/*按平均分從高到低冒泡法排序*/inti,j;tongji1();/*計算平均成績*/for(i=0;i<num;i++)for(j=0;j<num-i-1;j++)if(stu[j].ave<stu[j+1].ave)change(j,j+1);printf("\n\t排序后為:\n");/*"排序后為:"*/printf("\t===============================================\n");printf("\t學號姓名入年平均分排名\n");printf("\t===============================================\n");for(i=0;i<num;i++)printf("\t%s%s%d%.2f%4d\n",stu[i].no,stu[i].name,stu[i].year,stu[i].ave,i+1);stop();}voidpaidkcj()/*按單科成績排序*/{charc;inti,j,k;while(1){printf("\n");printf("\t\t\t************************************\n\n");printf("\t\t\t單科成績\n");printf("\t\t\t1.C語言\n");/*C語言*/printf("\t\t\t2.高數(shù)\n");/*高數(shù)*/printf("\t\t\t3.物理\n");/*大學物理*/printf("\t\t\t4.電路\n");/*電路*/printf("\t\t\t5.模電\n");/*模電*/printf("\t\t\t9.返回\n\n");/*返回上級*/printf("\t\t\t************************************\n\n");printf("\t請選擇:(按.5.9):\n");c=getchar();getchar();if(c=='9')break;elseif(c>='1'&&c<='5'){k=c-49;for(i=0;i<num;i++)for(j=0;j<num-1-i;j++)if(stu[j].score[k]<stu[j+1].score[k])change(j,j+1);outputx(k);}elseprintf("\n選擇有誤,請重選!\n\n");stop();}}voidchange(inti,intj)/*交換結(jié)構(gòu)體數(shù)組中兩個統(tǒng)計*/{structstudenttemp;temp=stu[i];stu[i]=stu[j];stu[j]=temp;}voidoutputx(intk)/*選擇輸出單科成績*/{charxueke[5][10]={"C語言","高數(shù)","物理","電路","模電"};char(*p)[10];/*定義一個指向包含10個字符型元素一維數(shù)組指針變量*/inti;p=xueke;printf("\n\t排序后為:\n");printf("\t===============================================\n");printf("\t學號姓名入年%s排名\n",p+k);printf("\t===============================================\n");for(i=0;i<num;i++)printf("\t%-11s%-10s%-11d%-6.1f%5d\n",stu[i].no,stu[i].name,stu[i].year,stu[i].score[k],i+1);}voidfind1()/*查找界面函數(shù)*/{charc4;charcno[11],cname[10];inti,cyear;while(1){printf("\t\t\t*************************************\n");printf("\t\t\t*查找*\n");printf("\t\t\t*1.按學號查找*\n");/*按學號查找*/printf("\t\t\t*2.按姓名查找*\n");/*按姓名查找*/printf("\t\t\t*3.按入年查找*\n");/*按入年查找*/printf("\t\t\t*9.返回*\n");/*返回*/printf("\t\t\t*************************************\n");printf("\t\t\t請選擇:\n");/*請選擇:*/c4=getchar();getchar();if(c4==57)break;switch(c4){case'1':printf("輸入學號:\n");/*"輸入學號:"*/gets(cno);i=find(cno);panduani(i);break;case'2':printf("輸入姓名:\n");/*"輸入姓名:"*/gets(cname);i=findname(cname);panduani(i);break;case'3':printf("輸入入年:\n");/*"輸入入年"*/scanf("%d",&cyear);findyear(cyear);stop();break;default:printf("選擇有誤,請重選!\n");/*"選擇有誤,請重選!"*/}}}intfindname(charcname[])/*按姓名查找*/{inti;for(i=0;i<num;i++)if(strcmp(stu[i].name,cname)==0)/*判定兩個字符串相等*/returni;/*查找成功*/return-1;/*查找失敗*/}voidfindyear(intcyear){inti,j,flag=0;for(i=0;i<num;i++)if(stu[i].year==cyear){flag=1;break;}if(flag==0){printf("要查找學生不存在\n");stop();}else{printf("查找到學生信息為:\n");/*"查找到學生信息為:"*/printf("學號姓名班級專業(yè)入年C語言高數(shù)大物電路模電\n");printf("===================================================================\n");for(i=0;i<num;i++){if(stu[i].year==cyear)/*判定兩個數(shù)值相等*/{printf("%s%s%s%s%d",stu[i].no,stu[i].name,stu[i].grade,stu[i].pro,stu[i].year);for(j=0;j<5;j++)printf("%.1f",stu[i].score[j]);printf("\n");}}}}voidpanduani(inti)/*經(jīng)過i值,判定信息要查找信息是否存在*/{intj;if(i==-1){printf("要查找學生不存在\n");/*要查找學生不存在*/stop();}else{printf("查找到學生信息為:\n");/*"查找到學生信息為:"*/printf("學號姓名班級專業(yè)入年C語言高數(shù)大物電路模電\n");printf("========================

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論