第一篇:《面向對象程序設計》課程教學大綱
《面向對象程序設計》課程教學大綱
學時:72
學分:4
理論學時:52
實驗學時:20
面向專業:計算機科學與技術、專升本 課程代碼:2700410
先開課程:計算機導論,C語言程序設計 課程性質:必修
執筆人:熊凱
審定人:陳龍猛、于仁師
第一部分:理論教學部分
一、說明
1、課程的性質、地位和任務
《面向對象程序設計》(C++)是計算機科學與技術專業的一門重要的專業基礎課,在由基礎訓練到專業課教學階段過渡過程中起到承上啟下的作用。它不僅為今后學習專業課打下堅實的理論基礎和技術基礎,而且為軟件開發、程序設計提供必要的理論、方法和工具。
通過對C++ 語言的學習,使學生系統了解程序設計語言的概況和基本理論,了解軟件開發的全過程;理解面向對象方法的概念;系統掌握c++語言的語法結構,基本掌握結構化程序設計方法和面向對象程序設計的基本方法和編程技術;通過大量的實驗和課外實踐,逐步培養學生閱讀程序、分析程序和獨立編寫程序的能力。
2、課程教學和教改基本要求
本課程是一門理論聯系實際,實踐性較強的課程,課內、外習題量相當大,上機時數較多(開設驗證性實驗2~3個,綜合性、設計性實驗4~5個),除了課堂教學環節外,學生必須在課外通過大量地閱讀程序、編寫程序,方能熟練掌握主要的語法和編程方法,并加深對各種語法成分其語用環境的認識。
二、教學內容與課時分配 第一章緒論(2學時)教學內容:
1、面向對象程序設計的基本思想及基本概念;
2、面向對象語言的分類和C++中支持面向對象的特點;
3、面向對象的軟件開發環境;
4、C++開發工具的主要功能和使用方法; 重點:
1、面向對象程序設計的基本思想及基本概念;
2、面向對象語言的分類和C++中支持面向對象的特點; 難點:
1、面向對象語言的分類和C++中支持面向對象的特點; 建議教學方法: 課堂講授 思考題:
1、面向對象程序設計的基本思想是什么?
2、C++語言支持哪些面向對象特點?
第二章面向對象程序設計方法導論(2學時)教學內容:
1、類、對象、實例的概念;
2、封裝、繼承、多態等概念;
3、面向對象模型的基本情況;
4、面向對象軟件分析、設計、實現的基本方向;
5、程序設計風格并在實驗中運用; 重點:
1、類、對象、實例的概念;
2、封裝、繼承、多態等概念; 難點:
1、封裝、繼承、多態等概念; 建議教學方法: 課堂講授 思考題:
1、什么是封裝?什么是繼承?什么是多態性? 第三章
C++對C語言的常規性能擴充(4學時)教學內容:
1、用cin,cout,cerr,<<,>>進行基本輸入輸出;
2、C++中變量定義的方法及其與C語言中的區別;
3、作用域限定符的用法;
4、C、C++語言中變量的作用域、生存期的概念;
5、枚舉類型的用法;
6、枚舉變量的存儲及其輸入輸出;
7、C++中struct與C語言中的不同;
8、const的用處和用法;
9、函數形式的類型轉換與C語言中類型轉換的不同;
10、引用的語法形式;
11、引用參數的用法;
12、函數參數的傳址和傳值方式及其區別;
13、引用返回值與左值概念;
14、函數原型的寫法、作用;
15、new和delete的用處和寫法;
16、動態內存分配與指針; 重點:
1、用cin,cout,cerr,<<,>>進行基本輸入輸出;
2、作用域限定符的用法;
3、函數定義;
4、new和delete的用處和寫法;
5、動態內存分配與指針; 難點:
1、函數定義;
2、new和delete的用處和寫法;
3、動態內存分配與指針; 建議教學方法: 課堂講授 思考題:
1、new和delete使用時應注意哪些原則?
2、什么是動態分配內存?在C++中如何實現? 第四章類和對象(8學時)教學內容:
1、類定義的方法和存取級別;
2、結構作為類的定義的方法與class的區別;
3、類的成員變量和成員函數的定義和使用,以及對象的定義;
4、友元函數和友元類;
5、構造函數和析構函數;
6、構造函數和析構函數的調用及其次序;
7、拷貝構造函數的調用;
8、靜態類成員變量和成員函數的定義和使用方法;
9、內聯成員函數的定義和使用方法;
10、嵌套類與局部類的定義;
11、在函數中對象傳遞的機制; 重點:
1、類定義的方法和存取級別作用域限定符的用法;
2、構造函數和析構函數;
3、構造函數和析構函數的調用及其次序;
4、嵌套類與局部類的定義;
5、在函數中對象傳遞的機制; 難點:
1、構造函數和析構函數的調用及其次序;
2、拷貝構造函數的調用; 建議教學方法: 課堂講授 思考題:
1、構造函數和析構函數的作用是什么?
2、類成員有哪些存取級別?特點如何?
3、構造函數和析構函數的調用次序是怎樣的規則? 第五章多態性和重載(6學時)教學內容:
1、成員函數重載;
2、運算符重載的概念;
3、使用friend重載運算符的方法;
4、成員形式和友元形式下一元和二元運算符重載的差別;
5、數組重載運算符new和delete的定義;
6、定義重載某些特殊的運算符的方法,包括重載[]、重載()、重載->等; 重點:
1、成員函數重載;
2、運算符重載的概念;
3、定義重載某些特殊的運算符的方法,包括重載[]、重載()、重載->等; 難點:
1、成員函數重載;
2、運算符重載; 建議教學方法: 課堂講授 思考題:
1、什么是重載?
2、函數重載有哪些原則?
3、如何實現數組重載運算符new和delete? 第六章繼承性與派生類(6學時)教學內容:
1、類層次的概念及如何將概念和實現轉變為類的層次的方法;
2、單繼承的定義;
3、不同派生方式下成員存取控制的變化;
4、向基類構造函數傳遞參數的方法;
5、多繼承的定義;
6、虛基類和二義性問題; 重點:
1、類層次的概念及如何將概念和實現轉變為類的層次的方法;
2、單繼承的定義;
3、不同派生方式下成員存取控制的變化;
4、向基類構造函數傳遞參數的方法; 難點:
1、不同派生方式下成員存取控制的變化;
2、向基類構造函數傳遞參數的方法; 建議教學方法: 課堂講授 思考題:
1、C++中繼承的語法是怎樣規定的?
2、不同派生方式下成員存取控制有何變化?
3、如何向基類構造函數傳遞參數?
第七章運行時的多態性和虛函數(6學時)教學內容:
1、虛函數和純虛函數的概念;
2、虛函數的用法;
3、虛析構函數的意義;
4、抽象類的概念;
5、早期和后期聯編的概念; 重點:
1、虛函數和純虛函數的概念;
2、虛函數的用法;
3、抽象類的概念;
4、早期和后期聯編的概念; 難點:
1、虛函數的用法;
2、抽象類的概念;
3、早期和后期聯編的概念; 建議教學方法: 課堂講授 思考題:
1、什么是虛函數?如何定義虛函數?
2、什么是抽象類?
3、在什么場合中使用抽象類?
4、什么是早期聯編?什么是后期聯編? 第八章泛型程序設計和模板(6學時)教學內容:
1、泛型程序設計的意義;
2、模板函數的用法;
3、類模板的定義方法;
4、多參數的模板設計; 重點:
1、泛型程序設計的意義;
2、模板函數的用法;
3、類模板的定義方法; 難點:
1、模板函數的用法;
2、類模板的定義方法; 建議教學方法: 課堂講授 思考題:
1、什么是模板?
2、如何定義函數模板?
3、如何定義類模板?
第九章
C++的I/O系統(8學時)教學內容:
1、C++的流,包括C++的預定義流;
2、格式化I/O的定義格式和定義方法;
3、創建重載運算符<<和>>的方法;
4、創建無參數操縱符和帶參數操縱符的方法;
5、一般I/O流和文件流的關系;
6、文件與文件流的關系;
7、文件系統的概念,包括文件指針和關于文件的操作;
8、文件類的定義和相關操作的定義、使用方法;
9、利用常用函數進行文件的打開、關閉、讀寫、定位等操作; 重點:
1、C++的流;
2、格式化I/O的定義格式和定義方法;
3、創建重載運算符<<和>>的方法;
4、文件與文件流的關系;
5、文件系統的概念;
6、文件類的定義和相關操作的定義、使用方法; 難點:
1、創建重載運算符<<和>>的方法;
2、文件系統的概念;
3、文件類的定義和相關操作的定義、使用方法; 建議教學方法: 課堂講授 思考題:
1、什么是流?
2、重載運算符<<和>>應該注意哪些原則?
3、對文件的讀寫有哪些方式?
4、如何控制二進制文件?
第十章面向對象的軟件構造及程序設計風范(4學時)教學內容 1、軟件質量
2、程序斷言機制
3、異常處理機制
4、面向對象的軟件構造 重點:
1、異常處理機制;
2、面向對象的軟件構造; 難點:
1、異常處理機制; 建議教學方法: 課堂講授 思考題:
1、什么是異常?
2、C++中如何處理異常?
3、面向對象的軟件構造有哪些原則?
三、考核方式和要求
考核方式:閉卷
考核要求:考核內容應包括基本概念題、程序代碼分析題(形式為程序填空和程序閱讀等)和程序設計題等。
成績核算:平時作業占總成績的15%,實驗成績占總成績的15%,理論考試根據教學大綱命題,占總成績的70%。第二部分:實驗教學部分
一、說明
1、本門課程實驗的性質任務、目的與要求
本課程是一門理論聯系實際,實踐性較強的課程,上機時數較多(開設驗證性實驗2~3個,綜合、設計性實驗4~5個)。學生通過本課程的實驗鍛煉,應達到具有基本C++程序設計能力和基本調試能力,并具有編寫面相對象程序設計的方法、思路和設計調試能力。
2、本門課程實驗項目設置情況 序號 實驗名稱 學時 必開 選開 實驗類型 驗 證 基本 操作 綜 合 設 計 應 用 創 新
內容提要Visual C++的開發環境認識 2 必
√
用Visual C++的程序向導建立一個簡單的Windows程序并調試通過。C++中的對C語言的常規擴充(1)2 必
√
編寫一個完整的C++程序,并調試通過。C++中的對C語言的常規擴充(2)2 必
√
將原來C語言編寫的程序改寫成一個C++程序,并調試通過。4 類與對象 2 必 √
設計一個類并寫一測試程序建立該類的對象并調試。5 多態性和重載 2 必 √
為自定義的類編寫恰當的運算符重載并測試通過。6 繼承性與派生類 2 必 √
將自定義的類進行派生,研究其各種函數的調用。7 運行時的多態性和虛函數 2 必 √
在自定義的類中增加虛函數測試其運行情況。8 泛型程序設計和模板 2 必 √
編寫一個函數模板和類模板并調試通過。9 C++的I/O系統 2 必 √
在自定義的類中增加流輸入輸出功能并編寫一程序測試該類對文件流的操作。10 C++的發展和應用 2 必 √
利用STL類庫編寫一個簡單的程序調試通過。
二、各實驗項目教學要求
實驗一 Visual C++的開發環境的認識
(一)實驗目的:熟悉Visual C++的開發環境。
(二)實驗內容:利用Visual C++的程序向導建立一個簡單的基于MFC類庫的Windows程序并調試通過。
(三)主要儀器設備及其配套數:計算機每人一套(四)所在實驗室:計算機實驗室
實驗二 C++中的對C語言的常規擴充(1)(一)實驗目的:掌握C++語言中擴充部分。
(二)實驗內容:編寫一個完整的C++程序,并調試通過。(三)主要儀器設備及其配套數:計算機每人一套(四)所在實驗室:計算機實驗室
實驗三 C++中的對C語言的常規擴充(2)(一)實驗目的:掌握C++語言中擴充部分。
(二)實驗內容:將原來C語言編寫的程序改寫成一個C++程序,并調試通過。(三)主要儀器設備及其配套數:計算機每人一套(四)所在實驗室:計算機實驗室 實驗四類與對象
(一)實驗目的:掌握類的定義。
(二)實驗內容:定義一個類并寫一測試程序建立該類的對象并調試。(三)主要儀器設備及其配套數:計算機每人一套(四)所在實驗室:計算機實驗室 實驗五多態性和重載
(一)實驗目的:掌握成員函數和運算符的重載。
(二)實驗內容:為自定義的類編寫恰當的運算符重載并測試通過。(三)主要儀器設備及其配套數:計算機每人一套(四)所在實驗室:計算機實驗室 實驗六繼承性與派生類
(一)實驗目的:掌握繼承性與派生類
(二)實驗內容:將自定義的類進行派生,研究其各種函數的調用。(三)主要儀器設備及其配套數:計算機每人一套(四)所在實驗室:計算機實驗室 實驗七運行時的多態性和虛函數
(一)實驗目的:掌握運行時的多態性和虛函數的概念。
(二)實驗內容:在自定義的類中增加虛函數測試其運行情況。(三)主要儀器設備及其配套數:計算機每人一套(四)所在實驗室:計算機實驗室 實驗八泛型程序設計和模板
(一)實驗目的:掌握泛型程序設計和模板。
(二)實驗內容:編寫一個函數模板和類模板并調試通過。(三)主要儀器設備及其配套數:計算機每人一套(四)所在實驗室:計算機實驗室 實驗九 C++的I/O系統
(一)實驗目的:掌握C++的I/O系統。
(二)實驗內容:在自定義的類中增加流輸入輸出功能并編寫一程序測試該類對件流的操作。(三)主要儀器設備及其配套數:計算機每人一套(四)所在實驗室:計算機實驗室 實驗十 C++的發展和應用
(一)實驗目的:了解C++的發展和應用。
(二)實驗內容:利用STL類庫編寫一個簡單的程序調試通過。(三)主要儀器設備及其配套數:計算機每人一套(四)所在實驗室:計算機實驗室
三、考核方式和成績評定要求
本課程實驗的考核方式以每次上機實驗的完成情況、實驗報告的質量為主結合平日成績進行綜合評定
第三部分:建議使用的教材和參考書目
[1] 面向對象程序設計基礎,李師賢等編著,高等教育出版社,1998.[2] 面向對象程序設計,劉正林主編,華中科技大學出版社,2001.[3] C++大學教程,Harvey M.Detitel,Paul Jmes Deitel著,邱仲潘等譯,電子工業出版社,2002.
第二篇:C 面向對象程序設計課程教學大綱
《C++面向對象程序設計》課程教學大綱
C++ Object Oriented Programming
課程代碼:
課程性質:專業基礎理論課/必修
適用專業:信息計算、信息安全、統計
開課學期:
2、3 總學時數:10
4總學分數:6.5
編寫年月:2000年3月
修訂年月:2007年7月 執
筆:劉偉、高學軍
一、課程的性質和目的
《面向對象程序設計》是信息與計算科學專業本科生的一門必修課程。面向對象軟件開發方法是吸收了軟件工程領域有益的概念和有效的方法而發展起來的一種軟件開發方法。它集抽象性、封裝性、繼承性和多態性于一體,可以幫助人們開發出模塊化的程序數據抽象程度高的,體現信息隱蔽、可復用、易修改、易擴充等特性。本課程主要介紹面向對象程序設計的方法和C++語言的基本概念。以C++語言中的面向對象機制為主。學習者在學習過程中可以通過大量的程序實例和相關練習,逐步掌握C++的面向過程和面向對象的功能,從而掌握面向對象程序設計的基本知識和基本技能。
二、課程教學內容及學時分配
第一章 面向對象的程序設計方法和C++簡介(6學時)
了解面向對象程序設計的基本思想及基本概念;了解面向對象語言的分類和C++中支持面向對象的特點;了解面向對象的軟件開發環境;了解Visual C++開發工作臺的主要功能。
主要內容:面向對象程序設計的基本思想及基本概念:對程序的的質量要求;程序的模塊化和結構化;為什么要面向對象:從面向過程到面向對象C++語言發展的歷史:面向對象語言分類;C++中支持面向對象的特點面向對象的軟件開發環境與Visual C++。
第二章 程序設計基礎(8學時)
通過實例掌握C++程序的程序結構和執行機制;掌握簡單的終端輸入輸出方法;掌握:C++的數據類型、常量和變量的概念;掌握數組類型及數組類型與指針類型的 1 關系;掌握用typedef自定義類型的方法;了解表達式的構成、求值順序和表達式中的類型轉換;掌握常用運算符的使用;了解程序設計風格并在試驗中運用。
主要內容:C++的程序結構;C++的數據類型:基本數據類型、復合數據類型和引申數據類型;常量和變量;表達式與操作符;程序設計風格。
第三章 語句與程序流程(1
2掌握程序執行的流程;掌握C++語句結構,包括復合語句、分支語句、迭代語句和轉移語句;了解各種迭代語句之間的關系和相互轉換的方法;了解轉移語句對程序結構的影響。
主要內容:模塊化程序設計介紹;函數的一般形式;函數的參數;函數的返回值;遞歸函數;內聯函數;函數和變量作用域;函數重載;函數指針;函數原型與強類型檢查。
第四章 類與對象(10學時)
掌握類定義的方法和存取級別;了解結構的概念和結構作為類的定義的方法;了解聯合與位域的概念和聯合作為類的定義的方法;掌握類的成員變量和成員函數的定義和使用,以及對象的定義;了解友元函數和友元類;掌握構造函數和析構函數;掌握靜態類成員變量和成員函數的定義和使用方法;掌握內聯函數的定義和使用方法;了解嵌套類與局部類的定義;掌握在函數中對象傳遞的機制。
主要內容:復合數據類型;類的定義、類的成員變量和成員函數,存取級別,作用域分辨符;對象和類的關系;類的構造函數和析構函數;構造函數的定義;析構函數;類/對象數組;靜態類成員:靜態成員變量;靜態成員函數;內聯函數;友元類;this指針;嵌套類與局部類;在函數中對象傳遞的機制。第五章 數組、指針和引用(10學時)
掌握對象數組及創建初始化和未初始化的數組的方法;掌握指針的概念,包括指針變量、指針表達式、指針數組;掌握指向對象的指針;了解指向函數的指針;掌握引用的概念,包括引用參數、向對象傳遞引用、返回引用等;了解有關C++的動態存儲分配的機制;掌握利用new和delete進行動態空間的申請和釋放。
主要內容:對象數組的初始化;數組與指針;數組賦值;對象數組指針的定義、初始化;指針運算;指針數組;指向對象的指針;字符串指針引用;向對象傳遞引用;返回引用;引用與指針的關系;引用的常用方法;C++的動態存儲分配:動態空間的申請與釋放。
第六章 繼承性與派生類(8學時)
了解類層次的概念及如何將概念和實現轉變為類的層次的方法;掌握單繼承的 2 定義格式、成員存取控制和向基類構造函數傳遞參數的方法;了解多繼承的定義方式、虛基類和二義性問題。
主要內容:類的層次概念;成員的繼承;將概念和實現轉變為類的層次;單繼承;成員存取控制;受保護基類的繼承;向基類構造函數傳遞參數;多繼承;虛基類;二義性問題;多繼承的應用。
第七章 多態性和虛函數(8
掌握函數重載的概念;掌握運算符重載的概念;掌握使用friend重載運算符的方法;定義重載某些特殊的運算符的方法;掌握虛函數和純虛函數的概念;了解抽象類的概念;了解早期和后期聯編的概念;
主要內容:函數重載與二義性;重載構造函數;求重載函數的地址;運算符重載;引用在運算符重載中的應用;運算符重載的限制;使用friend重載運算符;虛函數
第八章 C++的I/O系統(8
了解C++的流;掌握格式化I/O的定義格式和定義方法;了解一般I/O流和文件流的關系;了解文件與文件流的關系;了解文件系統的概念;掌握文件類的定義和相關操作的定義、使用方法;掌握利用常用函數進行文件的打開、關閉、讀寫、定位等操作。
主要內容:流的定義;C++的預定義流;格式化的I/O;創建自己的提取符;創建無參數的操縱符;創建帶參數的操縱符;文件與文件流;文件打開和關閉、文件的定位與隨機存取、文件的讀寫。
第九章 面向對象的程序設計環境(6應用程序框架及交互界面的開發。
主要內容:面向對象的軟件開發環境;Visual C++開發工作臺簡述;MFC的結構層次;MFC分層概述
應用程序框架及交互界面的開發;控制類及其編程實現;實現菜單和對話框控制;文檔和視;單文檔界面;多文檔界面。
第十章 用面向對象方法設計應用程序(4學時)
掌握根據給定應用系統的設計要求用面向對象的方法設計實現應用系統;掌握利用Visual C++的界面生成器生成應用程序界面;掌握利用消息機制實現對象之間的交互。
主要內容:綜合利用前面所學的內容設計兩個具體的應用程序。
了解Visual C++的消息機制;了解Visual C++的基本類庫MFC;掌握Visual C++ 3
學時分配:第二學期:72學時,理論課56學時,實驗課16學時;
第三學期:32學時,理論課24學時,實驗課8學時。
三、課程教學的基本要求
1.了解面向對象的基本概念和使用面向對象技術進行程序設計的基本思想; 2.能比較熟練地用C++語言進行一般面向對象的程序設計; 3.初步掌握面向對象編程環境Visual C++的使用。
該課程實踐性較強,需要學員多作練習;主持教師需要有比較熟練的編程經驗,對Visual C++環境比較熟悉;針對所留習題,可以組織兩到三次討論,以便學員掌握面向對象設計思想。
總評成績:平時作業占30%,閉卷考試占70%。
四、本課程與其它課程的聯系與分工先修課程:計算機基礎訓練 后續課程:軟件工程
五、建議教材及教學參考書
[1]鄭莉、傅仕星編,《C++面向對象程序設計》,清華大學出版社,2003年9月出版 [2]譚浩強編,《C++面向對象程序設計》,清華大學出版社,2005年7月出版 [3]李師賢等譯,《C++精髓》,機械工業出版社,2002年8月出版
[4]Davis Chapman,《學用Visual c++ 6.0》,清華大學出版社,2001年7月出版
第三篇:《面向對象程序設計方法》課程教學大綱
《面向對象程序設計方法》課程教學大綱
(計算機科學與技術本科專業使用)
一、課程的地位、教學目的和基本要求
C++語言是一種高效實用的程序設計語言,既可進行過程化的程序設計,也可進行面向對象程序設計。本課程以介紹C++語言的基本語法為基礎逐步向學生滲透面向對象的程序設計思想,要求學生掌握類的封裝、數據隱藏、繼承及多態等特性,領會面向對象程序設計,掌握面向對象程序設計方法,培養一定的程序設計能力,為以后各專業課程的學習打下良好的程序設計基礎。
二、主要教學環節
1、理論教學 學時數:60 占全部學時數:75 %
2、實驗 學時數:20 占全部學時數:25 %
3、實訓 學時數:二周
三、課程內容 Ⅰ.理論部分
第一章 C++入門 2學時(1)教學目的、要求
本章要求學生掌握源程序的編輯、編譯、連接和執行。了解C++程序設計語言的發展過程以及支持環境。(2)重點與難點
本章的重點和難點是源程序的編輯、編譯、連接和執行。
第一節 從C到C++ 第二節 程序與語言 第三節 結構化程序設計 第四節 面向對象程序設計 第五節 程序開發過程 第六節 函數
第二章 基本數據類型與輸入輸出 2學時(1)教學目的、要求
本章要求學生掌握C++語言數據類型,變量及常量的聲明和賦值以及輸入輸出函數。了解I/O流及printf和scanf輸入輸出的作用。(2)重點與難點
本章的重點和難點是C++語言數據類型,變量及常量的聲明和賦值以及輸入輸出函數。
第一節 字符集與保留字 第二節 基本數據類型 第三節 變量定義 第四節 常量及常量定義 第五節 I/O流控制 第六節 Printf與scanf 第三章 表達式和語句 2學時(1)教學目的、要求
本章要求學生掌握C++各運算符與常用表達式內容,及if語句的應用。(2)重點與難點
C++各運算符與常用表達式內容,及if語句的應用。
第一節 表達式 第二節 算術運算和賦值 第三節 算術類型轉換 第四節 增量和減量 第五節 關系與邏輯運算 第六節 if語句 第七節 條件運算符 第八節 逗號表達式 第九節 求值次序與副作用
第四章 過程化語句 2學時(1)教學目的、要求
本章要求學生掌握switch,while, do…while, for結構的應用,了解描述算法和窮舉、迭代算法。(2)重點與難點
本章的重點和難點是循環型程序設計,即switch,while, do…while, for 2 結構的應用。
第一節 while 語句 第二節 do…..while 語句 第三節 for語句 第四節 switch 語句 第五節 switch 語句 第六節 過程應用: 求兀 第七節 過程應用: 判明素數 第八節 過程應用: 求積分
第五章 函數 2學時(1)教學目的、要求
本章要求學生掌握函數的概念、定義、調用機制,和遞歸、內聯、重載函數的概念,以及全局、局部變量。(2)重點與難點
本章的重點和難點是函數的概念、定義、調用機制,以及全局、局部變量。
第一節 函數概述 第二節 函數原型
第三節 全局變量和局部變量 第四節 函數調用機制 第五節 靜態局部變量 第六節 遞歸函數 第七節 內聯函數 第八節 重載函數 第九節 默認參數的函數
第六章 程序結構 2學時(1)教學目的、要求
本章要求學生掌握變量的存儲類型,作用域,可見性,生命期等概念。(2)重點與難點
本章的重點和難點是變量的存儲類型,作用域,可見性,生命期。
第一節 外部存儲類型 第二節 靜態存儲類型 第三節 作用域 第四節 可見性 第五節 生命期 第六節 頭文件 第七節 多文件結構 第八節 編譯預處理
第七章 數組 2學時(1)教學目的、要求
本章要求學生掌握數組的概念、元素的訪問,及數組的應用。(2)重點與難點
本章的重點和難點是數組元素的訪問,及數組的應用。
第一節 數組定義 第二節 訪問數組元素 第三節 初始化數組 第四節 向函數傳遞數組 第五節 二維數組 第六節 數組應用: 排序
第七節 數組應用: Josephus問題 第八節 數組應用: 矩陣乘法
第八章 指針 2學時(1)教學目的、要求
本章要求學生掌握指針的概念、運算,以及指針與數組和函數的應用。(2)重點與難點
本章的重點和難點是指針的運算,以及指針與數組和函數的關系及應用。
第一節 指針概念 第二節 指針運算 第三節 指針與數組 第四節 堆內存分配 第五節 const指針 第六節 指針與函數 第七節 字符指針 第八節 指針數組 第九節 命令行參數 第十節 函數指針
第九章 引用 2學時(1)教學目的、要求
本章要求學生掌握引用的概念、操作,以及引用作為函數參數的應用。(2)重點與難點
本章的重點和難點是引用的操作,以及引用作為函數參數的應用。
第一節 引用的概念 第二節 引用的操作 第三節 什么能被引用 第四節 用引用傳遞函數參數 第五節 返回多個值 第六節 用引用返回值 第七節 函數調用作為左值 第八節 用const限定引用 第九節 返回堆中變量的引用
第十章 結構 2學時(1)教學目的、要求
本章要求學生掌握結構體概念及其定義,結構體變量和結構體數組的引用,指向結構體變量和數組的指針。(2)重點與難點
本章的重點和難點是結構體數組的引用,指向結構體變量和數組的指針。
第一節 結構 第二節 結構與指針
第三節 結構與數組 第四節 傳遞結構參數 第五節 返回結構 第六節 鏈表結構 第七節 創建與遍歷鏈表 第八節 刪除鏈表結點 第九節 插入鏈表結點
第十節 結構應用: Josephus問題
第十一章 類 4學時(1)教學目的、要求
本章要求學生掌握類的概念、類的定義,及成員函數的調用。了解保護成員和軟件方法的發展必然。(2)重點與難點
本章的重點和難點是類的概念、類的定義,及成員函數的調用。
第一節 從結構到類 第二節 軟件方法的發展必然 第三節 定義成員函數 第四節 調用成員函數 第五節 保護成員 第六節 屏蔽類的內部實現 第七節 再論程序結構
第十二章 構造函數 6學時(1)教學目的、要求
本章要求學生掌握構造、析構函數的使用,以及構造類成員和構造對象的順序。了解重載和默認構造函數的概念(2)重點與難點
本章的重點和難點是構造、析構函數的使用,以及構造類成員和構造對象的順序。
第一節 類與對象
第二節 構造函數的需要性 第三節 構造函數的使用 第四節 析構函數
第五節 帶參數的構造函數 第六節 重載構造函數 第七節 默認構造函數 第八節 類成員初始化困惑 第九節 構造類成員 第十節 構造對象的順序
第十三章 面向對象程序設計 4學時(1)教學目的、要求
本章要求學生掌握結構化和面向對象方法的實現。了解程序效率和維護。(2)重點與難點
本章的重點和難點是結構化和面向對象方法的實現。
第一節 抽象 第二節 分類 第三節 設計和效率 第四節 討論Josephus問題 第五節 結構化方法 第六節 結構化方法的實現 第七節 第八節 第九節
面向對象方法 面向對象方法實現 程序維護
第十四章 堆與拷貝構造函數 6學時(1)教學目的、要求
本章要求學生掌握堆的概念,堆對象,拷貝構造函數及淺拷貝與深拷貝的應用。了解臨時和無名對象。(2)重點與難點
本章的重點和難點是堆的概念,堆對象,拷貝構造函數及淺拷貝與深拷貝的 7 應用。
第一節 關于堆
第二節 需要new和delete的原因 第三節 分配堆對象 第四節 拷貝構造函數 第五節 默認拷貝構造函數 第六節 淺拷貝與深拷貝 第七節 臨時對象 第八節 無名對象
第九節 構造函數用于類型轉換
第十五章 靜態成員與友員 2學時(1)教學目的、要求
本章要求學生掌握懂得怎樣聲明一個靜態數據成員,怎樣使用靜態成員函數以及靜態成員函數為什么與特定對象無關。(2)重點與難點
本章的重點和難點是靜態數據成員和靜態成員函數的使用,以及友元的概念。
第一節 靜態成員的需要性 第二節 靜態成員的使用 第三節 靜態數據成員 第四節 靜態成員函數 第五節 需要友員的原因 第六節 友員的使用
第十六章 繼承 8學時(1)教學目的、要求
本章要求學生掌握繼承的概念,工作方式,以及多態性和虛函數的概念。了解抽象類和類的冗余。(2)重點與難點
本章的重點和難點是繼承的概念,工作方式,以及多態性和虛函數的概念。
第一節 繼承的概念 第二節 繼承的工作方式 第三節 派生類的構造 第四節 繼承與組合 第五節 多態性
第六節 多態的思考方式 第七節 多態性如何工作 第八節 不恰當的虛函數 第九節 虛函數的限制 第十節 類的冗余
第十一節 克服冗余帶來的問題 第十二節 類的分解 第十三節 抽象類
第十四節 由抽象類派生具體類 第十五節 純虛函數的需要性
第十七章 多重繼承 6學時(1)教學目的、要求
本章要求學生掌握多繼承的概念,工作方式以及多繼承的構造順序和訪問控制。了解虛擬繼承、保護和私有繼承。(2)重點與難點
本章的重點和難點是多繼承的概念,工作方式以及多繼承的構造順序和訪問控制。
第一節 多繼承如何工作 第二節 繼承的模糊性 第三節 虛擬繼承
第四節 多繼承的構造順序 第五節 繼承的訪問控制 第六節 保護繼承與私有繼承
第十八章 運算符重載 4學時(1)教學目的、要求 本章要求學生掌握運算符重載的需要性和應用。了解增量運算符的重載。(2)重點與難點
本章的重點和難點是運算符重載的需要性和應用。
第一節 運算符重載的需要性 第二節 如何重載運算符 第三節 值返回與引用返回 第四節 運算符作成員函數 第五節 重載增量運算符 第六節 轉換運算符 第七節 賦值運算符
四、主要教科書和參考書
1、《C++程序設計教程》
2、《C++程序設計題解與上機指導》
3、《C++語言程序設計》
4、《C++語言與面向對象程序設計》
5、《C++語言程序設計》
錢能 錢能
潭浩強 鄭莉
呂鳳翥清華大學出版社
清華大學出版社 清華大學出版社 清華大學出版社
清華大學出版社
責任撰寫人:陳桂芬
第四篇:《面向對象程序設計》教學大綱
《面向對象程序設計》教學大綱
課程名稱:信息內容安全 課程代碼:042504 總 學 時:64 學
分:2
課程類型:專業必修課 適用專業: 信息安全專業 制 訂 人:徐雪飛 審 定 人:肖
文 制訂日期:2015年3月
《面向對象程序設計》教學大綱
一、課程性質、目的和任務
C#語言是.NET平臺上的核心開發語言,具有簡單易學、類型安全、完全面向對象等特性,是一門面向現代軟件工程的主流程序設計語言。本課程系統地介紹C#語言的結構化設計、面向對象、泛型、商業開發等功能要素,使學生在掌握程序設計的基本方法和技巧,培養利用計算機解決實際問題的能力,以滿足專業課應用和繼續學習的需要。
二、教學基本要求
通過學習本課程,要求學生能夠熟悉C#語言的語法和類型系統,掌握面向對象程序設計和泛型程序設計的基本方法,并具有商業應用開發的基本能力,能靈活地使用C#語言及Visual Studio.NET開發環境解決一般性編程問題。
三、教學內容
1、緒論(教學2學時,上機2學時)
教學內容:
(1).NET技術和框架結構簡介(2)C#語言概貌
(3)面向對象的基本概念
教學目的:使學生對.NET平臺和C#有一個綜合性的了解。
2、C#語法基礎(教學6學時,上機4學時)
教學內容:(1)數據類型(2)值和方法(3)表達式(4)控制語句
教學目的:使學生基本掌握C#語言的類型系統和基本語法結構。
3、類和繼承(教學4學時,上機4學時)
教學內容:
(1)類的數據成員和各種函數成員(2)繼承和多態(3).NET常用類型(4)接口與實現
教學目的:使學生進一步掌握類型的定義和使用方法,掌握.NET類庫中一些典型類的用法;深入理解繼承和多態性的概念,從而掌握面向對象軟件可重用性的關鍵技術。
4、Windows窗體界面(教學2學時,上機2學時)
教學內容:
(1)Windows Form編程技術(2)WPF編程技術
(3)繪圖、動畫和媒體 教學目的:使學生掌握Windows程序界面設計的基本要素,能夠使用Windows Form和WPF編程技術開發交互式圖形界面應用程序。
5、泛型(教學4學時,上機2學時)
教學內容:
(1)泛型的定義與使用(2)元組和可空類型的用法(3)泛型集合與循環遍歷
(4)匿名方法和Lambda表達式
教學目的:使學生掌握泛型程序設計的基本概念,能夠利用類型抽象和操作抽象開發出高可適的軟件程序。
6、異常處理(教學1學時)
教學內容:
(1)C#異常處理結構
(2)主動引發異常和自定義異常
教學目的:使學生能夠通過異常處理來提高程序可靠性。
7、文件操作(教學1學時,上機1學時)
教學內容:
(1)驅動器、目錄和文件(2)文件流和數據流
教學目的:使學生掌握在C#程序中進行磁盤文件存取的基本技術。
8、數據庫訪問(教學2學時,上機1學時)
教學內容:
(1)ADO.NET聯機數據訪問(2)ADO.NET脫機數據訪問
教學目的:使學生掌握C#程序中進行數據庫存取的基本技術。
9、綜合練習(教學2學時,上機8學時)教學內容:
(1)進程和線程
(2)ASP.NET網絡程序設計
(3)采用案例驅動的方式,綜合運用C#編程技術開發較為完整的軟件程序。教學目的:提高學生軟件設計的綜合能力。
五、教學方法與手段
講授法、討論法、多媒體教學、實驗教學。
六、考核方式
考試成績占70%,平時成績占30%。閉卷考試。
七、推薦教材和教學參考書
教
材:《C#程序設計基礎》第3版,鄭宇軍,石海鶴,王衛紅,清華大學出版社,2014年。參考書:
1、《C#應用開發與實踐》,曾憲權、李梅蓮 等,清華大學出版社,2015年
2、《C#編程實戰寶典》,付強、丁寧 等,清華大學出版社,2014年。
第五篇:面向對象程序設計教學大綱
面向對象程序設計(專業限選課)Object-Oriented Programming 【課程編號】XZ26175 【學分數】3 【學時數】60=38+22
【課程類別】專業限選 【編寫日期】2010.3.30 【先修課程】C語言程序設計、計算機應用基礎
【適用專業】通信工程
一、教學目的、任務
通過學習,使學生深刻理解和領會面向對象的基本思想和基本特征,掌握面向對象程序設計語言C++語言的基本概念、基本語法以及面向對象程序設計的基本方法;使學生養成面向對象的編程思維習慣。
二、課程教學的基本要求
1.理解面向對象的基本概念和使用面向對象技術進行程序設計的基本思想 2.能比較熟練地用C++語言進行一般面向對象的程序設計
3.初步掌握面向對象編程環境Visual C++的使用
三、教學內容和學時分配(2 + 5 + 14 + 9 + 12 + 7 + 6 + 5 = 60)第一章 面向對象程序設計概述 2 學時(課堂講授學時2)主要內容:
1.什么是面向對象程序設計 2.對象與類 3.封裝 4.繼承性 5.多態性
6.面向對象程序設計的語言 教學要求:
了解什么是面向對象程序設計;掌握對象和類的基本概念;理解面向對象程序設計的基本特征。其它教學環節:
安排課外了解面向對象程序設計方面的基本概念。第二章 C++概述 5學時(課堂講授學時2+課程實驗學時3)主要內容:
1.C++的起源和特點 2.C++源程序的構成
3.C++在非面向對象方面的一些特性 教學要求:
cin和cout的使用;new和delete的運算符的使用;函數的重載;帶缺省參數的函數;引用; VC++的使用。其它教學環節:
實驗1: C++程序設計基礎練習。實驗目的和要求:
1.掌握C++程序的基本格式和規范,學會編寫簡單的C++程序。2.掌握C++程序結構的特點。
3.熟悉C++程序基本的輸入輸出操作。
4.掌握C++數據類型常量和變量以及修飾符的使用方法。5.熟悉作用域運算符的功能和基本使用方法。6.掌握C++內存的動態分配和釋放方法。7.理解引用的概念,掌握引用的使用方法。
第三章 類和對象 14學時(課堂講授學時8+課程實驗學時6)主要內容:
1.類與對象的基本概念 2.構造函數與析構函數 3.對象數組與對象指針 4.向函數傳遞對象 5.靜態成員 6.友元
7.類對象作為成員 8.常類型 教學要求:
類的聲明;對象定義;對象的成員的訪問。訪問屬性的理解和運用;構造函數和析構函數的定義;對象數組的定義和使用;this的指針的理解和使用;類的成員類型為其他類時如何理解和使用;靜態成員的理解和運用。提供友元機制的目的;友元聲明方法;提供常類型機制的目的;各種不同的常類型運作方式。其它教學環節:
實驗2:類和對象。實驗目的和要求:
1.掌握類、類的數據成員、類的成員函數的定義方式。2.理解類成員的訪問控制方式。
3.掌握對象的定義和操作對象的方法。
4.理解構造函數和析構函數的定義與執行過程。5.掌握重載構造函數的方法。6.了解拷貝構造函數的方法。實驗3:對象數組和對象指針。實驗目的和要求:
1.掌握對象數組的定義和使用方法。
2.理解對象指針的概念,學會用指針引用對象。3.了解this指針的工作方式。
4.掌握靜態數據成員和靜態成員函數的基本使用方法。5.理解友元與友元函數的作用,掌握其使用方法。
第四章 派生類和繼承 9學時(課堂講授學時6+課程實驗學時3)主要內容:
1.派生類的概念
2.派生類的構造函數和析構函數 3.基類成員的訪問 4.多重繼承 5.賦值兼容規則 教學要求:
基類和派生類的基本概念;繼承成員的訪問規則;派生類構造函數和析構函數的運行規則;多重繼承的基本概念;多重繼承中同名二義性如何消除;引入虛基類的目的;繼承類和派生類之間相互賦值規則用。
其它教學環節:
實驗4:派生類與繼承。實驗目的和要求:
1.理解類的繼承的概念,能夠定義和使用類的繼承關系。2.掌握派生類的聲明和定義方法。
3.掌握公有派生和私有派生的訪問特性。4.學習虛基類在解決問題中的作用。
第五章 多態性 12學時(課堂講授學時8+課程實驗學時4)主要內容:
1.編譯時的多態性與運行時的多態性 2.函數重載 3.運算符重載 4.類型轉換 5.虛函數 教學要求:
多態的基本概念;實現運算符重載的方法(成員函數);實現運算符重載的方法(友元函數);靜態聯編和動態聯編的基本概念;虛函數的作用;虛函數的運用。其它教學環節:
實驗5:虛函數和多態性。實驗目的和要求:
1.理解編譯時的多態性和運行時的多態性。2.掌握運算符重載的基本方法。3.掌握虛函數的定義和使用方法。
第六章 模板 7學時(課堂講授學時4+課程實驗學時3)主要內容:
1.模板的概念
2.函數模板與模板函數 3.類模板和模板類 教學要求:
模板的基本概念;為什么要使用模板;函數模板和模板函數的基本概念;函數模板的聲明和使用;類模板和模板類的基本概念。其它教學環節:
實驗6:函數模板與類模板。實驗目的和要求:
1.掌握函數模板及其聲明方法。2.掌握模板函數及其生成方法。3.學習類模板的聲明與使用方法。
第七章 C++的I/O流類庫 6學時(課堂講授學時3+課程實驗學時3)主要內容:
1.C++建立類類庫的目的 2.預定義類型的輸入輸出
3.用戶自定義類型的輸入和輸出 教學要求:
掌握在各種情況下的<<和>>運算符的重載。其它教學環節:
實驗7:I/O流類庫。實驗目的和要求:
1.掌握流及流類庫的作用。
2.掌握流類庫中常用的類及其成員函數的使用方法。3.掌握重載“<<”和“>>”的方法。
4.掌握控制輸出寬度的函數width和setw。
5.掌握函數setosflags和resetiosflags設置和恢復對齊方式、精度、大小寫等。
研究教學內容 5學時(課程講解和討論學時)
程序綜合設計:按照面向對象程序開發的原則和方法,利用一個實例來講解面向對象程序設計的整個過程,然后要求學生根據自己的開發經驗進行分組討論,從而幫助學生進一步理解和熟悉面向對象程序設計方法。
四、教學重點、難點及教學方法
重點:類和對象的基本概念;對象定義;對象的成員的訪問。訪問屬性的理解和運用;構造函數和析構函數的定義;對象數組的定義和使用;this的指針的理解和使用。基類和派生類的基本概念;繼承成員的訪問規則;派生類構造函數和析構函數的運行規則。多態的基本概念;函數的重載。
難點:多重繼承;虛函數;模板。
教學方法:課堂授課采用多媒體教學和分組討論的方法,實驗采用任務驅動方式。通過未來愿景描述和學以致用的方法來提高學生的學習興趣,通過分組交流和師生積極互動的方式提高學生學習本門課程的學習能力。
五、考核方式及成績評定方式:考試
六、教材及參考書目
推薦教材:
[1] 《C++面向對象程序設計》,陳維興,林小茶,清華大學出版社,第2版,2004 參考書:
[1] 《C++面向對象程序設計習題解析與上機指導》,陳維興,清華大學出版社,2003 [2] 《C++程序設計基礎》,周靄如,電子工業出版社,2003 [3] 《C++語言程序設計》,鄭莉,清華大學出版社,2005 修(制)訂人: 審核人:
2010年 3 月30
日