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

下載本文檔

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

文檔簡介

}}#iiiclude<stdio.h>#iiiclude<stnng.h>/*strcmp函數(shù)原型包含*/#defiiieN100/*定義最大學(xué)生人數(shù)為100*/stiuctstudent/*學(xué)生結(jié)構(gòu)體定義*/charno[ll];/*學(xué)號,10位*7charname[10];/*姓名,3個漢字*7floatscoie[5];/*儲存5門功課的成績*/floatave;/*儲存平均分*/nityear;/*入學(xué)年*/}stu[N];intnum;mtpaiiduaiii(int);voidoutput();/*通過1的值,判斷信息要查找的信息是否存在*//*輸出學(xué)生成績函數(shù)(公共函數(shù))*/voidiiiit();/*系統(tǒng)初始化函數(shù)*/voidne\\^lle();/*建立新的數(shù)據(jù)文件*/voidread1();voidweiliu();voidnewl();voidxiugai();/*從數(shù)據(jù)文件中讀取數(shù)據(jù)*//*維護(hù)界面函數(shù)*//*新增一個學(xué)生成績函數(shù)*//*修改學(xué)生成績*/intxgcj(int);voiddeleteIQ;voidtongji();/*修改成績*//*刪除學(xué)生信息函數(shù)*//*統(tǒng)計(jì)界面函數(shù)*/voidtongjilQ;voidtongji2Q;voidpaixulQ;voidpamo();/*計(jì)算每個學(xué)生平均分*//*計(jì)算每門課程的平均分*//*排序函數(shù)*//*按學(xué)號排序*/voidpaiaveQ;/*按平均分排序*/voidpaidkcjQ;voidchange(int,int);voidoutputx(int);voidfindIQ;/*按單科成績排序*//*交換結(jié)構(gòu)體數(shù)組中的兩個記錄*//*選擇輸出單科成績徐修樓編/*查找界面函數(shù)*/mtfind(charsno[]);/*按學(xué)號查找*/intfindname(chai-cname[]);/*按姓名查找*/voidfiiidyear(intcyear);/*按入學(xué)年查找*7voidsaveQ;/*保存文件*/voidstop();/*停頓函數(shù)*/voidstop()/*停頓函數(shù)(公共函數(shù))*/{printf(nPressAiivKeyToContmue...\nn);getchQ;}}voidoutput()/*輸出學(xué)生成績函數(shù)(公共函數(shù))*/intij;pnntf(n=========—======—==========—=========,nn);printf(nXueHaoXingMingRuXueNianCGaoShuDaWuDiaiiLuMoDian'iT);pnntf(n=========—======—==========—=========,nn);fbr(i=O:i<num;i++){priiitf(H%-lls%-1Os%-11d*\stu[1].no,stu[i].name?stu[i].yeai);fbr(j=O;j<5j++)printf(H%-7.1f\sni[i].score[j]);pnntfW);}stop();}voiduut()/*系統(tǒng)初始化函數(shù)*/{if(access(Hstu.datH,O))/*判斷文件是否存在*/newfileQ;/*若不存在,新建數(shù)據(jù)文件*/elsereadIQ;/*若存在,讀取數(shù)據(jù)*/}voidne\vfile()/*建立新的數(shù)據(jù)文件*/{iiiti;FILE*fp;if(?=fbpenCstu?d於QvbJ)=NULL)嚴(yán)創(chuàng)建二進(jìn)制文件*/{_priiitf(HChuangJianShiBai!QiiigChongXmYiinXiiigChengXu.\iiH);/*顯示"創(chuàng)建文件失敗,請重新運(yùn)行程序”exit(O);/*終止程序*/}printf(nChuCiYiinXing,JmXingShuJuChuShiHua...\nn);/*顯示“初次運(yùn)行,進(jìn)行數(shù)據(jù)初始化…”*/stop();clrscrQ;pnntf("QrngShuRuXueShengRenShu:”);/*顯示“請輸入學(xué)生人數(shù):”*/scaiifC^d^&num);fbr(i=O:i<num;i++){_priiitf(HQmgShuRuDi%dGeXueShengDeXueHao:Hj+l);/*顯示“請輸入第i+1個學(xué)生的學(xué)號*/getchar();/*吃回車*/gets(stu[i].no);prmtf(HXmgMmg:,r);/*顯示"姓名"*/}}gets(stu[i].name);prmtf("RuXueNiaii:");/*顯示“入學(xué)年”*/scanf(H%d,\&stu[i].year);pimtfC'C-YiiYanCheng顯示“C語言成績”*/scanf(H%f\&stu[i].score[0]);pimtf("GaoShuChengJi:");/*顯示'‘高數(shù)成績”*/scanf(H%f\&stu[i].sco代[1]);prmtf(HDaWuCheng顯示“人物成績”*/scanf(H%f\&stu[i].score[2]);printff'DianLuChengJi:");/*顯示"電路成績”*/scanf(H%f\&stu[i].sco代[3]);prmtf(HMoDiaiiCheng顯示“模電成績"*/scanf(H%f\&stu[i].sco代[4]);f\vrite(&sni[i]4,sizeof(sti-uctstudent).fp);/*把第i+1名學(xué)生成績寫入文件*/}fclose(fp);clrscrQ;printf(n=====================\n,r);printf(nGungCaiShuRuDe%dGeShuJu/*顯示“剛才輸入的num個數(shù)據(jù)為:*/printf(n=========—============\ii\n,r);outputQ;}voidread1()/*從數(shù)據(jù)文件中讀取數(shù)據(jù)*/{FILE*fp;num=0;/*num為數(shù)據(jù)文件中實(shí)際存儲的學(xué)生人數(shù)*/fp=fbpen(nstu.datM,HrH);if(fp==NULL)/*數(shù)據(jù)文件不存在*/{_prmtf(HWenJianDaKaiShiBai!ChongXmYunXmgChengXu\iiH);/*顯示“文件打開失??!重新運(yùn)行程序”*/exit(O);}while(!feof(fp)){fiead(&stu[num],l,siz亡obstructstudent),fp);num+-r;}num-;fclose(fp);pnntf(n=========—=============\nn);printf(nXiaiiYou%dGeXueShengDeChengJi:\iT,num);/*顯示“現(xiàn)有NUM個學(xué)生的成績「*/pnntf(n=========—=============\n\nn);outputQ;voidweihuQ嚴(yán)維護(hù)界面函數(shù)*/charcl;while(l){clrscrO;clrscrO;WeiHuXinZengWeiHuXinZengShanChuXiuGaiESC.FanHui*E);*\n”);/*新增*/*\n”);/*刪除(按學(xué)號)*//*修改*/*\nH);/*返回*7prmtf(Hprmtf(H\t\t\tQmgXuanZe:\nM);/*請選擇:*/cl=getchQ;if(cl==27)break;switch(cl){caseT:newl();break;case2:delete1();casexiugaiQ;break;default:priiitf(HXuanZenYouWu.QmgChongXuan!\iT);/*"選擇有誤,請重選!*/}}}voidnew1()/*新增一個學(xué)生成績函數(shù)*/{prmtf(HQmgShuRuXueHao,);/*顯示“請輸入學(xué)號"*/getchar();嚴(yán)吃回車*/gets(stu[num].no);prmtf("XmgMmg:");/*顯示"姓名:”*/gets(stu[num].name);prmtfC'RuXueNiaii:")y*顯示“入學(xué)年”*/scanf(H%d,\&stu[num].yeai);pnntf(”C-"】YanChengJi:”);/*顯示"C語言成績”*/scanf(H%f\&stu[num].score[OJ);prmtf(HGaoShuCheng顯示"高數(shù)成績”*/scanf(H%f\&stu[num].score[1]);prmtf(HDaWuChengJi:n);/*顯示“人物成績”*/scanf(H%f\&stu[num].score[2]);printff'DianLuChengJi:");/*顯示"電路成績"*/scanf(H%f\&stu[num].score[3]);prmtf(nMoDiaiiCheng顯示"模電成績”*/scanf(H%f\&stu[num].score[4]);num-H-;prmtf(H\ji==================—==\nH);prmtf(nXianYou%dGeXueShengDeCheng/*顯示“現(xiàn)有NUM個學(xué)生的成績「*/pimtf(H=====================\ii\nH);outputQ;}voidxiugaiQ/*修改學(xué)生成績*/{charxg[ll];inti;priiitf(H\iiQmgshuruvaoxiugaixueshengdexuehao:\n\iiH);gets(xg);fbr(i=O;i<num;i-H-)if(sticmp(sni[i].no,xg)=0)bieak;if(i==num){printf(H\iiShujuwenjianwugaishengxixi!\ji\nQingchongxmshu111xuehao.^u\iin);stopQ;return;}X旳(1);}intxgcj(intx)/*修改成績*7{chai-xueke[5][10]={HCyuyan,7,GaoshuTWu0「Duu山TJModmn”};chai(*p)[10],c;p=xueke;他(;;){clrscrO;pnntff\nj;prmtf(n\t\t\tChengJiE);prmtf(n\t\t\tl.CYuYan\n”);/*C語言*/prmtf(n\t\t\t2.GaoShu/*高數(shù)*/prmtf(n\t\t\t3.WuLi\ir);/*人學(xué)物理*/

