![c語言學生成績管理系統(tǒng)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/17/158a3102-5550-44ff-8174-5ec7cbac7784/158a3102-5550-44ff-8174-5ec7cbac77841.gif)
![c語言學生成績管理系統(tǒng)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/17/158a3102-5550-44ff-8174-5ec7cbac7784/158a3102-5550-44ff-8174-5ec7cbac77842.gif)
![c語言學生成績管理系統(tǒng)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/17/158a3102-5550-44ff-8174-5ec7cbac7784/158a3102-5550-44ff-8174-5ec7cbac77843.gif)
![c語言學生成績管理系統(tǒng)_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/17/158a3102-5550-44ff-8174-5ec7cbac7784/158a3102-5550-44ff-8174-5ec7cbac77844.gif)
![c語言學生成績管理系統(tǒng)_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/17/158a3102-5550-44ff-8174-5ec7cbac7784/158a3102-5550-44ff-8174-5ec7cbac77845.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、C語言程序設計課程設計報告學生成績管理系統(tǒng)word文檔可自由復制編輯設計人:指導教師:xxxxx2011年XX月XX日提交課題選定與任務分解課題名稱:班級:組長:聯(lián)系電話:任務分解表:模塊序號模塊名稱承擔人學號(一)設計目的3(二)設計內(nèi)容3(三)總體設計4(四)詳細設計5-10(五)調(diào)試與測試11(六)設計總結(jié)12一、課程設計目的通過課程設計,加深對結(jié)構化設計思想的理解,能對系統(tǒng)功能進行分析, 并設計合理的模塊化結(jié)構。1、通過課程設計,學會設計數(shù)據(jù)結(jié)構。其中包括對結(jié)構數(shù)組、數(shù)據(jù)文件等知識的運用。2、通過課程設計,提高程序開發(fā)功能,能運用合理的控制流程編寫清晰高效的程序。3、通過課程設計,訓練
2、 C程序調(diào)試能力,能將一個中小型各級組織系統(tǒng)聯(lián)調(diào)通過。4、通過課程設計,開發(fā)一個中小型系統(tǒng),掌握系統(tǒng)研發(fā)全過程。5、通話課程設計,培養(yǎng)分析問題、解決實際問題的能力。二、課程設計內(nèi)容及任務要求:設計一個實用的成績管理系統(tǒng),能以簡便高效的方式對成績進行管理和檢索,具體要示:錄入:學生的學號、姓名、班級、五門課成績。(1) 更新:(2) 瀏覽:(3) 查詢:能實現(xiàn)指定聯(lián)系人信息查詢或指定電話號碼查詢功能。(4) 系統(tǒng)以菜單方式工作,界面友好,易于操作,容錯性好。三總體設計:1程序設計組成框圖:2:模塊功能說明:1輸入功能:輸入學生姓名學號及成績。2查看功能:輸出姓名學號及各科成績。3查詢功能:通過學
3、號查詢學生姓名及各科成績。4排序功能:根據(jù)平均分來對學生進行排序。5修改功能:通過輸入學號修改指定學生的錯誤信息。6添加功能:添加學生信息。7刪除功能:通過輸入學號輸入指定學生信息。8保存功能:將學生信息保存。9統(tǒng)計功能:統(tǒng)計班級學生及格率,優(yōu)秀率,各個學生成績方差等。0退出系統(tǒng)。3:主要函數(shù)之間的調(diào)用關系及各自功能:主要函數(shù)的函數(shù)原型void inputscore(void);void savescore(void);void avergescore(void);void modifyscore(void);void lookscore(void);void searchscore(void
4、);void statistic(void);void add(void);void modify(void);void delscore(void);void menu(void);i. 在菜單界面輸入1,調(diào)用函數(shù)inputscore()實現(xiàn)輸入學生成績信息功能。ii. 在菜單界面2,調(diào)用函數(shù)lookscore()實現(xiàn)學生成績按平均分高低排序輸出,同時lookscore()函數(shù)調(diào)用avergescore(1S數(shù)實現(xiàn)各個學生平均分的計算。iii. 在菜單界面輸入3,調(diào)用searchscore(的數(shù)實現(xiàn)通過學號查找學生成績信息功 能。iv. 在菜單界面4,調(diào)用函數(shù)lookscore()實現(xiàn)學生成
5、績按平均分高低排序輸。出, 同時lookscore()函數(shù)調(diào)用avergescore(1S數(shù)實現(xiàn)各個學生平均分的計算。v. 在菜單界面輸入5,調(diào)用modify()函數(shù)實現(xiàn)通過學號修改學生成績的功能vi. 在菜單界面輸入6,調(diào)用add()函數(shù)實現(xiàn)添加學生成績。vii. 在菜單界面輸入7,調(diào)用delscore()函數(shù)實現(xiàn)刪除指定學生成績。viii. 在菜單界面輸入8,調(diào)用savescore(1S數(shù)將學生成績信息保存。ix. 在菜單界面輸入9,調(diào)用statistic。函數(shù)輸出班級及格率,優(yōu)秀率,學生成績方 差,不及格學生名單。x. 在菜單界面輸入0,退出成績管理系統(tǒng)。3模塊調(diào)用圖四、詳細設計(1)定
6、義結(jié)構體設計本程序中,定義了多個結(jié)構體。首先對于學生的各項詳細信息定義結(jié)構體結(jié)構體及其成員如下:typedef struct studentchar number10;char name20;float scoreM;float aver;STU;(2)模塊接口設計本程序執(zhí)行的入口是main函數(shù),然后是菜單函數(shù),在菜單函數(shù)中對選項進行選擇以后,接下來在do-while語句中再套用switch語句實現(xiàn)對各個函數(shù)的調(diào)用。被調(diào)用的函數(shù)都是沒有形參的,但是通過對數(shù)據(jù)文件的使用,可以使得每一次的函數(shù)調(diào)用都能夠講忘記保存到磁盤中,而不需要 返回值。最后,再從main函數(shù)中結(jié)束整個程序的運行。其中涉及到被調(diào)
7、用的函數(shù)有:void inputscore(void);void savescore(void);void avergescore(void);void modifyscore(void);void lookscore(void);void searchscore(void);void statistic(void);void add(void);void modify(void);void delscore(void);void menu(void);(3)各功能函數(shù)代碼及流程圖inputscore 函數(shù):此函數(shù)的主要功能是將學生成績添加到成績管理中;首先要要輸入學生的數(shù)量n,然后再根據(jù)j&
8、lt;n這一條件來循環(huán)輸入學生的成績,就完成了整個過程。avergescore 函數(shù):inti,j;N此函數(shù)要實現(xiàn)的功能是將選擇的已有的學生成績平均,利用循環(huán)將每個學生的平均分計算出來。pruatBt "* D4.2F,rJi,Li X-此函數(shù)的功能是在原有學生信息的基礎上對學生的成績進查看和排序。Searchscore 函數(shù):word文檔可自由復制編輯pruirft “我 i 1 ii 1?7break:此函數(shù)的功能主要是通過輸入學生學號來查詢學生成績Statistic 函數(shù)該函數(shù)主要是統(tǒng)計學生成績信息,平均分及格率,優(yōu)秀率,成績方差word文檔可自由復制編輯Modify函數(shù)J+*
9、breik;l-H-該函數(shù)主要用來修改學生成績。Add函數(shù)print貫1詁輪入學上:市hepriirtfO患加成功3,;該函數(shù)用來添加學生成績。delscore 函數(shù)word文檔可自由復制編輯pj-Liattp & *4.2P' Sug皿玳"是件陽綠國,pruMClM你儂旭為一l-t該函數(shù)用來刪除學生成績。savescore 函數(shù)F工E .力口;word文檔可自由復制編輯該函數(shù)用來保存學生成績。五、調(diào)試與測試(1) 調(diào)試過程中的主要問題由于本程序是分模塊設計的,所以運行時選擇完任務并且執(zhí)行完任務后,又會繼續(xù)回到用戶選擇界面,供用戶繼續(xù)選擇任務并執(zhí)行任務,整個程序以文件
10、形式讀寫,所以每次都可對輸入的數(shù)據(jù)進行保存。對于本程序的調(diào)試運行,總體上情況良好。但是,其中也出現(xiàn)了一些小問題:1.一開始用break結(jié)束調(diào)用函數(shù),發(fā)現(xiàn)程序無法返回到主函數(shù)。2無法有效清理屏幕顯示3有時候發(fā)現(xiàn)一些連接錯誤,程序無法正常運行(2) 調(diào)試過程中的問題的解決辦法l.break是只能用來結(jié)束它本身所在的本層循環(huán),而return則是結(jié)束調(diào)用函數(shù),讓程序返回到主函數(shù)。2可以用system( Cls”)來清理屏幕顯示3是一些函數(shù)名錯誤,有打錯的現(xiàn)象,更改后調(diào)試即可六、課程設計總結(jié):我想說課程設計真是一件很累人很傷腦筋的事情,在一周的時間里,我們每天幾乎都要面對 著電腦十個小時以上,上課時去機
11、房寫程序,回到宿舍還要繼續(xù)奮斗;要是只是在電腦面前坐著 也沒有什么難過的,但是在電腦面前還要想著怎么去寫代碼,怎么去安排程序結(jié)構,怎么去實現(xiàn) 想要的程序功能等等一系列的事情;特別是在調(diào)試程序的時候更是讓人頭痛,辛辛苦苦的寫好了 函數(shù),等到調(diào)試運行就出現(xiàn)一堆錯誤,真的拿它沒辦法呀;有的時候還真是后悔當初自己選擇了 這樣一個費精力的專業(yè),不過還好有書本的基礎知識、發(fā)達的網(wǎng)絡通信、知識淵博的老師以及熱 心的同學的幫助,才使我能將那些問題一一解決!雖然課程設計很苦很累,有時候還很令人抓狂,不過現(xiàn)在回想起來它給我的并不只是痛苦的 回憶,它不僅讓拉近了我和同學間的距離,而且對我們學習計算機語言還是很有意義
12、的。在還沒有進行課程設計實訓之前,我對C語言知識的掌握真的只能說是很膚淺,我只知道分開來使用那些語句和語法,對他們根本沒有整體感念,所以在學習C語言時經(jīng)常會感覺很盲目,甚至不知道自己學這些東西是為了什么。通過一周的課程設計,我對C語言有了更深入的了解,同時也建立起了一個對C語言的整體架構和編程思想;我還學到了很多課本上沒有學到的東西,也了解了很多以前不了解的計算機語言方面的知識;他擴充了我的知識,也開拓了我的視野,讓 我們了解了我們學習計算機語言的目的和將來發(fā)展的方向。通過這次的課程設計,讓我明確了學習C語言的目的和重要性,在以后的時間里,我會更加努力的把C語言學好,為以后學習更高級的計算機語
13、言打下好的基礎,并通過與老師同學的交流來不 斷的提升自己的編程和開發(fā)能力!#include<stdio.h>#include<string.h>#include<process.h>#include<conio.h>#define N 30#define M 5 typedef struct student char number10;char name20;float scoreM;float aver;STU;STU stuN; int n;void inputscore(void);void savescore(void);void ave
14、rgescore(void);void modifyscore(void);void lookscore(void);void searchscore(void);void statistic(void);void add(void);void modify(void);void delscore(void);void menu(void);void main()short int flag=0;menu();doflag=1;switch(getch()case '1' : inputscore();break;/*輸入成績*/case '2' : looks
15、core();break;/*查看成績*/case '3' : searchscore();break;/*查找成績*/case '4' : lookscore();break;/*成績排序*/case '5' : modify();break;/*修改成績*/case '6' : add();break;/*添加成績*/case '7' : delscore();break;/*刪除成績*/case '8' : savescore();break;/*保存成績*/case '9'
16、: statistic();break;/*成績統(tǒng)計*/case '0' :exit(0);/*退出程序*/default : printf("輸入有誤 n");printf("按任意鍵繼續(xù)n");getch();menu();while (flag=1);void menu(void)system("cls");printf("n");printf("* 歡迎進入學生成績管理系統(tǒng)*坨");printf("菜單 n");printf("輸入成績 1n
17、");printf("查看成績2n");printf("查詢學生成績3n");printf("成績排序 4n");printf("修改成績5n");printf("添加成績6n");printf("刪除成績7n");printf("保存成績8n");printf("成績統(tǒng)計9n");printf("退出系統(tǒng)0n");printf(”*n");printf("請輸入您的選擇n")
18、; void inputscore(void) /*輸入各個同學的學生信息*/int i,j;system("cls");printf("請輸入學生總數(shù):n");scanf("%d",&n);printf("提示:*輸入學號時請輸入位數(shù)為8位的數(shù)字*n");/*因二維表上下需對正故有此要求*/for(i=0;i<n;i+)printf("請輸入學生 %d的學號姓名:n",i+1);scanf("%s%s",stui.number,);print
19、f("請輸入學生成績:n");printf("數(shù)學t化學t計算機t生物t物理n");for(j=0;j<M;j+)scanf("%f",&stui.scorejD;printf("成功輸入 n");/*計算各個同學的平均分*/ void avergescore(void) int i,j;for(i=0;i<n;i+)stui.aver=0;for(j=0;j<M;j+) stui.aver+=stui.scorej; stui.aver=stui.aver/M;/* 查看學生成績及根據(jù)平
20、均分對學生進行排序 */void lookscore(void)int i,j,k;STU t;avergescore();system("cls");for(i=0;i<n-1;i+)for(k=i,j=i+1;j<n;j+)if(stuj.aver>stuk.aver)k=j;if(k!=j)t=stuk;stuk=stui;stui=t;printf("名次t學號tt姓名t數(shù)學t化學t計算機t生物t物理t平均分n");for(i=0;i<n;i+) printf("%dt%st%st",i+1,stui.
21、number,);for(j=0;j<M;j+)printf("%4.2ft",stui.scorejD;printf("%4.2f",stui.aver);/*printf("n");通過輸入學號查找學生成績*/void searchscore(void) char a10;int i,j;system("cls");printf("請輸入需查詢的學生學號n");scanf("%s",a);for(i=0;i<n;i+)if(strcmp(a,
22、stui.number)=0)printf("名次t學號tt姓名t數(shù)學t化學t計算機t生物t物理t平均分n");printf("%dt%st%st",i+1,stui.number,);for(j=0;j<M;j+)printf("%4.2ft",stui.scorejD;printf("%4.2f",stui.aver);printf("n");break;/*找到該學生成績信息后跳出for循 環(huán)*/elseprintf("未找到該學生信息n");/
23、* 統(tǒng)計學生成績信息,平均分及格率,優(yōu)秀率,成績方差 */ void statistic(void)STU *p=stu;int i,j;float count=0.0,sum=0.0;system("cls");for(i=0;i<n;i+)sum+=(p+i)->aver;printf("該班級平均分為 4.2fn",sum/n);/*平均分計算*/for(i=0;i<n;i+) if(p+i)->aver>=60)count+;printf("該班級及格率為 4.2f%n",count/n*100)
24、;/*及格率計算*/count=0.0;for(i=0;i<n;i+)if(p+i)->aver>=90)count+; printf("該班級優(yōu)秀率為 4.2f%n",count/n*100);/*優(yōu)秀率計算*/for(i=0;i<n;i+) for(j=0;j<M;j+)sum=(p+i)->scorej-(p+i)->aver)*(p+i)->scorej-(p+i)->aver);sum=sum/n;printf("學生 %s 的成績方差為 %4.2fn",(p+i)->name,sum
25、);/*方差計算*/printf("平均分低于60的學生名單n");for(i=0;i<n;i+)if(stui.aver<60)printf("%sn",);word文檔可自由復制編輯/*統(tǒng)計不及格學生名單*/*修改學生成績*/void modify(void) char a10;int i,j;system("cls");printf("請輸入需要修改成績的學生學號n");scanf("%s",a);for(i=0;i<n;i+)if(strcmp(a,s
26、tui.number)=0)printf("名次t學號tt姓名t數(shù)學t化學t計算機t生物t物理t平均分n");printf("%dt%st%st",i+1,stui.number,);for(j=0;j<M;j+)printf("%4.2ft",stui.scorejD;printf("%4.2f",stui.aver);printf("n");printf("請重新輸入該學生的學號姓名:n");scanf("%s%s",stui.
27、number,);printf("請重新輸入學生成績:n");printf("數(shù)學t化學t計算機t生物t物理n");for(j=0;j<M;j+) scanf("%f",&stui.scorej);/*找到該學生成績后進行修改,跳出 for循環(huán)*/ printf("修改成功 n");break;elseprintf("未找到該學生信息n");word文檔可自由復制編輯/*添加學生成績 */word文檔可自由復制編輯void add(void) int a,i,j;
28、system("cls");printf("請輸入新增加的學生人數(shù):n");scanf("%d",&a);n=n+a;for(i=n-a;i<n;i+)printf("請輸入學生 %d的學號姓名:n",i+1);scanf("%s%s",stui.number,);printf("請輸入學生成績:n");printf("數(shù)學t化學t計算機t生物t物理n");for(j=0;j<M;j+)scanf("%f",&stui.scorej);/*printf("添加成功 n");刪除學生成績 */void delscore(void) int i,j,c;char m,a10;system("cls");printf("請輸入學生學號n");scanf("%s",a);for(i=0;i<n;i+)if(strc
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年代理銷售合同協(xié)議簡單版(4篇)
- 2025年個人軟件合同樣本(2篇)
- 2025年九年級初三第二學期班主任工作小結(jié)模版(二篇)
- 2025年企業(yè)勞資專項法律服務合同經(jīng)典版(2篇)
- 2025年人教版二年級上語文教學工作總結(jié)模版(三篇)
- 2025年二手商鋪租賃合同標準版本(4篇)
- 2025年三方月嫂保姆合同(三篇)
- 辦公室基礎裝修合作協(xié)議
- 液態(tài)堿液罐車配送合同
- 古建筑修繕服務合同
- 四川省算力基礎設施高質(zhì)量發(fā)展行動方案(2024-2027年)
- 托育園老師培訓
- 人教版八年級英語上冊Unit1-10完形填空閱讀理解專項訓練
- 脊柱外科護理進修心得
- 4.1中國特色社會主義進入新時代+課件-2024-2025學年高中政治統(tǒng)編版必修一中國特色社會主義
- 護理工作中的人文關懷
- 完整液壓系統(tǒng)課件
- 生產(chǎn)制造工藝流程規(guī)范與作業(yè)指導書
- 班級建設方案中等職業(yè)學校班主任能力大賽
- T-TJSG 001-2024 天津市社會組織社會工作專業(yè)人員薪酬指導方案
- 芯片設計基礎知識題庫100道及答案(完整版)
評論
0/150
提交評論