C語言課程設(shè)計學生成績管理系統(tǒng)_第1頁
C語言課程設(shè)計學生成績管理系統(tǒng)_第2頁
C語言課程設(shè)計學生成績管理系統(tǒng)_第3頁
C語言課程設(shè)計學生成績管理系統(tǒng)_第4頁
C語言課程設(shè)計學生成績管理系統(tǒng)_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、課程設(shè)計報告題姓目:名:學生成績管理系統(tǒng)田世強雖元成張斌學院:工程系專業(yè):電子信息工程技術(shù)班級:2班學號:指導教師:曹紅波2010年9月16日.1設(shè)計目的課程設(shè)計的內(nèi)容課程設(shè)計的要求與數(shù)據(jù)課程設(shè)計應(yīng)完成的工作總體設(shè)計(包含幾大功能模塊)詳細設(shè)計(各功能模塊的具體實現(xiàn)算法流程圖).6調(diào)試分析(包含各模塊的測試用例,及測試結(jié)果).7.8.9總結(jié) 參考資料 .設(shè)計目的進一步加深、鞏固所學專業(yè)課程(C語言程序設(shè)計)的基本理論知識,理論聯(lián)系實際,進一步培養(yǎng)自己綜合分析問題和解決問題的能力。掌握運用C語言獨立地編寫、調(diào)試應(yīng)用程序和進行其它相關(guān)設(shè)計的技能。課程設(shè)計的內(nèi)容對學生信息(包括學號、語文、數(shù)學、英語

2、、平均分 )進行管理 ,包括學生成績的 信息輸入、輸出、查詢、刪除、排序、統(tǒng)計、退出 . 將學生的成績信息進行記錄,信息 內(nèi)容包含:( 1)學生的學號( 2)學生的姓名( 3)學生的成績。假設(shè),現(xiàn)收集到了一 個班學生的所有成績信息,要求用 C語言編寫一個簡單的成績管理系統(tǒng),可進行錄入、 查詢、修改和瀏覽等功能。學習相關(guān)開發(fā)工具和應(yīng)用軟件,熟悉系統(tǒng)建設(shè)過程。三 課程設(shè)計的要求與數(shù)據(jù)1、用C語言實現(xiàn)系統(tǒng);2、對學生信息 (包括學號、姓名、語文、數(shù)學、英語、平均分 )進行管理 ,包括學生成績的信息輸入、輸出、查詢、刪除、排序、統(tǒng)計、退出3、學生信息包括:其內(nèi)容較多,為了簡化討論,要求設(shè)計的管理系統(tǒng)能

3、夠完成以下功能:(1) 每一條記錄包括一個學生的學號、姓名、3門課成績(2) 、成績信息錄入功能: ( 成績信息用文件保存,可以一次完成若干條記錄的輸入。)(3) 、成績信息顯示瀏覽功能:完成全部學生記錄的顯示。(4) 、查詢功能:完成按姓名查找學生記錄,并顯示。(5) 成績信息的刪除 : 按學號進行刪除某學生的成績 .(6) 、排序功能:按學生平均成績進行排序。(7) 、應(yīng)提供一個界面來調(diào)用各個功能 , 調(diào)用界面和各個功能的操作界面應(yīng)盡可能清 晰美觀!四 課程設(shè)計應(yīng)完成的工作(1) 編寫算法;(2) 算法測試,并有具體的測試結(jié)果和結(jié)果分析;(3) 撰寫課程設(shè)計報告。內(nèi)容包括:1)封面扉頁2)

4、設(shè)計任務(wù)書3)目錄4)總體設(shè)計方案(包括流程圖)5)使用說明及運行實例(包括界面)6)成員設(shè)計內(nèi)容簡介7)項目源程序代碼(注意注釋的使用)8)指導教師評語五 總體設(shè)計(包含幾大功能模塊)1、成績錄入功能2、成績輸出功能3、成績查詢功能4、刪除模塊5 、排序功能6 、統(tǒng)計功能7 、退出系統(tǒng)六 詳細設(shè)計(各功能模塊的具體實現(xiàn)算法流程圖)6.1 各函數(shù)的功能和實現(xiàn)來實現(xiàn)此操作。1、輸入初始的學生信息:輸入信息包括學生的姓名、學號以及學生的成績等相關(guān)信息;可用函數(shù) void input(STUDENT *data, int *len)2、成績輸出模塊:輸出學生的信息以及成績 void output(S

5、TUDENT*data, int len) : 通過學生的姓名來查看學生的相關(guān)成績,同時也可以分別通過 caverage()? 、maverage()? 、eaverage()? 和 comaverage()? 來輸出成績的平均分數(shù)、 最高和最低分數(shù)。3、成績查詢模塊:可用 void fin d(STUDENT *data, i nt le n)?來實現(xiàn)。找到就輸出此學生全部信息。4、刪除模塊:用函數(shù) void delete_item(STUDENT *data, int *len)5、 排序模塊:用函數(shù) void sort(STUDENT *data, int len)來實現(xiàn)來實現(xiàn)&

