《學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)》由會(huì)員分享,可在線閱讀,更多相關(guān)《學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)(13頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、沈陽(yáng)師范大學(xué)科信軟件學(xué)院小學(xué)期課程設(shè)計(jì)報(bào)告課題名稱: 學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì) 姓 名: 楊先勇 學(xué) 號(hào): 12008065 專業(yè)年級(jí): 2012級(jí)軟件工程2班 指導(dǎo)教師: 張麗娜 2014年6月26日課程設(shè)計(jì)報(bào)告:學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì) 編程語(yǔ)言:C一、 系統(tǒng)需求學(xué)生成績(jī)信息包括:學(xué)期,學(xué)號(hào),班別,姓名,四門課程成績(jī)(語(yǔ)文、數(shù)學(xué)、英語(yǔ)和計(jì)算機(jī))等。主要功能:(1) 能按學(xué)期、按班級(jí)完成對(duì)學(xué)生成績(jī)的錄入、修改(2) 能按班級(jí)統(tǒng)計(jì)學(xué)生的成績(jī),求學(xué)生的總分及平均分(3) 能查詢學(xué)生成績(jī),不及格科目及學(xué)生名單(4) 能按班級(jí)輸出學(xué)生的成績(jī)單 二、 要求使用二進(jìn)制文件方式存儲(chǔ)數(shù)據(jù),系統(tǒng)以菜單方式工作三、 設(shè)
2、計(jì)目的(1) 能完成對(duì)學(xué)生成績(jī)的錄入(2) 能按班級(jí)統(tǒng)計(jì)學(xué)生的成績(jī),求學(xué)生的總分及平均分,排序(3) 能按班級(jí),學(xué)期輸出學(xué)生的成績(jī)單和不及格科目及學(xué)生名單(4) 能查詢單個(gè)學(xué)生成績(jī)(5) 能修改單個(gè)學(xué)生信息四、 結(jié)構(gòu)圖修改單個(gè)學(xué)生信息修 改void monify結(jié)構(gòu)圖班級(jí)int classes學(xué)期int term信息錄入void input 成績(jī)統(tǒng)計(jì)void sort查詢 void search姓名char name10學(xué)號(hào)int num成績(jī)int score4學(xué)號(hào)stui.num、班級(jí)stui.classes,姓名stui.name、四門課成績(jī)stui.score能按學(xué)號(hào)查詢單個(gè)學(xué)生成績(jī) 按
3、班級(jí)統(tǒng)計(jì)學(xué)生的成績(jī),求學(xué)生的總分及平均分,排序成績(jī)輸出void print能按班級(jí),學(xué)期輸出學(xué)生成績(jī)單和不及格科目及學(xué)生名單結(jié)構(gòu)數(shù)組struct student五、 程序代碼#include /*定義結(jié)構(gòu)體*/#include #include #define NUM 100struct student int term; int num; int classes; char name10; int score4; int sum; double average; stuNUM;void print1();void print2();void zcd(); void input() /*輸入信
4、息函數(shù)*/ system(cls); int i;char a;for(i=0;iNUM;i+) printf( n請(qǐng)輸入學(xué)生的學(xué)期:); scanf(%d,&stui.term); printf( n請(qǐng)輸入學(xué)生的學(xué)號(hào):); fflush(stdin); scanf(%d,&stui.num); printf( n請(qǐng)輸入學(xué)生的班級(jí):); scanf(%d,&stui.classes); printf(n請(qǐng)輸入學(xué)生的姓名:); scanf(%s, stui.name) ; printf(n請(qǐng)輸入學(xué)生的語(yǔ)文成績(jī):); scanf(%d,&stui.score0); printf(n請(qǐng)輸入學(xué)生的數(shù)學(xué)
5、成績(jī):); scanf(%d, &stui.score1); printf(n請(qǐng)輸入學(xué)生的英語(yǔ)成績(jī):); scanf(%d, &stui.score2); printf(n請(qǐng)輸入學(xué)生的計(jì)算機(jī)成績(jī):); scanf(%d, &stui.score3); stui.sum=stui.score0+stui.score1+stui.score2+stui.score3;/算總分和平均 stui.average=(float)stui.sum/4.0; printf(是否要繼續(xù)添加(按N&n退出); fflush(stdin); a=getchar(); if(a=n|a=N) break;void
6、search() /*查找并顯示一個(gè)記錄*/ system(cls);/*清屏*/ int number=0,i; printf(ttt 請(qǐng)輸入要查找學(xué)生的學(xué)號(hào):); scanf(%d,&number); printf(學(xué)號(hào)t姓名t班級(jí) 語(yǔ)文 數(shù)學(xué) 英語(yǔ) 計(jì)算機(jī) 總分 平均分n); for(i=0;iNUM;i+) if(number=stui.num) break;/*查找判斷*/ if(iNUM)printf(%dt%st%d%5d%5d%5d%6d%7d%8.2fn,stui.num,stui.name,stui.classes,stui.score0,stui.score1,stui.
7、score2, stui.score3,stui.sum,stui.average); /*輸出學(xué)生信息*/ elseprintf(沒找到該學(xué)生的信息n);system(pause); void print() /*按學(xué)期、按班級(jí)輸出成績(jī)函數(shù)*/ system(cls);char a; printf(1、按學(xué)期輸出n);printf(2、按班級(jí)輸出n);printf(3、返回n);fflush(stdin);a=getchar();switch(a)case 1:print1();case 2:print2();case 3:zcd();default:print(); void print1
8、()/按學(xué)期int i,m;printf(請(qǐng)輸入學(xué)期:n);scanf(%d,&m);printf(學(xué)號(hào)t姓名t班級(jí) 語(yǔ)文 數(shù)學(xué) 英語(yǔ) 計(jì)算機(jī) 總分 平均分n);for(i=0;iNUM;i+) if(m=stui.term) printf(%dt%st%d%5d%5d%5d%6d%7d%8.2fn,stui.num,stui.name,stui.classes, stui.score0,stui.score1,stui.score2, stui.score3,stui.sum,stui.average); /*輸出學(xué)生信息*/system(pause);system(cls);print()
9、;void print2()/按班級(jí)int i,j,k;printf(請(qǐng)輸入班級(jí):n);scanf(%d,&k); printf(學(xué)號(hào)t姓名t班級(jí) 語(yǔ)文 數(shù)學(xué) 英語(yǔ) 計(jì)算機(jī) 總分 平均分n);for(i=0;iNUM;i+) if(k=stui.classes) stui.sum=stui.score0+stui.score1+stui.score2+stui.score3; stui.average=stui.sum/4.0; printf(%dt%st%d%5d%5d%5d%6d%7d%8.2fn,stui.num,stui.name,stui.classes, stui.score0,s
10、tui.score1,stui.score2, stui.score3,stui.sum,stui.average); /*輸出學(xué)生信息*/ printf(輸出不及格學(xué)生名單及成績(jī):n);printf(學(xué)號(hào)t姓名t班級(jí) 語(yǔ)文 數(shù)學(xué) 英語(yǔ) 計(jì)算機(jī) n);for(i=0;iNUM;i+) for(j=0;j4;j+) if(stui.scorej60&k=stui.classes) /*輸出不及格學(xué)生名單及成績(jī)*/ printf(%dt%st%d%5d%5d%5d%6dn,stui.num,stui.name,stui.classes, stui.score0,stui.score1,stui.s
11、core2, stui.score3); break; system(pause);system(cls);print();void modify() /*修改成績(jī)函數(shù)*/ system(cls); int number,i; printf(ttt請(qǐng)輸入要修改信息的學(xué)生學(xué)號(hào):); scanf(ttt%d,&number); for(i=0;iNUM;i+) if(number=stui.num) break;/*查找判斷*/ if(iNUM)/*查找判斷*/ printf(請(qǐng)輸入修改后的學(xué)生的信息:); printf( n請(qǐng)輸入學(xué)生的學(xué)期:); scanf(%d,&stui.term); pr
12、intf( n請(qǐng)輸入學(xué)生的學(xué)號(hào):); fflush(stdin); scanf(%d,&stui.num); printf( n請(qǐng)輸入學(xué)生的班級(jí):); scanf(%d,&stui.classes); printf(n請(qǐng)輸入學(xué)生的姓名:); scanf(%s, stui.name) ; printf(n請(qǐng)輸入學(xué)生的語(yǔ)文成績(jī):); scanf(%d,&stui.score0); printf(n請(qǐng)輸入學(xué)生的數(shù)學(xué)成績(jī):); scanf(%d, &stui.score1); printf(n請(qǐng)輸入學(xué)生的英語(yǔ)成績(jī):); scanf(%d, &stui.score2); printf(n請(qǐng)輸入學(xué)生的計(jì)算
13、機(jī)成績(jī):); scanf(%d, &stui.score3); elseprintf(沒找到該學(xué)生的信息n);system(paues);system(cls);zcd();void sort() /*排序并顯示函數(shù)*/ int i,j=0;int temp; for(i=0;iNUM;i+) stui.sum=stui.score0+stui.score1+stui.score2+stui.score3; stui.average=(float)stui.sum/4.0; for(i=0;iNUM-1;i+)for(j=i+1;jNUM;j+)if(stui.sumstuj.sum)temp
14、=stui.sum; stui.sum=stuj.sum; stuj.sum=temp; printf(學(xué)號(hào)t姓名t班級(jí) 語(yǔ)文 數(shù)學(xué) 英語(yǔ) 計(jì)算機(jī) 總分 平均分n); for(i=0;iNUM;i+) printf(%dt%st%d%5d%5d%5d%6d%7d%8.2fn,stui.num,stui.name,stui.classes, stui.score0,stui.score1,stui.score2,stui.score3,stui.sum,stui.average); /*輸出學(xué)生信息*/system(pause);system(cls);print(); void zcd()in
15、t n=0;char m;system(cls);/*清屏*/ printf(按任一鍵進(jìn)入主菜單n ); /*按任意鍵進(jìn)入主菜單*/ printf(*n); printf(tt沈陽(yáng)師范大學(xué)軟件學(xué)院歡迎您n); printf(nttt- 歡迎您使用學(xué)生管理系統(tǒng)nnttttt-n); printf(*MENU*n); printf(ttt1. 輸入學(xué)生成績(jī)記錄 Input the recordn); /*輸入學(xué)生成績(jī)記錄*/ printf(ttt2. 排序并顯示 Sort to make new a filen); /*排序*/ printf(ttt3. 按班級(jí)顯示成績(jī)單 Print the re
16、cordn); /*顯示*/ printf(ttt4. 查找個(gè)人成績(jī) Search record on namen); /*查找*/ printf(ttt5. 修改 Modify a recordn); /*修改*/ printf(ttt6. 退出 Quitn); /*退出*/ printf(*n); printf(nttt輸入你的選擇Enter your choice(17):); fflush(stdin); m=getchar(); doswitch(m) case 1:input();zcd();break; case 2:sort();system(pause);zcd();brea
17、k; case 3:print();system(pause);break; case 4:search();zcd();break; case 5:modify();system(pause);zcd();break; case 6:exit(0); /*如菜單返回值為7則程序結(jié)束*/ default:printf(錯(cuò)誤命令); getchar();zcd(); while(1); void main() zcd(); 六、 調(diào)試與運(yùn)行 主菜單 成績(jī)錄入 統(tǒng)計(jì)排序 輸出成績(jī)學(xué)號(hào) 姓名 班級(jí) 語(yǔ)文 數(shù)學(xué) 英語(yǔ) 計(jì)算機(jī) 總分 平均分2 2 2 22 22 22 2 68 178 8 8 8 9
18、9 9 35 8.750 0 0 0 0 0 0 0 0.000 0 0 0 0 0 0 0 0.000 0 0 0 0 0 0 0 0.000 0 0 0 0 0 0 0 0.000 0 0 0 0 0 0 0 0.000 0 0 0 0 0 0 0 0.000 0 0 0 0 0 0 0 0.000 0 0 0 0 0 0 0 0.000 0 0 0 0 0 0 0 0.000 0 0 0 0 0 0 0 0.00 查找 修改請(qǐng)輸入要修改信息的學(xué)生學(xué)號(hào):02請(qǐng)輸入修改后的學(xué)生的信息請(qǐng)輸入學(xué)生的學(xué)期:2請(qǐng)輸入學(xué)生的學(xué)號(hào):34請(qǐng)輸入學(xué)生的班級(jí):3請(qǐng)輸入學(xué)生的姓名:yangyong請(qǐng)輸入學(xué)生的語(yǔ)
19、文成績(jī):45請(qǐng)輸入學(xué)生的數(shù)學(xué)成績(jī):56請(qǐng)輸入學(xué)生的英語(yǔ)成績(jī):78請(qǐng)輸入學(xué)生的計(jì)算機(jī)成績(jī):66 七、 設(shè)計(jì)總結(jié)經(jīng)過幾周的課程設(shè)計(jì),我學(xué)到了很多東西:鞏固和加深了對(duì)編程的理解,提高綜合運(yùn)用本課程所學(xué)知識(shí)的能力。培養(yǎng)了我選用參考書,查閱手冊(cè)及文獻(xiàn)資料的能力。培養(yǎng)獨(dú)立思考,深入研究,分析問題、解決問題的能力。經(jīng)過實(shí)際編譯系統(tǒng)的分析設(shè)計(jì)、編程調(diào)試,掌握應(yīng)用軟件的分析方法和工程設(shè)計(jì)方法。能夠按要求編寫課程設(shè)計(jì)報(bào)告書,能正確闡述設(shè)計(jì)和實(shí)驗(yàn)結(jié)果,正確繪制系統(tǒng)和程序框圖。課程設(shè)計(jì)是把我們所學(xué)的理論知識(shí)進(jìn)行系統(tǒng)的總結(jié)并應(yīng)用于實(shí)踐的良好機(jī)會(huì),有利于加強(qiáng)我們用知識(shí)理論來(lái)分析實(shí)際問題的能力,進(jìn)而加強(qiáng)了我們對(duì)知識(shí)認(rèn)識(shí)的實(shí)踐度,鞏固了我們的理論知識(shí),深化了對(duì)知識(shí)的認(rèn)識(shí),并為走向社會(huì)打下一個(gè)良好的基礎(chǔ)。