《VC 物件導向程式設計》課程設計任務書

2022-10-04 07:15:03 字數 4913 閱讀 8045

一、課程設計目的

《vc++物件導向程式設計》是計算機相關專業的一門重要專業基礎課。其實踐性、應用性很強。實踐教學環節是必不可少的乙個重要環節。

vc++程式設計的設計目的是加深對理論教學內容的理解和掌握,使學生較系統地掌握程式設計及廣泛應用,基本方法及技巧,為學生綜合運用所學知識,利用軟體工程為基礎進行軟體開發、並在實踐應用方面打下一定基礎。通過課程設計,可以使學生更進一步地理解和熟練掌握所學內容,並能夠用其分析、設計和解答類似問題,從而達到鍛鍊學生理論與實踐相結合的能力。

本課程設計以設計綜合性實驗為主,培養學生靈活利用所學綜合知識,提高程式設計的能力;同時,也培養學生利用c++語言進行程式設計和除錯程式的能力,使學生能夠具有編寫較複雜程式的能力。通過此次課程設計,主要達到以下目的:

(1)鞏固和加深對vc++物件導向程式設計基本知識的理解,提高綜合運用vc++理論的能力。

(2)使學生掌握軟體設計的基本內容和設計方法,並培養學生進行規範化軟體設計的能力。

(3)使學生掌握使用各種計算機資料和有關參考資料,提高學生進行程式設計的基本能力。

二、vc++課程設計要求

(一)基本要求

1、每組2人完成課程設計。(可以選擇前10題中任意2題(每人1題)或者2人共同完成10-20題中任意1題)。其中,設計報告中要能體現明確分工,並每人完成不同的功能模組,對於關鍵**或者關鍵模組不允許出現重複內容。

2、獨立思考,獨立完成課程設計。課程設計中各任務的設計和除錯要求獨立完成,遇到問題可以相互討論,但不可以拷貝。

3、做好上機準備。每次上機實驗之前,要事先編制好準備除錯的程式,認真想好除錯步驟和相關環境的設定方法,準備好有關文件。

4.按照課程設計的具體要求建立功能模組。對於具體模組要求按照如下幾個方面內容認真完成:

需求分析:

在該部分描述清楚模組的具體功能。如果存在多個模組,則需要描述清楚每個模組的具體功能及相互之間的關聯關係。

概要設計:

在此部分對模組的演算法設計進行說明(可以採用演算法流程圖進行描述,並附上該圖的相關文字說明),每個程式中使用的儲存結構設計說明(如果指定儲存結構,請描述清楚該儲存結構的定義)。

詳細設計:

該部分要求給出各個演算法具體實現的源程式,對每個題目要有相應的源程式(可以是一組源程式,每個功能模組採用不同的函式實現)說明。源程式要按照程式編寫規則編寫。其中,針對變數、函式名稱定義及關鍵**需要有詳細的注釋說明,對於重點功能模組要附加上清晰的功能描述及具體注釋說明。

除錯分析

採用物件導向程式設計思想進行**實現與除錯。能夠熟練掌握除錯工具的各種功能,設計測試資料確定疑點,通過修改程式來證實它或繞過它。除錯正確後,認真整理源程式及其注釋,形成格式和風格良好的源程式清單和結果。

測試資料及實驗結果,並對實驗結果的正確性進行說明。在此基礎上,需對演算法的時間複雜度和空間複雜的進行簡要分析,並對每個模組設計和除錯時存在的問題進行思考,並提出解決方法或者改進設想。

⑤課程設計總結

在完成vc++課程設計之後,需要提交課程設計總結。該總結報告除了包含上述-的設計內容之外,還需要包括以下內容:課程設計過程中遇到的問題說明,解決問題過程中的思考內容,程式除錯能力的思考情況,最後對vc++物件導向程式設計這門課程的思考和認識等內容。

針對每個學生需要進行實驗結果檢查。對於程式源**和程課程設計總結檔案必須上交,作為考核內容的一部分。(上交時每人交乙份資料夾,資料夾具體命名規則為:

「學號_姓名_課程設計名稱」)。

(二)技術要求

1、用c++語言實現設計任務;

