計算機軟件學(xué)生成績管理系統(tǒng)課程設(shè)計_第1頁
計算機軟件學(xué)生成績管理系統(tǒng)課程設(shè)計_第2頁
計算機軟件學(xué)生成績管理系統(tǒng)課程設(shè)計_第3頁
計算機軟件學(xué)生成績管理系統(tǒng)課程設(shè)計_第4頁
計算機軟件學(xué)生成績管理系統(tǒng)課程設(shè)計_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論