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

下載本文檔

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

文檔簡介

1、年4月19日學(xué)生成績管理系統(tǒng)C語言版文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。#include /*常見的標(biāo)準(zhǔn)輸入輸出函數(shù)*/#include /*access函數(shù)原型包含*/#include /*exit函數(shù)原型包含*/#include /*strcmp函數(shù)原型包含*/#include #include#include #define N 100 /*最多的學(xué)生人數(shù)*/struct student /*學(xué)生結(jié)構(gòu)體定義*/ char clas15; /*班級(jí)*/char no13; /*學(xué)號(hào),最多為12位*/char name20; /*姓名*/char sex8; /*性別*/char addr3

2、0; /*地址*/char phone15; /*電話*/float score5; /*存儲(chǔ)五門課成績*/float ave; /*平均分*/stuN;int num;void init();void weihu();void tongji();void tongji1();void tongji2();void sort1();void find1();void save();void newfile();void read1();void newfile();void new1();void delete1();void modify();void sortscore();int fin

3、dname(char cname);void main() int choice=1;system(COLOR 2f);printf( 學(xué)生信息管理系統(tǒng) n);printf( * *n);printf( * 歡迎進(jìn)入! *n);printf( * *n);printf( n);init();while(choice!=5)system(COLOR 1F);printf( *n);printf( * *n);printf( * 主菜單 *n); printf( * 1:學(xué)生成績維護(hù) *n);printf( * 2:學(xué)生成績統(tǒng)計(jì) *n);printf( * 3:學(xué)生成績排序 *n);printf(

4、 * 4:學(xué)生成績查詢 *n);printf( * 5:退出 *n);printf( * *n); printf( *n);printf( 請(qǐng)選擇:);scanf(%d,&choice);switch(choice) case 1:weihu(); break;case 2:tongji(); break; case 3:sort1();break; case 4:find1(); break; case 5:save();printf(謝謝使用本系統(tǒng)!n);break; default:printf(選擇錯(cuò)誤,請(qǐng)重新選擇!);/1)輸出學(xué)生成績(公共函數(shù))void output() /*輸出

5、學(xué)生數(shù)據(jù)*/int i,j;for(i=0;inum;i+)printf(班級(jí) 姓名 學(xué)號(hào) 性別 地址 電話n );printf(%s %s %s %s %s %sn,stui.clas,,stui.no,stui.sex,stui.addr,stui.phone);printf(n);printf(C語言 大學(xué)物理 網(wǎng)頁設(shè)計(jì) 高數(shù) 英語 n);for(j=0;j5;j+)printf(%-12.f,stui.scorej);printf(n);printf(n);/2)系統(tǒng)初始化代碼void init()if(access(stui.dat,0) /*判斷文件是否存在*/

6、newfile(); /*不存在創(chuàng)立新的數(shù)據(jù)文件*/elseread1(); /*若存在,從文件中讀取數(shù)據(jù)*/3)創(chuàng)立新的數(shù)據(jù)文件void newfile() /*從鍵盤輸入學(xué)生成績并保存到文件中*/int i; FILE *fp;if(fp=fopen(F:stu.dat,wb)=NULL) /*創(chuàng)立二進(jìn)制文件*/printf(文件創(chuàng)立失敗!請(qǐng)重新運(yùn)行程序。n);exit(0); /*終止程序運(yùn)行*/printf(請(qǐng)輸入學(xué)生人數(shù):); scanf(%d,&num);for(i=0;inum;i+)printf(班級(jí):);getchar(); gets(stui.clas);printf(姓名

7、:);gets();printf(請(qǐng)輸入第%d位學(xué)生的學(xué)號(hào):,i+1);gets(stui.no); printf(性別:);gets(stui.sex);printf(地址:);gets(stui.addr);printf(電話:);gets(stui.phone);printf(C語言:);scanf(%f,&stui.score0);printf(大學(xué)物理:);scanf(%f,&stui.score1);printf(網(wǎng)頁設(shè)計(jì):);scanf(%f,&stui.score2);printf(高數(shù):);scanf(%f,&stui.score3);printf(英語:)

8、;scanf(%f,&stui.score4); fwrite(&stu,sizeof(stu),1,fp);printf(請(qǐng)輸入下一條學(xué)生信息n); /*把第i+1名學(xué)生成績寫入文件*/fclose(fp);printf(你剛剛輸入的數(shù)據(jù)共有%d個(gè)學(xué)生成績。詳細(xì)數(shù)據(jù)為:n,num);output();/4)從數(shù)據(jù)文件中讀取成績void read1()FILE *fp;num=0; /*num為數(shù)據(jù)文件實(shí)際存儲(chǔ)成績?nèi)藬?shù)*/fp=fopen(stu.dat,r);if(fp=NULL) /*文件不存在*/printf(文件打開失敗!請(qǐng)重新運(yùn)行程序。n);exit(0); /*終止程序運(yùn)行*/wh

9、ile(!feof(fp)fread(&stunum,1,sizeof(struct student),fp);num+;num-;fclose(fp);printf(現(xiàn)在共有%d個(gè)學(xué)生成績,初始數(shù)據(jù)為:n,num);output(); /*輸出讀取結(jié)果*/5)學(xué)生成績維護(hù)void weihu()int choice1;system(COLOR 2F);printf( *n);printf( * *n); printf( * 學(xué)生成績維護(hù)子菜單 *n);printf( * 1.新增 *n);printf( * 2.刪除(按學(xué)號(hào)) *n);printf( * 3.修改 *n);printf( *

10、 *n);printf( *n);printf( 請(qǐng)選擇);scanf(%d,&choice1);switch(choice1) case 1: new1(); break; case 2: delete1(); break; case 3: modify(); break; default: printf(選擇錯(cuò)誤,請(qǐng)重新選擇!n);/6)新增一個(gè)學(xué)生成績void new1()printf(請(qǐng)輸入班級(jí):);getchar();gets(stunum.clas);printf(請(qǐng)輸入學(xué)號(hào):);gets(stunum.no); printf(姓名:);gets(); pri