2、程式可讀性好,執行效率高;

3、具有良好的操作介面和使用者體驗;

4、課程設計總結能夠很好地反映設計內容。

三、設計任務

要求完成的主要設計任務包括以下幾個方面:

1、系統應緊扣題目,實現具體功能及相關操作(例如查詢、刪除、排序等操作);

2、資料結構等相關設計;

3、主要演算法設計;

4、程式設計及上機實現;

5、撰寫課程設計報告,主要包括: 設計題目;正文,包括引言、需求分析、模組設計(演算法設計)、程式實現及測試、設計總結等;結束語;參考文獻。

四、時間安排

五、課程設計題目及內容(均採用物件導向程式設計方法)

題目1:設計一元多項式計算

【任務要求】

(1)能夠按照指數降序排列建立並輸出多項式;

(2)能夠完成兩個多項式的相加、相減,並將結果輸入;

實現提示:可選擇帶頭結點的單向迴圈鍊錶或單鏈表儲存多項式,頭結點可存放多項式的引數,如項數等。

要求:在上交資料中請寫明:儲存結構、多項式相加的基本過程的演算法(可以使用程式流程圖) 、源程式、測試資料和結果、演算法的時間複雜度、另外可以提出演算法的改進方法;

【測試資料】

自行選擇

題目2:鍊錶應用1

【任務要求】

實現兩個鍊錶的合併。

基本功能要求:

(1)建立兩個鍊錶a和b,鍊錶元素個數分別為m和n個。

(2)假設元素分別為(x1,x2,…xm),和(y1,y2, …yn)。把它們合併成乙個線形表c,使得:

當m>=n時,c=x1,y1,x2,y2,…xn,yn,…,xm

當n>m時,c=y1,x1,y2,x2,…ym,xm,…,yn

輸出線性表c

(3) 用直接插入排序法對c進行公升序排序,生成鍊錶d,並輸出鍊錶d。

【測試資料】

1) a表(30,41,15,12,56,80)

b表(23,56,78,23,12,33,79,90,55)

2) a表(30,41,15,12,56,80,23,12,34)

b表(23,56,78,23,12)

題目3:鍊錶應用2

【問題描述】

已知非空線性鍊錶第乙個鏈結點的指標為list,寫出下列各項操作的演算法程式。

(1)逆轉該線性鍊錶;

(2)刪除線性鍊錶中從左往右第乙個資料為data的鏈結點;

(3)刪除從第i個鏈結點開始的連續k個結點。

【任務要求】

設計一組輸入資料並編寫完整的程式。除錯程式並對相應的輸出作出分析;修改輸入資料,預期輸出並驗證輸出的結果。

【提示】

1)逆轉乙個鍊錶是指在不增加新結點的前提下,依次改變鍊錶中結點的連線方向。

2)刪除資料結點時,首先判斷鍊錶是否為空,若非空,先判斷第乙個結點是否滿足條件,若是則刪除;否則從第二個結點開始順序查詢,直到找到為止,然後刪除;對任何不滿足條件的情況都報告相應提示資訊。

3)從第i個結點開始連續刪除k個結點時,考慮以下兩種情況:當i=1時,從第乙個開始刪除即可;當i>1時,先找到前乙個結點然後再連續刪除k個結點。最後釋放各個結點空間。

【測試資料】

自行設定

題目4:二叉樹的基本操作(建立、求二叉樹樹深度、遍歷)

【任務要求】

要求輸入二樹的各個結點,求二叉樹的樹深度,並能夠輸出指定遍歷方式(層序、先序、中序、後序)的遍歷序列;分別建立;建立二叉樹儲存結構的的輸入函式、求二叉樹的樹深度的函式、遍歷序列的函式

層序遍歷(用佇列的方法實現)

中序遍歷( 用遞迴和非遞迴的方法一起都實現)

先序遍歷( 用遞迴和非遞迴的方法一起都實現)

後序遍歷( 用遞迴和非遞迴的方法一起都實現)

題目5:算術表示式求值

【問題描述】

