計(jì)算機(jī)544數(shù)據(jù)結(jié)構(gòu)課設(shè)報(bào)告_第1頁
計(jì)算機(jī)544數(shù)據(jù)結(jié)構(gòu)課設(shè)報(bào)告_第2頁
計(jì)算機(jī)544數(shù)據(jù)結(jié)構(gòu)課設(shè)報(bào)告_第3頁
計(jì)算機(jī)544數(shù)據(jù)結(jié)構(gòu)課設(shè)報(bào)告_第4頁
計(jì)算機(jī)544數(shù)據(jù)結(jié)構(gòu)課設(shè)報(bào)告_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、課 程 設(shè) 計(jì) 報(bào) 告課程名稱 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì) 課題名稱 成績分析問題 專 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù) 班 級(jí) 計(jì)算機(jī)0803 學(xué) 號(hào) 姓 名 指導(dǎo)教師 2010年 9月 10 日課 程 設(shè) 計(jì) 任 務(wù) 書課程名稱 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì) 課 題 成績分析問題 專業(yè)班級(jí) 計(jì)算機(jī)0803 學(xué)生姓名 學(xué) 號(hào) 指導(dǎo)老師 審 批 任務(wù)書下達(dá)日期: 2010 年 9 月 10 日任務(wù)完成日期: 2010 年 9 月 24 日一、設(shè)計(jì)內(nèi)容與設(shè)計(jì)要求1設(shè)計(jì)內(nèi)容:1)問題描述錄入、保存一個(gè)班級(jí)學(xué)生多門課程的成績,并對(duì)成績進(jìn)行分析。2)基本要求a.通過鍵盤輸入各學(xué)生的多門課程的成績,建立相應(yīng)的文件input.dat。b.

2、對(duì)文件input.dat中的數(shù)據(jù)進(jìn)行處理,要求具有如下功能:l 按各門課程成績排序,并生成相應(yīng)的文件輸出。l 計(jì)算每人的平均成績,按平均成績排序,并生成文件。l 求出各門課程的平均成績、最高分、最低分、不及格人數(shù)、60-69分人數(shù)、70-79分人數(shù)、80-89分人數(shù)、90分以上人數(shù)。l 根據(jù)姓名或?qū)W號(hào)查詢某人的各門課成績,重名情況也能處理。c.界面美觀。3)測(cè)試數(shù)據(jù)測(cè)試數(shù)據(jù)如下表所示:學(xué)號(hào)姓名高等數(shù)學(xué)英語計(jì)算機(jī)導(dǎo)論001張磊807390002王鵬766970003黎明607869004劉鵬556660005李四787080006張佳435060007趙平898579008高潔9089702設(shè)計(jì)

3、要求:l 課程設(shè)計(jì)報(bào)告規(guī)范1)需求分析a.程序的功能。b.輸入輸出的要求。2)概要設(shè)計(jì)a. 程序由哪些模塊組成以及模塊之間的層次結(jié)構(gòu)、各模塊的調(diào)用關(guān)系;每個(gè)模塊的功能。b. 課題涉及的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)庫結(jié)構(gòu);即要存儲(chǔ)什么數(shù)據(jù),這些數(shù)據(jù)是什么樣的結(jié)構(gòu),它們之間有什么關(guān)系等。3)詳細(xì)設(shè)計(jì)a.采用C語言定義相關(guān)的數(shù)據(jù)類型。b.寫出各模塊的類C碼算法。c.畫出各函數(shù)的調(diào)用關(guān)系圖、主要函數(shù)的流程圖。4)調(diào)試分析以及設(shè)計(jì)體會(huì)a.測(cè)試數(shù)據(jù):準(zhǔn)備典型的測(cè)試數(shù)據(jù)和測(cè)試方案,包括正確的輸入及輸出結(jié)果和含有錯(cuò)誤的輸入及輸出結(jié)果。b.程序調(diào)試中遇到的問題以及解決問題的方法。c.課程設(shè)計(jì)過程經(jīng)驗(yàn)教訓(xùn)、心得體會(huì)。5)使用說

4、明用戶使用手冊(cè):說明如何使用你編寫的程序,詳細(xì)列出每一步的操作步驟。6)書寫格式見附帶說明。7)附錄a.參考書目b.源程序清單(帶注釋)l 考核方式指導(dǎo)老師負(fù)責(zé)驗(yàn)收程序的運(yùn)行結(jié)果,并結(jié)合學(xué)生的工作態(tài)度、實(shí)際動(dòng)手能力、創(chuàng)新精神和設(shè)計(jì)報(bào)告等進(jìn)行綜合考評(píng),并按優(yōu)秀、良好、中等、及格和不及格五個(gè)等級(jí)給出每位同學(xué)的課程設(shè)計(jì)成績。具體考核標(biāo)準(zhǔn)包含以下幾個(gè)部分: 平時(shí)出勤 (占10%) 系統(tǒng)需求分析、功能設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)及程序總體結(jié)構(gòu)合理與否(占10%) 程序能否完整、準(zhǔn)確地運(yùn)行,個(gè)人能否獨(dú)立、熟練地調(diào)試程序(占40%) 設(shè)計(jì)報(bào)告(占30%)注意:不得抄襲他人的報(bào)告(或給他人抄襲),一旦發(fā)現(xiàn),成績?yōu)榱惴帧?/p>

