在日常學(xué)習(xí)、工作或生活中,大家總少不了接觸作文或者范文吧,通過(guò)文章可以把我們那些零零散散的思想,聚集在一塊。范文書(shū)寫(xiě)有哪些要求呢?我們?cè)鯓硬拍軐?xiě)好一篇范文呢?接下來(lái)小編就給大家介紹一下優(yōu)秀的范文該怎么寫(xiě),我們一起來(lái)看一看吧。
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)任務(wù)書(shū)篇一
《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計(jì)教學(xué)任務(wù)書(shū)
一、課程設(shè)計(jì)的目的
數(shù)據(jù)結(jié)構(gòu)課程主要是研究非數(shù)值計(jì)算的程序設(shè)計(jì)問(wèn)題中所出現(xiàn)的計(jì)算機(jī)操作對(duì)象以及它們之間的關(guān)系和操作的學(xué)科。數(shù)據(jù)結(jié)構(gòu)是介于數(shù)學(xué)、計(jì)算機(jī)軟件和計(jì)算機(jī)硬件之間的一門(mén)計(jì)算機(jī)專業(yè)的核心課程,它是計(jì)算機(jī)程序設(shè)計(jì)、數(shù)據(jù)庫(kù)、操作系統(tǒng)、編譯原理及人工智能等的重要基礎(chǔ),廣泛的應(yīng)用于信息學(xué)、系統(tǒng)工程等各種領(lǐng)域。
學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)是為了將實(shí)際問(wèn)題中所涉及的對(duì)象在計(jì)算機(jī)中表示出來(lái)并對(duì)它們進(jìn)行處理。通過(guò)課程設(shè)計(jì)可以提高學(xué)生的思維能力,促進(jìn)學(xué)生的綜合應(yīng)用能力和專業(yè)素質(zhì)的提高。通過(guò)此次課程設(shè)計(jì)主要達(dá)到以下目的:
? 了解并掌握數(shù)據(jù)結(jié)構(gòu)與算法的設(shè)計(jì)方法,具備初步的獨(dú)立分析和設(shè)計(jì)能力; ? 初步掌握軟件開(kāi)發(fā)過(guò)程的問(wèn)題分析、系統(tǒng)設(shè)計(jì)、程序編碼、測(cè)試等基本方法和技能; ? 提高綜合運(yùn)用所學(xué)的理論知識(shí)和方法獨(dú)立分析和解決問(wèn)題的能力;
? 訓(xùn)練用系統(tǒng)的觀點(diǎn)和軟件開(kāi)發(fā)一般規(guī)范進(jìn)行軟件開(kāi)發(fā),培養(yǎng)軟件工作者所應(yīng)具備的科學(xué)的工作方法和作風(fēng)。
二、課程設(shè)計(jì)的基本要求
1、獨(dú)立思考,獨(dú)立完成:每人任選一題,在課程設(shè)計(jì)中各任務(wù)要求獨(dú)立完成,遇到問(wèn)題大家可以相互討論,互相調(diào)試檢查,但不可以拷貝。
2、按照課程設(shè)計(jì)的具體要求建立的功能模塊,每個(gè)模塊要求按照如下幾個(gè)內(nèi)容認(rèn)真完成;
其中包括:
a)需求分析:
在該部分中敘述,每個(gè)模塊的功能要求
b)概要設(shè)計(jì)
在此說(shuō)明每個(gè)部分的算法設(shè)計(jì)說(shuō)明(可以是描述算法的流程圖),每個(gè)程序中使用的存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)說(shuō)明(如果指定存儲(chǔ)結(jié)構(gòu)請(qǐng)寫(xiě)出該存儲(chǔ)結(jié)構(gòu)的定義。
c)詳細(xì)設(shè)計(jì)
各個(gè)算法實(shí)現(xiàn)的源程序(可放在附錄中),對(duì)每個(gè)題目要有相應(yīng)的源程序(可以是一組源程序,每個(gè)功能模塊采用不同的函數(shù)實(shí)現(xiàn))
源程序要按照寫(xiě)程序的規(guī)則來(lái)編寫(xiě)。要結(jié)構(gòu)清晰,重點(diǎn)函數(shù)的重點(diǎn)變量,重點(diǎn)功能部分要加上清晰的程序注釋。
d)調(diào)試分析
測(cè)試數(shù)據(jù),測(cè)試輸出的結(jié)果,時(shí)間復(fù)雜度分析,和每個(gè)模塊設(shè)計(jì)和調(diào)試時(shí)存在問(wèn)題的思考(問(wèn)題是哪些?問(wèn)題如何解決?),算法的改進(jìn)設(shè)想等。
4、每人實(shí)現(xiàn)的結(jié)果必須進(jìn)行檢查和演示;程序源代碼和程序的說(shuō)明文件必須上交,作為考核內(nèi)容的一部分;(上交時(shí)每人交一份,文件夾的取名規(guī)則為:“學(xué)號(hào) 姓名”,如“11207210188 張麗”。該文件夾下至少包括:“源代碼”和“課程設(shè)計(jì)報(bào)告”,統(tǒng)一放在服務(wù)器的文件夾“d: / 3
/11級(jí)專升本數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)”中)。
5、課程設(shè)計(jì)報(bào)告要對(duì)重點(diǎn)函數(shù)及結(jié)構(gòu)進(jìn)行說(shuō)明。報(bào)告格式參照(報(bào)告示例)。
6、報(bào)告提交
時(shí)間:第16周星期五之前,遲交無(wú)成績(jī)。
形式:課程設(shè)計(jì)報(bào)告(要求書(shū)寫(xiě)課程設(shè)計(jì)報(bào)告)和電子文檔。
三、課程設(shè)計(jì)內(nèi)容:
1.大數(shù)相乘問(wèn)題
例如:輸入第一個(gè)數(shù)為:***172586,輸入第二個(gè)數(shù)為:***7則程序運(yùn)行后輸出***172586****7=正確答案。2.矩陣的運(yùn)算
采用十字鏈表表示稀疏矩陣,并實(shí)現(xiàn)矩陣的加減法和乘法運(yùn)算, 要求:要檢查有關(guān)運(yùn)算的條件,并對(duì)錯(cuò)誤的條件產(chǎn)生報(bào)警。3. 訂票系統(tǒng)
設(shè)計(jì)航班信息,訂票信息的存儲(chǔ)結(jié)構(gòu),設(shè)計(jì)程序完成如下功能:
錄入:可以錄入航班情況(數(shù)據(jù)可以存儲(chǔ)在一個(gè)數(shù)據(jù)文件中,數(shù)據(jù)結(jié)構(gòu)、具體數(shù)據(jù)自定)查詢:可以查詢某個(gè)航線的情況(如,輸入航班號(hào),查詢起降時(shí)間,起飛抵達(dá)城市,航班票價(jià),票價(jià)折扣,確定航班是否滿倉(cāng));可以輸入起飛抵達(dá)城市,查詢飛機(jī)航班情況;
訂票:(訂票情況可以存在一個(gè)數(shù)據(jù)文件中,結(jié)構(gòu)自己設(shè)定)可以訂票,如果該航班已經(jīng)無(wú)票,可以提供相關(guān)可選擇航班;
退票: 可退票,退票后修改相關(guān)數(shù)據(jù)文件;
客戶資料有姓名,證件號(hào),訂票數(shù)量及航班情況,訂單要有編號(hào)。修改航班信息:當(dāng)航班信息改變可以修改航班數(shù)據(jù)文件 6. 賓館訂房和退房系統(tǒng)
假設(shè)一個(gè)賓館有n個(gè)標(biāo)準(zhǔn)的客房,每個(gè)標(biāo)準(zhǔn)客房有m個(gè)標(biāo)準(zhǔn)間,利用鏈表、?;蛘哧?duì)列等數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)出具有訂房和退房等功能的管理系統(tǒng)。7. 建立二叉樹(shù)和線索二叉樹(shù)
分別用以下方法建立二叉樹(shù): 1)用先序遍歷的輸入序列 2)用層次遍歷的輸入序列 3)用先序和中序遍歷的結(jié)果
最后對(duì)所建立的二叉樹(shù)進(jìn)行中序線索化,并對(duì)此線索樹(shù)進(jìn)行中序遍歷(不使用棧)。8.校園導(dǎo)航問(wèn)題
設(shè)計(jì)要求:設(shè)計(jì)你的學(xué)校的平面圖,至少包括10個(gè)以上的場(chǎng)所,每?jī)蓚€(gè)場(chǎng)所間可以有不同的路,且路長(zhǎng)也可能不同,找出從任意場(chǎng)所到達(dá)另一場(chǎng)所的最佳路徑(最短路徑)。9.馬的遍歷問(wèn)題
設(shè)計(jì)程序完成如下要求:在中國(guó)象棋棋盤(pán)上,對(duì)任一位置上放置的一個(gè)馬,均能選擇一個(gè)合適的路線,使得該棋子能按象棋的規(guī)則不重復(fù)地走過(guò)棋盤(pán)上的每一位置。
要求:依次輸出所走過(guò)的各位置的坐標(biāo)。/ 3
11.設(shè)計(jì)一個(gè)模擬計(jì)算器來(lái)完成表達(dá)式的計(jì)算
要求對(duì)包含加、減、乘、除、括號(hào)運(yùn)算符的任意整型表達(dá)式進(jìn)行求解,操作數(shù)可以是多位數(shù)。12.八皇后問(wèn)題
設(shè)計(jì)程序完成如下要求:在8×8的國(guó)際象樣棋盤(pán)上,放置8個(gè)皇后,使得這8個(gè)棋子不能互相被對(duì)方吃掉。
要求:依次輸出各種成功的放置方法。13.圖的遍歷過(guò)程演示
設(shè)計(jì)程序完成如下功能:對(duì)給定的圖結(jié)構(gòu)和起點(diǎn),產(chǎn)生深度優(yōu)先遍歷和廣度優(yōu)先遍歷序列,并給出求解過(guò)程的動(dòng)態(tài)演示。14.構(gòu)造n個(gè)城市連接的最小生成樹(shù)
一個(gè)地區(qū)的n個(gè)城市間的距離網(wǎng),用prim算法或kruskal算法建立最小生成樹(shù),并計(jì)算得到的最小生成樹(shù)的代價(jià)。基本要求:
1)城市間的距離網(wǎng)采用鄰接矩陣表示,鄰接矩陣的存儲(chǔ)結(jié)構(gòu)定義采用課本中給出的定義,若兩個(gè)城市之間不存在道路,則將相應(yīng)邊的權(quán)值設(shè)為自己定義的無(wú)窮大值。要求在屏幕上顯示得到的最小生成樹(shù)中包括了哪些城市間的道路,并顯示得到的最小生成樹(shù)的代價(jià)。
2)表示城市間距離網(wǎng)的鄰接矩陣(要求至少6個(gè)城市,10條邊)15. 藥店的藥品銷售統(tǒng)計(jì)系統(tǒng)
設(shè)計(jì)一系統(tǒng),實(shí)現(xiàn)醫(yī)藥公司定期對(duì)銷售各藥品的記錄進(jìn)行統(tǒng)計(jì),可按藥品的編號(hào)、單價(jià)、銷售量或銷售額做出排名。
基本要求:在本設(shè)計(jì)中,首先從數(shù)據(jù)文件中讀出各藥品的信息記錄,存儲(chǔ)在順序表中。各藥品的信息包括:藥品編號(hào)、藥名、藥品單價(jià)、銷出數(shù)量、銷售額。對(duì)各藥品的藥名、單價(jià)、銷售量或銷售額進(jìn)行排序時(shí),可采用多種排序方法,如直接插入排序、冒泡排序、快速排序,直接選擇排序、堆排等方法。
四、上交作業(yè)及成績(jī)?cè)u(píng)定
1、上交要求
上交設(shè)計(jì)報(bào)告和源程序。其中設(shè)計(jì)報(bào)告要以手寫(xiě)報(bào)告的形式上交;電子版內(nèi)容包括程序源碼和設(shè)計(jì)報(bào)告的電子文檔。整個(gè)班級(jí)的設(shè)計(jì)均放在一個(gè)文件夾中。
2、課程設(shè)計(jì)報(bào)告注意事項(xiàng):
1)運(yùn)行結(jié)果請(qǐng)截圖(alt + prtsc);
2)系統(tǒng)功能模塊介紹請(qǐng)請(qǐng)采用流程圖形式; 3)課程設(shè)計(jì)總結(jié)可以從以下幾個(gè)方面書(shū)寫(xiě) : 課程設(shè)計(jì)的收獲、遇到問(wèn)題及其解決過(guò)程、程序調(diào)試技巧、在課程設(shè)計(jì)過(guò)程中對(duì)《數(shù)據(jù)結(jié)構(gòu)》課程的認(rèn)識(shí)等內(nèi)容。
3、評(píng)分標(biāo)準(zhǔn)
根據(jù)完成任務(wù)的情況、課程設(shè)計(jì)報(bào)告書(shū)的質(zhì)量和課程設(shè)計(jì)過(guò)程中的工作態(tài)度等按照30%、50%、20%加權(quán)綜合打分。成績(jī)?cè)u(píng)定實(shí)行百分制。上機(jī)程序檢查未通過(guò)者、無(wú)設(shè)計(jì)報(bào)告者以及嚴(yán)重抄襲他人設(shè)計(jì)者,成績(jī)?yōu)椴患案瘛?/p>
/ 3
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)任務(wù)書(shū)篇二
2014/2015學(xué)年第一學(xué)期
《數(shù)據(jù)結(jié)構(gòu)與算法課程設(shè)計(jì)》任務(wù)書(shū)
一、課程設(shè)計(jì)目的
數(shù)據(jù)結(jié)構(gòu)與算法課程設(shè)計(jì)是《數(shù)據(jù)結(jié)構(gòu)與算法》課程教學(xué)必不可缺的一個(gè)重要環(huán)節(jié),它可加深學(xué)生對(duì)該課程所學(xué)內(nèi)容的進(jìn)一步的理解與鞏固,是將計(jì)算機(jī)課程與實(shí)際問(wèn)題相聯(lián)接的關(guān)鍵步驟。通過(guò)課程設(shè)計(jì),能夠提高學(xué)生分析問(wèn)題、解決問(wèn)題,從而運(yùn)用所學(xué)知識(shí)解決實(shí)際問(wèn)題的能力,因而必須給予足夠的重視。
2二、課程設(shè)計(jì)題目
2.1 棋盤(pán)覆蓋
【間題描述】
在一個(gè)2k×2k 個(gè)方格組成的棋盤(pán)中,恰有一個(gè)方格與其它方格不同,稱該方格為一特殊方格,且稱該棋盤(pán)為一特殊棋盤(pán)。在棋盤(pán)覆蓋問(wèn)題中,要用圖示的4種不同形態(tài)的l型骨牌覆蓋給定的特殊棋盤(pán)上除特殊方格以外的所有方格,且任何2個(gè)l型骨牌不得重疊覆蓋。
【基本要求】
(1)輸入k以及特殊方格所在的行號(hào)dr和特殊方格的列號(hào)dc。
1(2)要求輸出每一步用什么形態(tài)l型骨牌覆蓋,覆蓋后得到的棋盤(pán)圖形。(3)如果輸出的結(jié)果只是用矩陣表示則為良好,用圖形表示則為優(yōu)?!緶y(cè)試數(shù)據(jù)】 【實(shí)現(xiàn)提示】
使用分治策略,把棋盤(pán)劃分成4個(gè)小棋盤(pán),然后用一個(gè)l型骨牌覆蓋將這4個(gè)小棋盤(pán)變?yōu)槎季哂刑厥夥礁竦钠灞P(pán)。
2.2 hanoi塔問(wèn)題(*)
【問(wèn)題描述】
設(shè)a,b,c是三個(gè)塔座。開(kāi)始時(shí),在塔座a上有一疊共n個(gè)圓盤(pán),這些圓盤(pán)自下而上,由大到小地疊放在一起,各圓盤(pán)從小到大編號(hào)為1,2,?,n,要求將塔座a上的這一疊圓盤(pán)移到塔座b上,并仍按同樣順序疊置。在移動(dòng)圓盤(pán)時(shí)應(yīng)遵守以下移動(dòng)規(guī)則:
規(guī)則(1)每次只能移動(dòng)一個(gè)圓盤(pán);
規(guī)則(2)任何時(shí)刻都部允許將較大的圓盤(pán)壓在較小的圓盤(pán)之上;
規(guī)則(3)在滿足移動(dòng)規(guī)則(1)和(2)的前提下,可將圓盤(pán)移至a,b,c中任一塔座上。
【基本要求】
(1)設(shè)計(jì)出hannoi塔游戲,供用戶玩;(2)提供正確的搬運(yùn)方法。【實(shí)現(xiàn)說(shuō)明】
正確的搬運(yùn)方法使用遞歸方法實(shí)現(xiàn)。【測(cè)試數(shù)據(jù)】
2.3 矩陣連乘問(wèn)題
【問(wèn)題描述】
給定n個(gè)矩陣{a1,a2,...,an},其中ai和ai?1是可乘的,i=1,2,?,n-1??疾爝@n個(gè)矩陣的連乘積a1a2,...,an,通過(guò)加括號(hào)方式,找出矩陣乘積所需的最少計(jì)算量的方法。
【基本要求】
輸入每個(gè)矩陣的行和列,要求輸出最少計(jì)算量的矩陣乘積方法,如(a1(a2(a3a4)))。【實(shí)現(xiàn)說(shuō)明】 使用動(dòng)態(tài)規(guī)劃方法。
2.4 多邊形游戲(*)
【問(wèn)題描述】
多邊形游戲是一個(gè)單人玩的游戲,開(kāi)始時(shí)有一個(gè)由n個(gè)頂點(diǎn)構(gòu)成的多邊形。每個(gè)頂點(diǎn)被賦予一個(gè)整數(shù)值,每條邊被賦予一個(gè)運(yùn)算符“+”或“*”。所有邊依次用整數(shù)從1到n編號(hào)。
游戲第1步,將一條邊刪除。隨后n-1步按以下方式操作:
選擇一條邊e及由e連接著的2個(gè)頂點(diǎn)v1和v2;
用一個(gè)新的頂點(diǎn)取代邊e及用e連接著的2個(gè)頂點(diǎn)v1和v2,將由頂點(diǎn)v1和v2的整數(shù)值通過(guò)邊e上的運(yùn)算得到的結(jié)果賦予新頂點(diǎn)。
最后,所有邊都被刪除,游戲結(jié)束。游戲的得分就是所剩頂點(diǎn)上的整數(shù)值?!净疽蟆?/p>
設(shè)計(jì)該游戲供用戶玩;
對(duì)于給定的多邊形,給出最高得分計(jì)算。【實(shí)現(xiàn)說(shuō)明】 使用動(dòng)態(tài)規(guī)劃方法。
2.5 0-1背包問(wèn)題
【問(wèn)題描述】
給定n種物品和一背包。物品i的重量是wi,其價(jià)值為vi,背包的容量為c。問(wèn)應(yīng)如何選擇裝入背包種的物品,使得裝入背包種物品的總價(jià)值最大。
【基本要求】
使用動(dòng)態(tài)規(guī)劃、回溯法以及分支界限三種方法實(shí)現(xiàn)?!緶y(cè)試數(shù)據(jù)】 【實(shí)現(xiàn)提示】
2.6 排序方法
【問(wèn)題描述】
給定n個(gè)元素,要求對(duì)這n個(gè)元素進(jìn)行排序?!净疽蟆?/p>
使用多種排序方法,越多越好;
比較每種排序方法的時(shí)間復(fù)雜度和空間復(fù)雜度?!緶y(cè)試數(shù)據(jù)】 【實(shí)現(xiàn)提示】
2.7 哈夫曼編碼譯碼器
【問(wèn)題描述】
設(shè)計(jì)一個(gè)哈夫曼編碼/譯碼系統(tǒng),對(duì)一個(gè)文本文件中的字符進(jìn)行哈夫曼編碼,生成編碼文件
(壓縮文件,);反過(guò)來(lái),可將一個(gè)壓縮文件譯碼還原為一個(gè)文本文件(.txt)。
【基本要求】
(1)輸入一個(gè)待壓縮的英文文本文件,統(tǒng)計(jì)文本文件中各字符的個(gè)數(shù)作為權(quán)值,生成哈夫曼樹(shù);
(2)將文本文件利用哈夫曼樹(shù)進(jìn)行編碼,生成壓縮文件(后綴名cod)(3)輸入一個(gè)待解壓的壓縮文件名稱,并利用相應(yīng)的哈夫曼樹(shù)將編碼序列譯碼?!緦?shí)現(xiàn)說(shuō)明】
(1)在構(gòu)造哈夫曼樹(shù)時(shí),可以利用不同的線性表存放二叉樹(shù):用順序表、單鏈表、5 循環(huán)單鏈表、雙向鏈表、循環(huán)雙鏈表;
(2)在構(gòu)造哈夫曼樹(shù)時(shí),可以利用優(yōu)先隊(duì)列存放二叉樹(shù):順序隊(duì)列、鏈隊(duì)列(可以是單鏈表、雙鏈表等,還可以用靜態(tài)結(jié)構(gòu)去實(shí)現(xiàn)),可以分別在入隊(duì)列或出隊(duì)列時(shí)實(shí)現(xiàn)優(yōu)先級(jí);
(3)二叉樹(shù)本身也可以用靜態(tài)數(shù)組模擬;(4)使用貪心算法
2.8 迷宮問(wèn)題(*)
【問(wèn)題描述】
設(shè)計(jì)一個(gè)迷宮并給出正確走法。如: *** *** *** *** *** *** *** 其中0表示可以走,1表示不能走,每一步只能向上下左右移動(dòng)?!净疽蟆?/p>
(1)給出迷宮的正確走法,包括沒(méi)有解的情況;(2)要求界面友好?!緶y(cè)試數(shù)據(jù)】
【實(shí)現(xiàn)提示】 使用回溯的方法。
2.9 繼續(xù)郵資問(wèn)題
【問(wèn)題描述】
假設(shè)某國(guó)家發(fā)行了n種不同面值的郵票,并且規(guī)定每張信封上最多只允許貼m張郵票。連續(xù)郵資問(wèn)題要求對(duì)于給定的n和m的值,給出郵票面值的最佳設(shè)計(jì),在1張信封上貼出從郵資1開(kāi)始,增量為1的最大連續(xù)郵資區(qū)間。
【基本要求】
輸入任意的m和n都能設(shè)計(jì)出最佳的方案,并給出連續(xù)郵資區(qū)間?!緦?shí)現(xiàn)說(shuō)明】 【測(cè)試數(shù)據(jù)】
2.10 圖的m著色問(wèn)題
【問(wèn)題描述】
給定一個(gè)地圖,要求給出該地圖的最少著色方案 【基本要求】
(1)把地圖以及最少著色的方案顯示出來(lái)則為良好。(2)有友好的界面則為優(yōu) 【實(shí)現(xiàn)說(shuō)明】
2.11 猜數(shù)字游戲(*)
【問(wèn)題描述】
孩子想1個(gè)由4種顏色組成的序列(4種顏色不一定完全不同)。每種顏色只能是6種顏色之一。方便起見(jiàn),我們用數(shù)字1到6表示6種顏色。
計(jì)算機(jī)必須根據(jù)孩子的回答找出孩子所想的顏色序列。計(jì)算機(jī)在屏幕上顯示一個(gè)序列,孩子用鍵盤(pán)回答以下兩個(gè)問(wèn)題:
猜對(duì)的顏色中位置不對(duì)的有幾個(gè)? 猜對(duì)的顏色中位置對(duì)的有幾個(gè)? 【基本要求】
編程使至多6次問(wèn)答后猜出序列,如果辦不到,至多10次問(wèn)答后猜出序列?!緦?shí)現(xiàn)說(shuō)明】 【測(cè)試數(shù)據(jù)】
如孩子想的是4655 計(jì)算機(jī)猜想 顏色對(duì)位置錯(cuò)的數(shù)目 顏色和位置都對(duì)的數(shù)目 1234 1 0 5156 2 1 6165 1 1 5625 1 2 5653 1 2 8 4655 0 4 2.12 大整數(shù)計(jì)算器
【問(wèn)題描述】
設(shè)計(jì)一個(gè)計(jì)算器實(shí)現(xiàn)兩個(gè)任意長(zhǎng)得整數(shù)的加、減、乘、除?!净疽蟆?/p>
設(shè)計(jì)一個(gè)實(shí)現(xiàn)任意長(zhǎng)的整數(shù)進(jìn)行四則運(yùn)算的演示程序,要求輸入任意長(zhǎng)的整數(shù)進(jìn)行四則運(yùn)算,都能得到精確的結(jié)果。
【實(shí)現(xiàn)說(shuō)明】
2.13 查找搜索技術(shù)
【問(wèn)題描述】
給定任意的數(shù)組,對(duì)于給定的數(shù),查找是否在數(shù)組中,如果在,則返回給定數(shù)在數(shù)組的位置,不在則返回不在信息。
【基本要求】
(1)使用多種搜索方法,越多越好,其中二分搜索技術(shù)、線性時(shí)間選擇是必須的;(2)比較每種排序方法的時(shí)間復(fù)雜度和空間復(fù)雜度?!緦?shí)現(xiàn)說(shuō)明】
2.14 tom,jerry和奶酪(*)
【問(wèn)題描述】
貓tom和鼠jerry同住在一矩陣地窖中。貓要吃鼠,鼠要吃奶酪。地窖中有2種地磚:有洞磚與無(wú)洞磚。一個(gè)洞足以讓鼠鉆入,但貓不能。
以菜單形式完成以下任務(wù):
隨機(jī)地生成一個(gè)地窖,并給貓、鼠和奶酪安排一個(gè)位置。如: fffffffffffffff fppppppppppppcf fhfffffffffffpf fpppjhppppppppf fpffffffpffffff fpppppppppptppf fffffffffffffff 其中c表示貓,j表示鼠,h表示洞,f表示不能通行(2)鼠先行,貓后行。兩者皆滿足以下規(guī)定: 1)必須上、下、左或右移動(dòng) 2)鼠必須走1步(穿過(guò)p或h)3)貓必須走1或2步(穿過(guò)p)
(3)當(dāng)鼠吃到奶酪或貓抓到鼠時(shí),游戲結(jié)束?!净疽蟆?【實(shí)現(xiàn)說(shuō)明】
2.15 布線問(wèn)題
【問(wèn)題描述】
印刷電路板將布線區(qū)域劃分成n×m個(gè)方格陣列,精確的電路布線問(wèn)題要求確定連接方格a的中點(diǎn)到方格b的中點(diǎn)的最短布線方案。在布線時(shí),電路只能沿著直線或直角布線。為了避免線路相交,已布了線的方格做了封鎖標(biāo)記,其他線路不允許穿過(guò)被封鎖的方格。
【基本要求】(1)解決題目的問(wèn)題(2)提供友好的界面 【實(shí)現(xiàn)說(shuō)明】 使用分支限界法。
2.16 魔方工具包(*)
【問(wèn)題描述】
一個(gè)魔方是一個(gè)由3×3×3個(gè)小立方體組成的立方體。最初立方體的6個(gè)面分別涂上不同顏色,我們稱之為“最初魔方”。魔方的每一面上的3×3個(gè)小立方體組成它的一層。
魔方所能見(jiàn)到的每一層(6個(gè)面)都能旋轉(zhuǎn)90,180,220或360度。所有層的旋轉(zhuǎn)軸都垂直于面且通過(guò)其中心。旋轉(zhuǎn)的結(jié)果是另一個(gè)魔方,它的所有面的顏色都改變了。
現(xiàn)在我們用字符來(lái)代替顏色:u=上,d=下,f=前,b=后,l=左,r=右。任何一個(gè)序列的旋轉(zhuǎn)都能表示成{u,r,f,b,l,d}中一些字符組成的字符串,其中每個(gè)字符表示它所 11 指定的面順時(shí)針旋轉(zhuǎn)90度。
【基本要求】
(1)編程完成以下3個(gè)任務(wù)(菜單形式),你可以假設(shè)任何輸入的字串長(zhǎng)度都<=35。你的算法能處理非法輸入的情況,如: 輸入 輸出 l l ll ll lll lll llll “”(空串 lllll l llrrrffffrlb lllb hello “error”
(2)判斷輸入的2個(gè)字串的旋轉(zhuǎn)結(jié)果是否相同。如 輸入一 輸入二 輸出 ru ur no rrffrrffrrffrrff ffrrffrr yes rrffrrffrrffrrff rrffrrff no(3)求出輸入字符串至少須使用幾次才能將魔方轉(zhuǎn)回到“最初魔方”(一定大于0)輸入 輸出 l 4 12 dd 2 bulb 36 ruf 80 bluff 180 【實(shí)現(xiàn)說(shuō)明】
2.17 圖的建立與輸出
【問(wèn)題描述】
建立圖的存儲(chǔ)結(jié)構(gòu)(圖的類型可以是有向圖、無(wú)向圖、有向網(wǎng)、無(wú)向網(wǎng),學(xué)生可以任選兩種類型),能夠輸入圖的頂點(diǎn)和邊的信息,并存儲(chǔ)到相應(yīng)存儲(chǔ)結(jié)構(gòu)中,而后輸出圖的鄰接矩陣。
【基本要求】
給出圖的深度優(yōu)先和廣度優(yōu)先遍歷算法,并給出遍歷過(guò)程的動(dòng)態(tài)演示效果 【實(shí)現(xiàn)說(shuō)明】
無(wú)
2.18 圖的建立與輸出
【問(wèn)題描述】
建立圖的存儲(chǔ)結(jié)構(gòu)(圖的類型可以是有向圖、無(wú)向圖、有向網(wǎng)、無(wú)向網(wǎng),學(xué)生可以任選兩種類型),能夠輸入圖的頂點(diǎn)和邊的信息,并存儲(chǔ)到相應(yīng)存儲(chǔ)結(jié)構(gòu)中,而后輸出 13 圖的鄰接矩陣。
【基本要求】
給出圖的深度優(yōu)先和廣度優(yōu)先遍歷算法,并給出遍歷過(guò)程的動(dòng)態(tài)演示效果?!緦?shí)現(xiàn)說(shuō)明】
無(wú)
2.19 以隊(duì)列實(shí)現(xiàn)的仿真技術(shù)預(yù)測(cè)理發(fā)館的經(jīng)營(yíng)狀況(*)
【問(wèn)題描述】
理發(fā)館一天的工作過(guò)程如下:
1)理發(fā)館有n把理發(fā)椅,可同時(shí)為n位顧客進(jìn)行理發(fā)。
2)理發(fā)師分三個(gè)等級(jí)(一級(jí)、二級(jí)、三級(jí)),對(duì)應(yīng)不同的服務(wù)收費(fèi)。3)當(dāng)顧客進(jìn)門(mén)時(shí),需選擇某級(jí)別理發(fā)師,只要該級(jí)別的理發(fā)師有空椅,則可立即坐下理發(fā),否則需排隊(duì)等候。
4)一旦該級(jí)別的理發(fā)師有顧客理發(fā)完離去,排在隊(duì)頭的顧客便可開(kāi)始理發(fā)。5)若理發(fā)館每天連續(xù)營(yíng)業(yè)t分鐘,求
(1)一天內(nèi)顧客在理發(fā)館內(nèi)的平均逗留時(shí)間;(2)顧客排隊(duì)等候理發(fā)的隊(duì)列長(zhǎng)度平均值;
(3)營(yíng)業(yè)時(shí)間到點(diǎn)后仍需完成服務(wù)的收尾工作時(shí)間;(4)統(tǒng)計(jì)每天的營(yíng)業(yè)額;
(5)統(tǒng)計(jì)每天不同級(jí)別理發(fā)師的創(chuàng)收。
【基本要求】
1)模擬理發(fā)館一天的工作過(guò)程:必須采用事件驅(qū)動(dòng)的離散模型(參考教科書(shū)3.5節(jié)離散事件模擬p65);
2)每個(gè)顧客到達(dá)和下一顧客到達(dá)時(shí)間的間隔應(yīng)是隨機(jī)的; 3)理發(fā)師編號(hào)、理發(fā)師級(jí)別和每天的營(yíng)業(yè)時(shí)間由用戶輸入;
4)某顧客挑選某一個(gè)級(jí)別的理發(fā)師而不得時(shí),選第一個(gè)隊(duì)列排隊(duì)等待 ;
5)每個(gè)顧客進(jìn)門(mén)時(shí)將生成三個(gè)隨機(jī)數(shù):(1)durtime:進(jìn)門(mén)顧客理發(fā)所需服務(wù)時(shí)間(簡(jiǎn)稱:理發(fā)時(shí)間);(2)intertime:下一顧客將到達(dá)的時(shí)間間隔(簡(jiǎn)稱:間隔時(shí)間);(3)select:服務(wù)選項(xiàng)。
6)服務(wù)收費(fèi):應(yīng)包含服務(wù)時(shí)間和理發(fā)師級(jí)別兩個(gè)因素。
7)除了輸出統(tǒng)計(jì)的數(shù)據(jù)外,還需要顯示理發(fā)館的狀態(tài),可以采用文本方式(橫向顯示每張椅編號(hào)、理發(fā)師級(jí)別??v向表示等待該理發(fā)師理發(fā)的排隊(duì)長(zhǎng)度)?!緦?shí)現(xiàn)說(shuō)明】
用戶輸入每位理發(fā)師編號(hào)、級(jí)別號(hào)和營(yíng)業(yè)的時(shí)間,結(jié)合隨機(jī)數(shù)進(jìn)行測(cè)試。
2.20 防抄襲管理系統(tǒng)(*)
【問(wèn)題描述】
對(duì)于給定的文檔,如word文檔,txt文檔等,找出文檔的相似度?!净疽蟆?/p>
(1)要求找出給定的兩個(gè)文檔的相似度以及標(biāo)出相似的地方(1:1);(2)要求找出給定的一個(gè)文檔與給定的文件夾的所有文檔的相似度,以及標(biāo)出相似的地方(1:n)(3)要求找出給定的文件夾下面所有文檔的相似度(n:n)?!緦?shí)現(xiàn)說(shuō)明】
給定相似文檔進(jìn)行測(cè)試。
2.21.設(shè)計(jì)一個(gè)停車場(chǎng)管理系統(tǒng),模擬停車場(chǎng)的運(yùn)作
設(shè)計(jì)要求:通過(guò)此程序具備以下功能:
1、要求以棧模擬停車場(chǎng),以隊(duì)列模擬車場(chǎng) 15 外的便道,按照從終端讀入的輸入數(shù)據(jù)序列進(jìn)行模擬管理;
2、要求處理的數(shù)據(jù)元素包括三個(gè)數(shù)據(jù)項(xiàng):汽車“到達(dá)”或“離去”信息、汽車牌照號(hào)碼及到達(dá)或離去的時(shí)刻;
3、該系統(tǒng)完成以下功能:若是車輛到達(dá),則輸出汽車在停車場(chǎng)內(nèi)或便道上的停車位置;若是車離去,則輸出汽車在停車場(chǎng)內(nèi)停留的時(shí)間和應(yīng)交納的費(fèi)用(在便道上停留的時(shí)間不收費(fèi));
4、要求棧以順序結(jié)構(gòu)實(shí)現(xiàn),隊(duì)列以鏈表實(shí)現(xiàn)。
2.22. 赫夫曼編碼
設(shè)計(jì)要求:自己找一篇不少于200個(gè)單詞的英文文章,分析該文章中每一個(gè)字符的出現(xiàn)概率(包括標(biāo)點(diǎn)符號(hào),區(qū)分大小寫(xiě)),根據(jù)分析結(jié)果對(duì)文章中每一個(gè)字符進(jìn)行赫夫曼編碼,并將編碼原則儲(chǔ)于一個(gè)獨(dú)立的文本文件中。最后,根據(jù)這個(gè)編碼原則,將英文文章轉(zhuǎn)換為01 串存儲(chǔ)于一個(gè)文本文件中,再編寫(xiě)一個(gè)解碼程序,將編碼解碼為原文件。如:英文文章為 aaabbc 則編碼規(guī)則為 a-----0 b-----10 c-----11 英文文章將被轉(zhuǎn)化為 000101011 2.23.并查集:檢查網(wǎng)絡(luò)
題目要求:給定一個(gè)計(jì)算機(jī)網(wǎng)絡(luò)以及機(jī)器間的雙向連線列表,每一條連線允許兩端的計(jì)算機(jī)進(jìn)行直接的文件傳輸,其他計(jì)算機(jī)間若存在一條連通路徑,也可以進(jìn)行間接的文件傳輸。請(qǐng)寫(xiě)出程序判斷:任意指定兩臺(tái)計(jì)算機(jī),它們之間是否可以進(jìn)行文件傳輸? 輸入要求:輸入若干測(cè)試數(shù)據(jù)組成。對(duì)于每一組測(cè)試,第1行包含一個(gè)整數(shù)n(≤10000),即網(wǎng)絡(luò)中計(jì)算機(jī)的總臺(tái)數(shù),因而每臺(tái)計(jì)算機(jī)可用1到n之間的一個(gè)正整數(shù)表示。接下來(lái)的幾行輸入格式為i c1 c2或者 c或者c c1c2或者s,其中c1和c2是兩臺(tái)計(jì)算機(jī)的 16 序號(hào),i表示在c1和c2間輸入一條連線,c表示檢查c1和c2間是否可以傳輸文件,s表示該組測(cè)試結(jié)束。
當(dāng)n為0時(shí),表示全部測(cè)試結(jié)束,不要對(duì)該數(shù)據(jù)做任何處理。
輸出要求:對(duì)每一組c開(kāi)頭的測(cè)試,檢查c1和c2間是否可以傳輸文件,若可以,則在一行中輸出“yes”,否則輸出“no”。
當(dāng)讀到s時(shí),檢查整個(gè)網(wǎng)絡(luò)。若網(wǎng)絡(luò)中任意兩機(jī)器間都可以傳輸文件,則在一行中輸出“the network is connected.”,否則輸出“there are k components.”,其中k是網(wǎng)絡(luò)中連通集的個(gè)數(shù)。
兩組測(cè)試數(shù)據(jù)之間請(qǐng)輸出一空行分隔。
2.24.教學(xué)計(jì)劃編制問(wèn)題(圖的應(yīng)用)
[問(wèn)題描述] 大學(xué)的每個(gè)專業(yè)都要制定教學(xué)計(jì)劃。假設(shè)任何專業(yè)都有固定的學(xué)習(xí)年限,每學(xué)年含兩學(xué)期,每學(xué)期的時(shí)間長(zhǎng)度和學(xué)分上限值均相等。每個(gè)專業(yè)開(kāi)設(shè)的課程都是確定的,而且課程在開(kāi)設(shè)時(shí)間的安排必須滿足先修關(guān)系。每門(mén)課程有哪些先修課程是確定的,可以有任意多門(mén),也可以沒(méi)有。每門(mén)課恰好占一個(gè)學(xué)期。試在這樣的前提下設(shè)計(jì)一個(gè)教學(xué)計(jì)劃編制程序。[實(shí)現(xiàn)提示]
1、輸入?yún)?shù)應(yīng)包括:學(xué)期總數(shù),一學(xué)期的學(xué)分上限,每門(mén)課的課程號(hào)(可以是固定占3位的字母數(shù)字串)、學(xué)分和直接先修課的課程號(hào)。
2、應(yīng)允許用戶指定下列兩種編排策略之一:一是使學(xué)生在各學(xué)期中的學(xué)習(xí)負(fù)擔(dān)盡量均勻;二是使課程盡可能地集中在前幾個(gè)學(xué)期中。
3、若根據(jù)給定的條件問(wèn)題無(wú)解,則報(bào)告適當(dāng)?shù)男畔?;否則將教學(xué)計(jì)劃輸出到用戶指定的文件中。計(jì)劃的表格格式可以自己設(shè)計(jì)。
4、可設(shè)學(xué)期總數(shù)不超過(guò)12,課程總數(shù)不超過(guò)100。如果輸入的先修課程號(hào)不在該專業(yè)開(kāi)設(shè)的課程序列中,則作為錯(cuò)誤處理。
============================= 17 2.25.藥品銷售統(tǒng)計(jì)系統(tǒng)(排序應(yīng)用)
【問(wèn)題描述】
設(shè)計(jì)一系統(tǒng),實(shí)現(xiàn)醫(yī)藥公司定期對(duì)銷售各藥品的記錄進(jìn)行統(tǒng)計(jì),可按藥品的編號(hào)、單價(jià)、銷售量或銷售額做出排名?!緦?shí)現(xiàn)提示】
在本設(shè)計(jì)中,首先從數(shù)據(jù)文件中讀出各藥品的信息記錄,存儲(chǔ)在順序表中。各藥品的信息包括:藥品編號(hào)、藥名、藥品單價(jià)、銷出數(shù)量、銷售額。藥品編號(hào)共4位,采用字母和數(shù)字混合編號(hào),如:a125,前一位為大寫(xiě)字母,后三位為數(shù)字,按藥品編號(hào)進(jìn)行排序時(shí),可采用基數(shù)排序法。對(duì)各藥品的單價(jià)、銷售量或銷售額進(jìn)行排序時(shí),可采用多種排序方法,如直接插入排序、冒泡排序、快速排序,直接選擇排序等方法。在本設(shè)計(jì)中,對(duì)單價(jià)的排序采用冒泡排序法,對(duì)銷售量的排序采用快速排序法,對(duì)銷售額的排序采用堆排序法。
藥品信息的元素類型定義: typedef struct node { char num[4];/*藥品編號(hào)*/ char name[10];/*藥品名稱*/ float price;/*藥品單價(jià)*/ int count;/*銷售數(shù)量*/ float sale;/*本藥品銷售額*/ }datatype;存儲(chǔ)藥品信息的順序表的定義: typedef struct { datatype r[maxsize];int length;}sequenlist;
2.26梯運(yùn)行仿真程序
[問(wèn)題描述] 辦公大樓有若干層(例如,十層),每層有電梯,同時(shí)有步行樓梯;
全樓有若干部(例如,不多于10部)電梯同時(shí)供使用,電梯容量為24人,速度每上下一層需5秒,在某一層停下至少15秒。其運(yùn)行狀態(tài)可分:向上、向下、停止,當(dāng)前乘客數(shù),當(dāng)前所在層數(shù)。它設(shè)有一個(gè)“按鈕數(shù)組”,例如第五層的按鈕按下,意味著有乘客在第5層到達(dá)目標(biāo)層,等等。在樓的每一層,有電梯數(shù),有按鈕表示有人等待向上或向下,由若干人在等待,有若干電梯在本層停下,等等。
在大樓中(包括進(jìn)出)的總?cè)藬?shù)不超過(guò)500 人,每個(gè)人站在電梯前有個(gè)目標(biāo)層,他有一個(gè)最大的忍受等待時(shí)間,因?yàn)樗梢赃x擇電梯或是步行走樓梯,等等。
還有下面若干假設(shè):在每個(gè)時(shí)間段要進(jìn)大樓的人數(shù)在0~199 之間隨機(jī)取值;
用電梯的每個(gè)人的目標(biāo)層在1~10 之間取值;一個(gè)人在進(jìn)電梯或改走樓梯之前的等待時(shí)間在180~360 秒范圍內(nèi)隨機(jī)發(fā)生;一個(gè)人到達(dá)目標(biāo)層后第二次再乘電梯中間的工作時(shí)間在400~6600 秒間隨機(jī)取值。[基本要求] 編寫(xiě)一個(gè)程序,模擬辦公大樓中全部電梯的工作過(guò)程。這個(gè)仿真程序可以用來(lái)監(jiān)測(cè)系統(tǒng)運(yùn)行情況,改善大樓管理,它也可以看成是一種游戲程序。
2.27國(guó)交通咨詢模擬
[問(wèn)題描述]
處于不同目的的旅客對(duì)交通工具有不同的要求。例如,因公出差的旅客希望在旅 途中的時(shí)間盡可能的短,出門(mén)旅游的游客則期望旅費(fèi)盡可能省,而老年旅客則要求中轉(zhuǎn)次數(shù)最少。編制一個(gè)全國(guó)城市間的交通咨詢程序,為旅客提供最優(yōu)決策的交通咨詢。
[基本要求]
(1)提供對(duì)城市信息進(jìn)行編輯(如:添加或刪除)的功能;
(2)城市之間有兩種交通工具:火車或飛機(jī),提供對(duì)全國(guó)城市交通圖和列車時(shí)刻表及飛機(jī)航班表進(jìn)行編輯的功能。(信息的輸入方式可以是文件輸入和鍵盤(pán)輸入兩種方式)
(3)提供兩種最優(yōu)決策:最快到達(dá)和最省錢到達(dá)。(選作:旅途中轉(zhuǎn)次數(shù)最少的最優(yōu)決策)
(4)旅途中耗費(fèi)的總時(shí)間應(yīng)該包括中轉(zhuǎn)站的等候時(shí)間。
(5)咨詢以用戶和計(jì)算機(jī)的對(duì)話方式進(jìn)行。
a)由用戶輸入起始站、終點(diǎn)站、最優(yōu)決策原則和交通工具;
b)輸出信息:最快需要多長(zhǎng)時(shí)間才能到達(dá)或者最少需要多少旅費(fèi)才能到達(dá),并詳 細(xì)說(shuō)明依次于何時(shí)乘坐哪一趟列車或哪一次班機(jī)到何地。
三、課程設(shè)計(jì)的基本要求
1.問(wèn)題分析和任務(wù)定義。根據(jù)設(shè)計(jì)題目的要求,充分地分析和理解問(wèn)題,明確問(wèn)題要求做什么?(而不是怎么做?)限制條件是什么?
2.邏輯設(shè)計(jì)。對(duì)問(wèn)題描述中涉及的操作對(duì)象定義相應(yīng)的數(shù)據(jù)類型,并按照以數(shù)據(jù)結(jié)構(gòu)為中心的原則劃分模塊,定義主程序模塊和各抽象數(shù)據(jù)類型。邏輯設(shè)計(jì)的結(jié)果應(yīng)寫(xiě)出每個(gè)抽象數(shù)據(jù)類型的定義(包括數(shù)據(jù)結(jié)構(gòu)的描述和每個(gè)基本操作的功能說(shuō)明),各個(gè)主要模塊的算法,并畫(huà)出模塊之間的調(diào)用關(guān)系圖。
3.詳細(xì)設(shè)計(jì)。定義相應(yīng)的存儲(chǔ)結(jié)構(gòu)并寫(xiě)出各函數(shù)的偽碼算法。在這個(gè)過(guò)程中,要綜合考慮系統(tǒng)功能,使得系統(tǒng)結(jié)構(gòu)清晰、合理、簡(jiǎn)單和易于調(diào)試,抽象數(shù)據(jù)類型的實(shí)現(xiàn)盡可能做到數(shù)據(jù)封裝,基本操作的規(guī)格說(shuō)明盡可能明確具體。詳細(xì)設(shè)計(jì)的結(jié)果是對(duì)數(shù)據(jù)結(jié)構(gòu)和基本操作作出進(jìn)一步的求精,20 寫(xiě)出數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)的類型定義,寫(xiě)出函數(shù)形式的算法框架。
4.程序編碼。把詳細(xì)設(shè)計(jì)的結(jié)果進(jìn)一步求精為程序設(shè)計(jì)語(yǔ)言程序。同時(shí)加入一些注解和斷言,使程序中邏輯概念清楚。
5.程序調(diào)試與測(cè)試。采用自底向上,分模塊進(jìn)行,即先調(diào)試低層函數(shù)。能夠熟練掌握調(diào)試工具的各種功能,設(shè)計(jì)測(cè)試數(shù)據(jù)確定疑點(diǎn),通過(guò)修改程序來(lái)證實(shí)它或繞過(guò)它。調(diào)試正確后,認(rèn)真整理源程序及其注釋,形成格式和風(fēng)格良好的源程序清單和結(jié)果。
6.結(jié)果分析。程序運(yùn)行結(jié)果包括正確的輸入及其輸出結(jié)果和含有錯(cuò)誤的輸入及其輸出結(jié)果。算法的時(shí)間、空間復(fù)雜性分析。
7.編寫(xiě)課程設(shè)計(jì)報(bào)告并提交相關(guān)內(nèi)容
設(shè)計(jì)最終需提交的內(nèi)容包括:
a)課程設(shè)計(jì)報(bào)告(1份,a4紙打印,同時(shí)包括一份電子版)報(bào)告要求版面清晰,格式規(guī)范,否則重新編寫(xiě)。報(bào)告內(nèi)容要求包括:
(1)問(wèn)題的概述、分析及研究意義;(2)數(shù)據(jù)結(jié)構(gòu)的邏輯設(shè)計(jì)和物理存儲(chǔ)設(shè)計(jì);(3)重要算法的設(shè)計(jì)、流程描述或偽代碼描述;
(4)數(shù)據(jù)結(jié)構(gòu)的時(shí)空復(fù)雜性分析以及重要算法的復(fù)雜性分析;
(5)程序最終實(shí)現(xiàn)結(jié)果(包括重點(diǎn)結(jié)果界面的抓取,能過(guò)說(shuō)明問(wèn)題的重要實(shí)驗(yàn)結(jié)果數(shù)據(jù)的打印或其可視化結(jié)果等)。
(6)參考文獻(xiàn)(如果需要)。
(7)附錄部分附上關(guān)鍵數(shù)據(jù)結(jié)構(gòu)的定義及關(guān)鍵算法的源代碼。
b)完整的程序系統(tǒng)(電子方式提交)
能夠?qū)斎氘a(chǎn)生相應(yīng)的輸出,同時(shí)盡量的完成可視化演示。
該部分包括源代碼和可執(zhí)行文件兩個(gè)部分(提交的時(shí)候需清楚的注明個(gè)人姓名,班級(jí))。
c)源程序文檔(電子方式提交)
源程序代碼要求結(jié)構(gòu)清晰、可讀性好。應(yīng)對(duì)源程序中的類說(shuō)明(如果采用面向?qū)ο蠓椒ㄔO(shè)計(jì)),函數(shù)說(shuō)明,接口說(shuō)明,關(guān)鍵變量說(shuō)明等進(jìn)行注釋;源程序要進(jìn)行適當(dāng)?shù)目s進(jìn)編排。
d)答辯報(bào)告(編寫(xiě)power point答辯報(bào)告,電子方式提交)要求突出重點(diǎn),思路清晰。同時(shí)就此報(bào)告準(zhǔn)備答辯。
e)所有以電子方式提交的文件全部存在一個(gè)目錄中,并對(duì)其進(jìn)行壓縮(用winrar或winzip均 21 可),壓縮后的文件按規(guī)定格式進(jìn)行命名,命名格式為:學(xué)號(hào)+()。8.每位同學(xué)只能選擇一個(gè)題目并完成
四、評(píng)分標(biāo)準(zhǔn)
1、基本功能:
50分。
通過(guò)功能的實(shí)現(xiàn)情況、界面的完成情況、軟件的實(shí)現(xiàn)情況進(jìn)行評(píng)分。
2、設(shè)計(jì)報(bào)告及使用說(shuō)明書(shū): 20分 按照?qǐng)?bào)告的要求進(jìn)行評(píng)分。
3、回答問(wèn)題:
4、平時(shí)考勤:
5、核分標(biāo)準(zhǔn):
15分 15分 100分
(90~100為優(yōu)、80~89為良、70~79為中、60~69為及格、,60以下為不及格)
五、參考書(shū)目
嚴(yán)蔚敏.《數(shù)據(jù)結(jié)構(gòu)》(c語(yǔ)言版).清華大學(xué)出版社 劉玉龍.《數(shù)據(jù)結(jié)構(gòu)與算法》.電子工業(yè)出版社.嚴(yán)蔚敏等《數(shù)據(jù)結(jié)構(gòu)題集》(c語(yǔ)言版).清華大學(xué)出版社
徐孝凱.數(shù)據(jù)結(jié)構(gòu)實(shí)用教程(c/c++描述).北京:清華大學(xué)出版社.陳慧南.數(shù)據(jù)結(jié)構(gòu)(使用c++語(yǔ)言描述).南京:東南大學(xué)出版社.殷人昆, 陶永雷, 謝若陽(yáng)等.數(shù)據(jù)結(jié)構(gòu)(用面向?qū)ο蠓椒ㄅcc++描述).北京:清華大學(xué)出版社.22
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)任務(wù)書(shū)篇三
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)任務(wù)書(shū)
一、《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)》的目標(biāo)
課程設(shè)計(jì)是《數(shù)據(jù)結(jié)構(gòu)》課程的一個(gè)重要的實(shí)踐環(huán)節(jié),它可加深學(xué)生對(duì)該課程所學(xué)內(nèi)容的進(jìn)一步的理解與鞏固,達(dá)到理論與實(shí)際應(yīng)用相結(jié)合,提高學(xué)生組織數(shù)據(jù)及編寫(xiě)大型程序的能力,培養(yǎng)基本的對(duì)基本數(shù)據(jù)結(jié)構(gòu)的理解和運(yùn)用,良好的程序設(shè)計(jì)方法、提高編碼及調(diào)試程序技能的能力,為整個(gè)專業(yè)的學(xué)習(xí)以及軟件設(shè)計(jì)水平的提高打下良好的基礎(chǔ)。
二、設(shè)計(jì)內(nèi)容
每位學(xué)生可以從《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)備選題目》中選擇一個(gè)題目自行完成。要求每班中題目不能重復(fù)。
三、設(shè)計(jì)要求
1.學(xué)生必須仔細(xì)閱讀《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)任務(wù)書(shū)》,認(rèn)真主動(dòng)完成課設(shè)的要求。有問(wèn)題及時(shí)主動(dòng)通過(guò)各種方式與指導(dǎo)教師聯(lián)系溝通。
2.學(xué)生要發(fā)揮自主學(xué)習(xí)的能力,充分利用時(shí)間,安排好課設(shè)的時(shí)間計(jì)劃,并在課設(shè)過(guò)程中不斷檢測(cè)自己的計(jì)劃完成情況,及時(shí)向教師匯報(bào)。
3.課程設(shè)計(jì)按照教學(xué)要求需要兩周時(shí)間完成,學(xué)院安排設(shè)計(jì)時(shí)
間學(xué)生不得缺席。
4、每位學(xué)生必須認(rèn)真、獨(dú)立完成設(shè)計(jì)任務(wù),發(fā)現(xiàn)抄襲者或雷同者,一律按零分處理。
5、程序設(shè)計(jì)語(yǔ)言可選擇c或c++。
6、程序要正確且具有一定的健壯性,不會(huì)因?yàn)橛脩舻妮斎脲e(cuò)誤引起程序運(yùn)行錯(cuò)誤而中斷執(zhí)行,對(duì)輸入值的類型、大小范圍、字符串的長(zhǎng)度等,進(jìn)行正確性檢查,對(duì)不合法的輸入值給出出錯(cuò)信息,指出錯(cuò)誤類型,等待重新輸入。
四、上交相關(guān)內(nèi)容要求
上交的成果的內(nèi)容必須由以下三個(gè)部分組成,缺一不可。
1. 上交源程序:學(xué)生按照課程設(shè)計(jì)的具體要求所開(kāi)發(fā)的所有源程序(應(yīng)該放到一個(gè)文件夾中);
2. 上交程序的說(shuō)明文件:(中)在說(shuō)明文檔中應(yīng)該寫(xiě)明上交程序所在的目錄,上交程序的主程序文件名,如果需要安裝,要有程序的安裝使用說(shuō)明;
3. 課程設(shè)計(jì)報(bào)告:(保存在word 文檔中,文件名要求按照“學(xué)號(hào)_姓名_課程設(shè)計(jì)報(bào)告題目”起名,如文件名為“001_張三_二叉樹(shù)動(dòng)態(tài)演示”.doc)。報(bào)告要求文字工整通順、圖表規(guī)范、思路清楚、內(nèi)容正確。設(shè)計(jì)報(bào)告必須按照規(guī)定格式規(guī)范,a4紙雙面打印、裝訂。
將以上三個(gè)部分放在一個(gè)文件夾里,文件夾名要求按照"學(xué)號(hào)_姓名_課程設(shè)計(jì)報(bào)告題目”.zip命名。每個(gè)班將所有學(xué)生的文件夾收集起來(lái)刻成光盤(pán)上交。
五、時(shí)間安排
設(shè)計(jì)時(shí)間為兩周(7.07—7.18),7月16日—7月18日答辯??己朔绞?/p>
成績(jī)按五分制,包括課程設(shè)計(jì)過(guò)程、課程設(shè)計(jì)結(jié)果、課程設(shè)計(jì)報(bào)告三部分。其中:
課程設(shè)計(jì)過(guò)程:20%
包括設(shè)計(jì)態(tài)度(10分)、出勤(10分)
課程設(shè)計(jì)結(jié)果:40%
其中:程序正確性:30分,運(yùn)行效果:10分,答辯:10分。課程設(shè)計(jì)報(bào)告:40%
其中:正確性:20分,完整性:10分,規(guī)范性:10分。
六、設(shè)計(jì)報(bào)告格式
見(jiàn)《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告模板》。
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)任務(wù)書(shū)篇四
數(shù)據(jù)結(jié)構(gòu)與算法課程設(shè)計(jì)題目
1.成績(jī)管理
問(wèn)題描述:給出n個(gè)學(xué)生的考試成績(jī)表,成績(jī)表包括學(xué)生的學(xué)號(hào)、姓名、考試成績(jī)(高等數(shù)
學(xué)、英語(yǔ)、物理),設(shè)計(jì)一個(gè)簡(jiǎn)單的成績(jī)管理程序。
基本要求:
(1)建立成績(jī)表,能夠插入、刪除、修改學(xué)生的成績(jī)記錄;(2)按任一單科成績(jī)排序;(3)計(jì)算每名學(xué)生的平均成績(jī);
(4)統(tǒng)計(jì)任一單科成績(jī)不及格的學(xué)生人數(shù), 輸出不及格人數(shù)及不及格的學(xué)生名單(5)根據(jù)平均成績(jī)將成績(jī)表按由高到低的次序排列,統(tǒng)計(jì)每名學(xué)生在考試中獲得的名次,分?jǐn)?shù)相同的為同一名次,按名次輸出成績(jī)表。
(6)成績(jī)表保存在文件中, 可以從文件讀取數(shù)據(jù)。
測(cè)試數(shù)據(jù):學(xué)生可以根據(jù)自己班級(jí)的考試成績(jī)單,任意截取一部分做為測(cè)試數(shù)據(jù) 2.一元多項(xiàng)式簡(jiǎn)單計(jì)算
問(wèn)題描述:設(shè)計(jì)一個(gè)簡(jiǎn)單一元多項(xiàng)式計(jì)算器?;疽螅?1)輸入并建立多項(xiàng)式;(2)輸出多項(xiàng)式;
(3)兩個(gè)多項(xiàng)式相加,輸出結(jié)果多項(xiàng)式;(4)兩個(gè)多項(xiàng)式相減,輸出結(jié)果多項(xiàng)式。
提高要求:可以根據(jù)輸入變量的值,計(jì)算出多項(xiàng)式的結(jié)果,且算法的效率高。測(cè)試數(shù)據(jù):可任意選取兩個(gè)一元多項(xiàng)式,可以是一般的多項(xiàng)式,也可以是稀疏多項(xiàng)式。3.舞伴問(wèn)題
問(wèn)題描述:一班有m個(gè)女生、n個(gè)男生(m不等于n), 舉辦一場(chǎng)舞會(huì).男女生分別編號(hào)坐在舞池兩邊的椅子上,每曲開(kāi)始時(shí), 依次從男生和女生中各出一人配對(duì)跳舞, 本曲沒(méi)成功配對(duì)者坐著等待下一曲找舞伴,設(shè)計(jì)一個(gè)程序模擬舞伴配對(duì)過(guò)程。
基本要求:輸入男、女學(xué)生的姓名、性別,由程序自動(dòng)為男女生編號(hào),可以順序編號(hào),也可以隨機(jī)編號(hào),輸出每曲配對(duì)情況(包括男、女生的姓名、性別和編號(hào))。原始數(shù)據(jù)和結(jié)果數(shù)據(jù)要保存到文件中。
測(cè)試數(shù)據(jù):分別選擇男生多于女生、女生多于男生、男女生相等的三組測(cè)試數(shù)據(jù) 提高要求:計(jì)算出任意一位男生(編號(hào)為x)和任意一位女生(編號(hào)為y), 在第k曲配對(duì)跳舞的情況。
4.文學(xué)研究助手(*)
問(wèn)題描述:文學(xué)研究人員需要統(tǒng)計(jì)某篇英文小說(shuō)中某些形容詞的出現(xiàn)次數(shù)和位置。試寫(xiě)一個(gè)實(shí)現(xiàn)這一目標(biāo)的文字統(tǒng)計(jì)系統(tǒng),稱為“文學(xué)研究助手”?;疽螅河⑽男≌f(shuō)存于一個(gè)文本文件中,待統(tǒng)計(jì)的詞匯集合要一次輸入完畢,即統(tǒng)計(jì)工作必須在程序的一次運(yùn)行之后就全部完成。程序的輸出結(jié)果是每個(gè)詞的出現(xiàn)次數(shù)和出現(xiàn)位置所在行的行號(hào),格式自行設(shè)計(jì), 結(jié)果保存到文件中。
提高要求:模式匹配選取kmp算法
測(cè)試數(shù)據(jù):以你的c/c++/java源程序模擬英文小說(shuō),相應(yīng)語(yǔ)言的保留字集作為待統(tǒng)計(jì)的詞匯集。
5.哈希表的設(shè)計(jì)與實(shí)現(xiàn)(*)
問(wèn)題描述:針對(duì)某個(gè)單位電話號(hào)碼簿,設(shè)計(jì)一個(gè)哈希表,并完成相應(yīng)的建表和查表程序?;疽螅涸O(shè)每個(gè)記錄有下列數(shù)據(jù)項(xiàng):電話號(hào)碼、用戶名、住址。從鍵盤(pán)輸入各記錄,以用戶名為關(guān)鍵字建立哈希表,哈希函數(shù)用除留取余數(shù)法構(gòu)造,采用線性探測(cè)法解決沖突??梢圆迦?、查找、刪除并顯示給定用戶名的記錄,并計(jì)算查找長(zhǎng)度, 哈希表保存到文件中。
測(cè)試數(shù)據(jù):取某個(gè)單位電話號(hào)碼簿中的30個(gè)記錄。
提高要求:將電話號(hào)碼薄以文件形式保存到盤(pán)上,能夠按用戶名和電話號(hào)碼兩種形式建立哈希表并實(shí)現(xiàn)插入、查找、刪除表中元素的功能。
6.管道鋪設(shè)施工的最佳方案(*)
問(wèn)題描述:需要在某個(gè)城市的n個(gè)小區(qū)鋪設(shè)管道,則在這n個(gè)小區(qū)之間鋪設(shè)n-1條管道即可,假設(shè)任意兩個(gè)居民區(qū)之間都可以架設(shè)管道,但由于地理環(huán)境的不同,所需經(jīng)費(fèi)不同,選擇最優(yōu)的施工方案使總投資盡可能的少。
基本要求:輸入表示小區(qū)間關(guān)系的圖及每條管道的權(quán)值,選擇出n-1條管道, 使總投資最小。圖的信息輸入一次后, 保存到文件中, 選擇的n-1條管道輸出到顯示器的同時(shí), 也保存于文件中。
測(cè)試用例:任意選擇一個(gè)圖,模擬小區(qū)間可能鋪設(shè)的管道及費(fèi)用。提高要求:顯示原始圖及選擇n-1條管道后的圖。
7.安排教學(xué)計(jì)劃(**)
問(wèn)題描述:大學(xué)的每個(gè)專業(yè)都要制定教學(xué)計(jì)劃。假設(shè)任何專業(yè)都有固定的學(xué)習(xí)年限,每學(xué)年含兩個(gè)學(xué)期,每學(xué)期的時(shí)間長(zhǎng)度和學(xué)分上限值均相等。每個(gè)專業(yè)開(kāi)設(shè)的課程都是確定的,而且課程在開(kāi)設(shè)時(shí)間的安排上必須滿足先修關(guān)系。每門(mén)課程有哪些先修課程是確定的,可以有任意多門(mén),也可以沒(méi)有。每門(mén)課程恰好占一個(gè)學(xué)期。試在這樣的前提下設(shè)計(jì)一個(gè)教學(xué)計(jì)劃編制程序。
基本要求:輸入?yún)?shù)包括學(xué)期總數(shù),一學(xué)期的學(xué)分上限,每門(mén)課程的課程號(hào)、學(xué)分和直接先修課的課程號(hào);允許兩種策略,一是使學(xué)生在各學(xué)期的學(xué)習(xí)負(fù)擔(dān)盡量均勻,二是使課程盡量集中在前幾個(gè)學(xué)期;若根據(jù)給定的條件問(wèn)題無(wú)解,則報(bào)告適當(dāng)?shù)男畔?,否則將教學(xué)計(jì)劃輸出到用戶指定的文件中。教學(xué)計(jì)劃的表格格式自行設(shè)定, 可以從鍵盤(pán)讀取數(shù)據(jù)也可以從文件讀取數(shù)據(jù), 結(jié)果保存到文件中。
測(cè)試數(shù)據(jù):學(xué)期總數(shù)為6,學(xué)分上限為10,該專業(yè)共開(kāi)設(shè)12門(mén)。以08級(jí)某專業(yè)必修課與選修課為例,選擇12門(mén)課程及相應(yīng)學(xué)分,制定一個(gè)表明各門(mén)課程先后約束關(guān)系的有向圖。
提高要求:產(chǎn)生多種不同的方案,并使方案之間的差異盡可能地大。8.停車場(chǎng)管理程序(**)問(wèn)題描述:設(shè)停車場(chǎng)內(nèi)只有一個(gè)可停放n輛汽車的狹長(zhǎng)通道,且只有一個(gè)大門(mén)可供汽車進(jìn)出。汽車在停車場(chǎng)內(nèi)按車輛到達(dá)時(shí)間的先后順序,依次由北向南排列(大門(mén)在最南端,最先到達(dá)的第一輛車停放在車場(chǎng)的最北端),若車場(chǎng)內(nèi)已停滿n輛汽車,則后來(lái)的汽車只能在門(mén)外的便道上等候,一旦有車開(kāi)走,則排在便道上的第一輛車即可開(kāi)入;當(dāng)停車場(chǎng)內(nèi)某輛車要離開(kāi)時(shí),在它之后開(kāi)入的車輛必須先退出車場(chǎng)為它讓路,待該輛車開(kāi)出大門(mén)外,其它車輛再按原次序進(jìn)入車場(chǎng),每輛停放在車場(chǎng)的車在它離開(kāi)停車場(chǎng)時(shí)必須按它停留的時(shí)間長(zhǎng)短交納費(fèi)用。試為停車場(chǎng)編制按上述要求進(jìn)行管理的模擬程序。
基本要求:每一組輸入數(shù)據(jù)包括三個(gè)數(shù)據(jù)項(xiàng):汽車“到達(dá)”或“離去”信息、汽車牌照號(hào)碼及到達(dá)或離去的時(shí)刻,對(duì)每一組輸入數(shù)據(jù)進(jìn)行操作后的輸出數(shù)據(jù)為:若是車輛到達(dá),則輸出汽車在停車場(chǎng)內(nèi)或便道上的停車位置;若是車離去;則輸出汽車在停車場(chǎng)內(nèi)停留的時(shí)間和應(yīng)交納的費(fèi)用(在便道上停留的時(shí)間不收費(fèi),單位時(shí)間的停車費(fèi)用由用戶從鍵盤(pán)輸入)。
測(cè)試數(shù)據(jù):設(shè)輸入數(shù)據(jù)為:(‘a(chǎn)’,1,5),(‘a(chǎn)’,2,10),(‘d’,1,15),(‘a(chǎn)’,3,20),(‘a(chǎn)’,4,25),(‘a(chǎn)’,5,30),(‘d’,2,35),(‘d’,4,40),(‘e’,0,0)。其中,‘a(chǎn)’表示到達(dá);‘d’表示離去,‘e’表示輸入結(jié)束。
提高要求:設(shè)停車場(chǎng)有南、北兩個(gè)門(mén),每個(gè)門(mén)都可以進(jìn)、出車輛。9.計(jì)算表達(dá)式的值(**)問(wèn)題描述:對(duì)于給定的一個(gè)表達(dá)式,表達(dá)式中可以包括常數(shù)、算術(shù)運(yùn)行符(“+”、“-”、“*”、“/”)和括號(hào),編寫(xiě)程序計(jì)算表達(dá)式的值。
基本要求:從鍵盤(pán)輸入一個(gè)正確的中綴表達(dá)式,將中綴表達(dá)式轉(zhuǎn)換為對(duì)應(yīng)的后綴表達(dá)式,計(jì)算后綴表達(dá)式的值。
測(cè)試數(shù)據(jù):任意選取一個(gè)符合題目要求的表達(dá)式。提高要求:(1)對(duì)于表達(dá)式中的簡(jiǎn)單錯(cuò)誤,能夠給出提示;
(2)表達(dá)式中可以包括單個(gè)字母表示的變量。
10.設(shè)計(jì)huffman 編碼器與解碼器(***)
問(wèn)題描述:利用哈夫曼編碼進(jìn)行信息通訊可以大大提高信道的利用率,縮短信息傳輸時(shí)間,降低傳輸成本。但是,這要求在發(fā)送端通過(guò)一個(gè)編碼系統(tǒng)對(duì)待傳輸數(shù)據(jù)預(yù)先編碼;在接受端將傳來(lái)的數(shù)據(jù)進(jìn)行譯碼。對(duì)于雙工信道(即可以雙向傳輸信息的信道),每端都需要一個(gè)完整的編/譯碼系統(tǒng)。試為這樣的信息收發(fā)站編寫(xiě)一個(gè)哈夫曼碼的編/譯碼系統(tǒng)。
基本要求:根據(jù)某字符文件統(tǒng)計(jì)字符出現(xiàn)頻度,構(gòu)造huffman 樹(shù),編制huffman編碼,并將給定字符文件編碼,生成編碼文件;再將給定編碼文件解碼,生成字符文件。(要求按二進(jìn)制位表示編碼)測(cè)試數(shù)據(jù):英文文件。
提高要求:用二進(jìn)制表示編碼,生成二進(jìn)制的編碼文件。11.銀行業(yè)務(wù)模擬(***)
問(wèn)題描述:設(shè)銀行有四個(gè)服務(wù)窗口,一個(gè)等待隊(duì)列, 每個(gè)窗口均可以辦理存款、取款、掛失、還貸業(yè)務(wù),每種業(yè)務(wù)所需的服務(wù)時(shí)間不同,客戶到達(dá)銀行后,先到打號(hào)機(jī)上打號(hào),號(hào)票上包括到達(dá)時(shí)間、編號(hào)和需要辦理的業(yè)務(wù),然后在銀行內(nèi)等候, 當(dāng)任一服務(wù)窗口空閑時(shí),處理等候客戶中排在最前面的客戶的業(yè)務(wù)。寫(xiě)一個(gè)上述銀行業(yè)務(wù)的模擬系統(tǒng),通過(guò)模擬方法求出客戶在銀行內(nèi)逗留的平均時(shí)間和每個(gè)窗口辦理的客戶數(shù)及辦理的每種業(yè)務(wù)數(shù)。
基本要求:每個(gè)客戶到達(dá)銀行的時(shí)間和需要辦理的業(yè)務(wù)隨機(jī)產(chǎn)生,輸出一天客戶在銀行的平均逗留時(shí)間和每個(gè)窗口每天辦理的客戶數(shù)和每種業(yè)務(wù)數(shù)。
測(cè)試數(shù)據(jù):營(yíng)業(yè)時(shí)間為8小時(shí),其他模擬量自行設(shè)定。12.程序源代碼的相似性(***)
問(wèn)題描述:對(duì)于兩個(gè)c++語(yǔ)言的源程序代碼,用哈希表的方法分別統(tǒng)計(jì)兩個(gè)程序中使用c++語(yǔ)言關(guān)鍵字的情況,并最終按定量的計(jì)算結(jié)果,得出兩份程序的相似性。
基本要求:建立c++語(yǔ)言關(guān)鍵字的哈希表,統(tǒng)計(jì)在每個(gè)源程序中c++關(guān)鍵字出現(xiàn)的頻度, 得到兩個(gè)向量x1和x2,通過(guò)計(jì)算向量x1和x2的相對(duì)距離來(lái)判斷兩個(gè)源程序的相似性。
例如: 關(guān)鍵字 void int for char if else while do break class 程序1關(guān)鍵字頻度 4 3 0 4 3 0 7 0 0 2 程序2關(guān)鍵字頻度 4 2 0 5 4 0 5 2 0 1 x1=[4,3,0,4,3,0,7,0,0,2] x2=[4,2,0,5,4,0,5,2,0,1] 設(shè)s是向量x1和x2的相對(duì)距離,s=sqrt(∑(xi1-xi2)2),當(dāng)x1=x2時(shí),s=0, 反映出可能是同一個(gè)程序;s值越大,則兩個(gè)程序的差別可能也越大。
測(cè)試數(shù)據(jù): 選擇若干組編譯和運(yùn)行都無(wú)誤的c++程序,程序之間有相近的和差別大的,用上述方法求s, 對(duì)比兩個(gè)程序的相似性。
提高要求:建立源代碼用戶標(biāo)識(shí)符表,比較兩個(gè)源代碼用戶標(biāo)識(shí)符出現(xiàn)的頻度,綜合關(guān)鍵字頻度和用戶標(biāo)識(shí)符頻度判斷兩個(gè)程序的相似性。
13.小型文本編輯器
問(wèn)題描述:設(shè)計(jì)一個(gè)行編輯程序,使其具有通常行編輯器(如vi、edlin)應(yīng)具備的基本功能。
基本要求:編輯器應(yīng)具備對(duì)文本文件的查找、插人、刪除、修改、字符串替換、統(tǒng)計(jì)字?jǐn)?shù),統(tǒng)計(jì)行數(shù)等功能,對(duì)于超過(guò)一屏的長(zhǎng)文件,應(yīng)能夠分頁(yè)顯示,查找功能用字符串匹配算法實(shí)現(xiàn)。設(shè)計(jì)用戶接口命令,實(shí)現(xiàn)對(duì)文本的編輯。具體的編輯命令,可參考數(shù)據(jù)結(jié)構(gòu)算法網(wǎng)絡(luò)教學(xué)平臺(tái)上提供的edlin、vi的命令集。
測(cè)試數(shù)據(jù):任一文本文件。
提高要求:1.可以支持“* ”、“? ”等通配符;
2.支持復(fù)制、粘貼等功能
3.支持多文檔同時(shí)編輯;
提示:可以考慮用雙向鏈表實(shí)現(xiàn),每一結(jié)點(diǎn)表示一行字符,注意每行字符不能超過(guò)255。14.小型英漢詞典
問(wèn)題描述:設(shè)計(jì)一個(gè)英漢詞典,支持member(查找)、insert(插入)、delete(刪除)操作。
基本要求:實(shí)現(xiàn)字典的常用方法有:有序線性表(memeber用二分檢索實(shí)現(xiàn))、avl樹(shù)(二叉搜索樹(shù))、patricia trie、散列表等,任選一種方法實(shí)現(xiàn)字典的操作,查找單詞、插入單詞(插入時(shí),先查找,找不到插入,找到提示用戶)、刪除單詞(刪除時(shí),先查找,找到刪除,找不到提示用戶)。
測(cè)試數(shù)據(jù):任一英文單詞。提高要求:選用兩種以上的方法實(shí)現(xiàn)字典的操作,并比較不同實(shí)現(xiàn)算法的時(shí)間復(fù)雜度和空間復(fù)雜度。
提示:字典可以自己建立,但必須按字母a~z建立26個(gè)文件,建議從網(wǎng)上下載,文件類型為txt。
備注:
1.每道題目后面的*號(hào),表示題目的難度系數(shù);對(duì)應(yīng)的評(píng)定成績(jī)等級(jí)為及格(無(wú)*號(hào))、中等(*號(hào))、良好(**號(hào))、優(yōu)秀(***號(hào)),學(xué)生完成題目的基本要求,即可得到程序設(shè)計(jì)部分的相應(yīng)等級(jí)成績(jī),完成題目提高要求,成績(jī)可以向上浮動(dòng),如果沒(méi)有完成基本要求,成績(jī)向下浮動(dòng),直至不及格。
2.所有題目均需用c++完成,不能用c或mfc。3.實(shí)驗(yàn)班的學(xué)生原則上應(yīng)選擇“*”號(hào)多的題目。4.每道題的選題人數(shù)不能超過(guò)3人
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)任務(wù)書(shū)篇五
《數(shù)據(jù)結(jié)構(gòu)與算法》課程設(shè)計(jì)教學(xué)大綱(data structures & algorithms)
一、基本信息
課程編號(hào):e1132107 課程類別:學(xué)科基礎(chǔ)課必修課 適用層次:本科
適用專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)、網(wǎng)絡(luò)工程、軟件工程等 開(kāi)課學(xué)期:3 學(xué) 分:2學(xué)分 學(xué) 時(shí):2周 考核方式:考查
二、教學(xué)目的
數(shù)據(jù)結(jié)構(gòu)與算法課程設(shè)計(jì)不僅是數(shù)據(jù)結(jié)構(gòu)與算法課程的實(shí)踐教學(xué)環(huán)節(jié),而且是一門(mén)綜合性實(shí)驗(yàn)項(xiàng)目。通過(guò)這個(gè)實(shí)驗(yàn),培養(yǎng)學(xué)生綜合運(yùn)用數(shù)據(jù)結(jié)構(gòu)基本知識(shí)和程序設(shè)計(jì)基本知識(shí),解決實(shí)際問(wèn)題,提高程序設(shè)計(jì)的能力和團(tuán)隊(duì)協(xié)作精神。
本課程設(shè)計(jì)的目的就是要達(dá)到理論與實(shí)際應(yīng)用相結(jié)合,使同學(xué)們能夠根據(jù)數(shù)據(jù)對(duì)象的特性,學(xué)會(huì)數(shù)據(jù)組織的方法,能把現(xiàn)實(shí)世界中的實(shí)際問(wèn)題在計(jì)算機(jī)內(nèi)部表示出來(lái),并培養(yǎng)基本的、良好的程序設(shè)計(jì)技能。
1.學(xué)生通過(guò)實(shí)踐掌握線性表、樹(shù)、圖等數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)結(jié)構(gòu)及算法實(shí)現(xiàn); 2.培養(yǎng)學(xué)生利用數(shù)據(jù)結(jié)構(gòu)知識(shí)解決實(shí)際問(wèn)題的能力;3.使學(xué)生初步具備查閱資料、分析設(shè)計(jì)、上機(jī)實(shí)現(xiàn)和書(shū)寫(xiě)科技 報(bào)告的能力。
三、基本要求
1.指導(dǎo)教師要在選題、設(shè)計(jì)、上機(jī)實(shí)現(xiàn)等諸環(huán)節(jié)上投入精力,加強(qiáng)指導(dǎo)、討論和答疑的力度。尤其在選題上,要充分考慮學(xué)生目前所具有的知識(shí)水平、掌握的開(kāi)發(fā)工具、以及綜合設(shè)計(jì)能力的現(xiàn)狀,使題目取材合理、大小適中、難易適度,使學(xué)生在完成設(shè)計(jì)工作后,能有所收獲。2.參加課程設(shè)計(jì)的學(xué)生要珍惜機(jī)會(huì)、勤奮工作、勇于創(chuàng)新、勇于探索、勇于實(shí)踐,虛心向指導(dǎo)教師請(qǐng)教,向同學(xué)學(xué)習(xí),獨(dú)立完成設(shè)計(jì)任務(wù)。
3.學(xué)生需保質(zhì)、保量、保時(shí)間進(jìn)度地提交規(guī)范的課程設(shè)計(jì)報(bào)告,審查由指導(dǎo)教師負(fù)責(zé)。
四、教學(xué)內(nèi)容
1.主要內(nèi)容:應(yīng)用所掌握的線性表、樹(shù)、圖等數(shù)據(jù)結(jié)構(gòu)知識(shí)解決實(shí)際問(wèn)題。2.軟件開(kāi)發(fā)工具:c/c++、java。
3.課程設(shè)計(jì)題目:指導(dǎo)教師擬定(參考題目見(jiàn)附錄1)
4.具體步驟:指導(dǎo)教師擬定設(shè)計(jì)題目,學(xué)生研究具體問(wèn)題、進(jìn)行需求分析、選擇合適的數(shù)據(jù)結(jié)構(gòu)、設(shè)計(jì)算法、編寫(xiě)并調(diào)試代碼、書(shū)寫(xiě)文檔材料、提交設(shè)計(jì)報(bào)告,最后,由指導(dǎo)教師驗(yàn)收并評(píng)定成績(jī)。
5.設(shè)計(jì)內(nèi)容及時(shí)間安排:第1-3天,選定題目,明確題目要求、確定數(shù)據(jù)結(jié)構(gòu)、設(shè)計(jì)算法,并分析算法復(fù)雜度;第4-8天,編寫(xiě)程序、調(diào)試程序、測(cè)試程序;第9-10天,撰寫(xiě)設(shè)計(jì)報(bào)告,準(zhǔn)備答辯(上機(jī)演示,回答教師提問(wèn))。6.設(shè)計(jì)報(bào)告書(shū)寫(xiě)要求:按照軟件開(kāi)發(fā)規(guī)范的要求書(shū)寫(xiě)設(shè)計(jì)報(bào)告(參見(jiàn)附錄三報(bào)告書(shū)寫(xiě)格式);要求報(bào)告層次結(jié)構(gòu)清晰、圖表完整、語(yǔ)言通順、字跡工整。7.驗(yàn)收要求:1)運(yùn)行所設(shè)計(jì)的程序;2)回答有關(guān)問(wèn)題;3)提交課程設(shè)計(jì)報(bào)告(打印或手寫(xiě)在實(shí)習(xí)報(bào)告冊(cè)上);4)提交軟盤(pán)(源程序)。(鼓勵(lì)學(xué)生創(chuàng)新。對(duì)內(nèi)容有創(chuàng)新者,成績(jī)?cè)u(píng)定將適當(dāng)提高)。
五、考核方法
學(xué)習(xí)成績(jī)的評(píng)定方式:考查。
課程設(shè)計(jì)成績(jī)?cè)u(píng)定 =平時(shí)出勤(20%)+設(shè)計(jì)報(bào)告(40%)+答辯(40%)通過(guò)設(shè)計(jì)答辯方式,并結(jié)合學(xué)生的動(dòng)手能力,獨(dú)立分析解決問(wèn)題的能力和創(chuàng)新精神,總結(jié)報(bào)告和答辯水平以及學(xué)習(xí)態(tài)度綜合考評(píng)。成績(jī)分為優(yōu)、良、中、及格和不及格五等。
六、教材與參考資料 1.建議教材:
[1] 數(shù)據(jù)結(jié)構(gòu)(c++)版,王紅梅、胡明、王濤編著,清華大學(xué)出版社,2005.7 [2] 自編教材
2.建議參考書(shū)目:
[1] 許卓群,楊冬青,唐世渭,張銘.數(shù)據(jù)結(jié)構(gòu)與算法.高等教育出版社,2004.7 [2] 嚴(yán)蔚敏, 陳文博.數(shù)據(jù)結(jié)構(gòu)及應(yīng)用算法教程.清華大學(xué)出版社, 2001.2 [3] 朱晉蜀.數(shù)據(jù)結(jié)構(gòu)(第一版).成都: 電子科技大學(xué)出版社, 2000.1 [4] clifford r著.張銘,劉曉丹譯.數(shù)據(jù)結(jié)構(gòu)與算法分析.電子工業(yè)出版社,1998.8 [5] 殷人昆等.數(shù)據(jù)結(jié)構(gòu)(用面向?qū)ο蠓椒ㄅcc++描述).清華大學(xué)出版社,1999.7 [6] ford w., topp structures with c++.清華大學(xué)出版社(影印版),1997.3
附錄一
參考題目(可分若干組,每個(gè)學(xué)生選擇其中一個(gè)題目)
1.商廈家電庫(kù)存管理 2.排序算法的時(shí)間比較
3.使用哈希表技術(shù)判斷兩個(gè)源程序的相似性 4.以隊(duì)列實(shí)現(xiàn)的仿真技術(shù)預(yù)測(cè)理發(fā)館的經(jīng)營(yíng)狀況 5.某公園導(dǎo)游圖
6.用樹(shù)型結(jié)構(gòu)的搜索算法模擬因特網(wǎng)域名的查詢 7.管道鋪設(shè)施工的最佳方案選擇 8.表達(dá)式分析與求值程序 9.安排教學(xué)計(jì)劃
10.設(shè)計(jì)huffman 編碼器與解碼器 11.在國(guó)際象棋盤(pán)上馬遍歷問(wèn)題 12.八皇后問(wèn)題 13.民航售票系統(tǒng) 14.模擬旅館管理系統(tǒng)中的床位分配和加收 15.銀行業(yè)務(wù)活動(dòng)的模擬
16.文字統(tǒng)計(jì)系統(tǒng)—文字研究助手 17.修道士野人問(wèn)題 18.考試問(wèn)題
19.計(jì)算機(jī)輔助考核系統(tǒng) 20.學(xué)籍管理系統(tǒng)
注:學(xué)生可以自選題目或選擇指導(dǎo)老師擬定的題目。
附錄二
開(kāi)發(fā)步驟
1.分析題目的要求、目的; 2.選擇適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu);
3.抽象數(shù)據(jù)類型的設(shè)計(jì); 4.抽象數(shù)據(jù)類型的實(shí)現(xiàn); 5.編寫(xiě)代碼、上機(jī)調(diào)試; 6.總結(jié)驗(yàn)收、評(píng)價(jià)。
附錄三 報(bào)告書(shū)寫(xiě)格式
1.問(wèn)題描述
題目?jī)?nèi)容、基本要求 2.需求分析
軟件的基本功能、輸入/輸出形式、測(cè)試數(shù)據(jù)要求 3.概要設(shè)計(jì)
所需的adt及作用、主程序流程及模塊調(diào)用關(guān)系 4.詳細(xì)設(shè)計(jì)
實(shí)現(xiàn)概要設(shè)計(jì)的數(shù)據(jù)類型、每個(gè)操作的偽碼算法、主程序和其它模塊的偽碼算法、函數(shù)調(diào)用關(guān)系圖 5.編碼與調(diào)試分析
編碼與調(diào)試過(guò)程中遇到的問(wèn)題及解決的辦法,還存在哪些沒(méi)有解決的問(wèn)題? 6.使用說(shuō)明
簡(jiǎn)要說(shuō)明程序運(yùn)行操作步驟 7.測(cè)試結(jié)果
8.課程設(shè)計(jì)心得體會(huì)
【本文地址:http://www.aiweibaby.com/zuowen/1086811.html】