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頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

#include<>#include<>#include<>#include<>/*strcmp函數(shù)原型包含*/#defineN100/*定義最大學(xué)生人數(shù)為100*/structstudent /*學(xué)生結(jié)構(gòu)體定義*/精品文檔放心下載{charno[11]; /*學(xué)號,10位*/charname[10];/*姓名,3個漢字*/謝謝閱讀chargrade[10];/*班級*/charpro[20];/*專業(yè)*/floatscore[5];/*儲存5門功課的成績*/感謝閱讀floatave;/*儲存平均分*/intyear;/*入學(xué)年*/}stu[N];intnum;voidpanduani(int);

/*通過i的值,判斷信息要查找的信息是否存在*/voidoutput();voidinit();voidnewfile();voidread1();voidweihu();voidnew1();voidxiugai();voidxgcj(int);voiddelete1();voidtongji();voidtongji1();

/*輸出學(xué)生成績函數(shù)(公共函數(shù))*//*系統(tǒng)初始化函數(shù)*//*建立新的數(shù)據(jù)文件*//*從數(shù)據(jù)文件中讀取數(shù)據(jù)*//*維護界面函數(shù)*//*新增一個學(xué)生成績函數(shù)*//*修改學(xué)生成績*//*修改成績*//*刪除學(xué)生信息函數(shù)*//*統(tǒng)計界面函數(shù)*//*計算每個學(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); /*按入學(xué)年查找*/感謝閱讀voidsave(); /*保存文件*/voidstop(); /*停頓函數(shù)*/voidstop(){

/*停頓函數(shù)(公共函數(shù))*/printf("PressAnyKeyToContinue...\n");精品文檔放心下載getchar();}voidoutput() /*輸出學(xué)生成績函數(shù)(公共函數(shù))*/精品文檔放心下載{inti,j;printf("===================================================精品文檔放心下載================\n");printf("學(xué)號 姓名 班級 專業(yè) 入學(xué)年 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("",0)) /*判斷文件是否存在*/感謝閱讀newfile(); /*若不存在,新建數(shù)據(jù)文件*/感謝閱讀elseread1(); /*若存在,讀取數(shù)據(jù)*/}voidnewfile() /*建立新的數(shù)據(jù)文件*/精品文檔放心下載{inti;FILE*fp;if((fp=fopen("","wb"))==NULL)/*創(chuàng)建二進制文件*/謝謝閱讀{printf("創(chuàng)建文件失敗,請重新運行程序.\n");/*顯示"創(chuàng)建文件失敗,請重新運行程序"*/感謝閱讀exit(0); /*終止程序*/}printf("初次運行,進行數(shù)據(jù)初始化...\n");/*顯示"初次運行,進行數(shù)據(jù)初始化..."*/感謝閱讀stop();printf("請輸入學(xué)生人數(shù):");/*顯示"請輸入學(xué)生人數(shù):"*/感謝閱讀scanf("%d",&num);for(i=0;i<num;i++){printf("請輸入第%d個學(xué)生的學(xué)號:",i+1);/*顯示"請輸入第i+1個學(xué)生的學(xué)號:"*/精品文檔放心下載getchar(); /*吃回車*/gets(stu[i].no);printf("姓名:");/*顯示"姓名:"*/謝謝閱讀gets(stu[i].name);printf("班級:");/*顯示"班級:"*/謝謝閱讀gets(stu[i].grade);printf("專業(yè):");/*顯示"專業(yè):"*/精品文檔放心下載gets(stu[i].pro);printf("入學(xué)年n:");/*顯示"入學(xué)年"*/感謝閱讀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名學(xué)生成績寫入文件*/謝謝閱讀}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ù)文件中實際存儲的學(xué)生人數(shù)*/感謝閱讀fp=fopen("","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個學(xué)生的成績:\n",num);/*顯示"現(xiàn)有NUM個學(xué)生的成績:"*/感謝閱讀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");/*刪除(按學(xué)號)*/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()/*新增一個學(xué)生成績函數(shù)*/謝謝閱讀{printf("請輸入學(xué)號:");/*顯示"請輸入學(xué)號:"*/謝謝閱讀gets(stu[num].no);printf("姓名:");/*顯示"姓名:"*/精品文檔放心下載gets(stu[num].name);printf("班級:");/*顯示"班級:"*/感謝閱讀gets(stu[num].grade);printf("專業(yè):");/*顯示"專業(yè):"*/精品文檔放心下載gets(stu[num].pro);printf("入學(xué)年:");/*顯示"入學(xué)年"*/謝謝閱讀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個學(xué)生的成績:\n",num);/*顯示"現(xiàn)有NUM個學(xué)生的成績:"*/精品文檔放心下載printf("======================================\n\n");感謝閱讀output();}voidxiugai() /*修改學(xué)生成績*/{charxg[11];inti;printf("\n請輸入要修改學(xué)生的學(xué)號:\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請重新輸入學(xué)謝謝閱讀號.\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\t 語言 \n");/*C語言*/printf("\t\t\t 2.高數(shù) \n");精品文檔放心下載/*高數(shù)*/printf("\t\t\t 3.物理 \n");/*大學(xué)物理*/printf("\t\t\t 4.電路 \n");謝謝閱讀/*電路*/printf("\t\t\t 5.模電 \n");謝謝閱讀/*模電*/printf("\t\t\t 9.返回 \n\n");精品文檔放心下載/*返回上級*/printf("\t\t\t************************************\n\n");感謝閱讀printf("\t請選擇要修改的成績(按1.2.3.");謝謝閱讀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");言 高數(shù)

printf("學(xué)號 姓名大物 電路 模電\n");

班級

專業(yè)

入學(xué)年

C語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[])/*按學(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("請輸入要刪除的學(xué)生學(xué)號:");/*"請輸入要刪除的學(xué)生學(xué)號"*/感謝閱讀gets(cno);i=find(cno);if(i!=-1){for(j=i;j<num;j++)stu[j]=stu[j+1];num--;printf("現(xiàn)有%d個學(xué)生的成績:\n",num);/*顯示"現(xiàn)有NUM個學(xué)生的成績:"*/謝謝閱讀output();}else{printf("請輸入正確的學(xué)號.\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.學(xué)生平均分 *\n");/*計算謝謝閱讀學(xué)生平均分*/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學(xué)生平均分為:\n");printf("===========================================\n");謝謝閱讀printf("學(xué)號 姓名 入學(xué)年 平均分\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()/*計算每個學(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\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.按學(xué)號排序

* \n");/*按學(xué)號排序*/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() /*按學(xué)號排序*/{ /*按學(xué)號從低到高冒泡法排序*/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學(xué)號 姓名 入學(xué)年 平均分 排名\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\t 語言 \n");/*C語言*/printf("\t\t\t 2.高數(shù) \n");精品文檔放心下載/*高數(shù)*/printf("\t\t\t 3.物理 \n");/*大學(xué)物理*/printf("\t\t\t 4.電路 \n");精品文檔放心下載/*電路*/printf("\t\t\t 5.模電 \n");精品文檔放心下載/*模電*/printf("\t\t\t 9.返回 \n\n");謝謝閱讀/*返回上級*/printf("\t\t\t************************************\n\n");謝謝閱讀printf("\t請選擇:(按1.2.3.");感謝閱讀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ù)組中的兩個記錄*/謝謝閱讀{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學(xué)號 姓名 入學(xué)年 %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.按學(xué)號查找*\n");/*按學(xué)號查找*/printf("\t\t\t*2.按姓名查找*\n");/*按姓名查找*/printf("\t\t\t*3.按入學(xué)年查找*\n");/*按入學(xué)年查找*/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("輸入學(xué)號:\n");/*"輸入學(xué)號:"*/謝謝閱讀gets(cno);i=find(cno);panduani(i);break;case'2':printf("輸入姓名:\n");/*"輸入姓名:"*/感謝閱讀gets(cname);i=findname(cname);panduani(i);break;case'3':printf("輸入入學(xué)年:\n");/*"輸入入學(xué)年"*/精品文檔放心下載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("要查找的學(xué)生不存在\n");stop();}精品文檔放心下載else{printf("查找到的學(xué)生信息為:\n");/*"查找到的學(xué)生信息為:"*/謝謝閱讀printf("學(xué)號 姓名 班級 專業(yè) 入學(xué)年 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)/*通過i的值,判斷信息要查找的信息是否存在*/感謝閱讀{intj;if(i==-1){printf("要查找的學(xué)生不存在\n");/*要查找的學(xué)生不存在*/精品文檔放心下載stop();}else{printf("查找到的學(xué)生

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論