在計算機中,算術表示式由常量、變數、運算子和括號組成。由於不同的運算子具有不同的優先順序,又要考慮括號,因此,算術表示式的求值不可能嚴格地從左到右進行。因而在程式設計時,借助棧實現。

【任務要求】

演算法輸入:乙個算術表示式,由常量、變數、運算子和括號組成(以字串形式輸入)。為簡化,規定運算元只能為正整數,操作符為+、-*、/,用#表示結束。

演算法輸出:表示式運算結果。

演算法要點:設定運算子棧和運算數棧輔助分析算符優先關係。在讀入表示式的字串行的同時,完成運算子和運算數的識別處理,以及相應運算。

題目6:內部排序演算法比較

【問題描述】

編制乙個演示內部排序演算法比較的程式。利用隨機函式產生30000個隨機整數,利用氣泡排序、直接插入排序、簡單選擇排序、快速排序、希爾排序、歸併排序和堆排序等排序方法進行排序,並統計每一種排序上機所花費的時間。

【任務要求】

演算法輸入:以選單的形式選擇排序方法

演算法輸出:不同情況下關鍵字參加的比較次數和關鍵字的移動次數,每一種排序上機所花費的時間。

演算法要點:

(1)利用隨機函式產生30000個隨機整數。

(2)利用不同排序方法排序並統計兩類次數,列表顯示

(3)程式以對話方式執行。

題目7:構造可以使n個城市連線的最小生成樹

【問題描述】

給定乙個地區的n個城市間的距離網,用prim演算法和kruskal演算法建立最小生成樹,並計算得到的最小生成樹的代價。

【任務要求】

輸入:表示城市間距離網的鄰接矩陣(要求至少6個城市,10條邊)城市間的距離網採用鄰接矩陣表示,鄰接矩陣的儲存結構定義採用課本中給出的定義,若兩個城市之間不存在道路,則將相應邊的權值設為自己定義的無窮大值。要求在螢幕上顯示得到的最小生成樹中包括了哪些城市間的道路,並顯示得到的最小生成樹的代價。

輸出:最小生成樹中包括的邊及其權值,並顯示得到的最小生成樹的代價。

題目8:交通諮詢系統中的最短路徑

【問題描述】

建立交通圖的儲存結構、解決單源最短路徑問題、再實現兩個地點最短路徑問題,也就是實現迪傑斯特拉和弗洛伊德方法

【測試資料】

自行設定交通圖,交通站點不少於6個

題目9:集合的交、並、差運算

【問題描述】

編制乙個能演示執行集合的交、並和差運算的程式。

【任務要求】

基本要求:集合元素用小寫英文本母,執行各種操作應以對話方式執行。

演算法要點:利用單鏈表表示集合;理解好三種運算的含義

題目10:雜湊表應用

【問題描述】

利用雜湊表進行儲存。

【任務要求】

任務要求:針對一組資料進行初始化雜湊表,可以進行顯示雜湊表,查詢元素,插入元素,刪除元素,退出程式操作。

程式設計基礎課程設計任務書

一 課程設計的目的 為了進一步鞏固 程式設計基礎 課程所學到的知識,深刻把握程式語言的重要概念及基本語法,鍛鍊學生熟練的運用c 語言設計程式解決實際問題的能力,開設了一周的課程設計。通過此次課程設計,鞏固所學c 語言基本知識,掌握visual studio c 開發工具的運用,把所學課程相關知識加以...

課程設計任務書

天津職業技術師範大學 電子工程學院應電1114 班學生盧敏苑海雲黨宇飛 課程設計課題 溫度數字顯示監控裝置 簡易電容測試電路 一 課程設計工作日自 2013年 11月 1225日至 2013年 12月 13 日 二 同組學生 盧敏苑海雲黨宇飛 三 課程設計任務要求 第1周題目 3選1,允許學生自主選...

課程設計任務書

一 設計課題 110kv鋼廠總降變電所供配電設計 二 設計資料 1 工程概況 本工程為使用者終端變電所,從系統a變電站5公里110kv架空進線2回作為主供電源,10kv電纜出線16 回 不包括電容補償及保安電源進線 電纜第乙個中間接頭處250公尺。該廠近10年內不考慮負荷增加擴容。正常執行方式為開環...