5、 獨(dú)立完成情況(占10%)。l 課程驗(yàn)收要求 運(yùn)行所設(shè)計(jì)的系統(tǒng)。 回答有關(guān)問題。 提交課程設(shè)計(jì)報(bào)告。 提交軟盤(源程序、設(shè)計(jì)報(bào)告文檔)。 依內(nèi)容的創(chuàng)新程度,完善程序情況及對(duì)程序講解情況打分。二、進(jìn)度安排第2周星期一星期二星期三星期四星期五星期六星期日上午8:0012:00下午13:3017:30晚上18:0020:00第3周星期一星期二星期三星期四星期五星期六星期日上午8:0012:00下午13:3017:30晚上18:0020:00附:課程設(shè)計(jì)報(bào)告裝訂順序:封面、任務(wù)書、目錄、正文、評(píng)分、附件(A4大小的圖紙及程序清單)。 正文的格式:一級(jí)標(biāo)題用3號(hào)黑體,二級(jí)標(biāo)題用四號(hào)宋體加粗,正文用小四號(hào)

6、宋體;行距為22。正文的內(nèi)容:一、課題的主要功能;二、課題的功能模塊的劃分(要求畫出模塊圖);三、主要功能的實(shí)現(xiàn)(至少要有一個(gè)主要模塊的流程圖);四、程序調(diào)試;五、總結(jié);六、附件(所有程序的原代碼,要求對(duì)程序?qū)懗霰匾淖⑨專?。正文總字?jǐn)?shù)要求在5000字以上(不含程序原代碼)。 目錄一課題的主要功能7二功能模塊的劃分8三主要功能的實(shí)現(xiàn)9四.程序調(diào)試11五.總結(jié)14六附件15一 課題的主要功能本課題的主要功能是實(shí)現(xiàn)學(xué)生成績的分析,成績的分析包括以下幾個(gè)方面:a.對(duì)成績的統(tǒng)計(jì);b.學(xué)生對(duì)自己成績的查詢,其中查詢有兩種方式按名字查詢和按姓名查詢(其中按姓名的查找考慮了同名的情況,如果同名就會(huì)出現(xiàn)友情提

7、示,按學(xué)號(hào)查找),c.對(duì)某一門成績的平均成績的查詢,可以分開查幾門課的平均。d.對(duì)學(xué)生的某一門成績的排序,而且可以按這一門成績的分?jǐn)?shù),從高到低的順序輸出各個(gè)學(xué)生的每門成績和平均成績。最后就是退出的功能。此系統(tǒng)主要是針對(duì)學(xué)生的成績的分析,查詢,以及班級(jí)成績的分析,只要運(yùn)行一次,第一次輸入的數(shù)據(jù)就會(huì)以文件的方式保存在電腦的硬盤里面,下次運(yùn)行的時(shí)候就不用輸入數(shù)據(jù)而可以直接可以利用這些數(shù)據(jù)。該系統(tǒng)每個(gè)功能都是由我們根據(jù)菜單的提示,提示我們輸入功能選項(xiàng),輸入某一項(xiàng)就會(huì)通過內(nèi)在的函數(shù)調(diào)用實(shí)現(xiàn)相應(yīng)的功能。為了方便,該程序成績以及其他用到的數(shù)據(jù)都是整型的。二 功能模塊的劃分 三 主要功能的實(shí)現(xiàn)成績分析系統(tǒng)中主

8、要的用到的有兩個(gè)結(jié)構(gòu)體,一個(gè)是node,另一個(gè)是md,而且這兩個(gè)結(jié)構(gòu)體有密切的關(guān)系,md結(jié)構(gòu)體的一個(gè)數(shù)據(jù)成員就是node類型的數(shù)據(jù),該系統(tǒng)的我采用程序的頭文件的方式,將各個(gè)功能模塊包括在一個(gè)頭文件里面,所以次系統(tǒng)的功能模塊的層次非常的清晰。下面我來一一介紹一下劃分的主要的功能模塊:其中主菜單放在source文件里面,里面還包含了#include define.h #include creat.h #include sort.h #include find.h #include #h各個(gè)功能模塊用以實(shí)現(xiàn)不同的功能。主函數(shù)在這個(gè)文件里面,所以每次運(yùn)行的時(shí)候都要從這個(gè)文件開始,在主函數(shù)里

