大二第一学期期末课程设计 2015.12.28
《數據結構與算法》課程設計教學任務書
--2015-2016(一)
?
課程設計周數:2周?????????????????????????????????????????????????????????????
?
一、課程設計的目的
數據結構課程主要是研究非數值計算的程序設計問題中所出現的計算機操作對象以及它們之間的關系和操作的學科。數據結構是介于數學、計算機軟件和計算機硬件之間的一門計算機專業的核心課程,它是計算機程序設計、數據庫、操作系統、編譯原理及人工智能等的重要基礎,廣泛的應用于信息學、系統工程等各種領域。
學習數據結構是為了將實際問題中所涉及的對象在計算機中表示出來并對它們進行處理。通過課程設計可以提高學生的思維能力,促進學生的綜合應用能力和專業素質的提高。通過此次課程設計主要達到以下目的:
n? 了解并掌握數據結構與算法的設計方法,具備初步的獨立分析和設計能力;
n? 初步掌握軟件開發過程的問題分析、系統設計、程序編碼、測試等基本方法和技能;
n? 提高綜合運用所學的理論知識和方法獨立分析和解決問題的能力;
n? 訓練用系統的觀點和軟件開發一般規范進行軟件開發,培養軟件工作者所應具備的科學的工作方法和作風。
二、課程設計的基本要求
1、獨立思考,獨立完成:課程設計中各任務的設計和調試要求獨立完成,遇到問題可以討論,但不可以拷貝。
2、做好上機準備:每次上機前,要事先編制好準備調試的程序,認真想好調試步驟和有關環境的設置方法,準備好有關的文件。
3、按照課程設計的具體要求建立的功能模塊,每個模塊要求按照如下幾個內容認真完成;
其中包括:
a)需求分析:
在該部分中敘述,每個模塊的功能要求
b)概要設計
在此說明每個部分的算法設計說明(可以是描述算法的流程圖),每個程序中使用的存儲結構設計說明(如果指定存儲結構請寫出該存儲結構的定義。
c)詳細設計
各個算法實現的源程序,對每個題目要有相應的源程序(可以是一組源程序,每個功能模塊采用不同的函數實現)
源程序要按照寫程序的規則來編寫。要結構清晰,重點函數的重點變量,重點功能部分要加上清晰的程序注釋。
d)調試分析
測試數據,測試輸出的結果,時間復雜度分析,和每個模塊設計和調試時存在問題的思考(問題是哪些?問題如何解決?),算法的改進設想。
課程設計總結:(保存在word文檔中)總結可以包括:課程設計過程的收獲、遇到問題、遇到問題解決問題過程的思考、程序調試能力的思考、對數據結構這門課程的思考、在課程設計過程中對《數據結構》課程的認識等內容;
4、每組實現的結果必須進行檢查和演示;程序源代碼和程序的說明文件必須上交,作為考核內容的一部分;(上交時每人交一份,文件夾的取名規則為:“學號 姓名”,如“200413498? 高魁”。該文件夾下至少包括:“源代碼”、“課程設計報告”、“可執行文件”。由學習委員收集刻盤按規定時間統一上交)。
5、課程設計報告不要附原代碼,可以對重點函數及結構進行說明。報告格式見要求。
6、報告提交
時間:第18周最后一次課檢查,第19周星期一上午11:30之前由學習委員收集上交,遲交無成績。
形式:課程設計報告紙質和電子文檔(按班級統一刻盤)。
三、課程設計內容:
1、內部排序演示
【問題描述】
設計一個測試程序比較幾種內部排序算法的關鍵字比較次數和移動次數以取得直觀感受。
【基本要求】
(1) 對起泡排序、直接排序、簡單選擇排序、快速排序、希爾排序、堆排序算法進行比較;
(2) 待排序的元素的關鍵字為整數。其中的數據要用偽隨機產生程序產生(如10000個),至少用5組不同的輸入數據做比較,再使用各種算法對其進行排序,記錄其排序時間,再匯總比較。
(3) 演示程序以人機對話的形式進行。每次測試完畢顯示各種比較指標值的列表,用餅圖或條形圖進行表示,以便比較各種排序的優劣。
(4) 界面友好,易與操作。采用菜單方式進行選擇。
【選做內容】
(1) 對不同表長進行比較;
(2) 驗證各算法的穩定性;
(3) 輸出界面的優化。
(4) 使用漢字顯示。
?
2、校園導游咨詢
【問題描述】
設計一個校園導游程序,為來訪的客人提供各種信息查詢服務。
【基本要求】
(1) 設計長春理工大學的校園平面圖,所含景點不少于10個。以圖中頂點表示校內各景點,存放景點名稱、代號、簡介等信息;以邊表示路徑,存放路徑長度等相關信息。
(2) 為來訪客人提供圖中任意景點相關信息的查詢。
(3) 為來訪客人提供圖中任意景點的問路查詢,即查詢任意兩個景點之間的一條最短的簡單路徑。
【選做內容】
(1) 系統功能的完善;
(2) 提供求任意兩個景點之間的所有路徑的功能;
(3) 提供校園圖中多個景點的最佳訪問路線查詢,即求途經這多個景點的最佳(短)路徑。
(4) 使用漢字顯示。
?
3、建通訊錄
【問題描述】
設計散列表實現通訊錄查找系統。
【基本要求】
(1) 設每個記錄有下列數據項:電話號碼、用戶名、地址;
(2) 從鍵盤輸入各記錄,分別以電話號碼為關鍵字建立散列表;
(3) 采用二次探測再散列法解決沖突;
(4) 查找并顯示給定電話號碼的記錄;
(5) 通訊錄信息文件保存;
(6) 要求人機界面友好,使用圖形化界面;
【選做內容】
(1) 系統功能的完善;
(2) 設計不同的散列函數,比較沖突率;
(3) 在散列函數確定的前提下,嘗試各種不同類型處理沖突的方法,考察平均查找長度的變化。
(4) 使用漢字顯示。
【實現提示】
主函數:根據選單的選項調用各函數,并完成相應的功能。
Menu()的功能:顯示英文提示選單。
Quit()的功能:退出選單。
Create()的功能:創建新的通訊錄。
Append()的功能:在通訊錄的末尾寫入新的信息,并返回選單。
Find():查詢某人的信息,如果找到了,則顯示該人的信息,如果沒有則提示通訊錄中沒有此人的信息,并返回選單。
Alter()的功能:修改某人的信息,如果未找到要修改的人,則提示通訊錄中沒有此人的信息,并返回選單。
Delete()的功能:刪除某人的信息,如果未找到要刪除的人,則提示通訊錄中沒有此人的信息,并返回選單。
List()的功能:顯示通訊錄中的所有記錄。
Save()的功能:保存通訊錄中的所有記錄到指定文件中。
Load()的功能:從指定文件中讀取通訊錄中的記錄。
?
4、哈夫曼編碼/譯碼器
【問題描述】
設計一個哈夫曼編碼/譯碼系統,對一個文本文件中的字符進行哈夫曼編碼,生成編碼文件(壓縮文件,后綴名.cod);反過來,可將一個壓縮文件譯碼還原為一個文本文件(.txt)。
【基本要求】
(1) 輸入一個待壓縮的文本文件名, 統計文本文件中各字符的個數作為權值,生成哈夫曼樹;
(2) 將文本文件利用哈夫曼樹進行編碼,生成壓縮文件(后綴名cod),
(3) 輸入一個待解壓的壓縮文件名稱,并利用相應的哈夫曼樹將編碼序列譯碼;
(4) 顯示指定的壓縮文件和文本文件;
(5) 界面友好,易與操作。采用菜單方式進行選擇。
【選做內容】
(1) 把哈夫曼編碼用二進制位緊縮到一個變量中,利用位運算進行真正的數據壓縮,并求壓縮比。
(2) 顯示哈夫曼樹;
(3) 使用漢字顯示。
?
5、運動會分數統計
【問題描述】
參加運動會有n個學校,學校編號為1……n.比賽分成m個男子項目,和w個女子項目.項目編號為男子1......m,女子m+1......m+w.不同的項目取前五名或前三名積分;取前五名的積分分別為:7、5、3、2、1,前三名的積分分別為:5、3、2;哪些取前五名或前三名由學生自己設定。(m<=20,n<=20)
【功能要求】:
1)??????? 可以輸入各個項目的前三名或前五名的成績;
2)??????? 能統計各學校總分;
3)??????? 可以按學校編號、學校總分、男女團體總分排序輸出;
4)??????? 可以按學校編號查詢學校某個項目的情況;可以按項目編號查詢取得前三或前五名的學校。
【基本要求】
1)??????? 輸入數據形式和范圍:20以內的整數(如果做得更好可以輸入學校的名稱,運動項目的名稱)
2)??????? 輸出形式:有中文提示,各學校分數為整形
3)??????? 界面要求:有合理的提示,每個功能可以設立菜單,根據提示,可以完成相關的功能要求。
4)??????? 存儲結構:學生自己根據系統功能要求自己設計,但是要求運動會的相關數據要存儲在數據文件中。
6、文章編輯
【問題描述】
輸入一頁文字,程序可以統計出文字、數字、空格的個數。
【基本要求】
靜態存儲一頁文章,每行最多不超過80個字符,共N行;要求
(1)分別統計出其中英文字母數和空格數及整篇文章總字數;
(2)統計某一字符串在文章中出現的次數,并輸出該次數;
(3)刪除某一子串,并將后面的字符前移。
存儲結構使用線性表,分別用幾個子函數實現相應的功能;
輸入數據的形式和范圍:可以輸入大寫、小寫的英文字母、任何數字及標點符號。
輸出形式:
(1)分行輸出用戶輸入的各行字符;
(2)分4行輸出"全部字母數"、"數字個數"、"空格個數"、"文章總字數"
【選做內容】
(1)?????? 輸出刪除某一字符串后的文章;
7、學生成績管理系統
【問題描述】
用c語言編寫一個簡單的學生信息管理程序,能實現對學生信息的簡單管理。
【具體要求】
建立一個4個學生的信息登記表,每個學生的信息包括:學號,姓名,和3門課程的成績(FOX,C,ENGLISH)。
?程序運行時顯示一個簡單的菜單,例如:
?? (1):信息輸入(INPUT)
?? (2):總分統計(COUNT)
?? (3):總分排序(SORT)
?? (4):查詢(QUERY)
???? 其中:
???? (1):對4個學生的信息進行輸入;
???? (2):對每個學生的3門課程統計總分;
????? (3):對4個學生的總分按降序排序并顯示出來;
????? (4):查詢輸入一個學號后,顯示出該學生的有關信息;
8、自選題
?? 允許有能力的同學自選題目,但題目必須按上面的格式寫出“問題描述”和“具體要求”,且題目的工作量要達到或超過已給題目,并經指導教師審核同意才可以進行自選題目的課程設計。
四、上交作業及成績評定
1、上交要求
上交設計報告和相關光盤。其中設計報告要以打印稿的形式上交。光盤內容包括程序源碼設計報告的電子文檔。整個班級的設計均刻在一張光盤上,可按姓名或分組建立相關文件夾進行存儲。
2、評分標準
根據完成任務的情況(必須進行系統演示)、課程設計報告書的質量和課程設計過程中的工作態度等按照30%、50%、20%加權綜合打分。成績評定實行優秀、良好、中等、及格和不及格五個等級。上機程序檢查未通過者、無設計報告者以及嚴重抄襲他人設計者,成績為不及格。
| 缺席次數 | 最終成績 |
| 1次 | 中及以下 |
| 2次及以上 | 不及格 |
?
?
?
?
注:
每班分為7-8個小組,每組4-5人。????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????????????????????
設計題目:(選題:學號%7,余數為1、2、3、4、5、6、0分別做第1、2、3、4、5、6、7、題)
每小組各同學之間設計內容和報告文檔不得雷同,否則成績不及格。
轉載于:https://www.cnblogs.com/helloaworld/p/5081616.html
總結
以上是生活随笔為你收集整理的大二第一学期期末课程设计 2015.12.28的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode:Unique Bina
- 下一篇: OpenGL超级宝典笔记——遮挡查询 [