




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、學(xué)生成績管理系統(tǒng)課程設(shè)計報告 編寫人: 呂迷 同組成員: 劉帥 (課程設(shè)計負責(zé)人) 安安 安穿 楊六 完成日期: 2013年12月10日 輔導(dǎo)教師: 劉歡 批閱日期: 2013 分數(shù): 100 一、組員分工劉帥負責(zé)系統(tǒng)的整體設(shè)計,提出了程序的模塊劃分。楊六負責(zé)系統(tǒng)所需的程序整理,幫助大家重新溫習(xí)了c語言中的相應(yīng)知識點.安安負責(zé)用適當(dāng)?shù)腸語言把程序的功能表達出來安穿負責(zé)程序代碼的注析呂迷負責(zé)程序代碼的檢測、最后的數(shù)據(jù)實驗和設(shè)計報告的書寫二、功能描述用C語言實現(xiàn)系統(tǒng)對學(xué)生成績信息包括:學(xué)號,姓名,三門課程成績(數(shù)學(xué)、英語和計算機)等進行設(shè)計管理。(1) 對學(xué)生信息(學(xué)號,姓名,三門課程成績)的輸入
2、、輸出.(2)計算各個學(xué)生的總分及平均分,并按平均分排出名次.(3)統(tǒng)計全班學(xué)生平均分成績,輸出60分以下、6079、8089、90分以上各分數(shù)人數(shù).(4)能按學(xué)號、姓名查詢學(xué)生成績,并能輸出學(xué)生的成績單。(5)將上述信息保存成文件。三、總體設(shè)計用C語言系統(tǒng)實現(xiàn)對下面功能的實現(xiàn):1、成績錄入功能 2、成績輸出功能 3、成績查詢功能 4、刪除模塊 5、排序功能 6、統(tǒng)計功能 7、退出系統(tǒng)結(jié)束開始輸出菜單根據(jù)菜單輸入n的值選擇程序輸入退出輸出保存查找排序統(tǒng)計插入刪除四、詳細設(shè)計各函數(shù)的功能和實現(xiàn)1、輸入初始的學(xué)生信息:輸入信息包括學(xué)生的姓名、學(xué)號以及學(xué)生的成績等相關(guān)信息;可用函數(shù)void inpu
3、t(STUDENT *data, int *len)來實現(xiàn)此操作。 2、成績輸出模塊:輸出學(xué)生的信息以及成績void output(STUDENT data, int len):通過學(xué)生的姓名來查看學(xué)生的相關(guān)成績,同時也可以分別通過caverage()、maverage()、eaverage()和comaverage()來輸出成績的平均分數(shù)、最高和最低分數(shù)。3、成績查詢模塊:可用void find(STUDENT *data, int len)來實現(xiàn).找到就輸出此學(xué)生全部信息。4、刪除模塊:用函數(shù)void delete_item(STUDENT *data, int *len)來實現(xiàn)5、排序模
4、塊:用函數(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)存空間,再退出此程序。五、測試結(jié)果運行開始選擇1輸入成績選擇2 輸出成績選擇3按平均分排序 再按2輸出成績選擇4查找(輸入學(xué)號1)選擇5插入新數(shù)據(jù)選擇6按學(xué)號刪除(輸入學(xué)號1)選擇7按平均分輸出統(tǒng)計信息選擇8保存選擇0退出六、源程序代碼include define MAXN 35#define MAX_NAME 256typedef s
5、truct 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);printf(sn”, 請輸入新的記錄,如果需要退出當(dāng)前菜單請輸入1.);printf(”%sn, 格式:n學(xué)號n”);printf(sn, ”姓名 英語 數(shù)學(xué) C語言”);putchar(n);printf(
6、如:n);printf(5n”);printf(李華 100 100 100n”);scanf(d, no);while(no != -1) data*len。no = no;scanf(”%s %lf %lf %lf, , &datalen。english, &data*len.math,data*len.Programming);data*len.mark_ave=(data*len.english+data*len.math+datalen。Programming)/3.0;data*len.mark_tot=data*len.english+data*len.m
7、ath+datalen。Programming;(*len)+;scanf(%d”, &no);/-輸出信息子程序-/void output(STUDENT data, int len) int i;system(”cls); printf(%8s, 學(xué)號”); printf(”%8s”, 姓名); printf(”8s”, ”英語”); printf(%8s, ”數(shù)學(xué)); printf(10s”, ”C語言”); printf(”%12s, ”平均分”); printf(”%10s, ”總分”); putchar(n); for (i =0; i 80; i+) putchar(=); pu
8、tchar(n); for (i = 0; i len; i+) printf(”%8d”, datai.no); printf(”%8s, ); printf(%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)
9、; printf(”按回車鍵繼續(xù).); getchar(); getchar();/*-排序子程序-/void sort(STUDENT data, int len) int i,j,k; STUDENT temp; for (i=0; ilen1; i+) for (k=i, j=i+1; jlen; j+) if (datak.mark_ave dataj.mark_ave) k=j;if (k != i) temp = datai;datai = datak;datak = temp; /-搜索子程序-*/void find(STUDENT data, int len) int find
10、_no, result ; int i;lab: result=0; printf(”%sn”, ”請輸入需要查找的學(xué)生的學(xué)號,退出當(dāng)前菜單請輸入 1?!保? 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(”sn”, ”未查詢到相關(guān)信息); goto lab; else system(”cls”); printf(”%sn, 查
11、詢信息如下:); for (i =0; i 80; i+) putchar(=); putchar(n); printf(8s”, 學(xué)號”); printf(”%8s, 姓名”); printf(”%8s, ”英語”); printf(%8s, ”數(shù)學(xué)”); printf(%10s, ”C語言”); printf(”%12s, 平均分); printf(”10s”, ”總分”); putchar(n); printf(”8d”, dataresult。no); printf(”8s, ); printf(”%8。1lf”, dataresult。english);
12、 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(n); goto lab; /*-插入子程序-*/void insert(STUDENT data, int *len) int no, pos;double english, math, Pr
13、ogramming, mark_ave, mark_tot;int i; char nameMAX_NAME;lab: printf(”sn”, 輸入新的記錄,退出當(dāng)前菜單請輸入1?!保? printf(sn”, 格式:學(xué)號”); printf(sn, 姓名 英語 數(shù)學(xué) 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_
14、tot=english+math+Programming; pos = 0; while (datapos.mark_ave mark_ave) (pos = 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)+; g
15、oto lab;/-刪除子程序-*/void delete_item(STUDENT *data, int len) int no, i, pos;lab: pos=0; printf(sn, ”輸入需要刪除的學(xué)生的學(xué)號,退出當(dāng)前菜單請輸入-1。); scanf(”d, &no); if (no = 1) return; while( (datapos.no != no) & (pos = *len) printf(”sn”, 未找到需要刪除的學(xué)生); goto lab; else for (i = pos+1;i len; i+) datai1 = datai; *len = len -1;
16、 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。mark_ave =59) no_59+; else if (datai.mark_ave =69) no_69+;else if (datai。mark_ave
17、=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(10s, 0-59”); printf(”%10s”, 60-69”); printf(”%10s”, 7079); printf(10s”, ”8089); printf(”%10s”, 90100); putchar(n); putchar(n); printf(10s”, 學(xué)生); printf(
18、”%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();/*-顯示信息子程序-/void paint() int i;system(”cls”); printf(”%55sn, ”學(xué)生管理系統(tǒng)n”); for (i = 0; i 80; i+) putcha
19、r(=); putchar(n); printf( 1 輸入信息 2 輸出信息n); printf(” 3 按平均分排序 4 按學(xué)號查找n); printf( 5 插入 6 按學(xué)號刪除n”); printf( 7 按平均分輸出統(tǒng)計信息 8 保存到文件n); printf( 0 退出n);for (i = 0; i= 79; i+) putchar(=); putchar(n); printf(sn, ”請輸入各操作對應(yīng)的序號:);void save(STUDENT data, int len)/將數(shù)據(jù)保存到文件int i;FILE fp;fp=fopen(”成績統(tǒng)計表.txt”,w”);fpr
20、intf(fp,”8s”, ”學(xué)號”); fprintf(fp,”8s”, 姓名); fprintf(fp,”8s”, 英語); fprintf(fp,”8s, 數(shù)學(xué)”); fprintf(fp,10s, C語言”); fprintf(fp,12s”, 平均分); fprintf(fp,”%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.e
21、nglish); fprintf(fp,”8.1lf”, datai。math); fprintf(fp,”%10。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; pa
22、int(); 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 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); 七、課程設(shè)計心得劉帥杰:我們小組的課題是學(xué)生成績管理系統(tǒng),而我負責(zé)整個系統(tǒng)的整體步驟的劃分.,在這次的實驗中,在收獲知識的同時,還收獲了閱歷,收獲了成熟,在此過程中,我們通過查找大量資料,請教老師,
溫馨提示
- 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 河北軟件職業(yè)技術(shù)學(xué)院《建筑數(shù)字技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年陜西省建筑安全員考試題庫及答案
- 山東城市建設(shè)職業(yè)學(xué)院《建筑工程概預(yù)算實驗》2023-2024學(xué)年第二學(xué)期期末試卷
- 四川工商學(xué)院《生態(tài)環(huán)境學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 南京工業(yè)大學(xué)浦江學(xué)院《用戶研究與設(shè)計定義》2023-2024學(xué)年第二學(xué)期期末試卷
- 陽江職業(yè)技術(shù)學(xué)院《材料形變加工新技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 青島濱海學(xué)院《設(shè)備安裝》2023-2024學(xué)年第二學(xué)期期末試卷
- 新鄉(xiāng)學(xué)院《建筑設(shè)備》2023-2024學(xué)年第二學(xué)期期末試卷
- 新疆職業(yè)大學(xué)《有機化學(xué)理論教學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 徐州醫(yī)科大學(xué)《數(shù)字化版面設(shè)計ndesgn》2023-2024學(xué)年第二學(xué)期期末試卷
- AQ 1064-2008 煤礦用防爆柴油機無軌膠輪車安全使用規(guī)范(正式版)
- 比亞迪公司應(yīng)收賬款管理的問題及對策分析
- 【高考真題】2024年新課標(biāo)全國Ⅱ卷高考語文真題試卷(含答案)
- 旅游服務(wù)質(zhì)量評價體系
- 義烏市建筑工程質(zhì)量通病防治措施100條(2022版本)
- 蘇教版(SJ)《四年級下冊數(shù)學(xué)》補充習(xí)題
- 統(tǒng)編版高中政治必修3必背主觀題
- 保管錢財協(xié)議書的范本
- 探索2-個人信息資源的防護措施-課件-蘇科版(2023)初中信息技術(shù)七年級下冊
- 供電所安全第一課培訓(xùn)
- 湖北省武漢市二月調(diào)考讀后續(xù)寫解析+課件
評論
0/150
提交評論