C語言課程設(shè)計學(xué)生成績管理系統(tǒng)_第1頁
C語言課程設(shè)計學(xué)生成績管理系統(tǒng)_第2頁
C語言課程設(shè)計學(xué)生成績管理系統(tǒng)_第3頁
C語言課程設(shè)計學(xué)生成績管理系統(tǒng)_第4頁
C語言課程設(shè)計學(xué)生成績管理系統(tǒng)_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

年4月19日C語言課程設(shè)計學(xué)生成績管理系統(tǒng)文檔僅供參考,不當(dāng)之處,請聯(lián)系改正。#include<stdio.h>#include<string.h>/*strcmp函數(shù)原型包含*/#defineN100/*定義最大學(xué)生人數(shù)為100*/structstudent/*學(xué)生結(jié)構(gòu)體定義*/{charno[11];/*學(xué)號,10位*/charname[10];/*姓名,3個漢字*/floatscore[5];/*儲存5門功課的成績*/floatave;/*儲存平均分*/intyear;/*入年*/}stu[N];intnum;intpanduani(int);/*經(jīng)過i的值,判斷信息要查找的信息是否存在*/voidoutput();/*輸出學(xué)生成績函數(shù)(公共函數(shù))*/voidinit();/*系統(tǒng)初始化函數(shù)*/voidnewfile();/*建立新的數(shù)據(jù)文件*/voidread1();/*從數(shù)據(jù)文件中讀取數(shù)據(jù)*/voidweihu();/*維護(hù)界面函數(shù)*/voidnew1();/*新增一個學(xué)生成績函數(shù)*/voidxiugai();/*修改學(xué)生成績*/intxgcj(int);/*修改成績*/voiddelete1();/*刪除學(xué)生信息函數(shù)*/voidtongji();/*統(tǒng)計界面函數(shù)*/voidtongji1();/*計算每個學(xué)生平均分*/voidtongji2();/*計算每門課程的平均分*/voidpaixu1();/*排序函數(shù)*/voidpaino();/*按學(xué)號排序*/voidpaiave();/*按平均分排序*/voidpaidkcj();/*按單科成績排序*/voidchange(int,int);/*交換結(jié)構(gòu)體數(shù)組中的兩個記錄*/voidoutputx(int);/*選擇輸出單科成績徐修樓編*/voidfind1();/*查找界面函數(shù)*/intfind(charsno[]);/*按學(xué)號查找*/intfindname(charcname[]);/*按姓名查找*/voidfindyear(intcyear);/*按入年查找*/voidsave();/*保存文件*/voidstop();/*停頓函數(shù)*/voidstop()/*停頓函數(shù)(公共函數(shù))*/{printf("PressAnyKeyToContinue...\n");getch();}voidoutput()/*輸出學(xué)生成績函數(shù)(公共函數(shù))*/{inti,j;printf("===================================================================\n");printf("XueHaoXingMingRuXueNianCGaoShuDaWuDianLuMoDian\n");printf("===================================================================\n");for(i=0;i<num;i++){printf("%-11s%-10s%-11d",stu[i].no,stu[i].name,stu[i].year);for(j=0;j<5;j++)printf("%-7.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)立二進(jìn)制文件*/{printf("ChuangJianShiBai!QingChongXinYunXingChengXu.\n");/*顯示“創(chuàng)立文件失敗,請重新運行程序”*/exit(0);/*終止程序*/}printf("ChuCiYunXing,JinXingShuJuChuShiHua...\n");/*顯示“初次運行,進(jìn)行數(shù)據(jù)初始化...”*/stop();clrscr();printf("QingShuRuXueShengRenShu:");/*顯示“請輸入學(xué)生人數(shù):”*/scanf("%d",&num);for(i=0;i<num;i++){printf("QingShuRuDi%dGeXueShengDeXueHao:",i+1);/*顯示“請輸入第i+1個學(xué)生的學(xué)號:”*/getchar();/*吃回車*/gets(stu[i].no);printf("XingMing:");/*顯示“姓名:”*/gets(stu[i].name);printf("RuXueNian:");/*顯示“入年”*/scanf("%d",&stu[i].year);printf("C-YuYanChengJi:");/*顯示“C語言成績”*/scanf("%f",&stu[i].score[0]);printf("GaoShuChengJi:");/*顯示“高數(shù)成績”*/scanf("%f",&stu[i].score[1]);printf("DaWuChengJi:");/*顯示“大物成績”*/scanf("%f",&stu[i].score[2]);printf("DianLuChengJi:");/*顯示“電路成績”*/scanf("%f",&stu[i].score[3]);printf("MoDianChengJi:");/*顯示“模電成績”*/scanf("%f",&stu[i].score[4]);fwrite(&stu[i],1,sizeof(structstudent),fp);/*把第i+1名學(xué)生成績寫入文件*/}fclose(fp);clrscr();printf("======================================\n");printf("GungCaiShuRuDe%dGeShuJuWei:\n",num);/*顯示“剛才輸入的num個數(shù)據(jù)為:”*/printf("======================================\n\n");output();}voidread1()/*從數(shù)據(jù)文件中讀取數(shù)據(jù)*/{FILE*fp;num=0;/*num為數(shù)據(jù)文件中實際存儲的學(xué)生人數(shù)*/fp=fopen("stu.dat","r");if(fp==NULL)/*數(shù)據(jù)文件不存在*/{printf("WenJianDaKaiShiBai!ChongXinYunXingChengXu\n");/*顯示“文件打開失敗!重新運行程序”*/exit(0);}while(!feof(fp)){fread(&stu[num],1,sizeof(structstudent),fp);num++;}num--;fclose(fp);printf("=======================================\n");printf("XianYou%dGeXueShengDeChengJi:\n",num);/*顯示“現(xiàn)有NUM個學(xué)生的成績:”*/printf("=======================================\n\n");output();}voidweihu()/*維護(hù)界面函數(shù)*/{charc1;while(1){clrscr();printf("\n\n\n\t\t\t*****************************\n");printf("\t\t\t*WeiHu*\n");printf("\t\t\t*1.XinZeng*\n");/*新增*/printf("\t\t\t*2.ShanChu*\n");/*刪除(按學(xué)號)*/printf("\t\t\t*3.XiuGai*\n");/*修改*/printf("\t\t\t*ESC.FanHui*\n");/*返回*/printf("\t\t\t*****************************\n");printf("\t\t\tQingXuanZe:\n");/*請選擇:*/c1=getch();if(c1==27)break;switch(c1){case'1':new1();break;case'2':delete1();case'3':xiugai();break;default:printf("XuanZenYouWu,QingChongXuan!\n");/*“選擇有誤,請重選!”*/}}}voidnew1()/*新增一個學(xué)生成績函數(shù)*/{printf("QingShuRuXueHao:");/*顯示“請輸入學(xué)號:”*/getchar();/*吃回車*/gets(stu[num].no);printf("XingMing:");/*顯示“姓名:”*/gets(stu[num].name);printf("RuXueNian:");/*顯示“入年”*/scanf("%d",&stu[num].year);printf("C-YuYanChengJi:");/*顯示“C語言成績”*/scanf("%f",&stu[num].score[0]);printf("GaoShuChengJi:");/*顯示“高數(shù)成績”*/scanf("%f",&stu[num].score[1]);printf("DaWuChengJi:");/*顯示“大物成績”*/scanf("%f",&stu[num].score[2]);printf("DianLuChengJi:");/*顯示“電路成績”*/scanf("%f",&stu[num].score[3]);printf("MoDianChengJi:");/*顯示“模電成績”*/scanf("%f",&stu[num].score[4]);num++;printf("\n======================================\n");printf("XianYou%dGeXueShengDeChengJi:\n",num);/*顯示“現(xiàn)有NUM個學(xué)生的成績:”*/printf("======================================\n\n");output();}voidxiugai()/*修改學(xué)生成績*/{charxg[11];inti;printf("\nQingshuruyaoxiugaixueshengdexuehao:\n\n");gets(xg);for(i=0;i<num;i++)if(strcmp(stu[i].no,xg)==0)break;if(i==num){printf("\nShujuwenjianwugaishengxixi!\n\nQingchongxinshuruxuehao.\n\n");stop();return;}xgcj(i);}intxgcj(intx)/*修改成績*/{charxueke[5][10]={"Cyuyan","Gaoshu","Wuli","Dianlu","Modian"};char(*p)[10],c;intj,k;p=xueke;for(;;){clrscr();printf("\n");printf("\t\t\t************************************\n\n");printf("\t\t\tChengJi\n");printf("\t\t\t1.CYuYan\n");/*C語言*/printf("\t\t\t2.GaoShu\n");/*高數(shù)*/printf("\t\t\t3.WuLi\n");/*大學(xué)物理*/printf("\t\t\t4.DianLu\n");/*電路*/printf("\t\t\t5.MoDian\n");/*模電*/printf("\t\t\tEsc.FanHui\n\n");/*返回上級*/printf("\t\t\t************************************\n\n");printf("\tQingxuanzeyaoxiugaidechengji(press.5.Esc):\n");c=getch();if(c==27)break;elseif(c>='1'&&c<='5'){k=c-49;printf("\nQingshuru%schengji:\n",p+k);scanf("%f",&stu[x].score[k]);printf("\nXiugaihougaixueshengxinxiwei:\n");printf("XueHaoXingMingRuXueNianCGaoShuDaWuDianLuMoDian\n");printf("===================================================================\n");printf("%-11s%-10s%-11d",stu[x].no,stu[x].name,stu[x].year);for(j=0;j<5;j++)printf("%-7.1f",stu[x].score[j]);printf("\n");}elseprintf("\nXuanZenYouWu,QingChongXuan!\n\n");stop();}}intfind(charsno[])/*按學(xué)號查找*/{inti;for(i=0;i<num;i++)if(strcmp(stu[i].no,sno)==0)/*判斷兩個字符串相等*/returni;/*查找成功*/return-1;/*查找失敗*/}voiddelete1()/*刪除學(xué)生信息函數(shù)*/{charcno[11];inti,j;printf("QingShuRuYaoShanChuDeXueShengXueHao:");/*“請輸入要刪除的學(xué)生學(xué)號”*/gets(cno);i=find(cno);if(i!=-1){for(j=i;j<num;j++)stu[j]=stu[j+1];num--;printf("XianYou%dGeXueShengDeChengJi:\n",num);/*顯示“現(xiàn)有NUM個學(xué)生的成績:”*/output();}else{printf("qingshuruzhengquedexuehao.\n");stop();}}voidtongji()/*統(tǒng)計界面函數(shù)*/{inti;charc2;while(1){clrscr();printf("\n\n\n\t\t\t************************************\n");printf("\t\t\t*TongJi*\n");printf("\t\t\t*1.XueShengPingJunFen*\n");/*計算學(xué)生平均分*/printf("\t\t\t*2.KeChengPingJunFen*\n");/*計算每門課程平均分*/printf("\t\t\t*ESC.FanHui*\n");/*返回*/printf("\t\t\t************************************\n");printf("\t\t\tQingXuanZe:\n");/*請選擇:*/c2=getch();if(c2==27)break;switch(c2){case'1':tongji1();printf("\n\nXueShengPingJunFenWei:\n");printf("===========================================\n");printf("XueHaoXingMingRuXueNianPingJunFen\n");printf("===========================================\n");for(i=0;i<num;i++)printf("%-11s%-10s%-11d%-10.2f\n",stu[i].no,stu[i].name,stu[i].year,stu[i].ave);stop();break;case'2':tongji2();break;default:printf("XuanZenYouWu,QingChongXuan!\n");/*“選擇有誤,請重選!”*/}}}voidtongji1()/*計算每個學(xué)生平均分*/{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\nGeKePingJunFenWei:\n");/*“各科平均分:”*/printf("===================================\n");printf("CGaoShuDaWuDianLuMoDian\n");printf("===================================\n");for(i=0;i<5;i++)printf("%-7.1f",avec[i]);printf("\n");stop();}voidpaixu1()/*排序界面*/{charc3;for(;;){clrscr();printf("\n\n\n");printf("\t\t\t*************************************\n");printf("\t\t\t*PaiXu*\n");printf("\t\t\t*1.AnXueHao*\n");/*按學(xué)號排序*/printf("\t\t\t*2.AnPingJunFen*\n");/*按平均分排序*/printf("\t\t\t*3.Andankechengji*\n");/*按單科成績排序*/printf("\t\t\t*ESC.FanHui*\n");/*返回*/printf("\t\t\t*************************************\n\n");printf("\t\QingXuanZe(press1.2.3.Esc):\n");/*請選擇:*/c3=getch();if(c3==27)break;switch(c3){case'1':paino();break;case'2':paiave();break;case'3':paidkcj();break;default:printf("\nXuanZenYouWu,QingChongXuan!\n\n");/*選擇有誤,請重選!*/stop();}}}voidpaino()/*按學(xué)號排序*/{/*按學(xué)號從低到高冒泡法排序*/inti,j,k;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("\nPaiXuHouWei:\n");/*“排序后為:”*/output();}voidpaiave()/*按平均分排序*/{/*按平均分從高到低冒泡法排序*/inti,j;structstudenttemp;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\tPaiXuHouWei:\n");/*“排序后為:”*/printf("\t===============================================\n");printf("\tXueHaoXingMingRuXueNianAvePaiming\n");printf("\t===============================================\n");for(i=0;i<num;i++)printf("\t%-11s%-10s%-11d%-6.2f%4d\n",stu[i].no,stu[i].name,stu[i].year,stu[i].ave,i+1);stop();}voidpaidkcj()/*按單科成績排序*/{charc;inti,j,k;for(;;){clrscr();printf("\n");printf("\t\t\t************************************\n\n");printf("\t\t\tDanKeChengJi\n");printf("\t\t\t1.CYuYan\n");/*C語言*/printf("\t\t\t2.GaoShu\n");/*高數(shù)*/printf("\t\t\t3.WuLi\n");/*大學(xué)物理*/printf("\t\t\t4.DianLu\n");/*電路*/printf("\t\t\t5.MoDian\n");/*模電*/printf("\t\t\tEsc.FanHui\n\n");/*返回上級*/printf("\t\t\t************************************\n\n");printf("\tQingxuanze(press.5.Esc):\n");c=getch();if(c==27)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("\nXuanZenYouWu,QingChongXuan!\n\n");stop();}}voidchange(inti,intj)/*交換結(jié)構(gòu)體數(shù)組中的兩個記錄*/{structstudenttemp;temp=stu[i];stu[i]=stu[j];stu[j]=temp;}voidoutputx(intk)/*選擇輸出單科成績*/{charxueke[5][10]={"Cyuyan","Gaoshu","Wuli","Dianlu","Modian"};char(*p)[10];/*定義一個指向包含10個字符型元素的一維數(shù)組的指針變量*/inti;p=xueke;printf("\n\tPaiXuHouWei:\n");printf("\t===============================================\n");printf("\tXueHaoXingMingRuXueNian%sPaiMing\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,j,cyear;while(1){clrscr();printf("\t\t\t************************************\n");printf("\t\t\t*ChaZhao*\n");printf("\t\t\t*1.AnXueHao*\n");/*按學(xué)號查找*/printf("\t\t\t*2.AnXingMing*\n");/*按姓名查找*/printf("\t\t\t*3.AnRuXueNian*\n");/*按入年查找*/printf("\t\t\t*ESC.FanHui*\n");/*返回*/printf("\t\t\t************************************\n");printf("\t\t\tQingXuanZe:\n");/*請選擇:*/c4=getch();if(c4==27)break;switch(c4){case'1':printf("ShuRuXueHao:\n");/*“輸入學(xué)號:”*/gets(cno);i=find(cno);panduani(i);break;case'2':printf("ShuRuXingMing:\n");/*“輸入姓名:”*/gets(cname);i=findname(cname);panduani(i);break;case'3':printf("ShuRuRUXueNian:\n");/*“輸入入年”*/scanf("%d",&cyear);findyear(cyear);stop();break;default:printf("XuanZenYouWu,QingChongXuan!\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("YaoChaZhaoDeXueShengBuCunZai\n");stop();}else{printf("ChaZhaoDaoDeXueShengXinXiWei:\n");/*“查找到的學(xué)生信息為:”*/printf("XueHaoXingMingRuXueNianCGaoShuDaWuDianLuMoDian\n");printf("===================================================================\n");for(i=0;i<num;i++){if(stu[i].year==cyear)/*判斷兩個數(shù)值相等*/{printf("%-11s%-10s%-11d",stu[i].no,stu[i].name,stu[i].year);for(j=0;j<5;j++)printf("%-7.1f",stu[i].score[j]);printf("\n");}}}}intpanduani(inti)/*經(jīng)過i的值,判斷信息要查找的信息是否存在*/{intj;if(i==-1)

溫馨提示

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

評論

0/150

提交評論