c語言學(xué)生成績管理系統(tǒng)實(shí)訓(xùn)報(bào)告(含源代碼)_第1頁
c語言學(xué)生成績管理系統(tǒng)實(shí)訓(xùn)報(bào)告(含源代碼)_第2頁
c語言學(xué)生成績管理系統(tǒng)實(shí)訓(xùn)報(bào)告(含源代碼)_第3頁
c語言學(xué)生成績管理系統(tǒng)實(shí)訓(xùn)報(bào)告(含源代碼)_第4頁
c語言學(xué)生成績管理系統(tǒng)實(shí)訓(xùn)報(bào)告(含源代碼)_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、鄭州輕工業(yè)學(xué)院實(shí) 訓(xùn) 報(bào) 告實(shí)訓(xùn)名稱: C語言程序設(shè)計(jì)實(shí)訓(xùn) 姓 名: 徐博 院 (系): 軟件學(xué)院 專業(yè)班級(jí): 網(wǎng)頁設(shè)計(jì)02 學(xué) 號(hào): 0 指導(dǎo)教師: 成 績: 時(shí)間: 2015年 1月 5 日至 2015年 1 月9日一 設(shè)計(jì)項(xiàng)目:學(xué)生成績管理系統(tǒng)二 總體設(shè)計(jì):1 程序設(shè)計(jì)組成框圖:學(xué)生成績管理系統(tǒng)輸入學(xué)生成績查看學(xué)生成績及成績排序通過學(xué)號(hào)查詢學(xué)生成績統(tǒng)計(jì)成績信息通過學(xué)號(hào)修改學(xué)生成績添加學(xué)生成績通過學(xué)號(hào)刪除學(xué)生成績保存學(xué)生成績退出程序2:模塊功能說明:1 輸入功能:輸入學(xué)生姓名學(xué)號(hào)及成績。2 查看功能:輸出姓名學(xué)號(hào)及各科成績。3 查詢功能:通過學(xué)號(hào)查詢學(xué)生姓名及各科成績。 4 統(tǒng)計(jì)功能:統(tǒng)計(jì)

2、班級(jí)學(xué)生及格率,優(yōu)秀率,各個(gè)學(xué)生成績方差等。5 修改功能:通過輸入學(xué)號(hào)修改指定學(xué)生的錯(cuò)誤信息。6添加功能:添加學(xué)生信息。7刪除功能:通過輸入學(xué)號(hào)輸入指定學(xué)生信息。8保存功能:將學(xué)生信息保存。9 退出系統(tǒng)。 3:主要函數(shù)之間的調(diào)用關(guān)系及各自功能:主要函數(shù)的函數(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);

3、void modify(void);void delscore(void);void menu(void);i. 在菜單界面輸入1,調(diào)用函數(shù)inputscore( )實(shí)現(xiàn)輸入學(xué)生成績信息功能。ii. 在菜單界面2,調(diào)用函數(shù)lookscore( )實(shí)現(xiàn)學(xué)生成績按平均分高低排序輸。出,同時(shí)lookscore()函數(shù)調(diào)用avergescore()函數(shù)實(shí)現(xiàn)各個(gè)學(xué)生平均分的計(jì)算。iii. 在菜單界面輸入3,調(diào)用searchscore()函數(shù)實(shí)現(xiàn)通過學(xué)號(hào)查找學(xué)生成績信息功能。iv. 在菜單界面輸入4,調(diào)用statistic()函數(shù)輸出班級(jí)及格率,優(yōu)秀率,學(xué)生成績方差,不及格學(xué)生名單。v. 在菜單界面輸入5

4、,調(diào)用modify()函數(shù)實(shí)現(xiàn)通過學(xué)號(hào)修改學(xué)生成績的功能vi. 在菜單界面輸入6,調(diào)用add()函數(shù)實(shí)現(xiàn)添加學(xué)生成績。vii. 在菜單界面輸入7,調(diào)用delscore()函數(shù)實(shí)現(xiàn)刪除指定學(xué)生成績。viii. 在菜單界面輸入8,調(diào)用savescore()函數(shù)將學(xué)生成績信息保存。ix. 在菜單界面輸入9,退出成績管理系統(tǒng)。開始輸入指令19輸入成績查詢成績成績統(tǒng)計(jì)修改成績添加成績刪除成績保存成績顯示成績123456789退出三 程序運(yùn)行效果截圖1 主菜單2 輸入成績3 查看成績4 查詢成績5統(tǒng)計(jì)成績6修改成績7 添加成績8 刪除成績9保存成績四 個(gè)人總結(jié)整個(gè)程序主要運(yùn)用了課本上的基礎(chǔ)知識(shí),并未有太大

