版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 計(jì)算機(jī)科學(xué)與工程學(xué)院</p><p><b> 數(shù)字媒體與技術(shù)專業(yè)</b></p><p> 《數(shù)據(jù)結(jié)構(gòu)與算法課程設(shè)計(jì)》報(bào)告</p><p> 學(xué)生班級: </p><p> 學(xué)生學(xué)號: </p><p> 學(xué)生姓名:
2、 </p><p> 指導(dǎo)教師: </p><p> 2011 年 9 月 1 日</p><p><b> 目錄</b></p><p> 第一章 課程設(shè)計(jì)的目的和要求1</p><p> 1.1課程
3、設(shè)計(jì)的目的1</p><p> 1.2課程設(shè)計(jì)問題描述1</p><p> 1.3課程設(shè)計(jì)基本要求1</p><p> 1.4課程設(shè)計(jì)測試數(shù)據(jù)1</p><p> 第二章 課程設(shè)計(jì)任務(wù)內(nèi)容2</p><p> 第三章 詳細(xì)設(shè)計(jì)說明3</p><p> 3.1數(shù)據(jù)類型定義
4、3</p><p> 3.2程序功能圖及功能說明4</p><p> 3.2.1程序功能圖4</p><p> 3.2.2程序功能說明4</p><p> 3.3程序流程圖5</p><p><b> 3.4算法設(shè)計(jì)6</b></p><p> 第四章
5、 程序測試7</p><p> 4.1多組數(shù)據(jù)輸入與輸出7</p><p> 4.2操作過程10</p><p> 第五章 課程設(shè)計(jì)心得與體會(huì)11</p><p><b> 第六章 致謝12</b></p><p> 附錄一 參考文獻(xiàn)13</p><p&g
6、t; 附錄二 程序清單14</p><p><b> 運(yùn)動(dòng)會(huì)計(jì)分系統(tǒng)</b></p><p> 第一章 課程設(shè)計(jì)的目的和要求</p><p><b> 1.1課程設(shè)計(jì)目的</b></p><p> 數(shù)據(jù)結(jié)構(gòu)作為一門學(xué)科主要研究數(shù)據(jù)的各種邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu),以及對數(shù)據(jù)的各種操作。因此,主要
7、有三個(gè)方面的內(nèi)容:數(shù)據(jù)的邏輯結(jié)構(gòu);數(shù)據(jù)的物理存儲(chǔ)結(jié)構(gòu);對數(shù)據(jù)的操作(或算法)。通常,算法的設(shè)計(jì)取決于數(shù)據(jù)的邏輯結(jié)構(gòu),算法的實(shí)現(xiàn)取決于數(shù)據(jù)的物理存儲(chǔ)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)是信息的一種組織方式,其目的是為了提高算法的效率,它通常與一組算法的集合相對應(yīng),通過這組算法集合可以對數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)進(jìn)行某種操作。</p><p> 在當(dāng)今信息時(shí)代,信息技術(shù)己成為當(dāng)代知識經(jīng)濟(jì)的核心技術(shù)。我們時(shí)刻都在和數(shù)據(jù)打交道。比如人們在外出工作時(shí)找
8、最短路徑,在銀行查詢存款、通過互聯(lián)網(wǎng)查新聞、以及遠(yuǎn)程教育報(bào)名等,所有這些都在與數(shù)據(jù)發(fā)生關(guān)系。實(shí)際上,現(xiàn)實(shí)世界中的實(shí)體經(jīng)過抽象以后,就可以成為計(jì)算機(jī)上所處理的數(shù)據(jù)。</p><p> 數(shù)據(jù)結(jié)構(gòu)課程主要是研究非數(shù)值計(jì)算的程序設(shè)計(jì)問題中所出現(xiàn)的計(jì)算機(jī)操作對象以及它們之間的關(guān)系和操作的學(xué)科。數(shù)據(jù)結(jié)構(gòu)是介于數(shù)學(xué)、計(jì)算機(jī)軟件和計(jì)算機(jī)硬件之間的一門計(jì)算機(jī)專業(yè)的核心課程,它是計(jì)算機(jī)程序設(shè)計(jì)、數(shù)據(jù)庫、操作系統(tǒng)、編譯原理及人工智能
9、等的重要基礎(chǔ),廣泛的應(yīng)用于信息學(xué)、系統(tǒng)工程等各種領(lǐng)域。</p><p> 學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)是為了將實(shí)際問題中所涉及的對象在計(jì)算機(jī)中表示出來并對它們進(jìn)行處理。通過課程設(shè)計(jì)可以提高學(xué)生的思維能力,促進(jìn)學(xué)生的綜合應(yīng)用能力和專業(yè)素質(zhì)的提高。課程設(shè)計(jì)的目的:</p><p> 1)要求學(xué)生達(dá)到熟練掌握C語言的基本知識和技能。</p><p> 2)了解并掌握數(shù)據(jù)結(jié)構(gòu)與算法的
10、設(shè)計(jì)方法,具備初步的獨(dú)立分析和設(shè)計(jì)能力。</p><p> 3)提高程序設(shè)計(jì)和調(diào)試能力。學(xué)生通過上機(jī)實(shí)習(xí),驗(yàn)證自己設(shè)計(jì)的算法的正確性。學(xué)會(huì)有效利用基本調(diào)試方法,迅速找出程序代碼中的錯(cuò)誤并且修改。</p><p> 4)培養(yǎng)算法分析能力。分析所設(shè)計(jì)算法的時(shí)間復(fù)雜度和空間復(fù)雜度,進(jìn)一步提高程序設(shè)計(jì)水平。</p><p> 5)初步掌握軟件開發(fā)過程的問題分析、系統(tǒng)設(shè)
11、計(jì)、程序編碼、測試等基本方法和技能。</p><p> 1.2課程設(shè)計(jì)問題描述</p><p> 參加運(yùn)動(dòng)會(huì)的系有n個(gè),其中系編號從1至n。比賽分成w個(gè)女子項(xiàng)目和m個(gè)男子項(xiàng)目。運(yùn)動(dòng)會(huì)比賽項(xiàng)目編號是:男子1……m,女子m+1……m+w。在比賽的結(jié)果中,不同的項(xiàng)目取前五名或者取前三名的積分;取前五名的積分分別為:7、5、3、2、1,前三名的積分分別為:5、3、2;哪些取前五名或前三名由學(xué)生
12、自己設(shè)定。(m<=20,n<=20)</p><p> 1.3課程設(shè)計(jì)基本要求</p><p> ?。?)能夠方便快捷的輸入各個(gè)項(xiàng)目的前三名或前五名的成績</p><p> (2)能夠按系編號、系總分、男女團(tuán)體總分進(jìn)行排序并輸出</p><p> ?。?)能夠精確的統(tǒng)計(jì)各系的總分</p><p> ?。?/p>
13、4)能夠按系編號查詢系某個(gè)項(xiàng)目的基本情況,能夠按項(xiàng)目編號查詢?nèi)〉们叭蚯拔迕南?lt;/p><p> 1.4課程設(shè)計(jì)測試數(shù)據(jù)</p><p> 按1鍵進(jìn)入添加系的界面,根據(jù)提示,再輸入:汽車系。再輸入:8,成功添加了一個(gè)系。再輸入:2進(jìn)入運(yùn)動(dòng)項(xiàng)目添加界面,根據(jù)提示,再輸入:跳高;1;0;1;2;3。之后輸入0。再次進(jìn)入系統(tǒng)界面</p><p> 按3鍵查看系統(tǒng)中
14、輸出的結(jié)果</p><p> 按4鍵查看系統(tǒng)中輸出的結(jié)果</p><p> 按5鍵查看系統(tǒng)中輸出的結(jié)果</p><p> 按6鍵查看系統(tǒng)中輸出的結(jié)果</p><p> 按7鍵根據(jù)提示輸入項(xiàng)目編號并查看系統(tǒng)中輸出的結(jié)果</p><p> 按8鍵根據(jù)提示輸入系編號并查看系統(tǒng)中輸出的結(jié)果</p>&l
15、t;p> 第二章 課程設(shè)計(jì)任務(wù)內(nèi)容</p><p> 可以輸入各個(gè)項(xiàng)目的前三名或前五名的成績</p><p> 可以按系編號、系總分、男女團(tuán)體總分排序輸出</p><p> 可以統(tǒng)計(jì)出各系的總分</p><p> 可以按系編號查詢系某個(gè)項(xiàng)目的情況</p><p> 可以按項(xiàng)目編號查詢?nèi)〉们叭蚯拔迕?/p>
16、系</p><p> 數(shù)據(jù)存入文件中,并且可以隨時(shí)查詢</p><p><b> 系統(tǒng)操作規(guī)定:</b></p><p> 輸入數(shù)據(jù)形式和范圍:可以輸入學(xué)院(系)的名稱和運(yùn)動(dòng)會(huì)項(xiàng)目的名稱</p><p> 輸出形式:有中文提示,各學(xué)院(系)分?jǐn)?shù)為整形</p><p> 界面要求:有合理的
17、操作提示,每個(gè)功能都可以設(shè)立菜單,并且根據(jù)提示,可以完成相關(guān)的功能要求</p><p> 存儲(chǔ)結(jié)構(gòu):學(xué)生自己可以根據(jù)系統(tǒng)功能要求自己設(shè)計(jì),但是要求運(yùn)動(dòng)會(huì)的相關(guān)數(shù)據(jù)要存儲(chǔ)在數(shù)據(jù)文件中,實(shí)時(shí)保存</p><p> 第三章 詳細(xì)設(shè)計(jì)說明</p><p><b> 3.1數(shù)據(jù)類型定義</b></p><p> (1)運(yùn)動(dòng)
18、項(xiàng)目定義:</p><p> typedef struct Sport //運(yùn)動(dòng)項(xiàng)目結(jié)構(gòu)</p><p><b> {</b></p><p> char name[20]; //運(yùn)動(dòng)項(xiàng)目名稱</p><p> int isboy; //0為女項(xiàng)目,1為男項(xiàng)目</p
19、><p> int is3; //0為取前五名,1為取前五名</p><p> int number; //項(xiàng)目編號</p><p> int first; //第一名系的編號</p><p> int second; //第二名系的編號</p&
20、gt;<p> int third; //第三名系的編號</p><p> int fourth; //第四名系的編號</p><p> int fifth; //第五名系的編號</p><p> Sport *next;</p><p><b>
21、; }Sport;、</b></p><p> 運(yùn)動(dòng)項(xiàng)目結(jié)構(gòu)體定義如下:char型的數(shù)組,int型的number,first,second,third,fourth,fifth以及sport類型的指針next。</p><p><b> (2)系的定義:</b></p><p> typedef struct Departm
22、ent //系的結(jié)構(gòu)</p><p><b> {</b></p><p> char name[20]; //系的名稱</p><p> int number; //系的編號</p><p> int boy; //男子團(tuán)體總分</p>
23、<p> int girl; //女子團(tuán)體總分</p><p> Department *next; </p><p> }Department;</p><p> 將系自定義為一個(gè)結(jié)構(gòu)體命名為Department;系的結(jié)構(gòu)體定義如下:char型的數(shù)組,int型的變量unmber ,int型的變量boy,girl以及
24、Department類型的指針next。</p><p> 3.2程序功能圖及功能說明</p><p> 3.2.1程序功能圖</p><p><b> 圖2 程序功能圖</b></p><p> 3.2.2程序功能說明</p><p><b> 如上圖標(biāo)示:</b>
25、;</p><p><b> 1直接輸入系別名稱</b></p><p> 2直接輸入運(yùn)動(dòng)項(xiàng)目的名稱,編號,及男女項(xiàng)目代碼,以便之后執(zhí)行的簡單快捷</p><p> 3直接跳轉(zhuǎn)到“按系別輸出總分”的界面,查看按系別編號輸出的總分</p><p> 4直接跳轉(zhuǎn)到“按總分排序”的界面,查看按總分排列的順序</p
26、><p> 5直接跳轉(zhuǎn)到“按男團(tuán)體輸出總分”的界面,查看按男團(tuán)體總分排列的順序</p><p> 6直接跳轉(zhuǎn)到“按女團(tuán)體輸出總分”的界面,查看按女團(tuán)體總分排列的順序</p><p> 7輸入所要查出的項(xiàng)目的編號,即可查看所排列的順序</p><p> 8輸入所要查出的系別的標(biāo)號,即可查看所排列的順序</p><p>
27、; 0退出鍵,保存文本,關(guān)閉程序</p><p><b> 3.3程序流程圖</b></p><p><b> 圖1 程序流程圖</b></p><p> 如上圖所示:本系統(tǒng)在第一次運(yùn)行時(shí),將直接輸出菜單,如果不是第一次運(yùn)行,則在系統(tǒng)運(yùn)行的初期會(huì)進(jìn)行數(shù)據(jù)的讀取。然后,可以根據(jù)輸出的菜單對需要進(jìn)行的功能進(jìn)行選擇,選擇
28、完畢后將該功能進(jìn)行運(yùn)行。例如:輸入運(yùn)動(dòng)項(xiàng)目,輸入系別,按系別編號出總分,按男女團(tuán)體總分?jǐn)?shù)輸出,按項(xiàng)目標(biāo)號查詢,按系別標(biāo)號查詢,退出。運(yùn)行完畢后,將數(shù)據(jù)輸出到屏幕,如果要結(jié)束系統(tǒng)則自動(dòng)將數(shù)據(jù)保存到相應(yīng)的文本,否則繼續(xù)輸出菜單。</p><p><b> 3.4算法設(shè)計(jì)</b></p><p> 主要算法的設(shè)計(jì)思想:</p><p> 本程序
29、主要是使用鏈表來實(shí)現(xiàn)操作。一個(gè)運(yùn)動(dòng)會(huì)包括運(yùn)動(dòng)項(xiàng)目和參加運(yùn)動(dòng)會(huì)的成員。因此構(gòu)造兩個(gè)鏈表Department,Sport。根據(jù)輸入的不同選擇不同的功能,有輸入運(yùn)動(dòng)項(xiàng)目,輸入系別,按系別編號輸出總分,按總分排序,按男團(tuán)體總分排序,按女團(tuán)體總分排序,按項(xiàng)目標(biāo)號查詢,按系別標(biāo)號查詢,退出。為了操作的方便,并且能夠保存輸入數(shù)據(jù),所以通過文件操作來實(shí)現(xiàn)數(shù)據(jù)的寫和讀。每次添加新的數(shù)據(jù)后都要輸入0退出,數(shù)據(jù)才能保存。對于總分的排序使用了冒泡排序。為了使整
30、個(gè)程序看起來更加友好,又添加了程序啟動(dòng)畫面。</p><p><b> 3.5相關(guān)知識</b></p><p> 鏈表是一種物理存儲(chǔ)單元上非連續(xù)、非順序的存儲(chǔ)結(jié)構(gòu),數(shù)據(jù)元素的邏輯順序是通過鏈表中的指針鏈接次序?qū)崿F(xiàn)的。鏈表由一系列結(jié)點(diǎn)(鏈表中每一個(gè)元素稱為結(jié)點(diǎn))組成,結(jié)點(diǎn)可以在運(yùn)行時(shí)動(dòng)態(tài)生成。每個(gè)結(jié)點(diǎn)包括兩個(gè)部分:一個(gè)是存儲(chǔ)數(shù)據(jù)元素的數(shù)據(jù)域,另一個(gè)是存儲(chǔ)下一個(gè)結(jié)點(diǎn)地
31、址的指針域。 相比于線性表順序結(jié)構(gòu),鏈表比較方便插入和刪除操作。</p><p> 冒泡排序,是指計(jì)算機(jī)的一種排序方法,它的時(shí)間復(fù)雜度為O(n^2),雖然不及堆排序、快速排序的O(nlogn,底數(shù)為2),但是有兩個(gè)優(yōu)點(diǎn):1.“編程復(fù)雜度”很低,很容易寫出代碼;2.具有穩(wěn)定性,這里的穩(wěn)定性是指原序列中相同元素的相對順序仍然保持到排序后的序列,而堆排序、快速排序均不具有穩(wěn)定性。不過,一路、二路歸并排序、不平衡二叉樹
32、排序的速度均比冒泡排序快,且具有穩(wěn)定性,但速度不及堆排序、快速排序。冒泡排序是經(jīng)過n-1趟子排序完成的,第i趟子排序從第1個(gè)數(shù)至第n-i個(gè)數(shù),若第i個(gè)數(shù)比后一個(gè)數(shù)大(則升序,小則降序)則交換兩數(shù)。</p><p><b> 第四章 程序測試</b></p><p> 4.1多組數(shù)據(jù)輸入與輸出</p><p><b> 圖3 程序
33、頁面圖</b></p><p> 圖3為本程序的頁面圖,為了使程序更加人性化,加入了“程序讀取,請耐心等待”的字樣。</p><p><b> 圖4 程序菜單圖</b></p><p> 圖4為本程序的菜單,顯示了本程序的主要功能,可以讓使用者輕松,快捷的,選擇所要進(jìn)行的操作。</p><p> 圖5
34、 程序輸入系別圖</p><p> 如圖5所示,在菜單中選擇“1”按回車鍵,彈出輸入一個(gè)系,輸入“計(jì)算機(jī)”,編號“1”單擊回車鍵,返回菜單。</p><p> 圖6程序輸入運(yùn)動(dòng)項(xiàng)目圖</p><p> 圖7程序輸入運(yùn)動(dòng)項(xiàng)目圖</p><p> 如圖6,圖7所示,在菜單中選擇“2”,按回車鍵,彈出“輸入一個(gè)運(yùn)動(dòng)項(xiàng)目”,輸入“100米”,
35、編號“1” 類型“0”等操作之后。按回車鍵,返回菜單。</p><p> 圖8 程序輸入系別編號查詢圖</p><p> 如圖8所示,在菜單中選擇“8”,按回車鍵,彈出“輸入系的編號”,輸入“2”,按回車鍵,彈回菜單。</p><p><b> ?。?)輸入:4</b></p><p> 輸出: 系名
36、 編號 男團(tuán)總分 女團(tuán)總分 總分</p><p> 法律系 4 1 0 1</p><p> 電子系 3 2 7 9</p><p> 數(shù)學(xué)系 5 6 5 11</p>
37、;<p> 旅游系 1 5 9 14</p><p> 歷史系 2 9 7 16</p><p> 中文系 6 15 11 26</p><p> 計(jì)算機(jī)系 7 2
38、1 11 32</p><p><b> ?。?)輸入:6</b></p><p> 輸出: 法律系 4 0 0 0</p><p> 電子系 3 3 1 4</p><p&g
39、t; 數(shù)學(xué)系 5 6 3 9</p><p> 旅游系 1 7 7 14</p><p> 歷史系 2 9 9 18</p><p> 中文系 6 15
40、 11 26</p><p> 計(jì)算機(jī)系 7 21 11 32</p><p><b> ?。?)輸入:8</b></p><p> 輸出:請輸入系的編號:</p><p><b> 再輸入2回車</b></p>&
41、lt;p><b> 則輸出:</b></p><p> 系名:中文系 男子團(tuán)體總分:3 女子團(tuán)體部分:10 總分:13</p><p> ?。?)輸入:0 退出</p><p><b> 4.2操作過程</b></p><p> (1)用戶進(jìn)入程序啟動(dòng)界面,等load完成后進(jìn)入主
42、菜單.主菜單有以下9個(gè)選項(xiàng)。</p><p><b> 1.輸入系別</b></p><p><b> 2.輸入運(yùn)動(dòng)項(xiàng)目</b></p><p> 3.按系別編號輸出總分</p><p><b> 4.按總分排序</b></p><p> 5.
43、按男團(tuán)體總分排序</p><p> 6.按女團(tuán)體總分排序</p><p><b> 7.按項(xiàng)目編號查詢</b></p><p><b> 8.按系別編號查詢</b></p><p><b> 0.退出</b></p><p> (2)輸入0至8
44、中的一個(gè)數(shù)。</p><p> (3)輸入1,進(jìn)行添加系操作,分別輸入系的名稱和編號。</p><p> (4)輸入2,進(jìn)行添加運(yùn)動(dòng)項(xiàng)目操作,分別輸入項(xiàng)目名稱,編號,項(xiàng)目類型,名次選</p><p><b> 取,排名情況。</b></p><p> (5)輸入0,則退出系統(tǒng),并且保存輸入的信息.每次添加完都要輸
45、入0退出系統(tǒng)</p><p><b> 才有效。</b></p><p> (6)輸入3,輸出按系編號總分排名。</p><p> (7)輸入4,輸出按總分排名。</p><p> (8)輸入5,輸出按男團(tuán)體總分排序。</p><p> (9)輸入6,輸出按女團(tuán)體總分排序。</p&
46、gt;<p> (10)輸入7,進(jìn)入按項(xiàng)目編號查詢界面.輸入要查詢的項(xiàng)目編號。</p><p> (11)輸入8,進(jìn)入按系別編號查詢界面,輸入要查詢的系的編號。</p><p> 第五章 課程設(shè)計(jì)心得與體會(huì)</p><p> 二周的課程設(shè)計(jì)結(jié)束了,在這次的課程設(shè)計(jì)中不僅檢驗(yàn)了我所學(xué)習(xí)的知識,也培養(yǎng)了我如何去把握一件事情,如何去做一件事情,又如何
47、完成一件事情。</p><p> 經(jīng)過二周的課程設(shè)計(jì),過程曲折可謂一語難盡。整天都是對著電腦,不然就是翻閱資料。在此期間我失落過,也曾一度熱情高漲。點(diǎn)點(diǎn)滴滴令我回味無長。這次課程設(shè)計(jì)使我體會(huì)到只有做到細(xì)心耐心,恒心才能做好事情。</p><p> 這次的課程設(shè)計(jì),加強(qiáng)了我們動(dòng)手、思考和解決問題的能力。鞏固和加深了對數(shù)據(jù)結(jié)構(gòu)的理解,提高綜合運(yùn)用本課程所學(xué)知識的能力。培養(yǎng)了我選用參考書,查
48、閱手冊及文獻(xiàn)資料的能力。培養(yǎng)獨(dú)立思考,深入研究,分析問題、解決問題的能力。通過實(shí)際編譯系統(tǒng)的分析設(shè)計(jì)、編程調(diào)試,掌握應(yīng)用軟件的分析方法和工程設(shè)計(jì)方法。通過課程設(shè)計(jì),培養(yǎng)了我嚴(yán)肅認(rèn)真的工作作風(fēng),逐步建立正確的生產(chǎn)觀念、經(jīng)濟(jì)觀念和全局觀念。而且做課程設(shè)計(jì)同時(shí)也是對課本知識的鞏固和加強(qiáng),平時(shí)看課本時(shí),有些問題就不是很能理解,做完課程設(shè)計(jì),那些問題就迎刃而解了。而且還可以記住很多東西。認(rèn)識來源于實(shí)踐,實(shí)踐是認(rèn)識的動(dòng)力和最終目的,實(shí)踐是檢驗(yàn)真理的
49、唯一標(biāo)準(zhǔn)。所以這個(gè)期末測試之后的課程設(shè)計(jì)對我們的作用是非常大的。</p><p> 這次的課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很非常重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在整個(gè)設(shè)計(jì)過程中,構(gòu)思是很花費(fèi)時(shí)間的。調(diào)試時(shí)經(jīng)常會(huì)遇到這樣那樣的錯(cuò)誤,有的是因?yàn)榇中脑斐傻恼Z法錯(cuò)誤。當(dāng)然,很多也時(shí)用錯(cuò)了方法,總
50、是實(shí)現(xiàn)不了。同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固。</p><p> 根據(jù)我在課程設(shè)計(jì)中遇到得問題,我將在以后的學(xué)習(xí)過程中注意以下幾點(diǎn):</p><p> 1、認(rèn)真上好專業(yè)實(shí)驗(yàn)課,多在實(shí)踐中鍛煉自己。</p><p> 2、寫程序的過程中要考慮周到,嚴(yán)密。</p><p> 3、在做
51、設(shè)計(jì)的時(shí)候要有信心,有耐心,切勿浮躁。</p><p> 4、認(rèn)真的學(xué)習(xí)課本知識,掌握課本中的知識點(diǎn),并在此基礎(chǔ)上學(xué)會(huì)靈活運(yùn)用。</p><p> 5、在課余時(shí)間里多寫程序,熟練掌握在調(diào)試程序的過程中所遇到的常見錯(cuò)誤,以便能節(jié)省調(diào)試程序的時(shí)間。</p><p> 每個(gè)實(shí)驗(yàn)通常都要花費(fèi)很久的時(shí)間才能理清一個(gè)程序的思路,而且要不斷的調(diào)試程序才能把程序調(diào)試正確,同時(shí)
52、還要做到界面的輸出也是需要美化的。這次課程設(shè)計(jì)終于順利完成了,在設(shè)計(jì)中遇到了很多專業(yè)知識問題,最后在老師的辛勤指導(dǎo)下,也完成了課程設(shè)計(jì)。</p><p> 通過這次的課程設(shè)計(jì),讓我更加了解到數(shù)據(jù)結(jié)構(gòu)的重要性。以及它對我們專業(yè)的發(fā)展發(fā)揮的作用。對我們而言,知識上的收獲很重要,但精神上的豐收更加可喜。讓我知道了學(xué)無止境的道理。我們每一個(gè)人永遠(yuǎn)不能滿足于現(xiàn)有的成就,人生就像在爬山,一座山峰的后面還有更高的山峰在等著你
53、。挫折是一份財(cái)富,經(jīng)歷是一份擁有。這次課程設(shè)計(jì)必將成為我人生旅途上一個(gè)非常美好的回憶!同時(shí)在做課程設(shè)計(jì)時(shí)要能夠從多方面去考慮,去研究,用多種算法去實(shí)現(xiàn)要求。此次課程設(shè)計(jì),學(xué)到了很多課內(nèi)學(xué)不到的東西,比如獨(dú)立思考解決問題,出現(xiàn)差錯(cuò)的隨機(jī)應(yīng)變,這些都讓我受益非淺,今后的制作應(yīng)該能夠更輕松,自己也都能夠解決并高質(zhì)量的完成項(xiàng)目。</p><p><b> 第六章 致謝</b></p>
54、<p> 在此感謝對我?guī)椭^的同學(xué)們,謝謝你們對我的幫助和支持,讓我感受到兄弟的友情。課程設(shè)計(jì)強(qiáng)化了我的對于數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)知識的認(rèn)識,并且將知識逐步實(shí)踐化,使得自己對c有了更深刻的理解。</p><p> 并真誠地感謝我的數(shù)據(jù)結(jié)構(gòu)任課老師—xx老師。</p><p><b> 附錄一 參考文獻(xiàn)</b></p><p> [1
55、]譚浩強(qiáng).《C++程序設(shè)計(jì)》.北京:清華大學(xué)出版社,2004年</p><p> [2]嚴(yán)蔚敏,吳偉民.《數(shù)據(jù)結(jié)構(gòu)與算法分析(C++版)(第2版)》.北京:清華大學(xué)出版社,2006年</p><p> [3 Clifford A. Shaffer,張銘 著《數(shù)據(jù)結(jié)構(gòu)與算法分析(C++版)(第2版)》.北京: 電子工業(yè)出版社,2010年</p><p>
56、<b> 附錄二 程序清單</b></p><p> #include<iostream.h></p><p> #include<iomanip.h></p><p> #include<string.h></p><p> #include<fstream.h>
57、;</p><p> #include<stdlib.h></p><p> #include<ctype.h></p><p> #include<stdio.h></p><p> #include<conio.h></p><p> typedef str
58、uct Department //系的結(jié)構(gòu)</p><p><b> {</b></p><p> char name[20]; //系的名稱</p><p> int number; //系的編號</p><p> int boy; //男子團(tuán)體總
59、分</p><p> int girl; //女子團(tuán)體總分</p><p> Department *next; }Department;</p><p> typedef struct Sport //運(yùn)動(dòng)項(xiàng)目結(jié)構(gòu)</p><p><b> {</b></p>&
60、lt;p> char name[20]; //運(yùn)動(dòng)項(xiàng)目名稱</p><p> int isboy; //0為女項(xiàng)目,1為男項(xiàng)目</p><p> int is3; //0為取前五名,1為取前五名</p><p> int number; //項(xiàng)目編號</p>
61、<p> int first; //第一名系的編號</p><p> int second; //第二名系的編號</p><p> int third; //第三名系的編號</p><p> int fourth; //第四名系的編號</p>&l
62、t;p> int fifth; //第五名系的編號</p><p> Sport *next;</p><p><b> }Sport;</b></p><p> int getint(int a) //字符轉(zhuǎn)換成數(shù)字</p><p><b> {</b
63、></p><p> return (int)(a-'0');</p><p><b> }</b></p><p> Department * head1;</p><p> //-------啟動(dòng)畫面函數(shù)----------</p><p> void Cove
64、r() </p><p> { system("color 1b");</p><p> char line[]={"程序讀取中 請耐心等待..."};</p><p> char bar[]={"...."};</p><p> int i,j,k=0,x=0,y=0
65、; </p><p> for(i=0;i<=strlen(line)/2;)</p><p><b> {</b></p><p> system("cls");</p><p> for(j=0;j<9;j++) //改變行坐標(biāo)</p><p>
66、 cout<<endl;</p><p> for(j=0;j<(75-strlen(line))/2;j++) //改變列坐標(biāo)</p><p> cout<<" ";</p><p> for(j=1;j<=i;j++) //進(jìn)度顯示器</p><p> co
67、ut<<"●";</p><p> for(x=strlen(line)/2;x>i;x--)</p><p> cout<<"○";</p><p><b> if(k==4)</b></p><p><b> i++;</b
68、></p><p> cout<<endl; </p><p> for(j=0;j<(75-strlen(line))/2;j++) //行坐標(biāo)定位</p><p> cout<<" ";</p><p> cout<<line; //輸出線
69、條</p><p> cout<<endl;</p><p> for(j=0;j<(65-strlen(bar))/2;j++)</p><p> cout<<" ";</p><p> cout<<(i+7)*5<<"% Loading"
70、;</p><p> cout.write(bar,k);</p><p> cout<<endl;</p><p> for(j=0;j<10;j++)</p><p> cout<<endl;</p><p> for(j=0;j<24;j++)</p>
71、<p> cout<<" ";</p><p> cout<<"程序設(shè)計(jì)員:數(shù)字媒體 09702班 田野 "<<endl;</p><p> for(j=0;j<24;j++)</p><p> cout<<" ";</p>
72、<p> for(j=0;j<=18;j++)</p><p> cout<<"─";</p><p> cout<<endl;</p><p> for(j=0;j<10000000;j++);//延時(shí)效果</p><p><b> k++;</
73、b></p><p><b> if(k>4)</b></p><p><b> k=0;</b></p><p><b> }</b></p><p><b> }</b></p><p> void dep
74、artment_add() //添加系</p><p><b> {</b></p><p> Department * p;</p><p> int mark=0;</p><p> p=new Department;</p><p> cout<<&quo
75、t;請輸入系的名稱:";</p><p> cin>>p->name;</p><p><b> char c;</b></p><p> while (mark!=1)</p><p><b> {</b></p><p> cout&
76、lt;<"請輸入系的編號:";</p><p><b> cin>>c; </b></p><p> if (!isdigit(c))//是否為數(shù)字</p><p><b> {</b></p><p> cout<<"數(shù)據(jù)非法&q
77、uot;<<endl;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p><b> mark=1;</b></p><p>
78、 p->number=c;</p><p><b> }</b></p><p><b> }</b></p><p><b> p->boy=0;</b></p><p> p->girl=0;</p><p> p->
79、;next=head1->next;</p><p> head1->next=p;</p><p> cout<<"成功添加了一個(gè)系"<<endl;</p><p><b> }</b></p><p> int department_getlong(De
80、partment *first)//得到鏈表長度</p><p><b> {</b></p><p><b> int i=0;</b></p><p> while (first->next!=NULL)</p><p><b> {</b></p>
81、;<p><b> i++;</b></p><p> first=first->next;</p><p><b> }</b></p><p><b> return i;</b></p><p><b> }</b>&l
82、t;/p><p> void department_write()//將系數(shù)據(jù)寫入文本</p><p><b> {</b></p><p> Department * p;</p><p><b> p=head1;</b></p><p> p=p->next
83、;</p><p> ofstream outfile("Department.txt",ios::out);</p><p> outfile<<department_getlong(p)+1<<" ";</p><p> while (p!=NULL)</p><p>
84、<b> {</b></p><p> outfile<<p->name<<" "<<p->number<<" "<<p->boy<<" "<<p->girl<<" ";</p>
85、<p> p=p->next;</p><p><b> }</b></p><p> outfile.close();</p><p> cout<<"Write Success!"<<endl;</p><p><b> }</
86、b></p><p> void department_read()//從文本讀入系數(shù)據(jù)</p><p><b> {</b></p><p><b> int i;</b></p><p> ifstream infile ("Department.txt",io
87、s::in);</p><p> infile>>i;</p><p> while(i>0)</p><p><b> {</b></p><p> Department * p;</p><p> p=new Department;</p><p
88、> infile>>p->name>>p->number>>p->boy>>p->girl;</p><p> p->next=head1->next;</p><p> head1->next=p;</p><p><b> i--;</b>
89、;</p><p><b> }</b></p><p> cout<<"Department Data Read Success!"<<endl;</p><p><b> }</b></p><p> void department_outpu
90、t(Department *p)//輸出系</p><p><b> {</b></p><p> cout<<" 系名 編號 男團(tuán)總分 女團(tuán)總分 總分\t\n";</p><p><b> while(p)</b></p><p><b>
91、{</b></p><p> cout<<p->name<<" \t"<<getint(p->number)<<"\t"<<p->boy<<"\t"<<p->girl<<"\t "<<
92、;(p->girl+p->boy)<<endl;</p><p> p=p->next;</p><p><b> }</b></p><p><b> }</b></p><p> int department_isexist(int a)//檢驗(yàn)系是否存在&
93、lt;/p><p><b> {</b></p><p><b> int b=0;</b></p><p> Department *p;</p><p><b> p=head1;</b></p><p> p=p->next;</
94、p><p><b> while(p)</b></p><p><b> {</b></p><p> if(p->number==a)</p><p><b> {</b></p><p><b> return 1;</b
95、></p><p><b> }</b></p><p> p=p->next;</p><p><b> }</b></p><p><b> return 0;</b></p><p><b> }</b>
96、</p><p> void department_show(int a)//輸出所有系</p><p><b> {</b></p><p> Department *p;</p><p><b> p=head1;</b></p><p> p=p->ne
97、xt;</p><p><b> while(p)</b></p><p><b> {</b></p><p> if(p->number==a)</p><p><b> {</b></p><p> cout<<p-&g
98、t;name<<" ";</p><p><b> return;</b></p><p><b> }</b></p><p> p=p->next;</p><p><b> }</b></p><p>
99、 cout<<" 無 ";</p><p><b> }</b></p><p> void department_search(int a)//按編號搜索系</p><p><b> {</b></p><p> Department *p;</
100、p><p><b> p=head1;</b></p><p> p=p->next;</p><p><b> while(p)</b></p><p><b> {</b></p><p> if(p->number==a)<
101、/p><p><b> {</b></p><p> cout<<"系名:"<<p->name<<" "<<"男子團(tuán)體總分:"<<p->boy<<" "<<"女子團(tuán)體總分:"
102、<<p->girl<<" "<<"總分:"<<(p->boy+p->girl)<<" ";</p><p><b> return;</b></p><p><b> }</b></p>&l
103、t;p> p=p->next;</p><p><b> }</b></p><p> cout<<"無此編號";</p><p><b> }</b></p><p> void department_addmark(int a,int b,i
104、nt c)//a為分?jǐn)?shù),b為系編號,c=1表示男,c=0表示女</p><p><b> {</b></p><p> Department *p;</p><p><b> p=head1;</b></p><p> p=p->next;</p><p>&l
105、t;b> while(p)</b></p><p><b> {</b></p><p> if(p->number==b)</p><p><b> {</b></p><p> if(c=='1')</p><p><
106、;b> {</b></p><p> p->boy=p->boy+a;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> p
107、->girl=p->girl+a;</p><p><b> }</b></p><p><b> }</b></p><p> p=p->next;</p><p><b> }</b></p><p><b>
108、}</b></p><p> void department_order(Department *temp,int type) //type=0按總分,type=1按男總分,type=2按女總分,</p><p><b> {</b></p><p> Department *p,*q,*small,*temp1;</p
109、><p> temp1=new Department;</p><p> temp1->next=NULL;</p><p><b> p=temp;</b></p><p><b> while(p) </b></p><p><b> {</b
110、></p><p><b> small=p;</b></p><p> q=p->next;</p><p><b> while(q) </b></p><p><b> {</b></p><p> switch(type)&
111、lt;/p><p><b> {</b></p><p><b> case 0:</b></p><p> if((q->boy+q->girl)<(small->girl+small->boy)) </p><p><b> {</b>&l
112、t;/p><p><b> small=q; </b></p><p><b> }</b></p><p><b> break;</b></p><p><b> case 1:</b></p><p> if(q->
113、;boy<small->boy) </p><p><b> {</b></p><p><b> small=q; </b></p><p><b> }</b></p><p><b> break;</b></p>
114、<p><b> case 2:</b></p><p> if(q->girl<small->girl) </p><p><b> {</b></p><p><b> small=q; </b></p><p><b> }
115、</b></p><p><b> break;</b></p><p><b> default:</b></p><p> cout<<"error"<<endl;</p><p><b> }</b><
116、/p><p> if(small!=p) </p><p><b> {</b></p><p> temp1->boy=p->boy; </p><p> p->boy=small->boy; </p><p> small->boy=temp1->bo
117、y;</p><p> temp1->girl=p->girl; </p><p> p->girl=small->girl; </p><p> small->girl=temp1->girl;</p><p> strcpy(temp1->name,p->name);</p&g
118、t;<p> strcpy(p->name,small->name); </p><p> strcpy(small->name,temp1->name);</p><p> temp1->number=p->number; </p><p> p->number=small->number; &
119、lt;/p><p> small->number=temp1->number; //將系的名字互換</p><p><b> }</b></p><p> q=q->next;</p><p><b> }</b></p><p> p=p-&g
120、t;next;</p><p><b> }</b></p><p><b> }</b></p><p> Sport * head2;</p><p> int sport_isexist(int a) //檢查運(yùn)動(dòng)項(xiàng)目(編號)是否已經(jīng)存在</p><p>
121、<b> {</b></p><p><b> int b=0;</b></p><p><b> Sport *p;</b></p><p><b> p=head2;</b></p><p> p=p->next;</p>
122、<p><b> while(p)</b></p><p><b> {</b></p><p> if(p->number==a)</p><p><b> {</b></p><p><b> return 1;</b>&l
123、t;/p><p><b> }</b></p><p> p=p->next;</p><p><b> }</b></p><p><b> return 0;</b></p><p><b> }</b></p
124、><p> void sport_add() //添加項(xiàng)目</p><p><b> {</b></p><p> Sport * p;</p><p> int mark=0;</p><p> p=new Sport;</p><p> cout&
125、lt;<"請輸入項(xiàng)目名稱:";</p><p> cin>>p->name;</p><p><b> char c;</b></p><p> while (mark!=1)</p><p><b> {</b></p><p
126、> cout<<"請輸入項(xiàng)目編號:";</p><p><b> cin>>c; </b></p><p> if (!isdigit(c))</p><p><b> {</b></p><p> cout<<"數(shù)據(jù)
127、非法"<<endl;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> if(sport_isexist(c))</p><p><
128、;b> {</b></p><p> cout<<"該編號已存在"<<endl;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b><
129、;/p><p><b> mark=1;</b></p><p> p->number=c;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p&
130、gt;<p><b> mark=0;</b></p><p> while (mark!=1)</p><p><b> {</b></p><p> cout<<"請輸入項(xiàng)目類型(0為女子項(xiàng)目,1為男子項(xiàng)目):";</p><p><b
131、> cin>>c;</b></p><p> p->isboy=(int)(c-'0');//字符轉(zhuǎn)換成數(shù)字</p><p> if (!isdigit(c))</p><p><b> {</b></p><p> cout<<"數(shù)據(jù)非
132、法"<<endl;</p><p><b> }</b></p><p> else if(p->isboy<0||p->isboy>1)</p><p><b> {</b></p><p> cout<<"數(shù)據(jù)非法&qu
133、ot;<<endl;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p><b> mark=1;</b></p><p>
134、p->isboy=c;</p><p><b> }</b></p><p><b> }</b></p><p><b> mark=0;</b></p><p> while (mark!=1)</p><p><b> {
135、</b></p><p> cout<<"請輸入項(xiàng)目名次情況(0為取前3名,1為取前5名):";</p><p><b> cin>>c;</b></p><p> p->is3=(int)(c-'0');</p><p> if (!
136、isdigit(c))</p><p><b> {</b></p><p> cout<<"數(shù)據(jù)非法"<<endl;</p><p><b> }</b></p><p> else if(p->is3<0||p->is3>
137、;1)</p><p><b> {</b></p><p> cout<<"數(shù)據(jù)非法"<<endl;</p><p><b> }</b></p><p><b> else</b></p><p>
138、<b> {</b></p><p><b> mark=1;</b></p><p><b> p->is3=c;</b></p><p><b> }</b></p><p><b> }</b></p>
139、;<p><b> mark=0;</b></p><p> while (mark!=1)</p><p><b> {</b></p><p> cout<<"請輸入第一名的系的編號:";</p><p><b> cin>
140、>c; </b></p><p> if (!isdigit(c))</p><p><b> {</b></p><p> cout<<"數(shù)據(jù)非法"<<endl;</p><p><b> }</b></p>&l
141、t;p><b> else</b></p><p><b> {</b></p><p> if(!department_isexist(c))</p><p><b> {</b></p><p> cout<<"該系不存在,請先添加&q
142、uot;;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p><b> mark=1;</b></p><p> p->first
143、=c;</p><p> if(p->is3=='0')</p><p> department_addmark(5,c,p->isboy);</p><p><b> else</b></p><p> department_addmark(7,c,p->isboy);<
144、/p><p><b> }</b></p><p><b> } </b></p><p><b> }</b></p><p><b> mark=0;</b></p><p> while (mark!=1)<
145、/p><p><b> {</b></p><p> cout<<"請輸入第二名的系的編號:";</p><p><b> cin>>c; </b></p><p> if (!isdigit(c))</p><p><b
146、> {</b></p><p> cout<<"數(shù)據(jù)非法"<<endl;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p&
溫馨提示
- 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. 眾賞文庫僅提供信息存儲(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)動(dòng)會(huì)計(jì)分系統(tǒng)課程設(shè)計(jì)
- 運(yùn)動(dòng)會(huì)計(jì)分系統(tǒng)課程設(shè)計(jì)
- 2021運(yùn)動(dòng)會(huì)計(jì)分系統(tǒng)課程設(shè)計(jì)報(bào)告
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告運(yùn)動(dòng)會(huì)計(jì)分系統(tǒng)
- 課程設(shè)計(jì)報(bào)告----運(yùn)動(dòng)分?jǐn)?shù)計(jì)分系統(tǒng)
- 保齡球計(jì)分系統(tǒng)c語言課程設(shè)計(jì)
- 保齡球計(jì)分系統(tǒng)c語言課程設(shè)計(jì) (2)
- 嵌入式比賽計(jì)分系統(tǒng)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--搶答計(jì)分系統(tǒng)
- 運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)課程設(shè)計(jì)
- 運(yùn)動(dòng)會(huì)管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)報(bào)告--- 校際運(yùn)動(dòng)會(huì)管理系統(tǒng)
- 課程設(shè)計(jì)報(bào)告-校際運(yùn)動(dòng)會(huì)管理系統(tǒng)
- java課程設(shè)計(jì)--運(yùn)動(dòng)會(huì)成績管理系統(tǒng)
- 運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)課程設(shè)計(jì)
- c語言課程設(shè)計(jì)--校際運(yùn)動(dòng)會(huì)管理系統(tǒng)
- c語言課程設(shè)計(jì)--運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)
- c語言課程設(shè)計(jì)---校際運(yùn)動(dòng)會(huì)管理系統(tǒng)
- 運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)課程設(shè)計(jì)
- c++課程設(shè)計(jì)--學(xué)校運(yùn)動(dòng)會(huì)管理系統(tǒng)設(shè)計(jì)
評論
0/150
提交評論