




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、一、大作業(yè)內(nèi)容對學生信息( 包括學號、數(shù)學、英語、計算機、平均分) 進行管理 , 包括學生成績的信息輸入、輸出、查詢、刪除、排序、統(tǒng)計、退出. 每個教師都將各自班學生的成績信息進行記錄,信息內(nèi)容包含:(1)學生的學號(2)學生的姓名(3)學生的成績員。假設,教師現(xiàn)收集到了一個班學生的所有成績信息,要求用 C語言編寫一個簡單的成績管理系統(tǒng),可進行錄入、查詢、修改和瀏覽等功能。學習相關(guān)開發(fā)工具和應用軟件,熟悉系統(tǒng)建設過程。二、大作業(yè)的要求與數(shù)據(jù)1、用CS言實現(xiàn)系統(tǒng);對學生信息(包括學號、數(shù)學、英語、C語言、平均分)進行管理,包括學生成績的信息輸入、輸出、查詢、刪除、排序、統(tǒng)計、退出。要求設計的管理
2、系統(tǒng)能夠完成以下功能:(1) 、每一條記錄包括一個學生的學號、姓名、3門課成績(2) 、 成績信息錄入功能:( 成績信息用文件保存,可以一次完成若干條記錄的輸入。)(3) 、成績信息顯示瀏覽功能:完成全部學生記錄的顯示。(4) 、查詢功能:完成按姓名查找學生記錄,并顯示。(5) 、成績信息的刪除: 按學號進行刪除某學生的成績.(6) 、排序功能:按學生平均成績進行排序。(7) 、應提供一個界面來調(diào)用各個功能, 調(diào)用界面和各個功能的操作界面應盡可能清晰美觀!三、總體設計(包含幾大功能模塊)1、成績錄入功能2 、成績輸出功能3 、成績查詢功能4 、刪除模塊5 、排序功能6 、統(tǒng)計功能7 、退出系統(tǒng)
3、四、詳細設計(各功能模塊的具體實現(xiàn)算法流程圖)4.1 各函數(shù)的功能和實現(xiàn)1、輸入初始的學生信息:輸入信息包括學生的姓名、學號以及學生的成績等相關(guān)信息;可用函數(shù)void input(STUDENT *data, int *len) 來實現(xiàn)此操作。2、 成績輸出模塊:輸出學生的信息以及成績void output(STUDENT*data, int len) :通過學生的姓名來查看學生的相關(guān)成績,同時也可以分別通過caverage() 、maverage() 、 eaverage() 和 comaverage() 來輸出成績的平均分數(shù)、最高和最低分數(shù)。3、成績查詢模塊:可用void find(STU
4、DENT *data, int len) 來實現(xiàn)。找到就輸出此學生全部信息。4、 刪除 模塊:用函數(shù)void delete_item(STUDENT *data, int *len) 來實現(xiàn)5、排序模塊:用函數(shù)void sort(STUDENT *data, int len) 來實現(xiàn)6、 統(tǒng)計功能 能:用函數(shù)void stat(STUDENT *data, int len) 來實現(xiàn)7、退出系統(tǒng):可用一個函數(shù)exit ()來實現(xiàn),首先將信息保存到文件中,釋放動態(tài)創(chuàng)建的內(nèi)存空間,再退出此程序。五、 調(diào)試分析(包含各模塊的測試用例,及測試結(jié)果)5.1 源程序#include <stdlib.h
5、>#include <stdio.h>#include <string.h>#define MAXN 35#define MAX_NAME 256typedef struct student /學生信息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", " 請輸入新的記錄,如果需要退出當前菜單請輸入-1.");printf("%sn", " 格式: n 學號 n");printf("%sn", " 姓名 英語 數(shù)學 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", "學號");printf("%8s", "姓名");printf("%8s", "英語");printf("%8s", "數(shù)學");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", " 請輸入需要查找的學生的學號,退出當前菜單請輸入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", "學號");printf("%8s", "姓名");printf("%8s", "英語
14、");printf("%8s", "數(shù)學");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", " 輸入新的記錄,退出當前菜單請輸入-1.");printf("%sn", " 格式:學號");printf("%sn", "姓名 英語 數(shù)學
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", " 輸入需要刪除的學生的學號,退出當前菜單請輸入scanf("%d", &no);if (no = -1) return;while( (datapos.no != no) && (pos < *len) ) pos = pos +1;if (pos >= *len) printf("%sn", " 未找到需要刪除的學生");goto lab;else for
20、(i = pos+1;i < *len; i+)datai-1 = datai;*len = *len -1;if (*len = 0) printf("%sn", " 沒有任何記錄,請按回車鍵返回.");getchar();getchar();return;goto lab;/* 統(tǒng)計子程序*/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", " 分數(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", " 學生 ");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è)大學華立學院學生管理系統(tǒng)n");printf("制作者 : 廣東工業(yè)大學華立學院09級計算機 (2) 班 吳洲洋n");for (i = 0; i < 80; i+)putchar('=');putchar('n');輸入信息2按平均分排序4插入6按平均分輸出統(tǒng)計信息8退出 n");輸出信息按學號查找按學號刪除保存到文件printf(" 1n&
25、quot;);printf("3n");printf("5n");printf("7n");printf("0for (i = 0; i<= 79; i+)putchar('=');putchar('n');printf("%sn", " 請輸入各操作對應的序號:");void save(STUDENT *data, int len)/ 將數(shù)據(jù)保存到文件int i;FILE *fp;fp=fopen(" 成績統(tǒng)計表.txt",&
26、quot;w");fprintf(fp,"%8s", " 學號 ");fprintf(fp,"%8s", "姓名");fprintf(fp,"%8s", "英語");fprintf(fp,"%8s", "數(shù)學");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)計表.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:輸入錯誤!”);if (ctrl_ch != 'n') printf("%sn",break;if (ctrl_ch != 'n') paint(); scanf("%c”, &ctrl_ch);.5.2主要程序運行結(jié)果 運行開始S3 "*C:Program FilesMierosoft Visual StudtoMvProjectsjojoDebug4,exe*口I *|廣東工業(yè)大學華立學院學生管理系統(tǒng)制作者,廣東工業(yè)大學華立學院羽級計算機班 吳洲洋找除件 毒
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025企業(yè)租賃合同范本3
- 《通過面部特征洞察健康狀況》課件
- 2025家電維修服務合同書
- 2025個體經(jīng)營者租賃合同范文
- 2025物業(yè)房屋租賃合同范本
- 《船舶機械設備解析》課件
- (16)-專題16 小說閱讀
- 消防員摘除馬蜂窩的方法及處置程序
- 山東石油化工學院《制藥工程學科前沿講座》2023-2024學年第二學期期末試卷
- 上海工商職業(yè)技術(shù)學院《食品營養(yǎng)與安全》2023-2024學年第二學期期末試卷
- 靜電噴涂設備操作規(guī)程
- 2023-2024學年六年級數(shù)學下冊重點培優(yōu)期中復習應用部分提高篇(解析版)人教版
- 4-12現(xiàn)場鋼筋直螺紋加工質(zhì)量檢驗記錄
- 室內(nèi)零星維修工程施工方案
- 2023天地偉業(yè)安防產(chǎn)品技術(shù)參數(shù)和檢測報告
- 特種設備(機電類)生產(chǎn)單位安全風險管控(日管控、周排查、月調(diào)度)清單
- 火龍罐聯(lián)合耳穴壓豆治療失眠個案護理
- 光伏逆變器安裝施工方案
- 中西藥注射劑配伍禁忌表
- 冀教版數(shù)學四年級下冊《用字母表示數(shù)》專項訓練卷
- 工貿(mào)有限公司安全教育培訓安全風險分級清單
評論
0/150
提交評論