11、ntf(性別:);gets(stunum.sex);printf(地址:);gets(stunum.addr);printf(電話:);gets(stunum.phone);printf(C語言:);scanf(%f,&stunum.score0);printf(大學(xué)物理:);scanf(%f,&stunum.score1);printf(網(wǎng)頁設(shè)計(jì):);scanf(%f,&stunum.score2);printf(高數(shù):);scanf(%f,&stunum.score3);printf(英語:);scanf(%f,&stunum.score4); num+;printf(現(xiàn)在共有%d個(gè)學(xué)生成

12、績,數(shù)據(jù)為:n,num);output();/7)按學(xué)號(hào)查找int find(char sno)int i; for(i=0;inum;i+) if(strcmp(stui.no,sno)=0) /*判斷兩個(gè)字符串相等*/ return i; /*查找成功*/ return -1; /*查找失敗*/ /刪除學(xué)生信息void delete1()char cno13;int i,j;printf(請(qǐng)輸入要?jiǎng)h除的學(xué)號(hào):n);getchar();gets(cno);i=find(cno);if(i=-1) printf(不存在該學(xué)號(hào)!n); else for(j=i;jnum;j+)stuj=stuj

13、+1;num-;printf(刪除后還有%d個(gè)學(xué)生成績,數(shù)據(jù)為:n,num);output(); /修改學(xué)生信息void modify()char cno13;int i,j;printf(請(qǐng)輸入要修改學(xué)生的學(xué)號(hào):n);getchar();gets(cno);i=find(cno); printf(班級(jí):); gets(stui.clas); printf(姓名:);gets(); printf(性別:);gets(stui.sex);printf(地址:);gets(stui.addr);printf(電話:);gets(stui.phone);printf(C語言:);s

14、canf(%f,&stui.score0);printf(大學(xué)物理:);scanf(%f,&stui.score1);printf(網(wǎng)頁設(shè)計(jì):);scanf(%f,&stui.score2);printf(高數(shù):);scanf(%f,&stui.score3);printf(英語:);scanf(%f,&stui.score4); printf(修改后為:n);printf(%st%st%st%st%st%stn,stui.clas,,stui.no,stui.sex,stui.addr,stui.phone);printf(C語言 大學(xué)物理 網(wǎng)頁設(shè)計(jì) 高數(shù) 英語 n);fo

15、r(j=0;j5;j+)printf(%-12.f,stui.scorej);printf(n);/10)統(tǒng)計(jì)void tongji()int choice2;system(COLOR 3F);printf( *n);printf( * *n);printf( * 統(tǒng)計(jì)子菜單 *n);printf( * 1.計(jì)算每門課程平均分 *n);printf( * 2.計(jì)算每個(gè)學(xué)生平均分 *n);printf( * *n);printf( *n);printf( 請(qǐng)選擇:);scanf(%d,&choice2);if(choice2=1)tongji1();else if(choice2=2)tongj

16、i2();elseprintf(選擇錯(cuò)誤,請(qǐng)重新選擇!n);/11)計(jì)算每個(gè)學(xué)生平均分void tongji1()int i,j;float sum;float avec5; /*存儲(chǔ)每門課程的平均分*/for(j=0;j5;j+) sum=0;for(i=0;inum;i+)sum+=stui.scorej;avecj=sum/num; printf(各門課平均分:n);printf(C語言 大學(xué)物理 網(wǎng)頁設(shè)計(jì) 高數(shù) 英語n); for(i=0;i5;i+)printf(%-10.2f,aveci);printf(n); /12)計(jì)算每個(gè)人的平均分void tongji2()int i,j;

17、float sum; for(j=0;jnum;j+)sum=0;for(i=0;i5;i+)sum+=stuj.scorei;stuj.ave=sum/5;printf(第%d個(gè)人的平均分:%.2fn,j+1,stuj.ave);/13)排序void sort1()int choice3;system(COLOR 6F);printf( *n);printf( n);printf( * 排序子菜單 *n); printf( * *n);printf( * 1.按成績 *n);printf( n);printf( *n);printf( 請(qǐng)選擇:n);scanf(%d,&choice3);if

18、(choice3=1)sortscore();elseprintf(選擇錯(cuò)誤,請(qǐng)重新選擇!n);/14)按學(xué)生平均分排序void sortscore() /*按平均成績從高到低冒泡法排序*/int i,j;struct student temp;tongji2(); /* 先計(jì)算每個(gè)學(xué)生的平均分*/for(i=0;i=num-2;i+) for(j=0;jnum-i-1;j+)if(stuj.avestuj+1.ave)temp=stuj;stuj=stuj+1;stuj+1=temp;for(i=0;inum;i+)printf(%.2f ,stui.score1); printf(排序后的

19、學(xué)生成績?yōu)椋簄);output();/15)查找void find1()int choice4;char cno13,cname20;int i,j;system(COLOR 5F);printf(*n);printf(* *n);printf(* 查找子菜單 *n);printf(* 1.按學(xué)號(hào) *n);printf(* 2.按姓名 *n);printf(* *n);printf(*n);printf( 請(qǐng)選擇:);scanf(%d,&choice4);if(choice4=1)printf(輸入要查找學(xué)生的學(xué)號(hào):);getchar();gets(cno);puts(cno);i=find(cno);else if(choice4=2)printf(請(qǐng)輸入要查找學(xué)生的姓名:);getchar();gets(cname);i=findname(cname);el

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論