已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
綜合程序 課程設(shè)計(jì)說明書課程設(shè)計(jì)名稱: 綜合程序課程設(shè)計(jì) 課程設(shè)計(jì)題目: 學(xué)生成績管理系統(tǒng) 學(xué) 院 名 稱: 信息工程學(xué)院 專業(yè): 班級: 學(xué)號: 姓名: 評分: 教師: 20 15 年 3 月 1 日由每位學(xué)生填寫、由任教教師保存待查 綜合程序 課程設(shè)計(jì)任務(wù)書20 14 20 15學(xué)年 第 2 學(xué)期 第 1 周 2周 題目學(xué)生成績管理系統(tǒng)內(nèi)容及要求用c編寫一系統(tǒng),實(shí)現(xiàn)學(xué)生信息管理,軟件的入口界面應(yīng)包括如下幾個(gè)方面:一、功能要求:(1)信息維護(hù):學(xué)生信息數(shù)據(jù)要以文件的形式保存,能實(shí)現(xiàn)學(xué)生信息數(shù)據(jù)的維護(hù)。此模塊包括子模塊有:增加學(xué)生信息、刪除學(xué)生信息、修改學(xué)生信息;(2)信息查詢:查詢時(shí)可實(shí)現(xiàn)按姓名查詢、按學(xué)號查詢;(3)成績統(tǒng)計(jì):a輸入任意的一個(gè)課程名(如數(shù)學(xué))和一個(gè)分?jǐn)?shù)段(如60-70),統(tǒng)計(jì)出在此分?jǐn)?shù)段的學(xué)生情況;(4)排序:能對用戶指定的任意課程名,按成績升序或降序排列學(xué)生數(shù)據(jù)并顯示排序結(jié)果(使用表格的形式顯示排序后的輸出結(jié)果)。(使用多種方法排序者,加分)二、其它要求:(1)只能使用c或c+語言,源程序要有適當(dāng)?shù)淖⑨?,使程序容易閱讀;(2)采用文本菜單界面; (3)學(xué)生可增加新功能模塊。進(jìn)度安排1、 圖書館、網(wǎng)上查資料:2天;2、 編寫程序:3天;3、 運(yùn)行調(diào)試改正程序:3天;4、 檢查驗(yàn)收:2天。學(xué)生姓名:陳方燕指導(dǎo)時(shí)間 年 月 日- 年 月 日指導(dǎo)地點(diǎn): 任務(wù)下達(dá)2015年 月 日任務(wù)完成2015 年 月 日考核方式1.評閱 2.答辯 3.實(shí)際操作 4.其它指導(dǎo)教師系(部)主任注:1、此表一組一表二份,課程設(shè)計(jì)小組組長一份;任課教師授課時(shí)自帶一份備查。2、課程設(shè)計(jì)結(jié)束后與“課程設(shè)計(jì)小結(jié)”、“學(xué)生成績單”一并交院教務(wù)存檔。摘要現(xiàn)代社會(huì)越來越趨向智能化,而計(jì)算機(jī)是實(shí)現(xiàn)智能化的重要工具。學(xué)會(huì)用計(jì)算機(jī)編程,熟練運(yùn)用c語言是一項(xiàng)重要技能。學(xué)生成績管理是每個(gè)教育單位不可缺少的,使用c語言編寫的學(xué)生成績管理系統(tǒng)不僅能快速的實(shí)現(xiàn)學(xué)生成績的管理,并且更加方便,功能齊全。本次設(shè)計(jì)主要運(yùn)用c語言來設(shè)計(jì)一個(gè)學(xué)生成績管理系統(tǒng),能實(shí)現(xiàn)學(xué)生成績錄入,并以文件形式保存,修改、增加、刪除學(xué)生信息,還能按照學(xué)號或姓名對某一學(xué)生信息進(jìn)行查找,除此之外,還有對學(xué)生成績排序、學(xué)生成績統(tǒng)計(jì)等多種功能。關(guān)鍵字:c語言、成績管理、成績查詢目錄摘要2第1章 設(shè)計(jì)要求 4第2章 系統(tǒng)組成及設(shè)計(jì)原理 52.1 系統(tǒng)組成52.2 設(shè)計(jì)原理5第3章 概要設(shè)計(jì) 63.1 系統(tǒng)層次圖63.2 方案說明6第4章 詳細(xì)設(shè)計(jì) 74.1 程序流程圖74.2 模塊詳細(xì)設(shè)計(jì)7 4.2.1 界面設(shè)計(jì) 8 4.2.2 主函數(shù)設(shè)計(jì) 9 4.2.3 文件讀寫設(shè)計(jì)11 4.2.4 插入學(xué)生信息設(shè)計(jì)13 4.2.5 修改學(xué)生信息設(shè)計(jì)14 4.2.6 刪除學(xué)生信息設(shè)計(jì)16 4.2.7 查詢學(xué)生信息設(shè)計(jì)17 4.2.8 學(xué)生成績排序查詢設(shè)計(jì)19 4.2.9 統(tǒng)計(jì)學(xué)生成績分?jǐn)?shù)段信息設(shè)計(jì)21 4.2.10 統(tǒng)計(jì)掛科學(xué)生成績設(shè)計(jì) 23第5章 結(jié)果調(diào)試及分析245.1 調(diào)試方法 245.2 調(diào)試中遇到的問題及解決方法 24第6章 結(jié)論25第7章 參考文獻(xiàn)26附錄 27第1章 設(shè)計(jì)要求 請用c編寫一系統(tǒng),實(shí)現(xiàn)學(xué)生信息管理,軟件的入口界面應(yīng)包括如下幾個(gè)方面:(一)功能要求:(1)信息維護(hù):要求:學(xué)生信息數(shù)據(jù)要以文件的形式保存,能實(shí)現(xiàn)學(xué)生信息數(shù)據(jù)的維護(hù)。此模塊包括子模塊有:增加學(xué)生信息、刪除學(xué)生信息、修改學(xué)生信息(2)信息查詢:要求:查詢時(shí)可實(shí)現(xiàn)按姓名查詢、按學(xué)號查詢(3)成績統(tǒng)計(jì):要求:a輸入任意的一個(gè)課程名(如數(shù)學(xué))和一個(gè)分?jǐn)?shù)段(如60-70),統(tǒng)計(jì)出在此分?jǐn)?shù)段的學(xué)生情況。(4)排序:能對用戶指定的任意課程名,按成績升序或降序排列學(xué)生數(shù)據(jù)并顯示排序結(jié)果(使用表格的形式顯示排序后的輸出結(jié)果)(使用多種方法排序者,加分)(二)其它要求:(1)只能使用c或c+語言,源程序要有適當(dāng)?shù)淖⑨?,使程序容易閱讀(2)采用文本菜單界面(3)學(xué)生可增加新功能模塊第二章 系統(tǒng)組成及設(shè)計(jì)原理2.1 系統(tǒng)組成該系統(tǒng)主要包括文件讀寫函數(shù)、增加信息函數(shù)、修改信息函數(shù)、刪除信息函數(shù)、分別按學(xué)號、姓名查詢函數(shù)、求總成績函數(shù)、統(tǒng)計(jì)分?jǐn)?shù)段函數(shù)、統(tǒng)計(jì)掛科學(xué)生函數(shù)九個(gè)模塊,相互之間既相互獨(dú)立又相互聯(lián)系。2.2 設(shè)計(jì)原理本次設(shè)計(jì)主要運(yùn)用c語言編寫,按照設(shè)計(jì)要求,先確定菜單目錄及所需函數(shù)。在文件函數(shù)部分,主要用到文件指針及文件的讀寫。文件的使用貫穿所有功能,因此在主函數(shù)中要對其進(jìn)行調(diào)用。主函數(shù)主要實(shí)現(xiàn)對各個(gè)函數(shù)的調(diào)用,用do-while循環(huán)語句和switch()-case選擇判斷語句來調(diào)用相關(guān)函數(shù)功能模塊,并對顯示界面進(jìn)行設(shè)計(jì),是輸出界面方便用戶操作切美觀,主要由printf語句實(shí)現(xiàn)。輸出顯示函數(shù)部分主要用printf語句實(shí)現(xiàn)輸出內(nèi)容的設(shè)定,并引用結(jié)構(gòu)體顯示所需部分信息。插入、修改、刪除部分則是對文件中學(xué)生信息進(jìn)行相關(guān)操作,插入學(xué)生信息用printf、scanf、及getchar語句對學(xué)生各項(xiàng)信息進(jìn)行錄入,并保存到文件。修改和刪除除了上述語句外,還有if-else語句分情況判斷所要操作學(xué)生是否存在,然后再進(jìn)行修改或刪除。查詢模塊要先獲得學(xué)生的學(xué)號姓名,用searchnum(char nu)、searchname(char name)函數(shù)實(shí)現(xiàn),用到searchname(char name)語句實(shí)現(xiàn)。排序模塊主要用for循環(huán)及if-else語句實(shí)現(xiàn)對總成績或單科成績的比較,再調(diào)用相關(guān)顯示函數(shù)輸出。統(tǒng)計(jì)模塊主要用for循環(huán)及if-else語句逐一比較每個(gè)學(xué)生成績是否滿足給定條件,若滿足則輸出。第三章 概要設(shè)計(jì)3.1 系統(tǒng)層次圖按單科排序退出本系統(tǒng)掛科學(xué)生信息統(tǒng)計(jì)某科分?jǐn)?shù)段按總分排序按姓名查詢學(xué)生成績修改學(xué)生信息添加學(xué)生信息刪除學(xué)生信息按學(xué)號查詢學(xué)生信息 開始 主界面 結(jié)束 圖3.1 學(xué)生成績管理系統(tǒng)結(jié)構(gòu)層次圖3.2方案說明本方案程序簡介易懂,并且功能齊全,可以根據(jù)個(gè)人需要而增加功能。程序運(yùn)行后,界面美觀,操作方便。操作中添加、修改、刪除的學(xué)生信息都保存在文件中,確保了數(shù)據(jù)的長久性及其安全性。第四章 詳細(xì)設(shè)計(jì)4.1程序流程圖程序流程圖如圖4.1:開始 case58764321091是否繼續(xù)是否繼續(xù)是否繼續(xù)修改學(xué)生信息刪除學(xué)生信息按學(xué)號查尋學(xué)生按總成績排序按姓名查尋學(xué)生統(tǒng)計(jì)掛科學(xué)生信息按某一課目成績排序統(tǒng)計(jì)某科某分?jǐn)?shù)段成績退出增加學(xué)生信息結(jié)束是否繼續(xù)是否繼續(xù)? 是 是 是 是 是 否 否 否 否 否圖4.1 學(xué)生成績管理系統(tǒng)流程圖4.2 模塊詳細(xì)設(shè)計(jì)程序設(shè)計(jì)所用函數(shù)如下:1、 庫函數(shù) #include #include;2、主函數(shù) void main();3、結(jié)構(gòu)體 struct student;4、寫文件函數(shù) void writefile();5、讀文件函數(shù) void readfile()6、求總分函數(shù) float and(struct student stu);7、獲取學(xué)號函數(shù) int searchnum(char nu);8、獲取姓名函數(shù) int searchname(char name);9、顯示學(xué)生信息函數(shù) void display();10、顯示單個(gè)學(xué)生信息函數(shù) void dsingle(int index);11、顯示語文成績信息函數(shù) void dsingle1(int inde);12、顯示數(shù)學(xué)成績信息函數(shù) void dsingle2(int ind);13、顯示英語成績信息函數(shù) void dsingle3(int in);14、插入學(xué)生信息函數(shù) void insert();15、修改學(xué)生信息函數(shù) void modify();16、刪除學(xué)生信息函數(shù) void delete();17、按學(xué)號查詢學(xué)生信息 void select1();18、按姓名查詢學(xué)生信息 void select2();19、按語文成績排序函數(shù) void schinese();20、按數(shù)學(xué)成績排序函數(shù) void smath();21、按英語成績排序函數(shù) void senglish();22、按總成績排序函數(shù) void sall();23、按語文成績統(tǒng)計(jì) void chineses(int a,int b);24、按數(shù)學(xué)成績統(tǒng)計(jì) void maths(int a,int b);25、按英語成績統(tǒng)計(jì) void englishs(int a,int b);26、統(tǒng)計(jì)掛科學(xué)生函數(shù) void lose();4.2.1 界面設(shè)計(jì) 如圖4.2所示: 圖4.2 主界面圖在此界面用戶可以選擇要操作的選項(xiàng),回車之后即可進(jìn)入相關(guān)的頁面進(jìn)行操作(例如:選擇1 ,即可增加學(xué)生記錄)。4.2.2 主函數(shù)設(shè)計(jì)主函數(shù)主要運(yùn)用do-while循環(huán)語句和switch()-case選擇判斷語句來調(diào)用相關(guān)函數(shù)功能模塊。系統(tǒng)的運(yùn)行是循環(huán)里進(jìn)行的,只有在主界面并選擇“退出”時(shí),才會(huì)跳出循環(huán),并退出程序。具體程序如下:void main() int choice; int m,n; readfile(); while(1) /*主菜單*/ printf(n *); printf(n 歡迎進(jìn)入-n); printf( 學(xué)生成績管理系統(tǒng)); printf(nn *n); printf(n *主菜單*n); printf(n 1、增加學(xué)生記錄n); printf( 2、修改學(xué)生信息n); printf( 3、刪除學(xué)生信息n); printf( 4、按學(xué)號查詢學(xué)生信息n); printf( 5、按姓名查詢學(xué)生信息n); printf( 6、按總成績排序n); printf( 7、按某課程成績排序n); printf( 8、統(tǒng)計(jì)某課程某分?jǐn)?shù)段的情況n); printf( 9、統(tǒng)計(jì)掛科學(xué)生信息n); printf( 10、退出n); printf( *n); printf( 請選擇(1-10):); scanf(%d,&choice); getchar(); switch(choice) case 1: insert(); break; case 2: modify(); break; case 3: delete(); break; case 4: select1(); break; case 5: select2(); break; case 6: sall(); display(); break; case 7: printf( 選擇課程對應(yīng)的代號:n 語文代號1,數(shù)學(xué)代號2,英語代號3, n 輸入-); scanf(%d,&mark); switch(mark)case 1: schinese(); display(); break; case 2: smath(); display(); break; case 3: senglish(); display(); break; break; case 9:lose();break; case 8: printf( 選擇課程對應(yīng)的代號:n 語文代號1,數(shù)學(xué)代號2,英語代號3,n 輸入-); scanf(%d,&mark); switch(mark)case 1:printf( 請輸入分?jǐn)?shù)段 m-n: );scanf(%d-%d,&m,&n);chineses(m,n); break; case 2: printf( 請輸入分?jǐn)?shù)段 m-n: );scanf(%d-%d,&m,&n);maths(m,n); break; case 3:printf( 請輸入分?jǐn)?shù)段 m-n: );scanf(%d-%d,&m,&n);englishs(m,n); break;case 10: exit(0); break; writefile(); 4.2.3 文件讀寫設(shè)計(jì) 此模塊運(yùn)用c語言中文件讀寫相關(guān)知識(shí),定義fp指針,從生成的文件中讀寫學(xué)生信息。若文件中尚未有學(xué)生信息存入,則輸出文件為空;若未能按正確格式寫入,則輸出文件寫入錯(cuò)誤;若輸入正確,則可以用于其他功能中對學(xué)生信息的調(diào)用。具體程序如下:/*將學(xué)生信息從文件讀出*/void readfile() file *fp; int i; if (fp=fopen(studentinformal.txt,rb)=null) printf(文件為空!n); return; if (fread(&num,sizeof(int),1,fp)!=1) num=-1; else for(i=0;inum;i+) fread(&studentsi,sizeof(struct student),1,fp); fclose(fp); /*將學(xué)生信息寫入文件*/void writefile() file *fp; int i; if (fp=fopen(studentinformal.txt,wb)=null) printf(文件為空!n); return; if (fwrite(&num,sizeof(int),1,fp)!=1) printf(文件寫入錯(cuò)誤!n); for (i=0;inum;i+) if (fwrite(&studentsi,sizeof(struct student),1,fp)!=1) printf(文件寫入錯(cuò)誤!n); fclose(fp); 4.2.4 插入學(xué)生信息設(shè)計(jì)插入學(xué)生信息用insert()函數(shù)實(shí)現(xiàn),主要運(yùn)用printf、scanf、getchar語句來實(shí)現(xiàn)對學(xué)生信息讀插入,并有判斷是否繼續(xù)輸入語句。功能界面如圖4.3所示,選擇菜單功能“1”即可實(shí)現(xiàn)學(xué)生信息的插入。 圖4.3 插入學(xué)生信息 程序設(shè)計(jì):/*插入學(xué)生信息*/void insert() while(1) printf( 請輸入學(xué)號:); scanf(%s,&studentsnum.num); getchar(); printf( 請輸入姓名:); scanf(%s,&studentsnum.name); getchar(); printf( 請輸入語文成績:); scanf(%f,&studentsnum.chinese); getchar(); printf( 請輸入數(shù)學(xué)成績:); scanf(%f,&studentsnum.math); getchar(); printf( 請輸入英語成績:); scanf(%f,&studentsnum.english); getchar(); studentsnum.add=and(studentsnum); num+; printf( 是否繼續(xù)?(y/n); if (getchar()=n) break; 4.2.5 修改學(xué)生信息設(shè)計(jì)修改學(xué)生信息用modify()函數(shù)實(shí)現(xiàn),調(diào)用searchnum(id)函數(shù),過輸入學(xué)號確定所要修改的學(xué)生信息,除了用到printf、scanf、getchar語句外,還用到if-else語句,判斷所要修改的學(xué)生信息是否存在,若不存在,則輸出“學(xué)生不存在”;若存在,即可對學(xué)生信息進(jìn)行相應(yīng)的修改。功能界面如圖4.4,選擇主菜單“2”功能即可。圖4.4 修改學(xué)生信息程序設(shè)計(jì):/*修改學(xué)生信息*/void modify() while(1) char nu20; int number; printf( 請輸入要修改的學(xué)生的學(xué)號:); scanf(%s,&nu); getchar(); number=searchnum(nu); if (number=-1) printf( 學(xué)生不存在!n); else printf( 你要修改的學(xué)生信息為:n); dsingle(number); printf( -請輸入新值-n); printf( 請輸入學(xué)號:); scanf(%s,&studentsnumber.num); getchar(); printf( 請輸入姓名:); scanf(%s,&studentsnumber.name); getchar(); printf( 請輸入語文成績:); scanf(%f,&studentsnumber.chinese); getchar(); printf( 請輸入數(shù)學(xué)成績:); scanf(%f,&studentsnumber.math); getchar(); printf( 請輸入英語成績:); scanf(%f,&studentsnumber.english); getchar(); studentsnumber.add=and(studentsnumber); printf(是否繼續(xù)?(y/n); if (getchar()=n) break; 4.2.6 刪除學(xué)生信息設(shè)計(jì)刪除學(xué)生信息用delete()函數(shù)實(shí)現(xiàn),并且調(diào)用searchnum(id)函數(shù),過輸入學(xué)號確定所要?jiǎng)h除的學(xué)生信息,由if-else語句,判斷所要?jiǎng)h除的學(xué)生信息是否存在,若不存在,則輸出“學(xué)生不存在”,若存在,即可對學(xué)生信息進(jìn)行刪除。功能界面如圖4.5,選擇主菜單“3”功能即可。圖4.5 刪除學(xué)生信息程序設(shè)計(jì):/*刪除學(xué)生信息*/void delete() int i; while(1) char id20; int index; printf( 請輸入要?jiǎng)h除的學(xué)生的學(xué)號:); scanf(%s,&id); getchar(); index=searchnum(id); if (index=-1) printf( 學(xué)生不存在!n); else printf( 你要?jiǎng)h除的學(xué)生信息為:n); dsingle(index); printf( 是否真的要?jiǎng)h除?(y/n); if (getchar()=y) for (i=index;inum-1;i+) studentsi=studentsi+1;/把后邊的對象都向前移動(dòng) num-; getchar(); printf( 是否繼續(xù)?(y/n); if (getchar()=n) break; 4.2.7 查詢學(xué)生信息設(shè)計(jì)查詢學(xué)生信息共有兩種方法。方法一 按學(xué)號查詢按學(xué)號查詢用select1()函數(shù),用到printf、scanf、getchar語句外,還用到if-else語句,輸入所要查詢學(xué)生的學(xué)號,在文件中讀取,若該學(xué)生存在,則從文件中獲取該學(xué)生信息,并顯示到輸出界面;若不存在,則輸出“該學(xué)生不存在”??蛇x擇菜單中的“4”選項(xiàng)實(shí)現(xiàn),運(yùn)行結(jié)果如圖4.6所示。圖 4.6 按學(xué)號查詢程序設(shè)計(jì):void select1() while(1) char id20; int index; printf( 請輸入要查詢的學(xué)生的學(xué)號:); scanf(%s,&id); getchar(); index=searchnum(id); if (index=-1) printf( 學(xué)生不存在!n); else printf( 你要查詢的學(xué)生信息為:n); dsingle(index); printf( 是否繼續(xù)?(y/n); if (getchar()=n) break; 方法二 按姓名查詢 按姓名查詢用select2()函數(shù),與按學(xué)號查詢所用語句基本相同,只是此時(shí)輸入的是所查學(xué)生的姓名,從文件中獲取的也是學(xué)生的姓名信息,其他與按學(xué)號查詢相同??蛇x擇菜單中的“5”選項(xiàng)實(shí)現(xiàn),運(yùn)行結(jié)果如圖4.7所示。圖4.7 按姓名查詢程序設(shè)計(jì):void select2() while(1) char name20; int index; printf( 請輸入要查詢的學(xué)生的姓名:); scanf(%s,&name); getchar(); index=searchname(name); if (index=-1) printf( 學(xué)生不存在!n); else printf( 你要查詢的學(xué)生信息為:n); dsingle(index); printf( 是否繼續(xù)?(y/n); if (getchar()=n) break; 4.2.8 學(xué)生成績排序設(shè)計(jì)學(xué)生成績排序總體分為兩個(gè)方面:1、 按總成績排序按總成績排序用sall()函數(shù),用 display()函數(shù)顯示,用for雙重循環(huán),獲取每個(gè)學(xué)生的總成績,并比較大小。可選擇菜單中的“6”選項(xiàng)實(shí)現(xiàn),運(yùn)行結(jié)果如圖4.8所示。圖 4.8 按總成績排序程序設(shè)計(jì):void sall() int i,j; struct student tmp; for (i=0;inum;i+) for (j=1;jnum-i;j+) if (studentsj-1.addstudentsj.add) tmp=studentsj-1; studentsj-1=studentsj; studentsj=tmp; 2、 按單科成績排序 按單科成績排序用 schinese() 、smath()和senglish()三個(gè)函數(shù)實(shí)現(xiàn),用 display()函數(shù)顯示,分別完成對語文、數(shù)學(xué)、英語成績的排序。用for雙重循環(huán)對選擇的科目成績進(jìn)行從大到小排序??蛇x擇菜單中的“7”選項(xiàng),按提示輸入,運(yùn)行結(jié)果如圖4.9、4.10、4.11所示。圖4.9 按語文成績排序圖4.10 按數(shù)學(xué)成績排序圖4.11 按英語成績排序程序設(shè)計(jì)(以按語文成績排序?yàn)槔簐oid schinese() int i,j; struct student tmp; for (i=0;inum;i+) for (j=1;jnum-i;j+) if (studentsj-1.chinesestudentsj.chinese) tmp=studentsj-1; studentsj-1=studentsj; studentsj=tmp; 4.2.9 統(tǒng)計(jì)學(xué)生成績分?jǐn)?shù)段信息設(shè)計(jì) 統(tǒng)計(jì)學(xué)生某科目分?jǐn)?shù)段用到chineses()、maths()和englishs()函數(shù),并分別用dsingle1()、dsingle2()和dsingle3()函數(shù)輸出顯示滿足條件的學(xué)生信息。函數(shù)中用到for循環(huán)和if語句及函數(shù)調(diào)用,選擇滿足條件的學(xué)生信息,并輸出顯示??蛇x擇菜單中的“8”選項(xiàng),按提示輸入,運(yùn)行結(jié)果如圖4.12、4.13、4.14所示。圖 4.12 統(tǒng)計(jì)語文成績分?jǐn)?shù)段圖 4.13 統(tǒng)計(jì)數(shù)學(xué)成績分?jǐn)?shù)段圖4.14 統(tǒng)計(jì)英語成績分?jǐn)?shù)段程序設(shè)計(jì)(以按語文成績統(tǒng)計(jì)為例):void chineses(int a,int b) int i; for (i=0;inum;i+) if (studentsi.chinese=a) dsingle1(i); 4.2.10統(tǒng)計(jì)掛科學(xué)生成績設(shè)計(jì)統(tǒng)計(jì)掛科學(xué)生主要用到lose()函數(shù),并調(diào)用dsingle()函數(shù),使用for循環(huán)以及if語句實(shí)現(xiàn)對所需信息的獲取及輸出顯示??蛇x擇菜單中的“9”選項(xiàng),運(yùn)行結(jié)果如圖4.15所示。圖4.15 掛科學(xué)生成績統(tǒng)計(jì)程序設(shè)計(jì):void lose()int i;for(i=0;inum;i+)if(studentsi.chinese60|studentsi.math60|studentsi.english60)dsingle(i);第五章 結(jié)果調(diào)試及分析5.1調(diào)試方法 調(diào)試方法主要為運(yùn)行調(diào)試,先編譯程序,找到運(yùn)行時(shí)出現(xiàn)的錯(cuò)誤,找到程序中對應(yīng)的出錯(cuò)地方,進(jìn)行改正。5.1調(diào)試中遇到的問題及解決方法問題一:建立文件后,運(yùn)行程序卻顯示文件不存在,檢查程序并無錯(cuò)誤。 解決方法:檢查所建文件后發(fā)現(xiàn)電腦其他位置有與之同名的文件,對文件重命名后,可以打開。問題二:運(yùn)行后,退出功能不能使用。 解決方法:檢查程序后,發(fā)現(xiàn)有一個(gè)大括號位置不對,將其改正后運(yùn)行正常。問題三:在按學(xué)號查找模塊,運(yùn)行后不能實(shí)現(xiàn)其功能。 解決方法:檢查程序后,發(fā)現(xiàn)誤將調(diào)用的函數(shù)名寫錯(cuò),因而輸不出結(jié)果,改正后即可正常運(yùn)行。問題四:按總成績排序輸出后,發(fā)現(xiàn)輸出的界面表格列沒對齊,并且有的數(shù)據(jù)不能正確輸出,。 解決方法:輸出不正確應(yīng)在顯示學(xué)生信息的函數(shù)中查找問題,發(fā)現(xiàn)在定義字符輸出時(shí)多打了一個(gè)“%”,導(dǎo)致學(xué)生成績不能顯示,另外修改了每個(gè)字符輸出之間的空格,運(yùn)行后,能正確輸出且界面美觀。第六章 結(jié)論 通過本次課設(shè)可以讓學(xué)生們學(xué)到很多。首先,課設(shè)考驗(yàn)的就是學(xué)生自主思考和創(chuàng)新能力,根據(jù)題目要求,要自己到圖書館和網(wǎng)上查資料設(shè)計(jì)程序。其次,提高了學(xué)生對軟件設(shè)計(jì)的興趣,不僅復(fù)習(xí)鞏固了以前所學(xué)的知識(shí),在編程的過程中更是學(xué)到了很多在課堂上學(xué)不到的新知識(shí)開闊了知識(shí)面,對c語言編程中出現(xiàn)的問題也能更快的找出解決方法。再次,通過本次課設(shè)才發(fā)現(xiàn)在編程方面有很多的不足之處,同學(xué)們應(yīng)該在平時(shí)多學(xué)多練,增強(qiáng)自己在編程方面的能力。最后,本次設(shè)計(jì)實(shí)現(xiàn)了設(shè)計(jì)要求的同時(shí),程序簡單易懂,用戶操作方便。但是程序較長,很多子程序類似,占用內(nèi)存較大。總之,本次課設(shè)學(xué)到了很多,但仍有很多不足之處,應(yīng)該不斷的思考學(xué)習(xí),才能不斷的進(jìn)步。 第7章 參考資料1、 譚浩強(qiáng).c程序設(shè)計(jì).北京:清華大學(xué)出版社,2005年.2、 譚浩強(qiáng).c程序設(shè)計(jì)題解與上級指導(dǎo).北京:清華大學(xué)出版社,2005年.3、李春葆、張植民、肖忠付.c語言設(shè)計(jì)題典.北京:清華大學(xué)出版社,2002年.4、黃維通. c語言程序設(shè)計(jì)習(xí)題解析與應(yīng)用案例分析. 北京:清華大學(xué)出版社,2004.5、哈比森. c語言參考手冊. 北京:機(jī)械工業(yè)出版社,2001.附錄源程序代碼:#include #include/*定義學(xué)生結(jié)構(gòu)體*/struct student char num20; char name20; float chinese; float math; float english; float add;/*聲明學(xué)生數(shù)組及學(xué)生數(shù)量*/struct student students1000;int num=0;int mark;/*將學(xué)生信息從文件讀出*/void readfile() file *fp; int i; if (fp=fopen(studentinformal.txt,rb)=null) printf(文件為空!n); return; if (fread(&num,sizeof(int),1,fp)!=1) num=-1; else for(i=0;inum;i+) fread(&studentsi,sizeof(struct student),1,fp); fclose(fp); /*將學(xué)生信息寫入文件*/void writefile() file *fp; int i; if (fp=fopen(studentinformal.txt,wb)=null) printf(文件為空!n); return; if (fwrite(&num,sizeof(int),1,fp)!=1) printf(文件寫入錯(cuò)誤!n); for (i=0;inum;i+) if (fwrite(&studentsi,sizeof(struct student),1,fp)!=1) printf(文件寫入錯(cuò)誤!n); fclose(fp); /*求總成績*/float and(struct student stu) return (stu.chinese+stu.math+stu.english); /*通過學(xué)號返回?cái)?shù)組下標(biāo)*/int searchnum(char nu) int i; for (i=0;inum;i+) if (strcmp(students
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公路工程試驗(yàn)檢測人員業(yè)務(wù)培訓(xùn)-《公共基礎(chǔ)》輔導(dǎo)文件
- 2015安徽道法試卷+答案+解析
- 基于注意力機(jī)制的GNSS-INS緊組合導(dǎo)航關(guān)鍵技術(shù)研究
- 應(yīng)急預(yù)案的協(xié)同作業(yè)
- 幼兒園防欺凌暴力安全主題
- 二零二五年度股份增發(fā)新增合同樣本3篇
- 2025版物業(yè)管理法規(guī)第五章(2025版)物業(yè)服務(wù)企業(yè)勞動(dòng)合同3篇
- 二零二五年度母嬰用品銷售購銷合同(含親子活動(dòng)策劃)
- 二零二五年度光伏發(fā)電設(shè)備維修施工協(xié)議3篇
- 二零二五年度離婚協(xié)議數(shù)學(xué)用語編制與審查合同3篇
- 道路瀝青工程施工方案
- 2025年度正規(guī)離婚協(xié)議書電子版下載服務(wù)
- 2025年貴州蔬菜集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 《田口方法的導(dǎo)入》課件
- 春節(jié)后安全生產(chǎn)開工第一課
- 2025光伏組件清洗合同
- 內(nèi)陸?zhàn)B殖與水產(chǎn)品市場營銷策略考核試卷
- 電力電纜工程施工組織設(shè)計(jì)
- 2024年重慶市中考數(shù)學(xué)試題B卷含答案
- 醫(yī)生給病人免責(zé)協(xié)議書(2篇)
- 票據(jù)業(yè)務(wù)居間合同模板
評論
0/150
提交評論