5、創(chuàng)新,通過for循環(huán),循環(huán)輸入學(xué)生成績。在學(xué)生成績排序中運(yùn)用選擇法,同時(shí)實(shí)現(xiàn)學(xué)生名次的確定。在刪除指定學(xué)生成績時(shí),先確定信息存儲(chǔ)位置即其在結(jié)構(gòu)體數(shù)組中的序號(hào),通過結(jié)構(gòu)體變量的整體賦值將從指定位置以后的學(xué)生信息賦給前一個(gè)結(jié)構(gòu)體變量,并將學(xué)生總數(shù)n減1,實(shí)現(xiàn)刪除學(xué)生成績信息。源代碼#include#include#include#include#define N 30#define M 3typedef struct studentchar number10;char name20;float scoreM;float aver;STU;STU stuN;int n;void inputscore

6、(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);void main()short int flag=0;menu();doflag=1;switch(getch()case 1 : inputscore();break; /*輸入成

7、績*/case 2 : lookscore();break;/*查看成績*/case 3 : searchscore();break;/*查找成績*/case 4 : statistic();break;/*成績統(tǒng)計(jì)*/case 5 : modify();break;/*修改成績*/case 6 : add();break;/*添加成績*/case 7 : delscore();break;/*刪除成績*/case 8 : savescore();break;/*保存成績*/case 9 :exit(0);/*退出程序*/default : printf(輸入有誤n);printf(按任意鍵繼

8、續(xù)n);getch();menu();while (flag=1);void menu(void)system(cls);printf(n);printf(*歡迎進(jìn)入學(xué)生成績管理系統(tǒng)*n);printf( 菜單 n);printf(輸入成績-1n);printf(查看成績及成績排序-2n);printf(查詢學(xué)生成績-3n);printf(成績統(tǒng)計(jì)-4n);printf(修改成績-5n);printf(添加成績-6n);printf(刪除成績-7n);printf(保存成績-8n);printf(退出系統(tǒng)-9n);printf(*n);printf(請(qǐng)輸入您的選擇n);/*輸入各個(gè)同學(xué)的學(xué)生信

9、息*/void inputscore(void)int i,j;system(cls);printf(請(qǐng)輸入學(xué)生總數(shù):n);scanf(%d,&n);printf(提示:*輸入學(xué)號(hào)時(shí)請(qǐng)輸入位數(shù)為8位的數(shù)字*n);/*因二維表上下需對(duì)正故有此要求*/for(i=0;in;i+)printf(請(qǐng)輸入學(xué)生%d的學(xué)號(hào) 姓名:n,i+1);scanf(%s%s,stui.number,);printf(請(qǐng)輸入學(xué)生成績:n);printf(數(shù)學(xué)t英語t計(jì)算機(jī)n);for(j=0;jM;j+)scanf(%f,&stui.scorej);printf(成功輸入n);/*計(jì)算各個(gè)同學(xué)的平均分

10、*/void avergescore(void)int i,j;for(i=0;in;i+)stui.aver=0;for(j=0;jM;j+)stui.aver+=stui.scorej;stui.aver=stui.aver/M;/*查看學(xué)生成績及根據(jù)平均分對(duì)學(xué)生進(jìn)行排序*/void lookscore(void)int i,j,k;STU t;avergescore();system(cls);for(i=0;in-1;i+)for(k=i,j=i+1;jstuk.aver)k=j;if(k!=j)t=stuk;stuk=stui;stui=t;printf(名次t學(xué)號(hào)tt姓名t數(shù)學(xué)t英

11、語t計(jì)算機(jī)t平均分n);for(i=0;in;i+)printf(%dt%st%st,i+1,stui.number,);for(j=0;jM;j+)printf(%4.2ft,stui.scorej);printf(%4.2f,stui.aver);printf(n);/*通過輸入學(xué)號(hào)查找學(xué)生成績*/void searchscore(void)char a10;int i,j;system(cls);printf(請(qǐng)輸入需查詢的學(xué)生學(xué)號(hào)n);scanf(%s,a);for(i=0;in;i+)if(strcmp(a,stui.number)=0)printf(名次t學(xué)號(hào)tt

12、姓名t數(shù)學(xué)t英語t計(jì)算機(jī)t平均分n);printf(%dt%st%st,i+1,stui.number,);for(j=0;jM;j+)printf(%4.2ft,stui.scorej);printf(%4.2f,stui.aver);printf(n);break;/*找到該學(xué)生成績信息后跳出for循環(huán)*/elseprintf(未找到該學(xué)生信息n);/*統(tǒng)計(jì)學(xué)生成績信息,平均分及格率,優(yōu)秀率,成績方差*/void statistic(void)STU *p=stu;int i,j;float count=0.0,sum=0.0;system(cls);for(i=0;ia

13、ver;printf(該班級(jí)平均分為%4.2fn,sum/n);/*平均分計(jì)算*/for(i=0;iaver=60)count+;printf(該班級(jí)及格率為%4.2f%n,count/n*100);/*及格率計(jì)算*/count=0.0;for(i=0;iaver=90)count+;printf(該班級(jí)優(yōu)秀率為%4.2f%n,count/n*100);/*優(yōu)秀率計(jì)算*/for(i=0;in;i+)for(j=0;jscorej-(p+i)-aver)*(p+i)-scorej-(p+i)-aver);sum=sum/n;printf(學(xué)生%s的成績方差為%4.2fn,(p+i)-name,s

14、um);/*方差計(jì)算*/printf(平均分低于60的學(xué)生名單n);for(i=0;in;i+)if(stui.aver60)printf(%sn,);/*統(tǒng)計(jì)不及格學(xué)生名單*/*修改學(xué)生成績*/void modify(void)char a10;int i,j;system(cls);printf(請(qǐng)輸入需要修改成績的學(xué)生學(xué)號(hào)n);scanf(%s,a);for(i=0;in;i+)if(strcmp(a,stui.number)=0)printf(名次t學(xué)號(hào)tt姓名t數(shù)學(xué)t英語t計(jì)算機(jī)t平均分n);printf(%dt%st%st,i+1,stui.number,stui

15、.name);for(j=0;jM;j+)printf(%4.2ft,stui.scorej);printf(%4.2f,stui.aver);printf(n);printf(請(qǐng)重新輸入該學(xué)生的學(xué)號(hào) 姓名:n);scanf(%s%s,stui.number,);printf(請(qǐng)重新輸入學(xué)生成績:n);printf(數(shù)學(xué)t英語t計(jì)算機(jī)n);for(j=0;jM;j+)scanf(%f,&stui.scorej);/*找到該學(xué)生成績后進(jìn)行修改,跳出for循環(huán)*/printf(修改成功n);break;elseprintf(未找到該學(xué)生信息n);/*添加學(xué)生成績*/void ad

16、d(void)int a,i,j;system(cls);printf(請(qǐng)輸入新增加的學(xué)生人數(shù):n);scanf(%d,&a);n=n+a;for(i=n-a;in;i+)printf(請(qǐng)輸入學(xué)生%d的學(xué)號(hào) 姓名:n,i+1);scanf(%s%s,stui.number,);printf(請(qǐng)輸入學(xué)生成績:n);printf(數(shù)學(xué)t英語t計(jì)算機(jī)n);for(j=0;jM;j+)scanf(%f,&stui.scorej);printf(添加成功n);/*刪除學(xué)生成績*/void delscore(void)int i,j,c;char m,a10;system(cls);pr

17、intf(請(qǐng)輸入學(xué)生學(xué)號(hào)n);scanf(%s,a);for(i=0;in;i+)if(strcmp(a,stui.number)=0)printf(名次t學(xué)號(hào)tt姓名t數(shù)學(xué)t英語t計(jì)算機(jī)t平均分n);printf(%dt%st%st,i+1,stui.number,);for(j=0;jM;j+)printf(%4.2ft,stui.scorej);printf(%4.2f,stui.aver);printf(n);c=i;break;elseprintf(未找到該學(xué)生信息n);printf(是否刪除該學(xué)生成績(y/n)n);scanf(%s,&m);if(m=y)for(i=c;in-1;i+)stui=stui+1;/*結(jié)構(gòu)體整體賦值將后一位學(xué)生成績信息拷貝進(jìn)入前一位學(xué)生信息的存儲(chǔ)位置*/n=n-1;/*刪除該學(xué)生信息后學(xué)生總數(shù)減一*/printf(刪除成績成功n);elseprintf(刪除成績失敗n);/*保存學(xué)生成績*/void save

溫馨提示

  • 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)論