DianLuMoDianEsc.FailHui\n”)DianLuMoDianEsc.FailHui\n”);/*電路*//*模電*/\n\iT);/*返回上級*/priiitf(n\tQingxuanzeyaoxiugaidechengji(press.5.Esc):\nM);c=getchQ;if(c==27)bieak;elseif(c>=*r&&c<=,5,)k=c-49;prmtf(n\iiQingshuru%schengji:\n役p+k);scanf(H%f\&stu[x].score[k]);pnntff'XnXiugaihougaixueshengxiiixiwei:\nn);prmtf(nXueHaoXiiigMiiigRuXueNianCGaoShuDaWuDiaiiLuMoDiaii\iin);prmtf(H===================—=================\nM);prmtf(,,%-lls%-10s%-lld,\stu[x].no,stu[x].naine,stu[x].yeai);for(j=Oj<5J++)printf(H%-7.1f\stu[x].score[j]);prmtf(H\nn);}elseprintf(H\iiXuanZenYouWu.QmgChongXuan!\u\iiH);stop();}}mtfind(charsno[])/*按學(xué)號查找*/{iiiti;fbr(i=O:i<num;i++)if(strcmp(stu[1].no,sno)=0)/*判斷兩個字符串相等*/returni;/*查找成功*/retuin-1;/*查找失敗*/}voiddelete10/*刪除學(xué)生信息函數(shù)*/{chaicno[ll];intij;piintf(nQiiigShuRuYaoShanChuDeXueShengXueHao:H);/*“請輸入要刪除的學(xué)生學(xué)號”*/gets(cno);i=find(cno);{for(j=ij<num;j++)stu[j]=stu[j+l];

