版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> C語(yǔ)言課程設(shè)計(jì)報(bào)告</b></p><p><b> 一 .問(wèn)題描述:</b></p><p> 題目七:學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)</p><p> 學(xué)生成績(jī)信息包括:學(xué)期,學(xué)號(hào),班別,姓名,四門(mén)課程成績(jī)(語(yǔ)文、數(shù)學(xué)、英語(yǔ)和計(jì)算機(jī))等。</p><p><b&g
2、t; 主要功能:</b></p><p> ?。?) 能按學(xué)期、按班級(jí)完成對(duì)學(xué)生成績(jī)的錄入、修改</p><p> (2) 能按班級(jí)統(tǒng)計(jì)學(xué)生的成績(jī),求學(xué)生的總分及平均分</p><p> ?。?) 能查詢(xún)學(xué)生成績(jī),不及格科目及學(xué)生名單</p><p> ?。?) 能按班級(jí)輸出學(xué)生的成績(jī)單</p><p>
3、; 要求:使用二進(jìn)制文件方式存儲(chǔ)數(shù)據(jù),系統(tǒng)以菜單方式工作</p><p> 學(xué)生成績(jī)信息包括:學(xué)期,學(xué)號(hào),班別,姓名,四門(mén)課程成績(jī)(語(yǔ)文、數(shù)學(xué)、英語(yǔ)和計(jì)算機(jī))等。要求使用二進(jìn)制文件方式存儲(chǔ)數(shù)據(jù),系統(tǒng)以菜單方式工作,實(shí)現(xiàn)對(duì)學(xué)生成績(jī)的錄入,修改,統(tǒng)計(jì),排序,查詢(xún),輸出等功能。</p><p><b> 二 .設(shè)計(jì)目的</b></p><p>
4、 設(shè)計(jì)“學(xué)生成績(jī)管理系統(tǒng)”使其具有以下功能:</p><p> ?。?) 能完成對(duì)學(xué)生成績(jī)的錄入</p><p> (2) 能按班級(jí)統(tǒng)計(jì)學(xué)生的成績(jī),求學(xué)生的總分及平均分,排序</p><p> ?。?) 能按班級(jí),學(xué)期輸出學(xué)生的成績(jī)單和不及格科目及學(xué)生名單</p><p> ?。?) 能查詢(xún)單個(gè)學(xué)生成績(jī)</p><p&
5、gt; (5) 能修改單個(gè)學(xué)生信息</p><p><b> 三 . 要求</b></p><p><b> 系統(tǒng)以菜單方式工作</b></p><p><b> 四 . 功能</b></p><p> 1 輸入功能:可以一次完成無(wú)數(shù)條信息的輸入。</p>
6、;<p> 2 輸出功能:能按班級(jí)輸出學(xué)生的成績(jī)單。</p><p> 3 修改功能:完成對(duì)單個(gè)學(xué)生成績(jī)的修改。</p><p> 4 查找功能:完成對(duì)單個(gè)學(xué)生信息查找,并顯示。</p><p> 5 排序功能:按學(xué)生成績(jī)進(jìn)行排序,并顯示。</p><p> 6 有一個(gè)清晰美觀界面來(lái)調(diào)用各個(gè)功能</p&
7、gt;<p><b> 五.模塊圖</b></p><p><b> 六 . 詳細(xì)內(nèi)容</b></p><p> 整個(gè)系統(tǒng)除了主函數(shù)外,另外還有5個(gè)函數(shù),實(shí)現(xiàn)六大功能:輸入功能、輸出功能、修改功能,查找并顯示功能、排序并顯示功能。各個(gè)函數(shù)的詳細(xì)設(shè)計(jì)說(shuō)明分別如下:</p><p> 1 . 定義結(jié)構(gòu)體及
8、宏定義</p><p> #include <stdlib.h></p><p> #include <stdio.h></p><p> #include <string.h></p><p> #define NUM 100</p><p> struct studen
9、t</p><p> { int term;</p><p><b> int num;</b></p><p> int classes;</p><p> char name[10];</p><p> int score[4];</p><p><b
10、> int sum; </b></p><p> float average; </p><p> }stu[NUM];</p><p> 2.主函數(shù) main()</p><p> 利用無(wú)限次循環(huán)for(;;)和swithch()進(jìn)行菜單選擇來(lái)實(shí)現(xiàn)各函數(shù)的調(diào)用,系統(tǒng)根據(jù)輸入的數(shù)字選項(xiàng)來(lái)調(diào)用相應(yīng)的函數(shù)。等執(zhí)行完每
11、一個(gè)函數(shù)功能后,按任一鍵回到主界面也要通過(guò)這個(gè)函數(shù)來(lái)實(shí)現(xiàn)!</p><p> void main() </p><p><b> {</b></p><p><b> zcd();</b></p><p><b> }</b></p><p>
12、 /*主函數(shù)界面*/ </p><p> void zcd()</p><p><b> {</b></p><p><b> int n=0;</b></p><p><b> char m;</b></p><p> system(&q
13、uot;cls");/*清屏*/</p><p> printf("按任一鍵進(jìn)入主菜單\n "); /*按任一鍵進(jìn)入主菜單*/ </p><p> printf("********************************************************************************\n"); &
14、lt;/p><p> printf("\t\t華中科技大學(xué)文華學(xué)院歡迎您\n"); </p><p> printf("\n\t\t\t--------- 歡迎使用學(xué)生管理系統(tǒng)\n\n\t\t\t\t\t-----------\n"); </p><p> printf("*********************
15、****************MENU***************************************\n"); </p><p> printf("\t\t\t1. 輸入學(xué)生成績(jī)記錄 Input the record\n"); /*輸入學(xué)生成績(jī)記錄*/ </p><p> printf("\t\t\t2. 排序并顯示 Sort
16、to make new a file\n"); /*排序*/</p><p> printf("\t\t\t3. 按班級(jí)顯示成績(jī)單 Print the record\n"); /*顯示*/ </p><p> printf("\t\t\t4. 查找個(gè)人成績(jī) Search record on name\n"); /*查找*/ </p
17、><p> printf("\t\t\t5. 修改 Modify a record\n"); /*修改*/ </p><p> printf("\t\t\t6. 退出 Quit\n"); /*退出*/ </p><p> printf("*************************************
18、*******************************************\n"); </p><p> printf("\n\t\t\t輸入你的選擇Enter your choice(1~7):"); </p><p> fflush(stdin);</p><p> m=getchar(); </p>
19、<p><b> do</b></p><p> {switch(m)</p><p><b> { </b></p><p> case '1':input();zcd();break; </p><p> case '2':sort();sy
20、stem("pause");zcd();break;</p><p> case '3':print();system("pause");break; </p><p> case '4':search();zcd();break; </p><p> case '5':m
21、odify();system("pause");zcd();break; </p><p> case '6':exit(0); /*如菜單返回值為7則程序結(jié)束*/ </p><p> default:printf("錯(cuò)誤命令"); getchar();zcd();</p><p><b>
22、} </b></p><p> } while(1);</p><p><b> }</b></p><p><b> 3輸入信息函數(shù) </b></p><p> void input()</p><p><b> {</b><
23、;/p><p> system("cls");</p><p><b> int i;</b></p><p><b> char a;</b></p><p> for(i=0;i<NUM;i++)</p><p> { printf(&q
24、uot; \n請(qǐng)輸入學(xué)生的學(xué)期:");</p><p> scanf("%d",&stu[i].term);</p><p> printf(" \n請(qǐng)輸入學(xué)生的學(xué)號(hào):");</p><p> fflush(stdin);</p><p> scanf("%d&quo
25、t;,&stu[i].num);</p><p> printf(" \n請(qǐng)輸入學(xué)生的班級(jí):");</p><p> scanf("%d",&stu[i].classes);</p><p> printf("\n請(qǐng)輸入學(xué)生的姓名:");</p><p> s
26、canf("%s", stu[i].name) ;</p><p> printf("\n請(qǐng)輸入學(xué)生的語(yǔ)文成績(jī):");</p><p> scanf("%d",&stu[i].score[0]);</p><p> printf("\n請(qǐng)輸入學(xué)生的數(shù)學(xué)成績(jī):");</
27、p><p> scanf("%d", &stu[i].score[1]); </p><p> printf("\n請(qǐng)輸入學(xué)生的英語(yǔ)成績(jī):");</p><p> scanf("%d", &stu[i].score[2]);</p><p> printf(&q
28、uot;\n請(qǐng)輸入學(xué)生的計(jì)算機(jī)成績(jī):");</p><p> scanf("%d", &stu[i].score[3]);</p><p> stu[i].sum=stu[i].score[0]+stu[i].score[1]+stu[i].score[2]+stu[i].score[3];//算總分和平均</p><p>
29、 stu[i].average=(float)stu[i].sum/4.0;</p><p> printf("是否要繼續(xù)添加(按N&n退出)");</p><p> fflush(stdin);</p><p> a=getchar();</p><p> if(a=='n'||a==&
30、#39;N')</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> 4、排序并顯示函數(shù) </p><p> void sort()</p&g
31、t;<p><b> {</b></p><p> int i,j=0;</p><p> float temp;</p><p> for(i=0;i<NUM;i++)</p><p><b> {</b></p><p> stu[i].s
32、um=stu[i].score[0]+stu[i].score[1]+stu[i].score[2]+stu[i].score[3];</p><p> stu[i].average=(float)stu[i].sum/4.0;</p><p><b> } </b></p><p> for(i=0;i<NUM-1;i++)&
33、lt;/p><p><b> {</b></p><p> for(j=i+1;j<NUM;j++)</p><p><b> {</b></p><p> if(stu[i].sum<stu[j].sum)</p><p><b> {<
34、/b></p><p> temp=stu[i].sum;</p><p> stu[i].sum=stu[j].sum;</p><p> stu[j].sum=temp;</p><p><b> }</b></p><p><b> }</b></
35、p><p><b> }</b></p><p> printf("學(xué)號(hào)\t姓名\t班級(jí) 語(yǔ)文 數(shù)學(xué) 英語(yǔ) 計(jì)算機(jī) 總分 平均分\n");</p><p> for(i=0;i<NUM;i++)</p><p> printf("%d\t%s\t%d%5d%5d%5d%6d%7d%
36、8.2f\n",stu[i].num,stu[i].name,stu[i].classes,</p><p> stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].sum,stu[i].average); </p><p> /*輸出學(xué)生信息*/</p><p>
37、<b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> system("pause");system("cls");print();</p><p><b>
38、 } </b></p><p> 5查找并顯示一個(gè)記錄 </p><p> void search() </p><p><b> { </b></p><p> system("cls");/*清屏*/</p><p> int number=
39、0,i; </p><p> printf("\t\t\t 請(qǐng)輸入要查找學(xué)生的學(xué)號(hào):"); </p><p> scanf("%d",&number);</p><p> printf("學(xué)號(hào)\t姓名\t班級(jí) 語(yǔ)文 數(shù)學(xué) 英語(yǔ) 計(jì)算機(jī) 總分 平均分\n");</p><
40、p> for(i=0;i<NUM;i++)</p><p> if(number==stu[i].num) break;/*查找判斷*/ </p><p><b> if(i<NUM)</b></p><p> {printf("%d\t%s\t%d%5d%5d%5d%6d%7d%8.2f\n",s
41、tu[i].num,stu[i].name,stu[i].classes,</p><p> stu[i].score[0],stu[i].score[1],stu[i].score[2], stu[i].score[3],stu[i].sum,stu[i].average); /*輸出學(xué)生信息*/</p><p><b> }</b></p>&l
42、t;p><b> else</b></p><p> printf("沒(méi)找到該學(xué)生的信息\n");</p><p> system("pause");</p><p><b> }</b></p><p> 6.按學(xué)期、按班級(jí)輸出成績(jī)函數(shù)<
43、;/p><p> void print()</p><p><b> {</b></p><p> system("cls");</p><p><b> char a;</b></p><p> printf("1、按學(xué)期輸出\n&quo
44、t;);</p><p> printf("2、按班級(jí)輸出\n");</p><p> printf("3、返回\n");</p><p> fflush(stdin);</p><p> a=getchar();</p><p><b> switch(a)
45、</b></p><p><b> {</b></p><p> case '1':print1();</p><p> case '2':print2();</p><p> case '3':zcd();</p><p>
46、default:print();</p><p><b> }</b></p><p><b> } </b></p><p> void print1()//按學(xué)期</p><p><b> {</b></p><p><b> i
47、nt i,m;</b></p><p> printf("請(qǐng)輸入學(xué)期:\n");</p><p> scanf("%d",&m);</p><p> printf("學(xué)號(hào)\t姓名\t班級(jí) 語(yǔ)文 數(shù)學(xué) 英語(yǔ) 計(jì)算機(jī) 總分 平均分\n");</p><p>
48、for(i=0;i<NUM;i++)</p><p><b> {</b></p><p> if(m==stu[i].term)</p><p> printf("%d\t%s\t%d%5d%5d%5d%6d%7d%8.2f\n",stu[i].num,stu[i].name,stu[i].classes,&l
49、t;/p><p> stu[i].score[0],stu[i].score[1],stu[i].score[2], stu[i].score[3],stu[i].sum,stu[i].average); /*輸出學(xué)生信息*/</p><p><b> }</b></p><p> system("pause");syst
50、em("cls");print();</p><p><b> }</b></p><p> void print2()//按班級(jí)</p><p><b> {</b></p><p> int i,j,k;</p><p> printf(&q
51、uot;請(qǐng)輸入班級(jí):\n");</p><p> scanf("%d",&k);</p><p> printf("學(xué)號(hào)\t姓名\t班級(jí) 語(yǔ)文 數(shù)學(xué) 英語(yǔ) 計(jì)算機(jī) 總分 平均分\n");</p><p> for(i=0;i<NUM;i++)</p><p><b&g
52、t; {</b></p><p> if(k==stu[i].classes)</p><p><b> {</b></p><p> stu[i].sum=stu[i].score[0]+stu[i].score[1]+stu[i].score[2]+stu[i].score[3];</p><p>
53、; stu[i].average=stu[i].sum/4.0;</p><p> printf("%d\t%s\t%d%5d%5d%5d%6d%7d%8.2f\n",stu[i].num,stu[i].name,stu[i].classes,</p><p> stu[i].score[0],stu[i].score[1],stu[i].score[2], st
54、u[i].score[3],stu[i].sum,stu[i].average); /*輸出學(xué)生信息*/</p><p><b> }</b></p><p><b> }</b></p><p> printf("輸出不及格學(xué)生名單及成績(jī):\n");</p><p>
55、printf("學(xué)號(hào)\t姓名\t班級(jí) 語(yǔ)文 數(shù)學(xué) 英語(yǔ) 計(jì)算機(jī) \n");</p><p> for(i=0;i<NUM;i++) </p><p> {for(j=0;j<4;j++)</p><p><b> {</b></p><p> if(stu[i].score[j]&
56、lt;60&&k==stu[i].classes) /*輸出不及格學(xué)生名單及成績(jī)*/</p><p> printf("%d\t%s\t%d%5d%5d%5d%6d\n",stu[i].num,stu[i].name,stu[i].classes,</p><p> stu[i].score
57、[0],stu[i].score[1],stu[i].score[2], stu[i].score[3]);</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> system(&q
58、uot;pause");system("cls");print();</p><p><b> }</b></p><p><b> 7修改成績(jī)函數(shù)</b></p><p> void modify() </p><p><b&g
59、t; { </b></p><p> system("cls");</p><p> int number,i; </p><p> printf("\t\t\t請(qǐng)輸入要修改信息的學(xué)生學(xué)號(hào):");</p><p> scanf("\t\t\t%d",&
60、;number);</p><p> for(i=0;i<NUM;i++)</p><p> if(number=stu[i].num) break;/*查找判斷*/ </p><p> if(i<NUM)/*查找判斷*/ </p><p><b> { </b></p><p&
61、gt; printf("請(qǐng)輸入修改后的學(xué)生的信息:");</p><p> printf(" \n請(qǐng)輸入學(xué)生的學(xué)期:");</p><p> scanf("%d",&stu[i].term);</p><p> printf(" \n請(qǐng)輸入學(xué)生的學(xué)號(hào):");</p&
62、gt;<p> fflush(stdin);</p><p> scanf("%d",&stu[i].num);</p><p> printf(" \n請(qǐng)輸入學(xué)生的班級(jí):");</p><p> scanf("%d",&stu[i].classes);</p&g
63、t;<p> printf("\n請(qǐng)輸入學(xué)生的姓名:");</p><p> scanf("%s", stu[i].name) ;</p><p> printf("\n請(qǐng)輸入學(xué)生的語(yǔ)文成績(jī):");</p><p> scanf("%d",&stu[i].s
64、core[0]);</p><p> printf("\n請(qǐng)輸入學(xué)生的數(shù)學(xué)成績(jī):");</p><p> scanf("%d", &stu[i].score[1]); </p><p> printf("\n請(qǐng)輸入學(xué)生的英語(yǔ)成績(jī):");</p><p> scanf
65、("%d", &stu[i].score[2]);</p><p> printf("\n請(qǐng)輸入學(xué)生的計(jì)算機(jī)成績(jī):");</p><p> scanf("%d", &stu[i].score[3]); </p><p><b> }</b></p>
66、<p><b> else</b></p><p> printf("沒(méi)找到該學(xué)生的信息\n");</p><p> system("paues");system("cls");zcd();</p><p><b> } </b><
67、/p><p><b> 七.運(yùn)行過(guò)程</b></p><p><b> 主菜單</b></p><p><b> 成績(jī)錄入</b></p><p><b> 統(tǒng)計(jì)排序</b></p><p><b> 按學(xué)期輸出成績(jī)
68、</b></p><p><b> 按班級(jí)輸出成績(jī)</b></p><p><b> 查找個(gè)人成績(jī)</b></p><p><b> 修改單個(gè)學(xué)生信息</b></p><p> 八.設(shè)計(jì)總結(jié)經(jīng)過(guò)幾周的課程設(shè)計(jì),我學(xué)到了很多東西:①鞏固和加深了對(duì)編程的理
69、解,提高綜合運(yùn)用本課程所學(xué)知識(shí)的能力。②培養(yǎng)了我選用參考書(shū),查閱手冊(cè)及文獻(xiàn)資料的能力。培養(yǎng)獨(dú)立思考,深入研究,分析問(wèn)題、解決問(wèn)題的能力。③經(jīng)過(guò)實(shí)際編譯系統(tǒng)的分析設(shè)計(jì)、編程調(diào)試,掌握應(yīng)用軟件的分析方法和工程設(shè)計(jì)方法。④能夠按要求編寫(xiě)課程設(shè)計(jì)報(bào)告書(shū),能正確闡述設(shè)計(jì)和實(shí)驗(yàn)結(jié)果,正確繪制系統(tǒng)和程序框圖。</p><p> 課程設(shè)計(jì)是把我們所學(xué)的理論知識(shí)進(jìn)行系統(tǒng)的總結(jié)并應(yīng)用于實(shí)踐的良好機(jī)會(huì),有利于加強(qiáng)我們用知識(shí)理論
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c語(yǔ)言學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- c語(yǔ)言學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)報(bào)告 (2)
- c語(yǔ)言學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)報(bào)告 (3)
- 課程設(shè)計(jì)-c語(yǔ)言學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)報(bào)告---學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)報(bào)告--學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)報(bào)告----學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)報(bào)告--學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)報(bào)告-學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)報(bào)告學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)報(bào)告
- c語(yǔ)言課程設(shè)計(jì)報(bào)告--學(xué)生成績(jī)管理系統(tǒng)
- 課程設(shè)計(jì)報(bào)告(學(xué)生成績(jī)管理系統(tǒng)c語(yǔ)言)
- c語(yǔ)言課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)-學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)----學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論