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