num-;prmtf(HXianYou%dGeXueShengDeCheng/*顯示“現(xiàn)有NUM個學(xué)生的成績「*/outputQ;}else{piintfpqingshumzhengquedexuehao.\n”);stopO;}}voidtongji()嚴(yán)統(tǒng)計(jì)界面函數(shù)*/{iiiti;while(l){clrscrQ;TongJiXueShengPingJunFenKeChengPmgJunFenwhile(l){clrscrQ;TongJiXueShengPingJunFenKeChengPmgJunFenESC?FanHuipiintf(H\t\t\tQingXuaiiZe:\iiH);/*請選擇:*/c2=getch();“!”);/*ESC?FanHuipiintf(H\t\t\tQingXuaiiZe:\iiH);/*請選擇:*/c2=getch();if(c2==27)break;switch(c2)caseT:tongjilQ;printf(n\irjiXueShengPmgJunFenW^iW);pnntf(n==—======—==—=======—===\iin);piintf(nXueHaoXiiigMingRuXueNianPingJuiiFen\iiH);pnntf(n==—=====================\iin);fbr(i=O:i<num;i++)-10s%-11d%-10.2f\nM,stu[i].no,stu[i].naine,stu[i].year,stu[i].ave);stop();break;case2:tongji2();break;default:printf(nXuanZenYouWu.QuigChongXuan?\iiH);/*u選擇有誤,請重選!M*/}}}voidtongjilQ/*計(jì)算每個學(xué)生平均分*/

