




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、#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; /*班級*/char no13; /*學(xué)號,最多為12位*/char name20; /*姓名*/char sex8; /*性別*/char addr30; /*地址*/char phone15; /*電話*/float s
2、core5; /*存儲五門課成績*/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 findname(char cname);void main() int ch
3、oice=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:學(xué)生成績查詢 *n);printf( * 5:退出 *n);p
4、rintf( * *n); printf( *n);printf( 請選擇:);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ò)誤,請重新選擇!);/1)輸出學(xué)生成績(公共函數(shù))void output() /*輸出學(xué)生數(shù)據(jù)*/int i,j;for(i=0;inum;i+)printf
5、(班級 姓名 學(xué)號 性別 地址 電話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) /*判斷文件是否存在*/ newfile(); /*不存在創(chuàng)建新的數(shù)據(jù)文件*/elseread1(
6、); /*若存在,從文件中讀取數(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)建失敗!請重新運(yùn)行程序。n);exit(0); /*終止程序運(yùn)行*/printf(請輸入學(xué)生人數(shù):); scanf(%d,&num);for(i=0;inum;i+)printf(班級:);getchar(); gets(stui.clas);printf(姓名:);gets();printf(請輸入第%d位學(xué)生的
7、學(xué)號:,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(英語:);scanf(%f,&stui.score4); fwrite(&stu
8、,sizeof(stu),1,fp);printf(請輸入下一條學(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í)際存儲成績?nèi)藬?shù)*/fp=fopen(stu.dat,r);if(fp=NULL) /*文件不存在*/printf(文件打開失敗!請重新運(yùn)行程序。n);exit(0); /*終止程序運(yùn)行*/while(!feof(fp)fread(&stunum,1,sizeof(
9、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é)號) *n);printf( * 3.修改 *n);printf( * *n);printf( *n);printf( 請選擇);scanf(
10、%d,&choice1);switch(choice1) case 1: new1(); break; case 2: delete1(); break; case 3: modify(); break; default: printf(選擇錯(cuò)誤,請重新選擇!n);/6)新增一個(gè)學(xué)生成績void new1()printf(請輸入班級:);getchar();gets(stunum.clas);printf(請輸入學(xué)號:);gets(stunum.no); printf(姓名:);gets(); printf(性別:);gets(stunum.sex);printf(地址:
11、);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é)生成績,數(shù)據(jù)為:n,num);output();/7)按學(xué)號查找int fi
12、nd(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(請輸入要?jiǎng)h除的學(xué)號:n);getchar();gets(cno);i=find(cno);if(i=-1) printf(不存在該學(xué)號!n); else for(j=i;jnum;j+)stuj=stuj+1;num-;printf(刪除后還有%d個(gè)學(xué)生成績,數(shù)據(jù)為:n,nu
13、m);output(); /修改學(xué)生信息void modify()char cno13;int i,j;printf(請輸入要修改學(xué)生的學(xué)號:n);getchar();gets(cno);i=find(cno); printf(班級:); gets(stui.clas); printf(姓名:);gets(); printf(性別:);gets(stui.sex);printf(地址:);gets(stui.addr);printf(電話:);gets(stui.phone);printf(C語言:);scanf(%f,&stui.score0);printf(大學(xué)物理:);
14、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);for(j=0;j5;j+)printf(%-12.f,stui.score
15、j);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( 請選擇:);scanf(%d,&choice2);if(choice2=1)tongji1();else if(choice2=2)tongji2();elseprintf(選擇錯(cuò)誤,請重新選擇!n);/11)計(jì)算
16、每個(gè)學(xué)生平均分void tongji1()int i,j;float sum;float avec5; /*存儲每門課程的平均分*/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;float sum; for(j=0;jnum;j+)sum=0;for
17、(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( 請選擇:n);scanf(%d,&choice3);if(choice3=1)sortscore();elseprintf(選擇
18、錯(cuò)誤,請重新選擇!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(排序后的學(xué)生成績?yōu)椋簄);output();/15)查找void find1()
19、int choice4;char cno13,cname20;int i,j;system(COLOR 5F);printf(*n);printf(* *n);printf(* 查找子菜單 *n);printf(* 1.按學(xué)號 *n);printf(* 2.按姓名 *n);printf(* *n);printf(*n);printf( 請選擇:);scanf(%d,&choice4);if(choice4=1)printf(輸入要查找學(xué)生的學(xué)號:);getchar();gets(cno);puts(cno);i=find(cno);else if(choice4=2)printf(請輸入要查找學(xué)生的姓名:);getchar();gets(cname);i=findname(cname);elsep
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 安全征文課件
- 江西茶文化課件
- 旅館室內(nèi)設(shè)計(jì)原理
- 平流沉砂池設(shè)計(jì)要點(diǎn)解析
- 安全乘坐電梯
- 漢服兒童課件視頻
- 2025年經(jīng)濟(jì)法考試材料試題及答案
- 行政管理中的經(jīng)濟(jì)法思考與創(chuàng)新試題及答案
- 沈陽大學(xué)門順德課件
- 生育醫(yī)學(xué)執(zhí)業(yè)醫(yī)師考試試題及答案
- 合伙人協(xié)議書模板
- 2025年中考第一次模擬考試卷:生物(成都卷)解析版
- 歲月不負(fù)母親時(shí)光留住溫情 課件高二下學(xué)期母親節(jié)(5月11日)主題班會(huì)
- Unit 5 Animals Lesson 3 教學(xué)設(shè)計(jì)-人教精通版三年級英語下冊
- 2025年河南空港數(shù)字城市開發(fā)建設(shè)有限公司第一批社會(huì)招聘20人筆試參考題庫附帶答案詳解
- 2024年四川公安廳招聘警務(wù)輔助人員筆試真題
- 網(wǎng)站聯(lián)盟廣告專題報(bào)告
- (正式版)SHT 3551-2024 石油化工儀表工程施工及驗(yàn)收規(guī)范
- 周三多-管理學(xué):原理與方法(第七版),第三章
- 蒸壓加氣混凝土砌塊施工方案:物流園完整版
- 施工場地移交單(共4頁)
評論
0/150
提交評論