




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、C 語言程序設(shè)計作業(yè)一 設(shè)計項目:學(xué)生成績管理系統(tǒng)二 總體設(shè)計:1 程序設(shè)計組成框圖:學(xué)生成績管理系統(tǒng)輸入學(xué)生成績查看學(xué)生成績及成績排序通過學(xué)號查詢學(xué)生成績統(tǒng)計成績信息通過學(xué)號修改學(xué)生成績添加學(xué)生成績通過學(xué)號刪除學(xué)生成績保存學(xué)生成績退出程序2:模塊功能說明:1 輸入功能:輸入學(xué)生姓名學(xué)號及成績。2 查看功能:輸出姓名學(xué)號及各科成績。3 查詢功能:通過學(xué)號查詢學(xué)生姓名及各科成績。 4 統(tǒng)計功能:統(tǒng)計班級學(xué)生及格率,優(yōu)秀率,各個學(xué)生成績方差等。5 修改功能:通過輸入學(xué)號修改指定學(xué)生的錯誤信息。6添加功能:添加學(xué)生信息。7刪除功能:通過輸入學(xué)號輸入指定學(xué)生信息。8保存功能:將學(xué)生信息保存。9 退出系
2、統(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);void modify(void);1 / 13void delscore(void);void menu(void);i. 在菜單界面輸入1,調(diào)用函數(shù)inputscore( )實現(xiàn)輸入學(xué)生成績信息功
3、能。ii. 在菜單界面2,調(diào)用函數(shù)lookscore( )實現(xiàn)學(xué)生成績按平均分高低排序輸。出,同時lookscore()函數(shù)調(diào)用avergescore()函數(shù)實現(xiàn)各個學(xué)生平均分的計算。iii. 在菜單界面輸入3,調(diào)用searchscore()函數(shù)實現(xiàn)通過學(xué)號查找學(xué)生成績信息功能。iv. 在菜單界面輸入4,調(diào)用statistic()函數(shù)輸出班級及格率,優(yōu)秀率,學(xué)生成績方差,不及格學(xué)生名單。v. 在菜單界面輸入5,調(diào)用modify()函數(shù)實現(xiàn)通過學(xué)號修改學(xué)生成績的功能vi. 在菜單界面輸入6,調(diào)用add()函數(shù)實現(xiàn)添加學(xué)生成績。vii. 在菜單界面輸入7,調(diào)用delscore()函數(shù)實現(xiàn)刪除指定學(xué)
4、生成績。viii. 在菜單界面輸入8,調(diào)用savescore()函數(shù)將學(xué)生成績信息保存。ix. 在菜單界面輸入9,退出成績管理系統(tǒng)。開始輸入指令19輸入成績查詢成績成績統(tǒng)計修改成績添加成績刪除成績保存成績顯示成績123456789退出三 程序運行效果截圖1 主菜單2 輸入成績3 查看成績4 查詢成績5統(tǒng)計成績6修改成績7 添加成績8 刪除成績9保存成績四 個人總結(jié)整個程序主要運用了課本上的基礎(chǔ)知識,并未有太大創(chuàng)新,通過for循環(huán),循環(huán)輸入學(xué)生成績。在學(xué)生成績排序中運用選擇法,同時實現(xiàn)學(xué)生名次的確定。在刪除指定學(xué)生成績時,先確定信息存儲位置即其在結(jié)構(gòu)體數(shù)組中的序號,通過結(jié)構(gòu)體變量的整體賦值將從指
5、定位置以后的學(xué)生信息賦給前一個結(jié)構(gòu)體變量,并將學(xué)生總數(shù)n減1,實現(xiàn)刪除學(xué)生成績信息。源代碼#include<stdio.h>#include<stdlib.h>#include<string.h>#include<process.h>#include<conio.h>#define N 30#define M 3typedef struct studentchar number10;char name20;float scoreM;float aver;float total;STU;STU stuN;int n;void input
6、score(void);void savescore(void);void avergescore(void);void total(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&
7、#39; : inputscore();break; /*輸入成績*/case '2' : lookscore();break;/*查看成績*/case '3' : searchscore();break;/*查找成績*/case '4' : statistic();break;/*成績統(tǒng)計*/case '5' : modify();break;/*修改成績*/case '6' : add();break;/*添加成績*/case '7' : delscore();break;/*刪除成績*/cas
8、e '8' : savescore();break;/*保存成績*/case '9' :exit(0);/*退出程序*/default : printf("輸入有誤n");printf("按任意鍵繼續(xù)n");getch();menu();while (flag=1);void menu(void)system("cls");printf("n");printf("*歡迎進入學(xué)生成績管理系統(tǒng)*n");printf(" 菜單 n");printf(
9、"輸入成績-1n");printf("查看成績及成績排序-2n");printf("查詢學(xué)生成績-3n");printf("成績統(tǒng)計-4n");printf("修改成績-5n");printf("添加成績-6n");printf("刪除成績-7n");printf("保存成績-8n");printf("退出系統(tǒng)-9n");printf("*n");printf("請輸入您的選擇n&quo
10、t;);/*輸入各個同學(xué)的學(xué)生信息(王超)*/void inputscore(void)int i,j;system("cls");printf("請輸入學(xué)生總數(shù):n");scanf("%d",&n);printf("提示:*輸入學(xué)號時請輸入由1位大寫字母和8位數(shù)字組成的學(xué)號,如P01214000*n");/*因二維表上下需對正故有此要求*/for(i=0;i<n;i+)printf("請輸入學(xué)生%d的學(xué)號 姓名:n",i+1);scanf("%s%s",stu
11、i.number,);printf("請輸入學(xué)生成績:n");printf("高數(shù)t物理tC語言n");for(j=0;j<M;j+)scanf("%f",&stui.scorej);printf("成功輸入n");/*計算各個同學(xué)的總分(孫友)*/void total(void)int i,j;for(i=0;i<n;i+)stui.total=0;for(j=0;j<M;j+)stui.total+=stui.scorej;/*計算各個同學(xué)的平均分*/void ave
12、rgescore(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;/*查看學(xué)生成績及根據(jù)平均分對學(xué)生進行排序*/void lookscore(void)int i,j,k;STU t;total();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!=
13、j)t=stuk;stuk=stui;stui=t;printf("名次t學(xué)號tt姓名t高數(shù)t物理tC語言t總分t平均分n");for(i=0;i<n;i+)printf("%dt%st%st",i+1,stui.number,);for(j=0;j<M;j+)printf("%4.2ft",stui.scorej);printf("%4.2ft",stui.total);printf("%4.2f",stui.aver);printf("n")
14、;/*通過輸入學(xué)號查找學(xué)生成績*/void searchscore(void)char a10;int i,j;system("cls");printf("請輸入需查詢的學(xué)生學(xué)號n");scanf("%s",a);for(i=0;i<n;i+)if(strcmp(a,stui.number)=0)printf("名次t學(xué)號tt姓名t高數(shù)t物理tC語言t總分t平均分n");printf("%dt%st%st",i+1,stui.number,);for(j=0;j<M
15、;j+)printf("%4.2ft",stui.scorej);printf("%4.2ft",stui.total);printf("%4.2f",stui.aver);printf("n");break;/*找到該學(xué)生成績信息后跳出for循環(huán)*/elseprintf("未找到該學(xué)生信息n");/*統(tǒng)計學(xué)生成績信息,平均分及格率,優(yōu)秀率*/void statistic(void)STU *p=stu;int i,j;float count=0.0,sum=0.0;system("c
16、ls");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);/*及格率計算*/count=0.0;for(i=0;i<n;i+)if(p+i)->aver>=90)count+;printf("該班級優(yōu)秀率為%4.2f%n",count
17、/n*100);/*優(yōu)秀率計算*/printf("平均分低于60的學(xué)生名單n");for(i=0;i<n;i+)if(stui.aver<60)printf("%sn",);/*統(tǒng)計不及格學(xué)生名單*/*修改學(xué)生成績*/void modify(void)char a10;int i,j;system("cls");printf("請輸入需要修改成績的學(xué)生學(xué)號n");scanf("%s",a);for(i=0;i<n;i+)if(strcmp(a,stui.num
18、ber)=0)printf("名次t學(xué)號tt姓名t高數(shù)t物理tC語言t總分t平均分n");printf("%dt%st%st",i+1,stui.number,);for(j=0;j<M;j+)printf("%4.2ft",stui.scorej);printf("%4.2f",stui.total);printf("%4.2f",stui.aver);printf("n");printf("請重新輸入該學(xué)生的學(xué)號 姓名:n");
19、scanf("%s%s",stui.number,);printf("請重新輸入學(xué)生成績:n");printf("高數(shù)t物理tC語言n");for(j=0;j<M;j+)scanf("%f",&stui.scorej);/*找到該學(xué)生成績后進行修改,跳出for循環(huán)*/printf("修改成功n");break;elseprintf("請確認該學(xué)生是否為本班學(xué)生!n");/*添加學(xué)生成績*/void add(void)int a,i,j;syst
20、em("cls");printf("請輸入新增加的學(xué)生人數(shù):n");scanf("%d",&a);n=n+a;for(i=n-a;i<n;i+)printf("請輸入學(xué)生%d的學(xué)號 姓名:n",i+1);scanf("%s%s",stui.number,);printf("請輸入學(xué)生成績:n");printf("高數(shù)t物理tC語言n");for(j=0;j<M;j+)scanf("%f",&
21、stui.scorej);printf("添加成功n");/*刪除學(xué)生成績*/void delscore(void)int i,j,c;char m,a10;system("cls");printf("請輸入學(xué)生學(xué)號n");scanf("%s",a);for(i=0;i<n;i+)if(strcmp(a,stui.number)=0)printf("名次t學(xué)號tt姓名t高數(shù)t物理tC語言t總分t平均分n");printf("%dt%st%st",i+1,stui.number,);for(j=0;j<M;j+)printf("%4.2ft",stui.scorej);printf("%4.2ft",stui.total);printf("%4.2f",stui.aver
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 金華祠堂古建施工方案
- 2024年項目管理績效考核系統(tǒng)試題及答案
- 會計實務(wù)運用試題及答案
- 項目管理師考試內(nèi)容復(fù)習(xí)試題及答案
- 銀行外部審計及其對內(nèi)部控制的影響試題及答案
- 證券市場Auditor角色的試題及答案
- 深入了解注冊會計師考試與國際標準的適應(yīng)性研究試題及答案
- 2024年項目管理專業(yè)人士資格認證考試的探索試題及答案
- 2024年檢測微生物變化的重要性試題及答案
- 空氣凈化器產(chǎn)品差異化競爭考核試卷
- 資產(chǎn)管理辦法培訓(xùn)課件
- 公司網(wǎng)絡(luò)優(yōu)化方案
- 一例胸痹病人的護理查房
- 三一掘進機技術(shù)維修方案-新疆永寧煤業(yè)
- 廣東異地就醫(yī)備案授權(quán)委托書范本
- 《肉牛養(yǎng)殖項目商業(yè)計劃書》
- 繪本故事:睡睡鎮(zhèn)
- 【BIM技術(shù)在施工質(zhì)量控制中的應(yīng)用研究-以海棠花園項目為例18000字(論文)】
- 舞臺機械及幕布系統(tǒng)
- 鄂爾多斯生態(tài)環(huán)境職業(yè)學(xué)院教師招聘考試歷年真題
- 蘇科版八年級數(shù)學(xué)下冊《二次根式的乘除》評課稿
評論
0/150
提交評論