intij;fbr(i=O;i<num;i-H-){stu[i].ave=O;foi(j=0j<5j-H-)stu[i]?ave+=stu[i].score[j];stu[1].ave=stu[i]?ave/5;}}voidtongji20/*計(jì)算每門課程的平均分*/{intij;floatsum;floatavec[5];/*儲存每門課的平均分*/for(j=0;j<5j++){sum=O;fbr(i=O;i<num;i-H-)sum+=stu[i].scoiejj];avec[j]=sunVnuni;}pnntf(n\ii\iiGeKePmgJunFenWei:\nM);/*“各科平均分:”*/pnntf(n=========—=========='jim);printf(nCGaoShuDaWuDianLuMoDiaii\nM);pnntf(n=========—=========='jim);fbr(i=O;i<5;i++)prmtf(H%-7.If\avec[i]);stop();}voidpaixulQ{charc3;血(;;)嚴(yán)排序界面3VclrscrQ;PaiXuPaiXuAnXueHaoAnPmgJunFenAndankechengjiESC?FanHui*E);/*按學(xué)號排序*/*按平均分排序*/*\nH);/*按單科成績排序*/\n”);/*返回*/printf(H\t\QingXuanZe(press1.2.3.Esc):\nH)^*請選擇:*/c3=getch();if(c3=27)break;switch(c3){caseT:paino();bwak;case^^paiaveQ^reak;case'S^paidkcjQibreak:default:printf(n\iiXuanZenYouWikQmgChongXuan!\n\nn);/*選擇有誤,請重選!*/stopQ;}}}voidpamo()/*按學(xué)號排序*/{/*按學(xué)號從低到高冒泡法排序*/inti,j,k;fbr(i=O;i<num;i++)fbr(j=0:j<num-l-ij++)if(sticmp(sni[j].no,stu[j+l].no)>0)change(jj+l);printf(n,uiPaiXuHouWei:\jin);/*“排序后為「outputQ;}voidpaiaveQ/*按平均分排序*/{/*按平均分從高到低冒泡法排序*/mtij;stmctstudenttemp;tongjilQ;/*計(jì)算平均成績*/fbr(i=O;i<num;i++)血(j=0;j<num-i打卄)if(stu[j]?ave<stu[j+1].ave)change(j,j+l);printf(n\ii\tPaiXuHouWei^r1);/*“排序后為「*/printfCl\t=====—======================\nM);piintf^^XtXueHaoXmgMiiigRuXueNianAv亡Painiiiig'di");printfCl\t=====—======================\nM);fbr(i=O;i<num;i++)pnntf(n\t%-lls%」0s%?lld%?6.2f%4d\iT;stu[i]?no,stu[i].name,stu[i].year,stu[i].avej+l);stop();}voidpaidkcjQ/*按單科成績排序*/

charc;血(;;){clrscr();pnntff\nj;prmtf(n\t\t\tprmtf(n\t\t\tprmtf(ncharc;血(;;){clrscr();pnntff\nj;prmtf(n\t\t\tprmtf(n\t\t\tprmtf(n\t\t\tprmtf(n\t\t\tprmtf(n\t\t\tprmtf(n\t\t\tDanKeChengJiCYuYanGaoShuWuLiDianLuMoDianEsc.FailHui\n”);\n”);/*C語言*//*高數(shù)*/\n”);/*大學(xué)物理3V\n");/*電路*//*模電3*7\n\n”);/*返回上級*/priiitf(n\tQingxuanze(piess.5.Esc):\nn);c=getchQ;if(c==27)bieak;elseif(c>=T‘&&c<=,5,){k=c-49;fbr(i=O;i<num;i-H-)血(J=O;j1-i;j++)if(stu[j]?score[k]<stu[j+1].score[k])change(jj+l);outputx(k);}elsepruitf(n\iiXuanZenYouWu.QmgChongXuan!^nH);stopQ;}}voidchange(int/*交換結(jié)構(gòu)體數(shù)組中的兩個記錄*/{stmctstudenttemp;temp=stu[i];stu[i]=stu[j];stu[j]=temp;}voidoutputx(intk)/*選擇輸出單科成績*/{chaixueke[5][10]={MCyuyan^nGaoshu\HWuli^,,Dianlu^nModianM};chai(*p)[10];/*定義一個指向包含10個字符型元素的一維數(shù)組的指針變量*/iiiti;

p=xueke;pnntf(n\ii\tPaiXuHouWei:\iiH);pnntf(n\t==========================\nM);printf(n\tXueHaoXmgMiiigRuXueNian%sPaipnntf(n\t====—==========—==========\nM);fbr(i=O;i<num;i++)printf(n\t%-lls%-1Os%-11d%-6.1f%5d\n”,stu[i].no,stu[i].name,stu[1].year,stu[i]?score[k],i+1);}voidfiiidlO/*查找界面函數(shù)*/{clwc4;clwcno[ll],cname[10];mtij.cyear;while(l){clrscrQ;ChaZhaoAnXueHaoAnXmgMmgAnRuXueNiaiiESC?FanHui/*按學(xué)號查找*//*按姓名查找*/*\n”);/*按入學(xué)年查找*/*\nM);/*返回*/piintf(H\t\t\tQingXuanZe:\iiH);/*請選擇:*/c4=getch();if(c4==27)break;switch(c4)caseT:pnntf(HShuRuXueHao:\iin);/*“輸入學(xué)號「*/gets(cno);i=fiiid(cno);panduani(i);break;case2:pnntf(HShuRuXmg“輸入姓名:”*/gets(cname);i=fiiidiiame(cname);panduani(i);break;casepnntf(HShuRuRUXueNian:\nH);/*a輸入入學(xué)年”*/scanf(”%cT、&cyeaQ;fiiidyeai(cyeai);stop();break;default:printf(nXuanZenYouWu.QingChongXuan?\iiH);/*“選擇有誤,請重選!°*/}}}intfindname(chai-cname[])/*按姓名查找*/{iiiti;fbr(i=O:i<num;i++)if(strcmp(stu[i].name,cname)=O)/*判斷兩個字符串相等*/returni;/*查找成功*/return-1;/*查找失敗*/}voidfiiidyeai(intcyear){intij.flag=O;fbr(i=O;i<num;i++)if(stu[i].year=cyear){flag=l;break;}if(flag==O){priiitf(nYaoChaZhaoDeXueShengBuCunZai\iiH);stop();}else{printf(HChaZhaoDaoDeXueShengXinXiWei:\nM);/*“查找到的學(xué)生信息為:"*/printf(HXueHaoXmgMiiigRuXueNianCGaoShuDaWuDiaiiLuMoDian\nM);printf(H================—====================\n,r);fbr(i=O;i<num;i-H-){if(stu[i].year=cyear)嚴(yán)判斷兩個數(shù)值相等*/{pimtf(M%-lls%-1Os%-11cT,stu[i].no,stu[i].name.stu[i].yeai);for(j=0;j<5J++)printf(H%-7.1f\stu[i].score[j]);}}}}intpaiiduaiu

溫馨提示

  • 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

提交評論