物件導向程式設計C 課程設計指導書

2022-05-02 22:54:02 字數 3855 閱讀 1731

目錄前言 3

第一章概述 4

1.1 課程設計目的 4

1.2 基本要求 4

1.3 考核方法和成績評定 5

1.3.1 考核方法 5

1.3.2 成績評定 5

第二章程式設計方法與常用演算法 6

2.1 程式設計與演算法 6

2.1.1 演算法 6

2.1.2 結構程式設計 7

2.1.3 物件導向開發方法 8

2.1.4 設計練習題目 8

2.2 常用數值計算演算法 9

2.2.1 迭代法 9

2.2.2 遞推法 10

2.2.3 遞迴法 10

2.2.4 設計練習題目 11

2.3 非數值計算演算法 12

2.3.1 窮舉搜尋法 12

2.3.2 遞迴法 12

2.3.3 回溯法 13

2.3.4 設計練習題目 13

第三章排序與查詢 15

3.1 排序 15

3.1.1 直接插入排序 15

3.1.2 選擇排序 15

3.1.3 氣泡排序 16

3.2 查詢 16

3.2.1 順序查詢 16

3.2.2 二分法查詢 17

第四章綜合設計題目 19

前言c++是一種混合性語言,它既具有獨特的物件導向的特徵,又保留傳統的高效結構化程式設計語言c的主要特徵。因此,可以說c++是包含支援物件導向程式設計和c語言的乙個超集,c++全面支援資料抽象、資料封裝、繼承性和多型性。

無論是使用物件導向程式設計語言,還是結構化程式設計語言,最重要的乙個方面就是「演算法」,可以說:演算法是乙個程式的靈魂。乙個好的演算法是可以使用任何語言實現的,即「程式語言的無關性」。

本書就是從演算法出發,重點介紹了幾個常用的數值計算演算法和非數值計算演算法的基本思想和分析過程,並配以相應的設計練習題目來完成對本演算法的應用。對於一種演算法,可以有許多種變換形式,本文中只是做一簡單介紹,希望學生在今後的學習中多注重演算法的學習和把握。

鑑於時間倉促和編者水平有限,對於本書中存在的錯誤和不足,敬請各位同學和教師批評指正。

c++語言是世界上最流行和實用的一種計算機高階程式語言,它具有豐富的資料型別和各種運算功能,帶有龐大的函式庫和類庫,既支援面向過程的程式設計,又支援物件導向的程式設計,因此是目前進行計算機軟體開發的重要工具之一。它作為一門專業基礎課程,貫穿於資料結構、作業系統、資料庫、軟體工程等所有後續課程始終,因此,學生更好的掌握c++語言的程式設計技能可以為將來的各門課程學習打下堅實的基礎。

物件導向程式設計語言c++語言是從早期的c語言逐漸發展演變而來,它對c語言不是簡單的擴充。c++語言保留了c語言的靈活性,並且具有強有力處理軟硬體介面和低層系統程式設計的能力;c++語言保留了c語言的緊湊性和強有力的表示式功能;更重要的是c++語言提供了支援物件導向程式設計和高層問題抽象的平台。

在物件導向程式設計方法中,屬性和方法是類設計的重要方面,而方法中又遵循了過程化程式設計思路,因此,這兩種程式設計方法是互相聯絡,互為應用的。

c++語言課程設計,主要訓練學生的獨立思考能力和動手能力;培養學生在過程化程式設計方法和物件導向程式設計方法的應用和結合;培養學生對計算機演算法的理解和應用。學生通過演算法分析和設計,最後使用c++語言編譯環境執行該演算法程式,加深對計算機演算法的理解和應用。同時,掌握一種問題的分析和解決方法。

在課程設計過程中,學生重點掌握過程化程式設計方法的設計過程,並加深對物件導向的程式設計方法的理解和應用,提高c++語言程式設計的綜合能力。

為了更好的完成本次課程設計的目的,為了使學生真正領悟過程化程式設計方法和物件導向程式設計方法,學生必須嚴格按照要求完成設計題目。具體要求如下:

1、 學生需要至少完成九道設計題目中的6道設計題目的演算法分析和設計,應用程式流程圖(或n_s流程圖)表示分析和設計結果;

2、 學生必須完成對至少20個設計聯絡題目的程式設計測試任務。

3、 如果學生在課程設計時間內完成了要求的設計題目,可以同教師聯絡,教師可以另外補充設計題目。

4、 學生必須完成全部物件導向設計題目的除錯、執行任務,並基本理解程式設計思想和程式設計方法。

5、 課程設計結束後,學生需要參加答辯或最後的實際上機程式設計考核。同時,學生需要提交設計報告乙份,報告中包括全部的演算法分析和設計流程圖,並列印程式清單。

6、 教師每天必須檢查學生的設計情況,並認真登記,作為最後的考評依據。

在設計考核中主要採用如下三個方面:

