




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、一、大作業(yè)內(nèi)容對(duì)學(xué)生信息( 包括學(xué)號(hào)、數(shù)學(xué)、英語、計(jì)算機(jī)、平均分) 進(jìn)行管理 , 包括學(xué)生成績的信息輸入、輸出、查詢、刪除、排序、統(tǒng)計(jì)、退出. 每個(gè)教師都將各自班學(xué)生的成績信息進(jìn)行記錄,信息內(nèi)容包含:(1)學(xué)生的學(xué)號(hào)(2)學(xué)生的姓名(3)學(xué)生的成績員。假設(shè),教師現(xiàn)收集到了一個(gè)班學(xué)生的所有成績信息,要求用 C語言編寫一個(gè)簡單的成績管理系統(tǒng),可進(jìn)行錄入、查詢、修改和瀏覽等功能。學(xué)習(xí)相關(guān)開發(fā)工具和應(yīng)用軟件,熟悉系統(tǒng)建設(shè)過程。二、大作業(yè)的要求與數(shù)據(jù)1、用CS言實(shí)現(xiàn)系統(tǒng);對(duì)學(xué)生信息(包括學(xué)號(hào)、數(shù)學(xué)、英語、C語言、平均分)進(jìn)行管理,包括學(xué)生成績的信息輸入、輸出、查詢、刪除、排序、統(tǒng)計(jì)、退出。要求設(shè)計(jì)的管理
2、系統(tǒng)能夠完成以下功能:(1) 、每一條記錄包括一個(gè)學(xué)生的學(xué)號(hào)、姓名、3門課成績(2) 、 成績信息錄入功能:( 成績信息用文件保存,可以一次完成若干條記錄的輸入。)(3) 、成績信息顯示瀏覽功能:完成全部學(xué)生記錄的顯示。(4) 、查詢功能:完成按姓名查找學(xué)生記錄,并顯示。(5) 、成績信息的刪除: 按學(xué)號(hào)進(jìn)行刪除某學(xué)生的成績.(6) 、排序功能:按學(xué)生平均成績進(jìn)行排序。(7) 、應(yīng)提供一個(gè)界面來調(diào)用各個(gè)功能, 調(diào)用界面和各個(gè)功能的操作界面應(yīng)盡可能清晰美觀!三、總體設(shè)計(jì)(包含幾大功能模塊)1、成績錄入功能2 、成績輸出功能3 、成績查詢功能4 、刪除模塊5 、排序功能6 、統(tǒng)計(jì)功能7 、退出系統(tǒng)
3、四、詳細(xì)設(shè)計(jì)(各功能模塊的具體實(shí)現(xiàn)算法流程圖)4.1 各函數(shù)的功能和實(shí)現(xiàn)1、輸入初始的學(xué)生信息:輸入信息包括學(xué)生的姓名、學(xué)號(hào)以及學(xué)生的成績等相關(guān)信息;可用函數(shù)void input(STUDENT *data, int *len) 來實(shí)現(xiàn)此操作。2、 成績輸出模塊:輸出學(xué)生的信息以及成績void output(STUDENT*data, int len) :通過學(xué)生的姓名來查看學(xué)生的相關(guān)成績,同時(shí)也可以分別通過caverage() 、maverage() 、 eaverage() 和 comaverage() 來輸出成績的平均分?jǐn)?shù)、最高和最低分?jǐn)?shù)。3、成績查詢模塊:可用void find(STU
4、DENT *data, int len) 來實(shí)現(xiàn)。找到就輸出此學(xué)生全部信息。4、 刪除 模塊:用函數(shù)void delete_item(STUDENT *data, int *len) 來實(shí)現(xiàn)5、排序模塊:用函數(shù)void sort(STUDENT *data, int len) 來實(shí)現(xiàn)6、 統(tǒng)計(jì)功能 能:用函數(shù)void stat(STUDENT *data, int len) 來實(shí)現(xiàn)7、退出系統(tǒng):可用一個(gè)函數(shù)exit ()來實(shí)現(xiàn),首先將信息保存到文件中,釋放動(dòng)態(tài)創(chuàng)建的內(nèi)存空間,再退出此程序。五、 調(diào)試分析(包含各模塊的測(cè)試用例,及測(cè)試結(jié)果)5.1 源程序#include <stdlib.h
5、>#include <stdio.h>#include <string.h>#define MAXN 35#define MAX_NAME 256typedef struct student /學(xué)生信息int no;char nameMAX_NAME;double english;double math;double Programming;double mark_ave;double mark_tot; STUDENT;/* 輸入信息子程序*/void input(STUDENT *data, int *len)int no;putchar('n'
6、;);printf("%sn", " 請(qǐng)輸入新的記錄,如果需要退出當(dāng)前菜單請(qǐng)輸入-1.");printf("%sn", " 格式: n 學(xué)號(hào) n");printf("%sn", " 姓名 英語 數(shù)學(xué) C 語言 ");putchar('n');printf(" 如 :n");printf("5n");printf(" 黃宏業(yè) 100 100 100n");scanf("%d", &a
7、mp;no);while(no != -1) data*len.no = no;scanf("%s %lf %lf %lf", data*, &data*len.english, &data*len.math,&data*len.Programming);data*len.mark_ave=(data*len.english+data*len.math+data*len.Progr amming)/3.0;data*len.mark_tot=data*len.english+data*len.math+data*len.Progra
8、mming;(*len)+;scanf("%d", &no);/* 輸出信息子程序*/void output(STUDENT *data, int len)int i;system("cls");printf("%8s", "學(xué)號(hào)");printf("%8s", "姓名");printf("%8s", "英語");printf("%8s", "數(shù)學(xué)");printf("%10s&
9、quot;, "C 語言 ");printf("%12s", " 平均分 ");printf("%10s", " 總分 ");putchar('n');for (i =0; i < 80; i+)putchar('=');putchar('n');for (i = 0; i< len; i+)printf("%8d", datai.no);printf("%8s", );pri
10、ntf("%8.1lf", datai.english);printf("%8.1lf", datai.math);printf("%10.1lf", datai.Programming);printf("%12.1lf", datai.mark_ave);printf("%10.1lf", datai.mark_tot);putchar('n');for (i =0; i < 80; i+)putchar('=');putchar('n')
11、;printf(" 按回車鍵繼續(xù).");getchar();getchar();/* 排序子程序*/void sort(STUDENT *data, int len)int i,j,k;STUDENT temp;for (i=0; i<len-1; i+) for (k=i, j=i+1; j<len; j+)if (datak.mark_ave > dataj.mark_ave) k=j;if (k != i) temp = datai;datai = datak;datak = temp;/* 搜索子程序*/void find(STUDENT *dat
12、a, int len)int find_no, result ;int i;lab: result=0;printf("%sn", " 請(qǐng)輸入需要查找的學(xué)生的學(xué)號(hào),退出當(dāng)前菜單請(qǐng)輸入scanf("%d", &find_no);if (find_no = -1) return; /*exit the fine sub program*/ while( dataresult.no != find_no && result < len) result +;if (result >= len ) printf(&qu
13、ot;%sn", " 未查詢到相關(guān)信息");goto lab;else system("cls");printf("%sn", " 查詢信息如下:");for (i =0; i < 80; i+)putchar('=');putchar('n');printf("%8s", "學(xué)號(hào)");printf("%8s", "姓名");printf("%8s", "英語
14、");printf("%8s", "數(shù)學(xué)");printf("%10s", "C 語言 ");printf("%12s", " 平均分 ");printf("%10s", " 總分 ");putchar('n');printf("%8d", dataresult.no);printf("%8s", );printf("%8.1lf&
15、quot;, dataresult.english);printf("%8.1lf", dataresult.math);printf("%10.1lf", dataresult.Programming);printf("%12.1lf", dataresult.mark_ave);printf("%10.1lf", dataresult.mark_tot);putchar('n');for (i =0; i < 80; i+)putchar('=');putchar('
16、;n');goto lab;/* 插入子程序*/void insert(STUDENT *data, int *len)int no, pos;double english, math, Programming, mark_ave, mark_tot;int i;char nameMAX_NAME;lab: printf("%sn", " 輸入新的記錄,退出當(dāng)前菜單請(qǐng)輸入-1.");printf("%sn", " 格式:學(xué)號(hào)");printf("%sn", "姓名 英語 數(shù)學(xué)
17、C 語言 ");scanf("%d", &no);if (no = -1) return;data*len.no = no;scanf("%s %lf %lf %lf", name, &english, &math, &Programming);mark_ave=(english+math+Programming)/3.0;mark_tot=english+math+Programming;pos = 0;while (datapos.mark_ave < mark_ave) && (pos
18、 < *len) )pos +;for (i = *len-1; i >= pos; i-)datai+1 = datai;datapos.no = no;strcpy(, name);datapos.english = english;datapos.math = math;datapos.Programming = Programming;datapos.mark_ave = mark_ave;datapos.mark_tot = mark_tot;(*len)+;goto lab;/* 刪除子程序*/void delete_item(STUDENT *
19、data, int *len)int no, i, pos;lab: pos=0;printf("%sn", " 輸入需要?jiǎng)h除的學(xué)生的學(xué)號(hào),退出當(dāng)前菜單請(qǐng)輸入scanf("%d", &no);if (no = -1) return;while( (datapos.no != no) && (pos < *len) ) pos = pos +1;if (pos >= *len) printf("%sn", " 未找到需要?jiǎng)h除的學(xué)生");goto lab;else for
20、(i = pos+1;i < *len; i+)datai-1 = datai;*len = *len -1;if (*len = 0) printf("%sn", " 沒有任何記錄,請(qǐng)按回車鍵返回.");getchar();getchar();return;goto lab;/* 統(tǒng)計(jì)子程序*/void stat(STUDENT *data, int len)int no_59=0, no_69=0, no_79=0, no_89=0, no_100=0;int i;for (i = 0;i < len; i+) if (datai.mar
21、k_ave <=59) no_59+;else if (datai.mark_ave <=69) no_69+;else if (datai.mark_ave <=79) no_79+;else if (datai.mark_ave <= 89) no_89+;else no_100+;system("cls");for (i =0; i < 80; i+)putchar('=');putchar('n');printf("%10s", " 分?jǐn)?shù) ");printf(&qu
22、ot;%10s", "0-59");printf("%10s", "60-69");printf("%10s", "70-79");printf("%10s", "80-89");printf("%10s", "90-100");putchar('n');putchar('n');printf("%10s", " 學(xué)生 ");print
23、f("%10d", no_59);printf("%10d", no_69);printf("%10d", no_79);printf("%10d", no_89);printf("%10d", no_100);putchar('n');for (i =0; i < 80; i+)putchar('=');putchar('n');printf(" 按回車鍵返回");getchar();getchar();/* 顯示信息子
24、程序*/void paint()int i;system("cls");printf("%55sn", " 廣東工業(yè)大學(xué)華立學(xué)院學(xué)生管理系統(tǒng)n");printf("制作者 : 廣東工業(yè)大學(xué)華立學(xué)院09級(jí)計(jì)算機(jī) (2) 班 吳洲洋n");for (i = 0; i < 80; i+)putchar('=');putchar('n');輸入信息2按平均分排序4插入6按平均分輸出統(tǒng)計(jì)信息8退出 n");輸出信息按學(xué)號(hào)查找按學(xué)號(hào)刪除保存到文件printf(" 1n&
25、quot;);printf("3n");printf("5n");printf("7n");printf("0for (i = 0; i<= 79; i+)putchar('=');putchar('n');printf("%sn", " 請(qǐng)輸入各操作對(duì)應(yīng)的序號(hào):");void save(STUDENT *data, int len)/ 將數(shù)據(jù)保存到文件int i;FILE *fp;fp=fopen(" 成績統(tǒng)計(jì)表.txt",&
26、quot;w");fprintf(fp,"%8s", " 學(xué)號(hào) ");fprintf(fp,"%8s", "姓名");fprintf(fp,"%8s", "英語");fprintf(fp,"%8s", "數(shù)學(xué)");fprintf(fp,"%10s", "C 語言 ");fprintf(fp,"%12s", " 平均分 ");fprintf(fp,&
27、quot;%10sn", " 總分 ");fprintf(fp,"= =n");putchar('n');for (i = 0; i< len; i+)fprintf(fp,"%8d", datai.no);fprintf(fp,"%8s", );fprintf(fp,"%8.1lf", datai.english);fprintf(fp,"%8.1lf", datai.math);fprintf(fp,"%10.
28、1lf", datai.Programming);fprintf(fp,"%12.1lf", datai.mark_ave);fprintf(fp,"%10.1lfn", datai.mark_tot);fprintf(fp,"= =n");fclose(fp);printf(" 文件已保存到"成績統(tǒng)計(jì)表.txt"");getchar();getchar();*/* 主程序void main()STUDENT dataMAXN;int len = 0;char ctrl_ch;pain
29、t();scanf("%c”, &ctrl_ch);while (ctrl_ch != '0') switch(ctrl_ch) case '1':input(data, &len);break;case '2':output(data, len);break;case '3':sort(data, len);break;case '4':find(data, len);break;case '5':insert(data, &len);break;case
30、9;6':delete_item(data, &len); break;case '7':stat(data, len);break;case '8':save(data, len);break;default:輸入錯(cuò)誤!”);if (ctrl_ch != 'n') printf("%sn",break;if (ctrl_ch != 'n') paint(); scanf("%c”, &ctrl_ch);.5.2主要程序運(yùn)行結(jié)果 運(yùn)行開始S3 "*C:Program FilesMierosoft Visual StudtoMvProjectsjojoDebug4,exe*口I *|廣東工業(yè)大學(xué)華立學(xué)院學(xué)生管理系統(tǒng)制作者,廣東工業(yè)大學(xué)華立學(xué)院羽級(jí)計(jì)算機(jī)班 吳洲洋找除件 毒
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030中國冷鏈凍品行業(yè)市場(chǎng)發(fā)展分析及前景趨勢(shì)與投資研究報(bào)告
- 2025-2030中國保險(xiǎn)科技行業(yè)市場(chǎng)深度調(diào)研及前景趨勢(shì)與投資研究報(bào)告
- 2025-2030中國低合金鋼板行業(yè)發(fā)展趨勢(shì)與前景展望戰(zhàn)略研究報(bào)告
- 2025-2030中國中老年服裝行業(yè)市場(chǎng)深度發(fā)展趨勢(shì)與前景展望戰(zhàn)略研究報(bào)告
- 2025-2030中國兩管浮橋船行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略研究報(bào)告
- 2025-2030中國一次性塑料血袋行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略研究報(bào)告
- 2025-2030中國PVC絲印制品行業(yè)市場(chǎng)深度調(diào)研及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告
- 2025-2030中國ETC系統(tǒng)行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略研究報(bào)告
- 裝修成本分析協(xié)議
- 水電安裝施工合同范本
- 《子宮內(nèi)膜異位》課件
- 文旅場(chǎng)所安全培訓(xùn)課件
- 《商標(biāo)侵權(quán)案例分析》課件
- 腦梗死的護(hù)理查房
- 導(dǎo)游講解的常用技巧教案
- 算法設(shè)計(jì)與分析 課件 6.3-貪心法應(yīng)用-活動(dòng)安排問題
- 車位租賃協(xié)議
- 肺結(jié)節(jié)診治中國專家共識(shí)(2024年版)解讀
- 地震監(jiān)測(cè)設(shè)備使用安全檢查表
- 行知學(xué)院《學(xué)生手冊(cè)》知識(shí)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- (高清版)DB34∕T 1489-2020 建筑起重機(jī)械安全評(píng)估實(shí)施規(guī)程
評(píng)論
0/150
提交評(píng)論