9、面有個(gè)判數(shù)據(jù)文件的存在的函數(shù),如果數(shù)據(jù)文件不存在就會(huì)調(diào)用creat函數(shù)來創(chuàng)建一個(gè)md類型的結(jié)構(gòu)體數(shù)據(jù),否則就直接可以讀寫保存的數(shù)據(jù)文件的數(shù)據(jù),并且將它賦值給一個(gè)md類型數(shù)組以提供利用,主函數(shù)里面有一循環(huán)用來顯示主菜單,用來提供功能的選擇,沒選擇一個(gè)功能就會(huì)調(diào)用對(duì)應(yīng)的功能函數(shù),以用來實(shí)現(xiàn)對(duì)應(yīng)的功能。 define.h文件作用是將一些用到的數(shù)據(jù)將以定義。sort.h主要用來對(duì)英語、數(shù)學(xué)和計(jì)算機(jī)單門成績的排序,并且將這些同學(xué)的成績都以這門成績的排序顯示在屏幕上,這個(gè)文件里面有要到了fun1和sort函數(shù),fun1的作用是功能的選擇你選擇哪一門成績的排序。Sort函數(shù)就是將前面所選擇的功能實(shí)現(xiàn),它的主

10、要作用就針對(duì)你選擇的科目進(jìn)行排序,而且在sort的函數(shù)里面調(diào)用了disp函數(shù),目的是將排好序的成績顯示在屏幕上。creat.h用途是假如你是第一次在難的電腦上運(yùn)行程序或者要在屏幕上顯示數(shù)據(jù)時(shí)就要調(diào)用這個(gè)文件。在這個(gè)文件里面調(diào)用了兩個(gè)函數(shù)creat函數(shù)和disp函數(shù),creat函數(shù)就是要?jiǎng)?chuàng)建md類型的數(shù)據(jù)類型時(shí)就調(diào)用它,而disp函數(shù)顧名思義就是用來顯示數(shù)據(jù)用的。find.h主要用來查找學(xué)生的成績和對(duì)班級(jí)某一門課的平均成績的統(tǒng)計(jì)。在find.h文件中用到了fun2、fun3、find_nu、find_na,下面我對(duì)每個(gè)函數(shù)的功能一一進(jìn)行分析。fun2就是對(duì)某個(gè)班級(jí)的某門成績的平均成績的統(tǒng)計(jì),并且

11、直接在屏幕上顯示出來,fun3中有個(gè)while循環(huán),它主要作用是顯示查找的主菜單,也就是說提示你選擇查找的方式,如:按姓名查找、按學(xué)號(hào)查找,并針對(duì)選擇的功能不同可以調(diào)用不同的函數(shù),以實(shí)現(xiàn)我們想要的功能。例如你選擇按學(xué)號(hào)查找就會(huì)調(diào)用find_nu函數(shù)果選擇按姓名查找那么就會(huì)調(diào)用find_na函數(shù),如果有同名的同學(xué)那么就會(huì)出現(xiàn)友情提示。系統(tǒng)會(huì)告訴你按學(xué)號(hào)查找,從而調(diào)用find_nu函數(shù)。最后#h文件的功能是對(duì)某一門課的成績的不同分?jǐn)?shù)段的同學(xué)進(jìn)行統(tǒng)計(jì),其中tongji的功能就是現(xiàn)實(shí)統(tǒng)計(jì)對(duì)象的主菜單,用來選擇不同的統(tǒng)計(jì)對(duì)象,如果選擇的對(duì)象不同那么傳遞給tongji1 的函數(shù)的實(shí)參就會(huì)不同,

12、從而實(shí)現(xiàn)對(duì)不同的科目成績的統(tǒng)計(jì)。流程圖開始Access()=1NoCreat()輸入數(shù)據(jù)判斷selectSelect=1fun1()select=2fun2()select=5select=3fun3()select=4tongji()退出系統(tǒng)輸入select的值sort()參數(shù)不同功能不同不同輸入select值根據(jù)輸入不同計(jì)算出各門課均值輸入select判斷selectselect=1find_nu()select=2find_na()輸入selecttongji()參數(shù)不同對(duì)不同科目成績統(tǒng)計(jì)四.程序調(diào)試a.測(cè)試數(shù)據(jù):準(zhǔn)備典型的測(cè)試數(shù)據(jù)和測(cè)試方案,包括正確的輸入及輸出結(jié)果和含有錯(cuò)誤的輸入及輸