6、 統(tǒng)計功能能:用函數(shù) void stat(STUDENT *data, i nt le n)7、退出系統(tǒng):可用一個函數(shù) exit來實現(xiàn)()來實現(xiàn),首先將信息保存到文件中,釋放動態(tài)創(chuàng)建的內(nèi)存空間,再退出此程序。如圖6.1圖6.1七 調(diào)試分析(包含各模塊的測試用例,及測試結(jié)果)學生信息Chinese; math; English; mark_ave; mark_tot;7.1 源程序 #include <stdlib.h> #include <stdio.h> #include <string.h> #define MAXN 35 #define MAX_NAM

7、E 256 typedef struct student / int no; char nameMAX_NAME; double double double double double STUDENT;*/* 輸入信息子程序 void input(STUDENT *data, int *len)請輸入新的記錄,如果需要退出當前菜單請輸入 -1." 格式:n學號n");姓名 語文 數(shù)學 英語 "); int no; putchar('n'); printf("%sn", " printf("%sn",

8、 " printf("%sn", " putchar('n'); printf(" 如 :n"); printf("1n"); printf(" 楊江彬 93 95 89n"); scanf("%d", &no); while(no != -1) data*len.no = no; scanf("%s %lf %lf %lf", data*, &data*len.Chinese, &data*len.

9、math,&data*len.English);data*len.mark_ave=(data*len.Chinese+data*len.math+data*len.Engl ish)/3.0;data*len.mark_tot=data*len.Chinese+data*len.math+data*len.Engli sh;(*len)+; scanf("%d", &no);/* 輸出信息子程序void output(STUDENT *data, int len) int i;system("cls"); printf("%8

10、s", " printf("%8s", " printf("%8s", " printf("%8s", " printf("%10s", " printf("%12s", " printf("%10s", " putchar('n');學號"); 姓名"); 語文");數(shù)學");英語"); 平均分 "); 總分"

11、);for (i =0; i < 80; i+) putchar('='); putchar('n'); for (i = 0; i< len; i+) printf("%8d", datai.no); printf("%8s", ); printf("%8.1lf", datai.Chinese); printf("%8.1lf", datai.math); printf("%10.1lf", datai.English); pr

12、intf("%12.1lf", datai.mark_ave); printf("%10.1lf", datai.mark_tot); putchar('n'); for (i =0; i < 80; i+) putchar('='); putchar('n'); printf(" 按回車鍵繼續(xù) ."); getchar(); getchar(); /* 排序子程序 void sort(STUDENT *data, int len) int i,j,k; STUDENT temp;

13、 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 *data, int len) int find_no, result ;int i;lab: result=0;printf("%sn", "請輸入需要查找的學生的學號,退出當前菜單請輸入-1.

14、");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 ) 未查詢到相關(guān)信息 ");printf("%sn", "goto lab;else system("cls");查詢信息如下: ");printf

15、("%sn", " for (i =0; i < 80; i+)學號"); 姓名");語文");數(shù)學");英語"); 平均分 "); 總分");putchar('='); putchar('n');printf("%8s", "printf("%8s", "printf("%8s", "printf("%8s", " printf(&quo

16、t;%10s", " printf("%12s", " printf("%10s", "putchar('n');printf("%8d", dataresult.no); printf("%8s", );printf("%8.1lf", dataresult.Chinese); printf("%8.1lf", dataresult.math);printf("%10.1lf&q

17、uot;, dataresult.English); 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 Chi

18、nese, math, English, mark_ave, mark_tot; int i;char nameMAX_NAME;lab: printf("%sn", " 輸入新的記錄,退出當前菜單請輸入 -1."); printf("%sn", "格式:學號 ");printf("%sn", " 姓名 語文 數(shù)學 英語 "); scanf("%d", &no); if (no = -1) return; data*len.no = no;scan

19、f("%s %lf %lf %lf", name, &Chinese, &math, &English); mark_ave=(Chinese+math+English)/3.0; mark_tot=Chinese+math+English; pos = 0;while (datapos.mark_ave < mark_ave) && (pos < *len) ) pos +;for (i = *len-1; i >= pos; i-) datai+1 = datai;datapos.no = no; strcpy(

20、, name); datapos.Chinese = Chinese; datapos.math = math; datapos.English = English; datapos.mark_ave = mark_ave; datapos.mark_tot = mark_tot; (*len)+; goto lab;/* 刪除子程序 */void delete_item(STUDENT *data, int *len)int no, i, pos;lab: pos=0;printf("%sn", " 輸入需要刪除的學生的學號,退出當前菜單

21、請輸入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 (i = pos+1;i < *len; i+)datai-1 = datai;*len = *len -1;if (*len = 0) printf("%sn&

22、quot;, " 沒有任何記錄,請按回車鍵返回 ."); 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

23、_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("%10s", "0-59"); printf("%10s", "60-69"

24、); printf("%10s", "70-79"); printf("%10s", "80-89"); printf("%10s", "90-100");-1.")putchar('n'); putchar('n'); printf("%10s", " 學生"); printf("%10d", no_59); printf("%10d", no_69);

25、 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("

26、;%55sn", " printf(" for (i = 0; i < 80; i+) putchar('=');顯示信息子程序*/海都學院學生成績管理系統(tǒng)制作者 :n");n");putchar('n');printf("n");printf("n");printf("n");printf("n");printf("1357輸入信息按平均分排序插入按平均分輸出統(tǒng)計信息輸出信息按學號查找按學號刪除保存到文件0for (

27、i = 0; i<= 79; i+) putchar('=');putchar('n');printf("%sn", "退出n");請輸入各操作對應(yīng)的序號 :");void save(STUDENT *data, int len)/ 將數(shù)據(jù)保存到文件int i;FILE *fp;學號"); 姓名"); 語文"); 數(shù)學");英語"); 平均分");總分");fp=fopen(" 成績統(tǒng)計表 .txt","w&

28、quot;); fprintf(fp,"%8s", " fprintf(fp,"%8s", " fprintf(fp,"%8s", " fprintf(fp,"%8s", " fprintf(fp,"%10s", " fprintf(fp,"%12s", " fprintf(fp,"%10sn", "fprintf(fp,"= =n");putchar('n&

29、#39;);for (i = 0; i< len; i+)fprintf(fp,"%8d", datai.no); fprintf(fp,"%8s", ); fprintf(fp,"%8.1lf", datai.Chinese); fprintf(fp,"%8.1lf", datai.math); fprintf(fp,"%10.1lf", datai.English); fprintf(fp,"%12.1lf", datai.mark_ave);

30、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; paint(); scanf("%c", &ctrl_ch); while (ctrl_ch != '

31、0') ; 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':

32、 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); 7.2 調(diào)試與測試Win327.2.1 算法調(diào)試過程中出現(xiàn)的問題及解決方法(以下為其中一例) Configuration:Cpp1DebugCom

33、piling.Cpp1.cpp桌面 Cpp 1.cp p(9) : error C2065:'MAX_MAME' : undeclared identifier桌面 Cpp 1.cp p(9) : error C2057:桌面 Cpp 1.cpp(10): error C2229:expected constant expression C:Documents andstruct 'student' has an illegal zero-sized array 執(zhí)行 cl.exe 時出錯 .NAM”E - 拼寫錯誤。Cpp1.obj - 1 error(s),

34、 0 warning(s) 解決方法:把“ MAN”E 改成7.2.2 主要程序運行結(jié)果 運行開始(如圖 7.1 )圖 7.1選擇 1 輸入成績 (7.2)圖 7.2選擇 3 按平均分排序 再按 2 輸出成績(如圖 7.3 )圖 7.3選擇 4 查找(輸入學號 3)(如圖 7.4 )圖 7.4選擇 5 插入新數(shù)據(jù)(圖 7.5)圖 7.5 選擇 6按學號刪除(輸入學號 4)(圖 7.6) 圖 7.6分數(shù)60697079ae®990100選擇7按平均分輸出統(tǒng)計信息(圖7.7 )L':二才 DI -2學生按回車鍵返回圖7.7選擇8保存(圖7.8.1 7.8.2)CAlbi廠-JL -中南大學學生成績管理系統(tǒng)制作者:中南大學機電工程學院機械即即鐘林成楊皓13570找罪息查信口出WMt H總?cè)胄畔?均分排序黔均分輸出統(tǒng)計信息I請輸入各操作對應(yīng)的序號:8反件已保存到“成繾統(tǒng)

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論