a. 演算法分析、設計和實際操作技能課程設計過程中,教師檢查學生的演算法分析和設計流程圖,並在計算機上檢查學生除錯和執行程式的情況,為每個學生進行評分。

b. 答辯或應試操作能力在課程設計結束後,學生就課程設計的設計思想和物件導向理論進行答辯,或參加最後一次的上機實際操作程式設計考試。教師根據情況為學生進行評分。

c. 課程設計報告在課程設計結束後,學生提交應用程式文件,應用程式清單和課程設計報告,教師根據文件資料的書寫和學生對理論和設計內容的理解,為每個學生進行評分。

根據課程設計考核辦法,各方面成績佔總成績的比例為:

a. 演算法分析、設計和實際操作技能佔總成績的比例為:60%

b. 答辯或應試操作能力佔總成績的比例為:20%

c. 課程設計報告佔總成績的比例為:20%

演算法是解決問題方法的精確描述,但是並不是所有問題都有演算法,有些問題經研究可行,則相應有演算法;而有些問題不能說明可行,則表示沒有相應演算法,但這並不是說問題沒有結果。例如:猜想問題,有結果,然而目前還沒有演算法。

1、 演算法的性質

(1) 解題演算法是一有窮動作序列。

(2) 動作序列僅有乙個初始動作。

(3) 序列中每個動作的後繼動作是確定的。

(4) 序列的終止表示問題得到解答或問題沒有解答。

2、 待解問題的表述

待解問題的表述應精確、簡練、清楚,使用形式化模型刻劃問題是最恰當的。例如:使用數學模型刻劃問題是最簡明、嚴格的,一旦問題形式化了,就可依據相應嚴格的模型對問題求解。

3、 演算法分類

根據待解問題刻劃的形式模型和求解要求,演算法可以分成兩大類:數值的和非數值的。數值的演算法是以數學方式表示的問題求數值解的方法。

例如:代數方程計算、矩陣計算、線性方程組求解、函式方程求解、數值積分、微分方程求解等;非數值的演算法通常為求非數值解的方法,例如:排序查詢、模式匹配、排列模擬、**處理、文書處理等。

4、 演算法設計

演算法設計的任務是對各類具體問題設計良好的演算法及研究設計演算法的規律和方法。常用的演算法設計方法有:數值演算法(如:

迭代法、遞迴法、插值法等);非數值演算法(如:分治法、貪婪法、回溯法等)。

5、 演算法分析

演算法分析的任務是對設計出的每乙個具體的演算法,利用數學工具,討論各種複雜度,以**某種具體演算法適用於那類問題,或某類問題宜採用那種演算法。演算法的複雜度分時間複雜度和空間複雜度。設問題規模以某種單位由1增至n,研究解決問題的具體演算法。

在執行演算法時所耗費的時間為f (n)(即n 的函式),實現演算法所站用的空間為g (n)(也為n的函式),則稱o(f(n)) 和o(g(n)) 為該演算法的複雜度。

1、 程式

程式是對所要解決問題的各個物件和處理規則的描述,或者說是資料結構和演算法的描述,因此有人稱:資料結構 + 演算法 = 程式。

2、 程式設計

程式設計實際就是設計、編制和除錯程式的過程。

3、 結構化程式設計

結構化程式設計就是利用逐步精化的方法,按照一套程式化的設計準則進行程式的設計。由這種方法產生的程式是結構良好的,所謂「結構良好」是指:

(1)易於保證和驗證其正確性

(2)易於閱讀、易於理解和易於維護。

物件導向程式設計課程設計指導書

課程設計說明書 題目 學生資訊管理系統 學生姓名 李宇 學院 資訊工程學院 班級 計09 1 指導教師 邢紅梅講師 呂岩講師 關玉欣講師 2011 年 7 月 8 日 內蒙古工業大學課程設計 任務書 課程名稱 物件導向程式設計課程設計學院 資訊工程學院班級 計算機09 1 學生姓名 李宇學號 200...

物件導向程式設計課程設計指導書

李文靜呂岩編 內蒙古工業大學 資訊工程學院計算機系 2014年9月 目錄 物件導向程式設計課程設計 教學大綱 1 物件導向程式設計課程設計 總體要求 3 課程設計題目說明 6 題目1 高校人員資訊管理系統設計 6 題目2 公司員工資訊管理系統設計 7 題目3 庫管理系統設計 8 題目4 車輛管理系統...

物件導向程式設計課程實驗指導書 C

實驗01 熟悉mfc程式設計 實驗學時 3 實驗型別 演示 操作 設計 實驗要求 必修 一 實驗目的 通過本實驗的學習,使學生熟悉visual c 6.0整合開發環境的使用,為今後程式程式設計和除錯奠定基礎 同時熟練c 基本語法 程式的基本結構和除錯一般程式的方法。二 實驗內容 1 進入和退出mic...