13、出結(jié)果。b.程序調(diào)試中遇到的問題以及解決問題的方法。c.課程設(shè)計(jì)過程經(jīng)驗(yàn)教訓(xùn)、心得體會(huì)。程序的調(diào)試的數(shù)據(jù)如下:五.總結(jié) 六附件源程序:/主程序#include #include #include #include #include define.h#include creat.h#include sort.h#include find.h#include #hvoid main() md h;int select; FILE *fp; if( (_access( E:data.txt, 0 ) != -1 ) if(fp=fopen(E:data.txt,r)!=NULL) cha

14、r seps= ,; char line1000; char *yong; int i=1,j=1; fgets(line,1000,fp); yong=strtok(line,seps); while( yong != NULL ) if(j%5=1) h.stui.number=atoi(yong); if(j%5=2) 1=atoi(yong); if(j%5=3) 2=atoi(yong); if(j%5=4) 3=atoi(yong); if(j%5=0) strcpy(,yong); i+; j+;

15、h.num=i-1; yong = strtok( NULL, seps ); else h=creat();doprintf(*n);printf(1. 排序 n);printf(2. 班級(jí)平均成績 n);printf(3. 查找 n);printf(4. 成績的統(tǒng)計(jì)n);printf(5. 退出 n); printf(*n);printf(請(qǐng)選擇功能(1-5):n);scanf(%d,&select);if(select=5)printf(OK! n);exit(0);if(select=1) fun1(h);if(select=2) fun2(h);if(select=3) fun3(h

16、);if(select=4) tongji(h);while(1);/“define.h”文件#define maxsize1 100#define maxsize2 10typedef struct int number;char namemaxsize1; int pro5; node;typedef struct node stumaxsize2;int num;md;/creat.h 文件md creat()FILE *fp;md a;int i;printf(輸入學(xué)生的人數(shù):);scanf(%d,&a.num);if(fp=fopen(E:data.txt,w)!=NULL)for(

17、i=1;i=a.num;i+)printf(請(qǐng)輸入第%d個(gè)學(xué)生的 學(xué)號(hào) ,名字:,i);scanf(%d%s,&a.stui.number,&);printf(請(qǐng)輸入第%d個(gè) 數(shù)學(xué)成績,英語成績,電腦成績:,i);scanf(%d%d%d,&1,&2,&3); fprintf(fp,%d,%d,%d,%d,%s,a.stui.number,1, 2,3,);elseprintf(文件打不開!);exit(0);fclose(fp);

18、return a;void disp(md a)int i;for(i=1;i=a.num;i+)printf(學(xué)號(hào) : %d,名字:%s,數(shù)學(xué)成績:%d,英語成績:%d,電腦成績:%d,平均成績:%dn,a.stui.number,,1,2,3,4);printf(n);/find.h文件void fun2(md a)int select,i,tatal;do printf(*n);printf(1. 班級(jí)的數(shù)學(xué)成績 n);printf(2. 班級(jí)的英語成績 n); printf(3. 班級(jí)

19、的電腦成績 n); printf(4. 返回 n); printf(*n);printf(請(qǐng)選擇功能(1-4):n);scanf(%d,&select);if(select=4)return ;else tatal=0;for(i=1;i=a.num;i+)tatal+=select;printf(班級(jí)平均成績:%d n,tatal/a.num);while(1);void find_nu(md a,int b)int i;for(i=1;i=a.num;i+)if(a.stui.number=b) printf(名字:%s,數(shù)學(xué)成績:%d,英語成績:%d,電腦成績:%d

20、n,,1,2,3);return;void find_na(md a,char ch)int i,j=0,x;for(i=1;i1)printf(友情提示,有重名字的情況!n); printf( 輸入學(xué)號(hào):);scanf(%d,&x);find_nu(a,x);elsefor(i=1;ia.num;i+) printf(學(xué)號(hào) :%d,數(shù)學(xué)成績:%d,英語成績:%d,電腦成績:%d n,a.stui.number,1,2,3 ); return;void

21、fun3(md a)int x,select;char chmaxsize1;doprintf(*n);printf(1. 按學(xué)號(hào)查找 n);printf(2. 按姓名查找 n);printf(3. 返回 n);printf(*n);printf(4. 請(qǐng)選擇功能(1-3)n);scanf(%d,&select);if(select=3) return;else if(select=1)printf( 輸入學(xué)號(hào):);scanf(%d,&x);find_nu(a,x);elseprintf(輸入名字: );scanf(%s,ch);find_na(a,ch);while(1);/#h

22、文件void sort(md a,int m)int i,j,max;node temp;for(i=1;ia.num;i+)max=i;for(j=i+1;m)max=j;if(max!=i)temp=a.stumax;a.stumax=a.stui;a.stui=temp;disp(a);void fun1(md a)int select ,i;for(i=1;i=a.num;i+)4=(1+2+3)/3;doprintf(*n);printf(1. 數(shù)學(xué)成績排序 n);printf(2. 英

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論