第一篇:《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計教學(xué)任務(wù)書3397.
24.讀書破萬卷,下筆如有神 ——杜甫 《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計教學(xué)任務(wù)書 計算機2007-1 課程設(shè)計周數(shù):第20周 指導(dǎo)老師:劉文娟
一、課程設(shè)計的目的 數(shù)據(jù)結(jié)構(gòu)課程主要是研究非數(shù)值計算的程序設(shè)計問題中所出現(xiàn)的計算機操作對象以及它們之間的關(guān)系和操作的學(xué)科 數(shù)據(jù)結(jié)構(gòu)是介于數(shù)學(xué)、計算機軟件和計算機硬件之間的一門計算機專業(yè)的核心課程,它是計算機程序設(shè)計、數(shù)據(jù)庫、操作系統(tǒng)、編譯原理及人工智能等的重要基礎(chǔ),廣泛的應(yīng)用于信息學(xué)、系統(tǒng)工程等各種領(lǐng)域
學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)是為了將實際問題中所涉及的對象在計算機中表示出來并對它們進行處理 通過課程設(shè)計可以提高學(xué)生的思維能力,促進學(xué)生的綜合應(yīng)用能力和專業(yè)素質(zhì)的提高 通過此次課程設(shè)計主要達到以下目的: * 了解并掌握數(shù)據(jù)結(jié)構(gòu)與算法的設(shè)計方法,具備初步的獨立分析和設(shè)計能力; * 初步掌握軟件開發(fā)過程的問題分析、系統(tǒng)設(shè)計、程序編碼、測試等基本方法和技能; * 提高綜合運用所學(xué)的理論知識和方法獨立分析和解決問題的能力; * 訓(xùn)練用系統(tǒng)的觀點和軟件開發(fā)一般規(guī)范進行軟件開發(fā),培養(yǎng)軟件工作者所應(yīng)具備的科學(xué)的工作方法和作風
二、課程設(shè)計的基本要求
1、獨立思考,獨立完成:課程設(shè)計中各任務(wù)的設(shè)計和調(diào)試要求獨立完成,遇到問題可以討論,但不可以拷貝
2、做好上機準備:每次上機前,要事先編制好準備調(diào)試的程序,認真想好調(diào)試步驟和有關(guān)環(huán)境的設(shè)置方法,準備好有關(guān)的文件
3、按照課程設(shè)計的具體要求建立的功能模塊,每個模塊要求按照如下幾個內(nèi)容認真完成;
其中包括:
a)需求分析:
在該部分中敘述,每個模塊的功能要求
b)概要設(shè)計
在此說明每個部分的算法設(shè)計說明(可以是描述算法的流程圖),每個程序中使用的存儲結(jié)構(gòu)設(shè)計說明(如果指定存儲結(jié)構(gòu)請寫出該存儲結(jié)構(gòu)的定義)
c)詳細設(shè)計
各個算法實現(xiàn)的源程序,對每個題目要有相應(yīng)的源程序(可以是一組源程序,每個功能模塊采用不同的函數(shù)實現(xiàn))
源程序要按照寫程序的規(guī)則來編寫 要結(jié)構(gòu)清晰,重點函數(shù)的重點變量,重點功能部分要加上清晰的程序注釋
d)調(diào)試分析
測試數(shù)據(jù),測試輸出的結(jié)果,時間復(fù)雜度分析,和每個模塊設(shè)計和調(diào)試時存在問題的思考(問題是哪些?問題如何解決?),算法的改進設(shè)想
e)課程設(shè)計總結(jié):(保存在word文檔中)總結(jié)可以包括:課程設(shè)計過程的收獲、遇到問題、遇到問題解決問題過程的思考、程序調(diào)試能力的思考、對數(shù)據(jù)結(jié)構(gòu)這門課程的思考、在課
程設(shè)計過程中對《數(shù)據(jù)結(jié)構(gòu)》課程的認識等內(nèi)容;
4、每組實現(xiàn)的結(jié)果必須進行檢查和演示;程序源代碼和程序的說明文件必須上交,作為考核內(nèi)容的一部分;(上交時每人交一份,文件夾的取名規(guī)則為:“學(xué)號 姓名”,如“200413498 高魁” 該文件夾下至少包括:“源代碼”、“課程設(shè)計報告”、“可執(zhí)行文件” 由學(xué)習(xí)委員收集刻盤按規(guī)定時間統(tǒng)一上交)
5、報告提交 時間:第20周星期五檢查,第20周星期五下午5點之前由學(xué)習(xí)委員收集上交,遲交無成績 形式:課程設(shè)計報告(要求打?。┖碗娮游臋n(統(tǒng)一刻盤)
三、課程設(shè)計內(nèi)容:
1、排序算法演示系統(tǒng) 【問題描述】 設(shè)計一個測試程序比較幾種內(nèi)部排序算法的關(guān)鍵字比較次數(shù)和移動次數(shù)以取得直觀感受 【基本要求】(1實現(xiàn)各種內(nèi)部排序 包括冒泡排序,直接選擇排序,希爾排序,快速排序,堆排序(2 待排序的元素的關(guān)鍵字為整數(shù) 其中的數(shù)據(jù)要用隨機數(shù)產(chǎn)生(如10000個,至少用5組不同的數(shù)據(jù)做比較,再使用各種算法對其進行排序,記錄其排序時間,再匯總比較(3 演示程序以人機對話的形式進行 每次測試完畢顯示各種比較指標值的列表,用餅圖或條形圖進行表示,以便比較各種排序的優(yōu)劣(4 界面友好,易與操作 采用菜單方式進行選擇 【選做內(nèi)容】(1 對不同表長進行比較;(2 驗證各算法的穩(wěn)定性;(3 輸出界面的優(yōu)化(4 使用漢字顯示
2、校園導(dǎo)游咨詢系統(tǒng) 【問題描述】 設(shè)計一個校園導(dǎo)游程序,為來訪的客人提供各種信息查詢服務(wù) 【基本要求】(1 設(shè)計安徽理工大學(xué)的校園平面圖,所含景點不少于10個 以圖中頂點表示校內(nèi)各景點,存放景點名稱、代號、簡介等信息;以邊表示路徑,存放路徑長度等相關(guān)信息(2 為來訪客人提供圖中任意景點相關(guān)信息的查詢(3 為來訪客人提供圖中任意景點的問路查詢,即查詢?nèi)我鈨蓚€景點之間的一條最短的簡單路徑 【選做內(nèi)容】(1 系統(tǒng)功能的完善;(2 提供求任意兩個景點之間的所有路徑的功能;(3 提供校園圖中多個景點的最佳訪問路線查詢,即求途經(jīng)這多個景點的最佳(短)路徑(4 使用漢字顯示
3、通訊錄 【問題描述】 設(shè)計散列表實現(xiàn)通訊錄查找系統(tǒng) 【基本要求】(1 設(shè)每個記錄有下列數(shù)據(jù)項:電話號碼、用戶名、地址;(2 從鍵盤輸入各記錄,分別以電話號碼為關(guān)鍵字建立散列表;(3 采用線性探測再散列法解決沖突;(4 查找并顯示給定電話號碼的記錄;(5 通訊錄信息文件保存;(6 要求人機界面友好,使用圖形化界面; 【選做內(nèi)容】(1 系統(tǒng)功能的完善;(2 設(shè)計不同的散列函數(shù),比
較沖突率;(3 在散列函數(shù)確定的前提下,嘗試各種不同類型處理沖突的方法,考察平均查找長度的變化(4 使用漢字顯示 【實現(xiàn)提示】 如果不用界面編程,可用以下函數(shù)實現(xiàn): 主函數(shù):根據(jù)選單的選項調(diào)用各函數(shù),并完成相應(yīng)的功能 Menu(的功能:顯示英文提示選單 Quit(的功能:退出選單 Create(的功能:創(chuàng)建新的通訊錄 Append(的功能:在通訊錄的末尾寫入新的信息,并返回選單 Find(:查詢某人的信息,如果找到了,則顯示該人的信息,如果沒有則提示通訊錄中沒有此人的信息,并返回選單 Alter(的功能:修改某人的信息,如果未找到要修改的人,則提示通訊錄中沒有此人的信息,并返回選單 Delete(的功能:刪除某人的信息,如果未找到要刪除的人,則提示通訊錄中沒有此人的信息,并返回選單 List(的功能:顯示通訊錄中的所有記錄 Save(的功能:保存通訊錄中的所有記錄到指定文件中 Load(的功能:從指定文件中讀取通訊錄中的記錄
4、哈夫曼編碼/譯碼器 【問題描述】 設(shè)計一個哈夫曼編碼/譯碼系統(tǒng),對一個文本文件中的字符進行哈夫曼編碼,生成編碼文件(壓縮文件,后綴名.cod);反過來,可將一個壓縮文件譯碼還原為一個文本文件(.txt 【基本要求】(1 輸入一個待壓縮的文本文件名,統(tǒng)計文本文件中各字符的個數(shù)作為權(quán)值,生成哈夫曼樹;(2 將文本文件利用哈夫曼樹進行編碼,生成壓縮文件(后綴名cod),(3 輸入一個待解壓的壓縮文件名稱,并利用相應(yīng)的哈夫曼樹將編碼序列譯碼;(4 顯示指定的壓縮文件和文本文件;(5 界面友好,易與操作 采用菜單方式進行選擇 【選做內(nèi)容】(1 把哈夫曼編碼用二進制位緊縮到一個變量中,利用位運算進行真正的數(shù)據(jù)壓縮,并求壓縮比(2 顯示哈夫曼樹;(3 使用漢字顯示
5、二叉樹遍歷算法集成 功能要求:(1)界面友好,易于操作 可采用菜單或其它人機對話方式進行選擇(2)實現(xiàn)各種二叉樹的遍歷 包括先序遍歷、中序遍歷、后序遍歷的遞歸或非遞歸算法(3)要求能查找任一結(jié)點在某種遍歷序列中的前驅(qū)和后繼(4)演示程序以人機對話的形式進行 每次測試完畢正確顯示各種遍歷序列 在上交資料中請寫明:存儲結(jié)構(gòu)、基本算法(可以使用程序流程圖)、源程序、測試數(shù)據(jù)和結(jié)果、算法的時間復(fù)雜度、另外可以提出算法的改進方法;
6、航班信息的查詢與檢索 功能要求:(1)界面友好,易于操作 可采用菜單或其它人機對話方式進行選擇(2)實現(xiàn)對飛機航班信息進行排序與查找 可按航班的航班號、起點站、到達站、起飛時間以及到達時間等信息進行查詢 每個航班記錄包括八項:航班號、起點站、到達站、班期、起飛時間、到達時間、飛機型號以及票價 除了票價為數(shù)值型外,其它的均定義為字符串 航班號 起點站 終點站 班期 起飛時間 到達時間 飛機型號 票價 CA1544 合肥 北京 1.3.5 1055 1240 733 960 MU5341 上海 廣州 每日 1420 1615 M90 1280 CZ3869 重慶 深圳 2.4.6 0855 1035 733 1010
7、學(xué)生成績管理系統(tǒng)(圖書管理系統(tǒng)、個人賬簿管理系統(tǒng))功能要求:(1)界面友好,易于操作 可采用菜單或其它人機對話方式進行選擇(2)實現(xiàn)對學(xué)生成績信息進行排序與查找 可按學(xué)生學(xué)號、姓名等信息進行查詢 每個學(xué)生信息包含:學(xué)號,姓名,班級,語文,數(shù)學(xué),英語,物理,化學(xué)等項 學(xué)生信息的存儲結(jié)構(gòu)可以選擇順序結(jié)構(gòu),也可以選擇鏈式結(jié)構(gòu)
8、表達式求值 功能要求:
當用戶輸入一個合法的表達式后,能夠返回正確的結(jié)果 能夠計算的運算符包括:加、減、乘、除、括號;能夠計算的數(shù)要求在實數(shù)范圍內(nèi) 能執(zhí)行多重括號嵌套運算 對于異常表達式給出錯誤提示(要求使用靜態(tài)棧數(shù)據(jù)結(jié)構(gòu))
9、飛機訂票系統(tǒng) 功能要求:(1)錄入:可以錄入航班情況(數(shù)據(jù)可以存儲在一個數(shù)據(jù)文件中,數(shù)據(jù)結(jié)構(gòu)、具體數(shù)據(jù)自定)(2)查詢:可以查詢某個航線的情況(如,輸入航班號,查詢起降時間,起飛抵達城市,航班票價,票價折扣,確定航班是否滿倉);可以輸入起飛抵達城市,查詢飛機航班情況;(3)訂票:(訂票情況可以存在一個數(shù)據(jù)文件中,結(jié)構(gòu)自己設(shè)定)可以訂票,如果該航班已經(jīng)無票,可以提供相關(guān)可選擇航班;(4)退票: 可退票,退票后修改相關(guān)數(shù)據(jù)文件;客戶資料有姓名,證件號,訂票數(shù)量及航班情況,訂單要有編號(5)修改航班信息:當航班信息改變可以修改航班數(shù)據(jù)文件
10、多項式運算 功能要求:(1)輸入并建立多項式;(2)輸出多項式,輸出形式為整數(shù)序列n,c1,e1,c2,e2,......,cn,en,其中n是多項式的 項數(shù),ci和ei分別是第i項的系數(shù)和指數(shù),序列按指數(shù)降序排列;(3)多項式a和b相加,建立多項式a+b;輸出相加的多項式(4)多項式a和b相減,建立多項式a-b 輸出相加的多項式(5)用帶表頭結(jié)點的單鏈表存儲多項式
11、猴子選大王 問題描述: n只猴子要選大王,選舉方法是:所有猴子按1,2,...,n編號圍坐一圈,從第1號開始按1,2,...,m報數(shù),凡報到m號的退出圈外,如此循環(huán)報數(shù),直到圈內(nèi)剩下
一只猴子時,這只猴子就是大王 基本要求:
分別選擇順序表和單向循環(huán)鏈表作為存儲結(jié)構(gòu)模擬整
個過程,并依次輸出出列的各猴子的編號和最終所選出猴王的編號
12、停車場管理 問題描述: 設(shè)停車場是一個可以停放n輛汽車的狹長通道,且只有一個大門可以供車輛進出 車輛按到達停車場時間的早晚依次從停車場最里向大門口處停放(最先到達的第一輛車放在停車場的最里面)如果停車場已放滿n輛車,則后來的車只能在停車場大門外的便道上等待,一旦停車場內(nèi)有車開走,則排在便道上的第一輛車就進入停車場 停車場內(nèi)如有某輛車要開走,在它之后進入停車場的車都必須先退出停車場為它讓路,待其開出停車場后,這些車輛再依原來的次序進場 每輛車在離開停車場時,都應(yīng)根據(jù)它在停車場內(nèi)停留的時間長短交費 如果停留在便道上的車未進停車場就要離去,允許其離去,不收停車費,并且仍然保持在便道上等待的車輛次序 編制一程序模擬該停車場的管理 提示:
停車場采用棧式結(jié)構(gòu),停車場外的便道采用隊列結(jié)構(gòu)(即便道就是等候隊列)
13、文本編輯器
功能要求:運用鏈表與數(shù)組來處理字符串的各項操作 如插入,刪除,查找,替換,顯示等等
提示:對于自定義的文本文件“*.txt”,其每一行表示一個結(jié)點用單鏈表來實現(xiàn),可以進行一行的修改,刪除,添加等;每一行中的字符可用一維數(shù)組來存儲,這樣可以利用數(shù)組的特性方便地進行插入,刪除,替換,甚至可以進行排序操作!
14、迷宮問題 問題描述:
在迷宮中求從入口到出口的一條簡單路徑 提示:
迷宮用一個二維字符數(shù)組maze來表示,用x表示縱坐標,y表示橫坐標(1)定義探索迷宮的四個方向:RIGHT為向右,DOWN向下,LEFT向左,UP向上,用Switch語句根據(jù)當前的位置坐標來判斷下一步要探索的方向求出下一步要走的位置坐標(2)探索迷宮的四個方向的坐標表示:RIGHT(x,y+1), DOWN(x+1,y, LEFT(x,y-1, UP(x-1,y(3)對每個方向探索時,用0表示可通過,用1表示不能通過是障礙,對探索過的位置加以標記 把每一個可以通過的位置坐標放入棧中,最后打印輸出路徑(4)根據(jù)二維字符數(shù)組和加標記的位置坐標,輸出迷宮的圖形
15、電梯模擬運行 問題描述:
模擬我校九層教學(xué)樓的電梯系統(tǒng) 該樓有一個自動電梯,能在每層停留 九個樓層由下至上依次稱為第一層、第二層、......第九層,其中第一層是大樓的進出層,即是電梯的“本壘層”,電梯“空閑”時,將來
到該層候命
乘客可隨時地進出于任何層 對于每個人來說,他有一個能容忍的最長等待時間,一旦等候電梯時間過長,他將放棄
模擬時鐘從0開
始,時間單位為0.1秒 人和電梯的各種動作均要消耗一定的時間單位(簡記為t),比如:有人進出時,電梯每隔40t檢測一次,若無人進出,則關(guān)門;關(guān)門和開門各需要20t;每個人進出電梯均需要25t;如果電梯在某層精致時間超過300t,則駛回1層候命 基本要求:
按時序顯示系統(tǒng)狀態(tài)的變化過程,即發(fā)生的全部人和電梯的動作序列
(1)用系統(tǒng)計時,每當有新的動作要輸入時要暫停計時,等輸入完成后即可繼續(xù)計時
(2)輸入各個動作,最后,輸入完畢后,可以保存所有動作序列,并有序輸出
四、上交作業(yè)及成績評定
1、上交要求
上交設(shè)計報告和相關(guān)光盤 其中設(shè)計報告要以打印文稿的形式上交 光盤內(nèi)容包括程序源碼設(shè)計報告的電子文檔 整個班級的設(shè)計均刻在一張光盤上(上交時每人交一份,文件夾的取名規(guī)則為:“學(xué)號 姓名”,如“200711111 王文” 該文件夾下至少包括:“源代碼”、“課程設(shè)計報告”、“可執(zhí)行文件” 由學(xué)習(xí)委員收集刻盤按規(guī)定時間統(tǒng)一上交)
2、評分標準
根據(jù)完成任務(wù)的情況(必須進行系統(tǒng)演示、課程設(shè)計報告書的質(zhì)量和課程設(shè)計過程中的工作態(tài)度等按照30%、50%、20%加權(quán)綜合打分 成績評定實行優(yōu)秀、良好、中等、及格和不及格五個等級 上機程序檢查未通過者、無設(shè)計報告者以及嚴重抄襲他人設(shè)計者,成績?yōu)椴患案?數(shù)據(jù)結(jié)構(gòu)課程設(shè)計任務(wù)書----計2007-1 1 /7 24.讀書破萬卷,下筆如有神 ——杜甫
第二篇:《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計教學(xué)任務(wù)書.
愚昧從來沒有給人帶來幸福;幸福的根源在于知識?!罄?《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計教學(xué)任務(wù)書 計算機2007-1 課程設(shè)計周數(shù):第20周 指導(dǎo)老師:劉文娟
一、課程設(shè)計的目的 數(shù)據(jù)結(jié)構(gòu)課程主要是研究非數(shù)值計算的程序設(shè)計問題中所出現(xiàn)的計算機操作對象以及它們之間的關(guān)系和操作的學(xué)科。數(shù)據(jù)結(jié)構(gòu)是介于數(shù)學(xué)、計算機軟件和計算機硬件之間的一門計算機專業(yè)的核心課程,它是計算機程序設(shè)計、數(shù)據(jù)庫、操作系統(tǒng)、編譯原理及人工智能等的重要基礎(chǔ),廣泛的應(yīng)用于信息學(xué)、系統(tǒng)工程等各種領(lǐng)域。
學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)是為了將實際問題中所涉及的對象在計算機中表示出來并對它們進行處理。通過課程設(shè)計可以提高學(xué)生的思維能力,促進學(xué)生的綜合應(yīng)用能力和專業(yè)素質(zhì)的提高。通過此次課程設(shè)計主要達到以下目的: * 了解并掌握數(shù)據(jù)結(jié)構(gòu)與算法的設(shè)計方法,具備初步的獨立分析和設(shè)計能力; * 初步掌握軟件開發(fā)過程的問題分析、系統(tǒng)設(shè)計、程序編碼、測試等基本方法和技能; * 提高綜合運用所學(xué)的理論知識和方法獨立分析和解決問題的能力; * 訓(xùn)練用系統(tǒng)的觀點和軟件開發(fā)一般規(guī)范進行軟件開發(fā),培養(yǎng)軟件工作者所應(yīng)具備的科學(xué)的工作方法和作風。
二、課程設(shè)計的基本要求
1、獨立思考,獨立完成:課程設(shè)計中各任務(wù)的設(shè)計和調(diào)試要求獨立完成,遇到問題可以討論,但不可以拷貝。
2、做好上機準備:每次上機前,要事先編制好準備調(diào)試的程序,認真想好調(diào)試步驟和有關(guān)環(huán)境的設(shè)置方法,準備好有關(guān)的文件。
3、按照課程設(shè)計的具體要求建立的功能模塊,每個模塊要求按照如下幾個內(nèi)容認真完成;
其中包括:
a)需求分析:
在該部分中敘述,每個模塊的功能要求
b)概要設(shè)計
在此說明每個部分的算法設(shè)計說明(可以是描述算法的流程圖),每個程序中使用的存儲結(jié)構(gòu)設(shè)計說明(如果指定存儲結(jié)構(gòu)請寫出該存儲結(jié)構(gòu)的定義)。
c)詳細設(shè)計
各個算法實現(xiàn)的源程序,對每個題目要有相應(yīng)的源程序(可以是一組源程序,每個功能模塊采用不同的函數(shù)實現(xiàn))
源程序要按照寫程序的規(guī)則來編寫。要結(jié)構(gòu)清晰,重點函數(shù)的重點變量,重點功能部分要加上清晰的程序注釋。
d)調(diào)試分析
測試數(shù)據(jù),測試輸出的結(jié)果,時間復(fù)雜度分析,和每個模塊設(shè)計和調(diào)試時存在問題的思考(問題是哪些?問題如何解決?),算法的改進設(shè)想。
e)課程設(shè)計總結(jié):(保存在word文檔中)總結(jié)可以包括:課程設(shè)計過程的收獲、遇到問題、遇到問題解決問題過程的思考、程序調(diào)試能力的思考、對數(shù)據(jù)結(jié)構(gòu)這門課程的思考、在課程設(shè)計過程中對《數(shù)據(jù)結(jié)構(gòu)》課程的認識等內(nèi)容;
4、每組實現(xiàn)的結(jié)果必須進行檢查和演示;程序源代碼和程序的說明文件必須上交,作為考核內(nèi)容的一部分;(上交時每人交一份,文件夾的取名規(guī)則為:“學(xué)號 姓名”,如“200413498 高魁”。該文件夾下至少包括:“源代碼”、“課程設(shè)計報告”、“可執(zhí)行文件”。由學(xué)習(xí)委員收集刻盤按規(guī)定時間統(tǒng)一上交)。
5、報告提交 時間:第20周星期五檢查,第20周星期五下午5點之前由學(xué)習(xí)委員收集上交,遲交無成績。形式:課程設(shè)計報告(要求打?。┖碗娮游臋n(統(tǒng)一刻盤)。
三、課程設(shè)計內(nèi)容:
1、排序算法演示系統(tǒng) 【問題描述】 設(shè)計一個測試程序比較幾種內(nèi)部排序算法的關(guān)鍵字比較次數(shù)和移動次數(shù)以取得直觀感受。【基本要求】(1實現(xiàn)各種內(nèi)部排序。包括冒泡排序,直接選擇排序,希爾排序,快速排序,堆排序。(2 待排序的元素的關(guān)鍵字為整數(shù)。其中的數(shù)據(jù)要用隨機數(shù)產(chǎn)生(如10000個,至少用5組不同的數(shù)據(jù)做比較,再使用各種算法對其進行排序,記錄其排序時間,再匯總比較。(3 演示程序以人機對話的形式進行。每次測試完畢顯示各種比較指標值的列表,用餅圖或條形圖進行表示,以便比較各種排序的優(yōu)劣。(4 界面友好,易與操作。采用菜單方式進行選擇。【選做內(nèi)容】(1 對不同表長進行比較;(2 驗證各算法的穩(wěn)定性;(3 輸出界面的優(yōu)化。(4 使用漢字顯示。
2、校園導(dǎo)游咨詢系統(tǒng) 【問題描述】 設(shè)計一個校園導(dǎo)游程序,為來訪的客人提供各種信息查詢服務(wù)。【基本要求】(1 設(shè)計安徽理工大學(xué)的校園平面圖,所含景點不少于10個。以圖中頂點表示校內(nèi)各景點,存放景點名稱、代號、簡介等信息;以邊表示路徑,存放路徑長度等相關(guān)信息。(2 為來訪客人提供圖中任意景點相關(guān)信息的查詢。(3 為來訪客人提供圖中任意景點的問路查詢,即查詢?nèi)我鈨蓚€景點之間的一條最短的簡單路徑?!具x做內(nèi)容】(1 系統(tǒng)功能的完善;(2 提供求任意兩個景點之間的所有路徑的功能;(3 提供校園圖中多個景點的最佳訪問路線查詢,即求途經(jīng)這多個景點的最佳(短)路徑。(4 使用漢字顯示。
3、通訊錄 【問題描述】 設(shè)計散列表實現(xiàn)通訊錄查找系統(tǒng)?!净疽蟆?1 設(shè)每個記錄有下列數(shù)據(jù)項:電話號碼、用戶名、地址;(2 從鍵盤輸入各記錄,分別以電話號碼為關(guān)鍵字建立散列表;(3 采用線性探測再散列法解決沖突;(4 查找并顯示給定電話號碼的記錄;(5 通訊錄信息文件保存;(6 要求人機界面友好,使用圖形化界面; 【選做內(nèi)容
】(1 系統(tǒng)功能的完善;(2 設(shè)計不同的散列函數(shù),比較沖突率;(3 在散列函數(shù)確定的前提下,嘗試各種不同類型處理沖突的方法,考察平均查找長度的變化。(4 使用漢字顯示?!緦崿F(xiàn)提示】 如果不用界面編程,可用以下函數(shù)實現(xiàn): 主函數(shù):根據(jù)選單的選項調(diào)用各函數(shù),并完成相應(yīng)的功能。Menu(的功能:顯示英文提示選單。Quit(的功能:退出選單。Create(的功能:創(chuàng)建新的通訊錄。Append(的功能:在通訊錄的末尾寫入新的信息,并返回選單。Find(:查詢某人的信息,如果找到了,則顯示該人的信息,如果沒有則提示通訊錄中沒有此人的信息,并返回選單。Alter(的功能:修改某人的信息,如果未找到要修改的人,則提示通訊錄中沒有此人的信息,并返回選單。Delete(的功能:刪除某人的信息,如果未找到要刪除的人,則提示通訊錄中沒有此人的信息,并返回選單。List(的功能:顯示通訊錄中的所有記錄。Save(的功能:保存通訊錄中的所有記錄到指定文件中。Load(的功能:從指定文件中讀取通訊錄中的記錄。
4、哈夫曼編碼/譯碼器 【問題描述】 設(shè)計一個哈夫曼編碼/譯碼系統(tǒng),對一個文本文件中的字符進行哈夫曼編碼,生成編碼文件(壓縮文件,后綴名.cod);反過來,可將一個壓縮文件譯碼還原為一個文本文件(.txt?!净疽蟆?1 輸入一個待壓縮的文本文件名,統(tǒng)計文本文件中各字符的個數(shù)作為權(quán)值,生成哈夫曼樹;(2 將文本文件利用哈夫曼樹進行編碼,生成壓縮文件(后綴名cod),(3 輸入一個待解壓的壓縮文件名稱,并利用相應(yīng)的哈夫曼樹將編碼序列譯碼;(4 顯示指定的壓縮文件和文本文件;(5 界面友好,易與操作。采用菜單方式進行選擇?!具x做內(nèi)容】(1 把哈夫曼編碼用二進制位緊縮到一個變量中,利用位運算進行真正的數(shù)據(jù)壓縮,并求壓縮比。(2 顯示哈夫曼樹;(3 使用漢字顯示。愚昧從來沒有給人帶來幸福;幸福的根源在于知識。——左拉
5、二叉樹遍歷算法集成 功能要求:(1)界面友好,易于操作。可采用菜單或其它人機對話方式進行選擇。(2)實現(xiàn)各種二叉樹的遍歷。包括先序遍歷、中序遍歷、后序遍歷的遞歸或非遞歸算法。(3)要求能查找任一結(jié)點在某種遍歷序列中的前驅(qū)和后繼。(4)演示程序以人機對話的形式進行。每次測試完畢正確顯示各種遍歷序列。在上交資料中請寫明:存儲結(jié)構(gòu)、基本算法(可以使用程序流程圖)、源程序、測試數(shù)據(jù)和結(jié)果、算法的時間復(fù)雜度、另外可以提出算法的改進方法;
6、航班信息的查詢與檢索 功能要求:(1)界面友好,易于操作??刹捎貌藛位蚱渌藱C對話方式進行選擇。(2)實現(xiàn)對飛機航班信息進行排序與查找??砂春桨嗟暮桨嗵枴⑵瘘c站、到達站、起飛時間以及到達時間等信息進行查詢。每個航班記錄包括八項:航班號、起點站、到達站、班期、起飛時間、到達時間、飛機型號以及票價。除了票價為數(shù)值型外,其它的均定義為字符串。航班號 起點站 終點站 班期 起飛時間 到達時間 飛機型號 票價 CA1544 合肥 北京 1.3.5 1055 1240 733 960 MU5341 上海 廣州 每日 1420 1615 M90 1280 CZ3869 重慶 深圳 2.4.6 0855 1035 733 1010
7、學(xué)生成績管理系統(tǒng)(圖書管理系統(tǒng)、個人賬簿管理系統(tǒng))功能要求:(1)界面友好,易于操作??刹捎貌藛位蚱渌藱C對話方式進行選擇。(2)實現(xiàn)對學(xué)生成績信息進行排序與查找。可按學(xué)生學(xué)號、姓名等信息進行查詢。每個學(xué)生信息包含:學(xué)號,姓名,班級,語文,數(shù)學(xué),英語,物理,化學(xué)等項。學(xué)生信息的存儲結(jié)構(gòu)可以選擇順序結(jié)構(gòu),也可以選擇鏈式結(jié)構(gòu)。
8、表達式求值 功能要求:
當用戶輸入一個合法的表達式后,能夠返回正確的結(jié)果。能夠計算的運算符包括:加、減、乘、除、括號;能夠計算的數(shù)要求在實數(shù)范圍內(nèi)。能執(zhí)行多重括號嵌套運算。對于異常表達式給出錯誤提示。(要求使用靜態(tài)棧數(shù)據(jù)結(jié)構(gòu)。)
9、飛機訂票系統(tǒng) 功能要求:(1)錄入:可以錄入航班情況(數(shù)據(jù)可以存儲在一個數(shù)據(jù)文件中,數(shù)據(jù)結(jié)構(gòu)、具體數(shù)據(jù)自定)(2)查詢:可以查詢某個航線的情況(如,輸入航班號,查詢起降時間,起飛抵達城市,航班票價,票價折扣,確定航班是否滿倉);可以輸入起飛抵達城市,查詢飛機航班情況;(3)訂票:(訂票情況可以存在一個數(shù)據(jù)文件中,結(jié)構(gòu)自己設(shè)定)可以訂票,如果該航班已經(jīng)無票,可以提供相關(guān)可選擇航班;(4)退票: 可退票,退票后修改相關(guān)數(shù)據(jù)文件;客戶資料有姓名,證件號,訂票數(shù)量及航班情況,訂單要有編號。(5)修改航班信息:當航班信息改變可以修改航班數(shù)據(jù)文件
10、多項式運算 功能要求:(1)輸入并建立多項式;(2)輸出多項式,輸出形式為整數(shù)序列n,c1,e1,c2,e2,......,cn,en,其中n是多項式的 項數(shù),ci和ei分別是第i項的系數(shù)和指數(shù),序列按指數(shù)降序排列;(3)多項式a和b相加,建立多項式a+b;輸出相加的多項式(4)多項式a和b相減,建立多項式a-b。輸出相加的多項式(5)用帶表頭結(jié)點的單鏈表存儲多項式。
11、猴子選大王 問題描述: n只猴子要
選大王,選舉方法是:所有猴子按1,2,...,n編號圍坐一圈,從第1號開始按1,2,...,m報數(shù),凡
報到m號的退出圈外,如此循環(huán)報數(shù),直到圈內(nèi)剩下一只猴子時,這只猴子就是大王?;疽螅?/p>
分別選擇順序表和單向循環(huán)鏈表作為存儲結(jié)構(gòu)模擬整個過程,并依次輸出出列的各猴子的編號和最終所選出猴王的編號。
12、停車場管理 問題描述: 設(shè)停車場是一個可以停放n輛汽車的狹長通道,且只有一個大門可以供車輛進出。車輛按到達停車場時間的早晚依次從停車場最里向大門口處停放(最先到達的第一輛車放在停車場的最里面)。如果停車場已放滿n輛車,則后來的車只能在停車場大門外的便道上等待,一旦停車場內(nèi)有車開走,則排在便道上的第一輛車就進入停車場。停車場內(nèi)如有某輛車要開走,在它之后進入停車場的車都必須先退出停車場為它讓路,待其開出停車場后,這些車輛再依原來的次序進場。每輛車在離開停車場時,都應(yīng)根據(jù)它在停車場內(nèi)停留的時間長短交費。如果停留在便道上的車未進停車場就要離去,允許其離去,不收停車費,并且仍然保持在便道上等待的車輛次序。編制一程序模擬該停車場的管理。提示:
停車場采用棧式結(jié)構(gòu),停車場外的便道采用隊列結(jié)構(gòu)(即便道就是等候隊列)。
13、文本編輯器
功能要求:運用鏈表與數(shù)組來處理字符串的各項操作。如插入,刪除,查找,替換,顯示等等。
提示:對于自定義的文本文件“*.txt”,其每一行表示一個結(jié)點用單鏈表來實現(xiàn),可以進行一行的修改,刪除,添加等;每一行中的字符可用一維數(shù)組來存儲,這樣可以利用數(shù)組的特性方便地進行插入,刪除,替換,甚至可以進行排序操作!
14、迷宮問題 問題描述:
在迷宮中求從入口到出口的一條簡單路徑。提示:
迷宮用一個二維字符數(shù)組maze來表示,用x表示縱坐標,y表示橫坐標。(1)定義探索迷宮的四個方向:RIGHT為向右,DOWN向下,LEFT向左,UP向上,用Switch語句根據(jù)當前的位置坐標來判斷下一步要探索的方向求出下一步要走的位置坐標。(2)探索迷宮的四個方向的坐標表示:RIGHT(x,y+1), DOWN(x+1,y, LEFT(x,y-1, UP(x-1,y。(3)對每個方向探索時,用0表示可通過,用1表示不能通過是障礙,對探索過的位置加以標記。把每一個可以通過的位置坐標放入棧中,最后打印輸出路徑。(4)根據(jù)二維字符數(shù)組和加標記的位置坐標,輸出迷宮的圖形。
15、電梯模擬運行 問題描述:
模擬我校九層教學(xué)樓的電梯系統(tǒng)。該樓有一個自動電梯,能在每層停留。九個樓層由下至上依次稱為第一層、第二層、......第九層,其中第一層是大樓的進出層,即是電梯的“本壘層”,電梯“ 空閑”時,將來到該層候命。
乘客可隨時地進出于任何層。對于每個人來說,他有一個能容忍的最長等待時間,一旦等候電梯時間過長,他將放棄。
模擬時鐘從0開始,時間單位為0.1秒。人和電梯的各種動作均要消耗一定的時間單位(簡記為t),比如:有人進出時,電梯每隔40t檢測一次,若無人進出,則關(guān)門;關(guān)門和開門各需要20t;每個人進出電梯均需要25t;如果電梯在某層精致時間超過300t,則駛回1層候命?;疽螅?/p>
按時序顯示系統(tǒng)狀態(tài)的變化過程,即發(fā)生的全部人和電梯的動作序列。
(1)用系統(tǒng)計時,每當有新的動作要輸入時要暫停計時,等輸入完成后即可繼續(xù)計時。
(2)輸入各個動作,最后,輸入完畢后,可以保存所有動作序列,并有序輸出。
四、上交作業(yè)及成績評定
1、上交要求
上交設(shè)計報告和相關(guān)光盤。其中設(shè)計報告要以打印文稿的形式上交。光盤內(nèi)容包括程序源碼設(shè)計報告的電子文檔。整個班級的設(shè)計均刻在一張光盤上。(上交時每人交一份,文件夾的取名規(guī)則為:“學(xué)號 姓名”,如“200711111 王文”。該文件夾下至少包括:“源代碼”、“課程設(shè)計報告”、“可執(zhí)行文件”。由學(xué)習(xí)委員收集刻盤按規(guī)定時間統(tǒng)一上交)。
2、評分標準
根據(jù)完成任務(wù)的情況(必須進行系統(tǒng)演示、課程設(shè)計報告書的質(zhì)量和課程設(shè)計過程中的工作態(tài)度等按照30%、50%、20%加權(quán)綜合打分。成績評定實行優(yōu)秀、良好、中等、及格和不及格五個等級。上機程序檢查未通過者、無設(shè)計報告者以及嚴重抄襲他人設(shè)計者,成績?yōu)椴患案?。?shù)據(jù)結(jié)構(gòu)課程設(shè)計任務(wù)書----計2007-1 1 /7 愚昧從來沒有給人帶來幸福;幸福的根源在于知識?!罄?/p>
第三篇:(任務(wù)書)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計任務(wù)書
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計任務(wù)書
《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計教學(xué)任務(wù)書
一、課程設(shè)計的目的
數(shù)據(jù)結(jié)構(gòu)課程主要是研究非數(shù)值計算的程序設(shè)計問題中所出現(xiàn)的計算機操作對象以及它們之間的關(guān)系和操作的學(xué)科。數(shù)據(jù)結(jié)構(gòu)是介于數(shù)學(xué)、計算機軟件和計算機硬件之間的一門計算機專業(yè)的核心課程,它是計算機程序設(shè)計、數(shù)據(jù)庫、操作系統(tǒng)、編譯原理及人工智能等的重要基礎(chǔ),廣泛的應(yīng)用于信息學(xué)、系統(tǒng)工程等各種領(lǐng)域。
學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)是為了將實際問題中所涉及的對象在計算機中表示出來并對它們進行處理。通過課程設(shè)計可以提高學(xué)生的思維能力,促進學(xué)生的綜合應(yīng)用能力和專業(yè)素質(zhì)的提高。通過此次課程設(shè)計主要達到以下目的:
? 了解并掌握數(shù)據(jù)結(jié)構(gòu)與算法的設(shè)計方法,具備初步的獨立分析和設(shè)計能力; ? 初步掌握軟件開發(fā)過程的問題分析、系統(tǒng)設(shè)計、程序編碼、測試等基本方法和技能; ? 提高綜合運用所學(xué)的理論知識和方法獨立分析和解決問題的能力;
? 訓(xùn)練用系統(tǒng)的觀點和軟件開發(fā)一般規(guī)范進行軟件開發(fā),培養(yǎng)軟件工作者所應(yīng)具備的科學(xué)的工作方法和作風。
二、課程設(shè)計的基本要求
1、獨立思考,獨立完成:每人任選一題,在課程設(shè)計中各任務(wù)要求獨立完成,遇到問題大家可以相互討論,互相調(diào)試檢查,但不可以拷貝。
2、按照課程設(shè)計的具體要求建立的功能模塊,每個模塊要求按照如下幾個內(nèi)容認真完成;
其中包括:
a)需求分析:
在該部分中敘述,每個模塊的功能要求
b)概要設(shè)計
在此說明每個部分的算法設(shè)計說明(可以是描述算法的流程圖),每個程序中使用的存儲結(jié)構(gòu)設(shè)計說明(如果指定存儲結(jié)構(gòu)請寫出該存儲結(jié)構(gòu)的定義。
c)詳細設(shè)計
各個算法實現(xiàn)的源程序(可放在附錄中),對每個題目要有相應(yīng)的源程序(可以是一組源程序,每個功能模塊采用不同的函數(shù)實現(xiàn))
源程序要按照寫程序的規(guī)則來編寫。要結(jié)構(gòu)清晰,重點函數(shù)的重點變量,重點功能部分要加上清晰的程序注釋。
d)調(diào)試分析
測試數(shù)據(jù),測試輸出的結(jié)果,時間復(fù)雜度分析,和每個模塊設(shè)計和調(diào)試時存在問題的思考(問題是哪些?問題如何解決?),算法的改進設(shè)想等。
4、每人實現(xiàn)的結(jié)果必須進行檢查和演示;程序源代碼和程序的說明文件必須上交,作為考核內(nèi)容的一部分;(上交時每人交一份,文件夾的取名規(guī)則為:“學(xué)號 姓名”,如“11207210188 張麗”。該文件夾下至少包括:“源代碼”和“課程設(shè)計報告”,統(tǒng)一放在服務(wù)器的文件夾“D: / 3
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計任務(wù)書
/11級專升本數(shù)據(jù)結(jié)構(gòu)課程設(shè)計”中)。
5、課程設(shè)計報告要對重點函數(shù)及結(jié)構(gòu)進行說明。報告格式參照(報告示例)。
6、報告提交
時間:第16周星期五之前,遲交無成績。
形式:課程設(shè)計報告(要求書寫課程設(shè)計報告)和電子文檔。
三、課程設(shè)計內(nèi)容:
1.大數(shù)相乘問題
例如:輸入第一個數(shù)為:***172586,輸入第二個數(shù)為:***7則程序運行后輸出***172586****7=正確答案。2.矩陣的運算
采用十字鏈表表示稀疏矩陣,并實現(xiàn)矩陣的加減法和乘法運算, 要求:要檢查有關(guān)運算的條件,并對錯誤的條件產(chǎn)生報警。3. 訂票系統(tǒng)
設(shè)計航班信息,訂票信息的存儲結(jié)構(gòu),設(shè)計程序完成如下功能:
錄入:可以錄入航班情況(數(shù)據(jù)可以存儲在一個數(shù)據(jù)文件中,數(shù)據(jù)結(jié)構(gòu)、具體數(shù)據(jù)自定)查詢:可以查詢某個航線的情況(如,輸入航班號,查詢起降時間,起飛抵達城市,航班票價,票價折扣,確定航班是否滿倉);可以輸入起飛抵達城市,查詢飛機航班情況;
訂票:(訂票情況可以存在一個數(shù)據(jù)文件中,結(jié)構(gòu)自己設(shè)定)可以訂票,如果該航班已經(jīng)無票,可以提供相關(guān)可選擇航班;
退票: 可退票,退票后修改相關(guān)數(shù)據(jù)文件;
客戶資料有姓名,證件號,訂票數(shù)量及航班情況,訂單要有編號。修改航班信息:當航班信息改變可以修改航班數(shù)據(jù)文件 6. 賓館訂房和退房系統(tǒng)
假設(shè)一個賓館有n個標準的客房,每個標準客房有m個標準間,利用鏈表、?;蛘哧犃械葦?shù)據(jù)結(jié)構(gòu)設(shè)計出具有訂房和退房等功能的管理系統(tǒng)。7. 建立二叉樹和線索二叉樹
分別用以下方法建立二叉樹: 1)用先序遍歷的輸入序列 2)用層次遍歷的輸入序列 3)用先序和中序遍歷的結(jié)果
最后對所建立的二叉樹進行中序線索化,并對此線索樹進行中序遍歷(不使用棧)。8.校園導(dǎo)航問題
設(shè)計要求:設(shè)計你的學(xué)校的平面圖,至少包括10個以上的場所,每兩個場所間可以有不同的路,且路長也可能不同,找出從任意場所到達另一場所的最佳路徑(最短路徑)。9.馬的遍歷問題
設(shè)計程序完成如下要求:在中國象棋棋盤上,對任一位置上放置的一個馬,均能選擇一個合適的路線,使得該棋子能按象棋的規(guī)則不重復(fù)地走過棋盤上的每一位置。
要求:依次輸出所走過的各位置的坐標。/ 3
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計任務(wù)書
11.設(shè)計一個模擬計算器來完成表達式的計算
要求對包含加、減、乘、除、括號運算符的任意整型表達式進行求解,操作數(shù)可以是多位數(shù)。12.八皇后問題
設(shè)計程序完成如下要求:在8×8的國際象樣棋盤上,放置8個皇后,使得這8個棋子不能互相被對方吃掉。
要求:依次輸出各種成功的放置方法。13.圖的遍歷過程演示
設(shè)計程序完成如下功能:對給定的圖結(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)定義采用課本中給出的定義,若兩個城市之間不存在道路,則將相應(yīng)邊的權(quán)值設(shè)為自己定義的無窮大值。要求在屏幕上顯示得到的最小生成樹中包括了哪些城市間的道路,并顯示得到的最小生成樹的代價。
2)表示城市間距離網(wǎng)的鄰接矩陣(要求至少6個城市,10條邊)15. 藥店的藥品銷售統(tǒng)計系統(tǒng)
設(shè)計一系統(tǒng),實現(xiàn)醫(yī)藥公司定期對銷售各藥品的記錄進行統(tǒng)計,可按藥品的編號、單價、銷售量或銷售額做出排名。
基本要求:在本設(shè)計中,首先從數(shù)據(jù)文件中讀出各藥品的信息記錄,存儲在順序表中。各藥品的信息包括:藥品編號、藥名、藥品單價、銷出數(shù)量、銷售額。對各藥品的藥名、單價、銷售量或銷售額進行排序時,可采用多種排序方法,如直接插入排序、冒泡排序、快速排序,直接選擇排序、堆排等方法。
四、上交作業(yè)及成績評定
1、上交要求
上交設(shè)計報告和源程序。其中設(shè)計報告要以手寫報告的形式上交;電子版內(nèi)容包括程序源碼和設(shè)計報告的電子文檔。整個班級的設(shè)計均放在一個文件夾中。
2、課程設(shè)計報告注意事項:
1)運行結(jié)果請截圖(Alt + PrtSc);
2)系統(tǒng)功能模塊介紹請請采用流程圖形式; 3)課程設(shè)計總結(jié)可以從以下幾個方面書寫 : 課程設(shè)計的收獲、遇到問題及其解決過程、程序調(diào)試技巧、在課程設(shè)計過程中對《數(shù)據(jù)結(jié)構(gòu)》課程的認識等內(nèi)容。
3、評分標準
根據(jù)完成任務(wù)的情況、課程設(shè)計報告書的質(zhì)量和課程設(shè)計過程中的工作態(tài)度等按照30%、50%、20%加權(quán)綜合打分。成績評定實行百分制。上機程序檢查未通過者、無設(shè)計報告者以及嚴重抄襲他人設(shè)計者,成績?yōu)椴患案瘛?/p>
/ 3
第四篇:數(shù)據(jù)結(jié)構(gòu)課程設(shè)計任務(wù)書
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計任務(wù)書
一、《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計》的目標
課程設(shè)計是《數(shù)據(jù)結(jié)構(gòu)》課程的一個重要的實踐環(huán)節(jié),它可加深學(xué)生對該課程所學(xué)內(nèi)容的進一步的理解與鞏固,達到理論與實際應(yīng)用相結(jié)合,提高學(xué)生組織數(shù)據(jù)及編寫大型程序的能力,培養(yǎng)基本的對基本數(shù)據(jù)結(jié)構(gòu)的理解和運用,良好的程序設(shè)計方法、提高編碼及調(diào)試程序技能的能力,為整個專業(yè)的學(xué)習(xí)以及軟件設(shè)計水平的提高打下良好的基礎(chǔ)。
二、設(shè)計內(nèi)容
每位學(xué)生可以從《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計備選題目》中選擇一個題目自行完成。要求每班中題目不能重復(fù)。
三、設(shè)計要求
1.學(xué)生必須仔細閱讀《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計任務(wù)書》,認真主動完成課設(shè)的要求。有問題及時主動通過各種方式與指導(dǎo)教師聯(lián)系溝通。
2.學(xué)生要發(fā)揮自主學(xué)習(xí)的能力,充分利用時間,安排好課設(shè)的時間計劃,并在課設(shè)過程中不斷檢測自己的計劃完成情況,及時向教師匯報。
3.課程設(shè)計按照教學(xué)要求需要兩周時間完成,學(xué)院安排設(shè)計時
間學(xué)生不得缺席。
4、每位學(xué)生必須認真、獨立完成設(shè)計任務(wù),發(fā)現(xiàn)抄襲者或雷同者,一律按零分處理。
5、程序設(shè)計語言可選擇C或C++。
6、程序要正確且具有一定的健壯性,不會因為用戶的輸入錯誤引起程序運行錯誤而中斷執(zhí)行,對輸入值的類型、大小范圍、字符串的長度等,進行正確性檢查,對不合法的輸入值給出出錯信息,指出錯誤類型,等待重新輸入。
四、上交相關(guān)內(nèi)容要求
上交的成果的內(nèi)容必須由以下三個部分組成,缺一不可。
1. 上交源程序:學(xué)生按照課程設(shè)計的具體要求所開發(fā)的所有源程序(應(yīng)該放到一個文件夾中);
2. 上交程序的說明文件:(保存在.txt中)在說明文檔中應(yīng)該寫明上交程序所在的目錄,上交程序的主程序文件名,如果需要安裝,要有程序的安裝使用說明;
3. 課程設(shè)計報告:(保存在word 文檔中,文件名要求按照“學(xué)號_姓名_課程設(shè)計報告題目”起名,如文件名為“001_張三_二叉樹動態(tài)演示”.doc)。報告要求文字工整通順、圖表規(guī)范、思路清楚、內(nèi)容正確。設(shè)計報告必須按照規(guī)定格式規(guī)范,A4紙雙面打印、裝訂。
將以上三個部分放在一個文件夾里,文件夾名要求按照"學(xué)號_姓名_課程設(shè)計報告題目”.zip命名。每個班將所有學(xué)生的文件夾收集起來刻成光盤上交。
五、時間安排
設(shè)計時間為兩周(7.07—7.18),7月16日—7月18日答辯??己朔绞?/p>
成績按五分制,包括課程設(shè)計過程、課程設(shè)計結(jié)果、課程設(shè)計報告三部分。其中:
課程設(shè)計過程:20%
包括設(shè)計態(tài)度(10分)、出勤(10分)
課程設(shè)計結(jié)果:40%
其中:程序正確性:30分,運行效果:10分,答辯:10分。課程設(shè)計報告:40%
其中:正確性:20分,完整性:10分,規(guī)范性:10分。
六、設(shè)計報告格式
見《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告模板》。
第五篇:1206401數(shù)據(jù)結(jié)構(gòu)課程設(shè)計任務(wù)書
1206402數(shù)據(jù)結(jié)構(gòu)課程設(shè)計任務(wù)書
一、課程設(shè)計的目的
1.鞏固和加深對數(shù)據(jù)結(jié)構(gòu)課程所學(xué)知識的理解,了解并掌握數(shù)據(jù)結(jié)構(gòu)與算法的設(shè)計方法;
2.初步掌握軟件開發(fā)過程的問題分析、系統(tǒng)設(shè)計、程序編碼、測試等基本方法和技能;
3.提高綜合運用所學(xué)的理論知識和方法,獨立分析和解決問題的能力; 4.訓(xùn)練用系統(tǒng)的觀點和軟件開發(fā)一般規(guī)范進行軟件開發(fā),培養(yǎng)軟件工作者所應(yīng)具備的科學(xué)的工作方法和作風;
二、課程設(shè)計的要求(應(yīng)完成的工作)
完成并上交的成果的內(nèi)容必須由以下兩個部分組成,缺一不可(該部分以電子文件形式上交):
1.上交源程序:學(xué)生按照課程設(shè)計的具體要求所開發(fā)的所有源程序(以“學(xué)號姓名.cpp”來命名);
2.課程設(shè)計報告:(保存為word2003文檔中,文件名要求按照“學(xué)號姓名.doc”命名,即文件名為“1206402**張三”.doc)按照課程設(shè)計的具體要求建立的功能模塊,每個模塊要求按照如下幾個內(nèi)容認真完成:
需求分析:在該部分中敘述模塊的劃分和各個模塊的功能要求;
概要設(shè)計:在此說明每個部分的算法設(shè)計說明(使用專業(yè)流程圖描述算法),每個程序中使用的存儲結(jié)構(gòu)設(shè)計說明(如果指定存儲結(jié)構(gòu)請寫出該存儲結(jié)構(gòu)的定義)。
詳細設(shè)計及代碼實現(xiàn):各個模塊實現(xiàn)的源程序,對每個題目要有相應(yīng)的源程序(可以是一組源程序,每個功能模塊采用不同的函數(shù)實現(xiàn)),源程序要按照寫程序的規(guī)則來編寫。要結(jié)構(gòu)清晰,重點函數(shù)的重點變量,重點功能部分要加上清晰的程序注釋。
調(diào)試分析:測試數(shù)據(jù),測試輸出的結(jié)果(截圖說明),時間復(fù)雜度分析,和每個模塊設(shè)計和調(diào)試時存在問題的思考(問題是哪些?問題如何解決?),算法的改進設(shè)想。
課程總結(jié):總結(jié)可以包括:課程設(shè)計過程的收獲、遇到問題、遇到問題解決問題過程的思考、程序調(diào)試的思考、對數(shù)據(jù)結(jié)構(gòu)這門課程的思考、在課程設(shè)計過程中對《數(shù)據(jù)結(jié)構(gòu)》課程的認識等內(nèi)容。
另外,報告還必須打印成紙質(zhì)文檔,字體小四,行距1.25倍。注意:去掉不該保留的內(nèi)容,如提示、說明等。
三、題目參考、見另文件。
四、時間安排、17周,每天半天的時間必須到機房完成設(shè)計。
五、設(shè)計地點、實驗樓407
六、組織管理、機房內(nèi)按學(xué)號順序坐位,錯位的后果自負。要求到機房的時間內(nèi)不定時抽查出勤狀況,缺勤者按一定比例扣減最后得分。
七、考核評分。
根據(jù)提交的設(shè)計文檔(包括程序主要完成的功能、數(shù)據(jù)結(jié)構(gòu)設(shè)計、算法設(shè)計及專業(yè)流程圖、主要代碼、程序中有何創(chuàng)新、有何收獲和所存在的不足以及需要改進的地方)和代碼(程序的功能實現(xiàn))進行考核。要求:
1.設(shè)計:思路清晰,設(shè)計可行。
2.文檔:文檔排版正確,思路清晰流暢,流程圖符合規(guī)范并構(gòu)圖效果好。3.代碼:結(jié)構(gòu)清晰,注釋得當,運行成功。
4.界面要求:每個功能應(yīng)該設(shè)立菜單,有合理的提示,根據(jù)提示,可以完成相關(guān)的功能要求。
5.封面使用統(tǒng)一格式,要求封面布局合理美觀。
6.A類選題最高分值可以到A,B類選題最高分值只能到B。根據(jù)各項情況,酌情加減分。
參考文獻
[1]嚴蔚敏、吳偉民主編《數(shù)據(jù)結(jié)構(gòu)》(C語言版)清華大學(xué)出版社 2002 [2]嚴蔚敏、吳偉民《數(shù)據(jù)結(jié)構(gòu)習(xí)題集》(C語言版)清華大學(xué)出版社 [3]譚浩強編著 《面向?qū)ο蟪绦蛟O(shè)計》(C++)清華大學(xué)出版社
附:課程設(shè)計報告內(nèi)容要求(示例)附:課程設(shè)計報告內(nèi)容要求(示例)
《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計報告
1206402 22 林曉蘇
一、設(shè)計時間
2014年6月9日-----2014年6月13日
二、設(shè)計地點
湖南城市學(xué)院實驗樓計算機407機房
三、設(shè)計目的
1.鞏固和加深對數(shù)據(jù)結(jié)構(gòu)課程所學(xué)知識的理解,了解并掌握數(shù)據(jù)結(jié)構(gòu)與算法的設(shè)計方法;
2.初步掌握軟件開發(fā)過程的問題分析、系統(tǒng)設(shè)計、程序編碼、測試等基本方法和技能;
3.提高綜合運用所學(xué)的理論知識和方法,獨立分析和解決問題的能力; 4.訓(xùn)練用系統(tǒng)的觀點和軟件開發(fā)一般規(guī)范進行軟件開發(fā),培養(yǎng)軟件工作者所應(yīng)具備的科學(xué)的工作方法和作風;
5.培養(yǎng)查閱資料,獨立思考問題的能力。四.設(shè)計小組成員 120640222林曉蘇 五.指導(dǎo)老師
陳強、黃靜 六.設(shè)計課題
編制一個課程管理系統(tǒng)
七.基本思路及關(guān)鍵問題的解決方法(需求分析和概要設(shè)計)需要建立相應(yīng)的存儲結(jié)構(gòu),要用到拓撲排序在大學(xué)的某個專業(yè)中選取幾個課程作為頂點,通過各門課的先修關(guān)系來構(gòu)建個圖, 該圖用鄰接表來存儲,鄰接表的頭結(jié)點存儲每門課的信息.本程序的目的是為用戶編排課程,根據(jù)用戶輸入的信息來編排出每學(xué)期要學(xué)的課 程.針對計算機系本科課程結(jié)構(gòu)之前開設(shè)。
八.算法及流程圖(詳細設(shè)計)
九.調(diào)試過程中出現(xiàn)的問題及相應(yīng)解決辦法(調(diào)試分析)試調(diào)過程中曾經(jīng)出現(xiàn)過相應(yīng)的代碼無法被識別的問題。解決方法:經(jīng)過排查之后發(fā)現(xiàn)時因為在不該回車的地方回車,使得一個可以被識別的詞變成兩端無法被識別的詞。
十.課程設(shè)計心得體會(課程總結(jié))本次實驗中出現(xiàn)的問題很多,但是基本上的可以避免的。同時我也深深地領(lǐng)會到實踐的重要性。課程雖然是枯燥的,但是應(yīng)用到實踐中確實靈活的。
十一.源程序(核心代碼部分加上清晰的程序注釋);
ADT Graph{ 數(shù)據(jù)對象V:V是具有相同特性的數(shù)據(jù)元素的集合,稱為頂點集.數(shù)據(jù)關(guān)系R: R={VR} VR={(v,w)|v,w∈V,(v,w)表示v和w之間存在直接先修關(guān)系} 基本操作
P: void CreatGraph(ALGraph *);void FindInDegree(ALGraph , int *);void TopologicalSort_1(ALGraph G,int numterm,int maxcredit);void TopologicalSort_2(ALGraph G,int numterm,int maxcredit);}ADT Graph 棧的定義: ADT Stack{ 數(shù)據(jù)對象:D={ai|ai∈ElemSet,i=1,2,…n,n>=0} 數(shù)據(jù)關(guān)系:R1={基本操作: void InitStack(SqStack *S);int StackEmpty(SqStack S);void Push(SqStack *S, int);int Pop(SqStack *S, int *e);}ADT Stack 3.2模塊劃分 4.1數(shù)據(jù)類型的定義 1typedef struct ArcNode{ int adjvex;struct ArcNode *nextarc;}ArcNode;typedef struct VNode{ char name[24];//課程名 int classid;//課程號
#define MAX_VERTEX_NUM 100 //最大課程總數(shù) ai-1 ai
|ai-1,ai∈D,i=2,…,n} int credit;//課程的學(xué)分 int indegree;//該結(jié)點的入度 int state;//該節(jié)點的狀態(tài)
ArcNode *firstarc;//指向第一條依附該頂點的弧針 }VNode,AdjList[MAX_VEXTEX_NUM];4 typedef struct{ AdjList vertices;int vexnum, arcnum;}ALGraph;鄰接表的基本操作
void CreatGraph(ALGraph *);創(chuàng)建鄰接表 void FindInDegree(ALGraph , int *);求一個結(jié)點的入度 void TopologicalSort_1(ALGraph G,int numterm,int maxcredit);拓撲排序來編排課程 void TopologicalSort_2(ALGraph G,int numterm,int maxcredit);2.
#define STACk_INIT_SIZE 100 //存儲空間的初時分配量 #define STACKINCREMENT 10 //存儲空間的分配增量 typedef int ElemType;typedef struct{ AdjList vertices;int vexnum, arcnum;}ALGraph;基本操作
void InitStack(SqStack *S);棧的初始化
int StackEmpty(SqStack S);判斷棧是否為空
void Push(SqStack *S, int);入棧操作
int Pop(SqStack *S, int *e);出棧操作
int Sort(SqStack *S,int *t);參考文獻 [1]嚴蔚敏、吳偉民主編《數(shù)據(jù)結(jié)構(gòu)》(C語言版)清華大學(xué)出版社 2002 [2]嚴蔚敏、吳偉民《數(shù)據(jù)結(jié)構(gòu)習(xí)題集》(C語言版)清華大學(xué)出版社 [3]譚浩強編著 《面向?qū)ο蟪绦蛟O(shè)計》(C++)清華大學(xué)出版社