數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)——成績(jī)管理系統(tǒng).doc_第1頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)——成績(jī)管理系統(tǒng).doc_第2頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)——成績(jī)管理系統(tǒng).doc_第3頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)——成績(jī)管理系統(tǒng).doc_第4頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)——成績(jī)管理系統(tǒng).doc_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

guangxi university of science and technology課程設(shè)計(jì)報(bào)告課程名稱: 數(shù)據(jù)結(jié)構(gòu) 課題名稱: 成績(jī)管理系統(tǒng)的設(shè)計(jì) 姓 名: 王永源 學(xué) 號(hào): 院 系: 計(jì)算機(jī)學(xué)院 專業(yè)班級(jí): 通信121 指導(dǎo)教師: 完成日期: 2013年12月15日 目 錄 第1部分 課程設(shè)計(jì)報(bào)告3第1章 課程設(shè)計(jì)目的3第2章 課程設(shè)計(jì)內(nèi)容和要求42.1 問題描述42.2 設(shè)計(jì)要求4第3章 課程設(shè)計(jì)總體方案及分析43.1 問題分析43.2 概要設(shè)計(jì)53.3 模塊結(jié)構(gòu)圖63.4 流程圖63.5 詳細(xì)設(shè)計(jì)63.6 調(diào)試分析83.7 測(cè)試結(jié)果83.8 參考文獻(xiàn)10第2部分 課程設(shè)計(jì)總結(jié)10附錄(源代碼)12第1部分 課程設(shè)計(jì)報(bào)告第1章 課程設(shè)計(jì)目的數(shù)據(jù)結(jié)構(gòu)作為一門計(jì)算機(jī)專業(yè)必修的學(xué)科之一,主要研究數(shù)據(jù)的各種邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu),以及對(duì)數(shù)據(jù)的各種基本操作。一般來說,大體上可以分為三個(gè)方面的內(nèi)容:數(shù)據(jù)的邏輯結(jié)構(gòu);數(shù)據(jù)的物理存儲(chǔ)結(jié)構(gòu);對(duì)數(shù)據(jù)的操作(或算法)。通常,算法的設(shè)計(jì)取決于數(shù)據(jù)的邏輯結(jié)構(gòu),算法的實(shí)現(xiàn)取決于數(shù)據(jù)的物理存儲(chǔ)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)是信息的一種組織方式,其目的是為了提高算法的效率,它通常與一組算法的集合相對(duì)應(yīng),通過這組算法集合可以對(duì)數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)進(jìn)行某種操作。作為計(jì)算機(jī)專業(yè)的學(xué)生,我們應(yīng)該很好的掌握這門技術(shù)。在課堂上,我們學(xué)到的只是理論知識(shí),很少有過自己動(dòng)手實(shí)踐的機(jī)會(huì)。那么,課程設(shè)計(jì)就是為解決這個(gè)問題的一個(gè)很好平臺(tái)。 數(shù)據(jù)結(jié)構(gòu)這門課具有比較強(qiáng)的理論性,同時(shí)也具有較強(qiáng)的實(shí)踐性。其中課程設(shè)計(jì)就是是一個(gè)重要的教學(xué)環(huán)節(jié)。通過課程設(shè)計(jì),我們需要達(dá)到以下目的: 了解并掌握數(shù)據(jù)結(jié)構(gòu)與算法的設(shè)計(jì)方法,具備初步的獨(dú)立分析和設(shè)計(jì)能力,并進(jìn)一步學(xué)習(xí) 和掌握c語言基礎(chǔ)、數(shù)據(jù)結(jié)構(gòu)算法基礎(chǔ); 初步掌握軟件開發(fā)過程的問題分析、系統(tǒng)設(shè)計(jì)、程序編碼、測(cè)試等基本方法和技能; 提高綜合運(yùn)用所學(xué)的理論知識(shí)和方法獨(dú)立分析和解決問題的能力; 通過上機(jī)操作和調(diào)試程序,培養(yǎng)用學(xué)到的書本知識(shí)解決實(shí)際問題的能力;培養(yǎng)實(shí)際工作所需要的動(dòng)手能力;培養(yǎng)以科學(xué)理論和工程上能力的技術(shù),規(guī)范地開發(fā)大型、復(fù)雜、高質(zhì)量的應(yīng)用軟件和系統(tǒng)軟件具有關(guān)鍵性作用; 訓(xùn)練用系統(tǒng)的觀點(diǎn)和軟件開發(fā)一般規(guī)范進(jìn)行軟件開發(fā),培養(yǎng)軟件工作者所應(yīng)具備的科學(xué)的工作方法和作風(fēng);第2章 課程設(shè)計(jì)內(nèi)容和要求2.1問題描述: 學(xué)生成績(jī)管理系統(tǒng)是學(xué)校教務(wù)管理的重要組成部分,處理信息量很大。該題目是對(duì)學(xué)生的成績(jī)管理做簡(jiǎn)單的模擬,其中學(xué)生信息包括學(xué)號(hào)、姓名與成績(jī)。成績(jī)分為課程1成績(jī)、課程2成績(jī)、課程3成績(jī)、課程4成績(jī)和總成績(jī)及平均成績(jī)。另外還需統(tǒng)計(jì)出成績(jī)優(yōu)秀的學(xué)生人數(shù)。該成績(jī)管理系統(tǒng)要求可以登記學(xué)生成績(jī)、查詢學(xué)生成績(jī)、插入學(xué)生成績(jī)、刪除學(xué)生成績(jī)等功能。2.2設(shè)計(jì)要求:1. 用鏈表實(shí)現(xiàn)應(yīng)用系統(tǒng),完成鏈表的建立以及鏈表中信息的插入、刪除、查找、修改、輸出等操作。2.建立學(xué)生成績(jī)單鏈表,鏈表中每個(gè)節(jié)點(diǎn)由五個(gè)域組成,分別是學(xué)號(hào)、姓名、性別、成績(jī)、存放下一個(gè)結(jié)點(diǎn)地址的next域。3. 通過菜單選擇操作方式完成以下功能:(1) 登記學(xué)生成績(jī);(2) 查詢學(xué)生成績(jī);(3) 插入學(xué)生成績(jī);(4) 刪除學(xué)生成績(jī);(5) 輸出學(xué)生成績(jī);(6) 統(tǒng)計(jì)優(yōu)秀學(xué)生人數(shù); 第3章 課程設(shè)計(jì)總體方案及分析3.1 問題分析:該題目涉及到單鏈表的各種操作,包括單鏈表的建立,結(jié)點(diǎn)的查找、插入、刪除等基本運(yùn)算。首先建立學(xué)生成績(jī)單鏈表,鏈表中每個(gè)節(jié)點(diǎn)由五個(gè)域組成,分別是學(xué)號(hào)、姓名、性別、成績(jī)、存放下一個(gè)結(jié)點(diǎn)地址的next域。然后將要求完成的各項(xiàng)功能寫成函數(shù),登記學(xué)生成績(jī)對(duì)應(yīng)建立單鏈表的功能。由于該系統(tǒng)處理的信息量大,采用單鏈表的形式容易處理插入、刪除學(xué)生信息,故采用單鏈表來存儲(chǔ)學(xué)生信息,用結(jié)構(gòu)體類型定義每個(gè)學(xué)生記錄,這樣單鏈表中每個(gè)結(jié)點(diǎn)可描述為:typedef struct nodeint num;char namemallen;char sex20int score1;int score2;int score3;int score4;int total;double average;struct node *next;node;3.2 概要設(shè)計(jì)本項(xiàng)目的模塊結(jié)構(gòu)如圖。圖中方塊表示函數(shù),方塊中指出函數(shù)名,箭頭表示函數(shù)間的調(diào)用關(guān)系,虛線表示文件的組成。學(xué)生成績(jī)管理系統(tǒng)程序包含以下函數(shù):(1) node *create(node *h,int n):創(chuàng)建學(xué)生成績(jī)信息表。(2) void find(node *h):查找學(xué)生成績(jī)。(3) void insert(node *h):插入學(xué)生信息。(4) void shanchu(node *h):刪除學(xué)生信息。(5) void youxiu(node *p):統(tǒng)計(jì)優(yōu)秀學(xué)生人數(shù)。(6) void output(node *h):輸出全部學(xué)生信息。 3.3 模塊結(jié)構(gòu)圖: 圖3.3.13.4 流程圖圖3.4.13.5 詳細(xì)設(shè)計(jì)1. 創(chuàng)建學(xué)生成績(jī)信息表node *create(node *h,int n)node *p,*r;int i;h=(node *)malloc(sizeof(node);h-next=null;r=h;for(i=1;inext;q=(node *)malloc(sizeof(node);printf(請(qǐng)輸入插入學(xué)生的學(xué)號(hào):);scanf(%d,&q-num);printf(請(qǐng)輸入學(xué)生的姓名:);scanf(%s,q-name);printf(請(qǐng)輸入學(xué)生的第1門成績(jī):);scanf(%d,&q-score1);printf(請(qǐng)輸入學(xué)生的第2門成績(jī):);scanf(%d,&q-score2);printf(請(qǐng)輸入學(xué)生的第3門成績(jī):);scanf(%d,&q-score3);printf(請(qǐng)輸入學(xué)生的第4門成績(jī):);scanf(%d,&q-score4);q-total=q-score1+q-score2+q-score3+q-score4;q-average=q-total/4;q-next=null;while(p!=null)r=p;p=p-next;/whiler-next=q;/r=r-next;/insert3. 查找學(xué)生成績(jī):void find(node *h)4.刪除學(xué)生信息:void shanchu(node *h) 5. 統(tǒng)計(jì)優(yōu)秀學(xué)生人數(shù):void yoxiu(node *p)6.輸出全部學(xué)生信息:void output(node *h)注:具體源代碼見附錄3.6 調(diào)試分析 (1) 開始執(zhí)行程序,系統(tǒng)創(chuàng)建鏈表,進(jìn)入輸出的選擇界面; (2)按需要進(jìn)行的操作選擇輸入相應(yīng)的選項(xiàng),系統(tǒng)執(zhí)行輸入的字符命令; (3)輸出相應(yīng)的數(shù)據(jù); (4)測(cè)試無誤,完成測(cè)試;3.7 測(cè)試結(jié)果1. 首先,進(jìn)入成績(jī)管理系統(tǒng)的界面 圖3.7.1 2.輸入“1”,進(jìn)入成績(jī)登記界面,登記成績(jī) .圖3.7.2 3.輸入“5”,輸出所有所登記學(xué)生的成績(jī)及平均成績(jī) 圖3.7.3 4.輸入“6”,輸出優(yōu)秀學(xué)生總?cè)藬?shù)及其各自的信息 圖3.7.4 5.輸入“2”,查詢學(xué)生成績(jī) 圖3.7.5 6.輸入“3”,插入學(xué)生成績(jī) 圖3.7.6 7.,輸入“4”,刪除學(xué)生成績(jī) 圖3.7.7 3.8 參考文獻(xiàn) 【1】 劉勇 郭韶升 張煒 周麗雅 數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)與實(shí)訓(xùn)教程 國(guó)防工業(yè)出版社 2011年7月 【2】 嚴(yán)蔚敏 吳偉民 數(shù)據(jù)結(jié)構(gòu)(c語言版) 清華大學(xué)出版社 2007年 【3】 譚浩強(qiáng) c語言程序設(shè)計(jì)(第四版) 清華大學(xué)出版社 2010年6月 第2部分 課程設(shè)計(jì)總結(jié)為了備考4級(jí),花了大量的時(shí)間復(fù)習(xí),本想說終于松了一口氣。但回想了一下,16周還有更重的任務(wù),數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)及考試、信號(hào)與系統(tǒng)測(cè)試等。所以,考完4級(jí)后我立馬轉(zhuǎn)身把時(shí)間投入到課程設(shè)計(jì)中。整個(gè)過程花了一周多的時(shí)間才完成?;叵脒^去的一周,當(dāng)我看到題目的時(shí)候,一頭霧水,什么都不懂,回想往事,忙于學(xué)生會(huì)工作、班級(jí)工作等我忽視了學(xué)習(xí)這一塊,也就在此時(shí)我認(rèn)識(shí)到了學(xué)習(xí)刻不容緩的真實(shí)性。看不懂怎么辦?我去了圖書館找資料,學(xué)校的圖書是多,但關(guān)于數(shù)據(jù)結(jié)構(gòu)這一塊,雖然書不算少,但自我感覺對(duì)本次課程設(shè)計(jì)有用的不多,而且還是很舊的。在圖書館找了許久,終于找到了我設(shè)計(jì)的源泉數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)與實(shí)訓(xùn)教程(國(guó)防工業(yè)出版社),從此開始了我的數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)之路。我的c語言基礎(chǔ)不好,興趣也不在程序這一塊,所以剛開始的時(shí)候有很大的難度,在這里,我不得不感謝大三計(jì)y的一個(gè)學(xué)長(zhǎng)和跟我同在一個(gè)學(xué)生會(huì)部門同屆計(jì)y的一個(gè)同學(xué)。他們給予了我很大的幫助,也就是在他們的幫助,我順利地做好了課程設(shè)計(jì),當(dāng)然,最重要的是我的不懈努力。 通過本次的課程設(shè)計(jì),我進(jìn)一步學(xué)習(xí)和掌握了c語言、數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)知識(shí)和理論,各方面都有了一定的收獲。尤其是c語言的進(jìn)步讓我深刻的感受到任何所學(xué)的知識(shí)都需要實(shí)踐,沒有實(shí)踐就無法真正理解這些知識(shí)以及掌握它們,使其成為自己的財(cái)富。在理論學(xué)習(xí)和上機(jī)實(shí)踐的各個(gè)環(huán)節(jié)中,通過自主學(xué)習(xí)和請(qǐng)教學(xué)長(zhǎng)及同學(xué),我收獲了不少。當(dāng)然也遇到不少的問題,也正是因?yàn)檫@些問題引發(fā)的思考給我?guī)Я耸斋@。在這段時(shí)間里,我對(duì)for、while等的循環(huán)函數(shù)用法更加熟悉,逐漸形成了較好的編程習(xí)慣。在學(xué)長(zhǎng)的指導(dǎo)幫助下,同學(xué)們課余時(shí)間的討論中,這些問題都一一得到了解決。在程序的調(diào)試能力上,無形中得到了許多的提高。例如:頭文件的使用,變量和數(shù)組的范圍問題,定義變量時(shí)出現(xiàn)的問題等等。在實(shí)際的上機(jī)操作過程中,不僅是讓我們了解數(shù)據(jù)結(jié)構(gòu)的理論知識(shí),更重要的是培養(yǎng)解決實(shí)際問題的能力,所以相信通過此次課程設(shè)計(jì)可以提高我們分析設(shè)計(jì)能力和編程能力,為后續(xù)課程的學(xué)習(xí)及實(shí)踐打下良好的基礎(chǔ)。在這次短短的課程實(shí)踐里,我就清楚的認(rèn)識(shí)到實(shí)踐是檢驗(yàn)真理的正確性,我學(xué)會(huì)了如何解決現(xiàn)實(shí)問題,如何將理論知識(shí)應(yīng)用到實(shí)際問題上??偟膩碚f,我認(rèn)為課程設(shè)計(jì)很有必要,也很重要。附 錄/ 成績(jī)管理系統(tǒng)2.cpp : 定義控制臺(tái)應(yīng)用程序的入口點(diǎn)。/#include stdafx.h/ 成績(jī)系統(tǒng).cpp : 定義控制臺(tái)應(yīng)用程序的入口點(diǎn)。/#include#include#include#define maxlen 100#define null 0typedef struct nodeint num;char namemaxlen;char sex20;int score1;int score2;int score3;int score4;int total;double average ;struct node *next;node;/*創(chuàng)建學(xué)生成績(jī)信息表*/node *create(node *h,int n)node *p,*r;int i;h=(node *)malloc(sizeof(node);h-next=null;r=h;for(i=1;inum);printf(請(qǐng)輸入學(xué)生的姓名:);scanf(%s,p-name);printf(請(qǐng)輸入學(xué)生的性別:);scanf(%s,p-sex);printf(請(qǐng)輸入學(xué)生的第1門成績(jī):);scanf(%d,&p-score1);printf(請(qǐng)輸入學(xué)生的第2門成績(jī):);scanf(%d,&p-score2);printf(請(qǐng)輸入學(xué)生的第3門成績(jī):);scanf(%d,&p-score3);printf(請(qǐng)輸入學(xué)生的第4門成績(jī):);scanf(%d,&p-score4);p-total=p-score1+p-score2+p-score3+p-score4;p-average=1.0*p-total/4;p-next=null;r-next=p;r=r-next;/forreturn h;/createvoid add(node *h)node *p,*q,*r;/r=h;p=h-next;q=(node *)malloc(sizeof(node);printf(請(qǐng)輸入插入學(xué)生的學(xué)號(hào):);scanf(%d,&q-num);printf(請(qǐng)輸入學(xué)生的姓名:);scanf(%s,q-name);printf(請(qǐng)輸入學(xué)生的性別:);scanf(%s,q-sex);printf(請(qǐng)輸入學(xué)生的第1門成績(jī):);scanf(%d,&q-score1);printf(請(qǐng)輸入學(xué)生的第2門成績(jī):);scanf(%d,&q-score2);printf(請(qǐng)輸入學(xué)生的第3門成績(jī):);scanf(%d,&q-score3);printf(請(qǐng)輸入學(xué)生的第4門成績(jī):);scanf(%d,&q-score4);q-total=q-score1+q-score2+q-score3+q-score4;q-average=1.0*q-total/4;q-next=null;while(p!=null)r=p;p=p-next;/whiler-next=q;/r=r-next;/addvoid find(node *h)int k;node *p;p=h-next;printf(請(qǐng)輸入要查找學(xué)生的學(xué)號(hào):n);scanf(%d,&k);while(p&p-num!=k)p=p-next;if(p)printf(學(xué)號(hào)t姓名t性別t成績(jī)1t成績(jī)2t成績(jī)3t成績(jī)4t總成績(jī)t平均成績(jī)n);printf(%dt%st%st%dt%dt%dt%dt%dt%0.2lfn,p-num,p-name,p-sex,p-score1,p-score2,p-score3,p-score4,p-total,p-average);/ifelseprintf(沒找到!n);/findvoid delete(node *h)int k;node *p,*q;q=h;p=h-next;printf(請(qǐng)輸入待刪除學(xué)生的學(xué)號(hào):);scanf(%d,&k);while(p&p-num!=k)q=p;p=p-next;/whileif(p)q-next=p-next;free(p);elseprintf(該學(xué)生信息不存在,無法刪除!n);/deletevoid list(node *h)node *p;p=h-next;printf(學(xué)號(hào)t姓名t性別t成績(jī)1t成績(jī)2t成績(jī)3t成績(jī)4t總成績(jī)t平均成績(jī)n);while(p!=null)printf(%dt%st%st%dt%dt%dt%dt%dt%0.2lfn,p-num,p-name,p-sex,p-score1,p-score2,p-score3,p-score4,p-total,p-average);p=p-next;/listvoid youxiu(node *p)node *q=p-next ;int n=0;while(q!=null)if(q-average =90)n+;q=q-next;q=p;printf(優(yōu)秀學(xué)生總數(shù):%dn,n); printf(優(yōu)秀學(xué)生詳細(xì)信息如下:n); printf(學(xué)號(hào)t姓名t性別t成績(jī)1t成績(jī)2t成績(jī)3t成績(jī)4t總成績(jī)t平均成績(jī)n); while(q!=null) if(q-average =90)printf(%dt%st%st%dt%dt%dt%dt%dt%0.2lfn,q-num,q-name

溫馨提示

  • 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)論