一、課程的概況和總體設(shè)計(jì)
《c++程序設(shè)計(jì)》是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)本科生的一門(mén)必修課程。c++軟件開(kāi)發(fā)方法是吸收了軟件工程領(lǐng)域有益的概念和有效的方法而發(fā)展起來(lái)的一種軟件開(kāi)發(fā)方法。它集抽象性、封裝性、繼承性和多態(tài)性于一體,可以幫助人們開(kāi)發(fā)出模塊化、數(shù)據(jù)抽象程度高的,體現(xiàn)信息隱蔽、可復(fù)用、易修改、易擴(kuò)充等特性的程序。
本課程主要介紹c++程序設(shè)計(jì)的方法和C++語(yǔ)言的基本概念。以C++語(yǔ)言中的c++機(jī)制為主。學(xué)習(xí)者在學(xué)習(xí)過(guò)程中可以通過(guò)大量的程序?qū)嵗拖嚓P(guān)練習(xí),逐步掌握C++的面向過(guò)程和c++的功能,從而掌握c++程序設(shè)計(jì)的基本知識(shí)和基本技能
二、教學(xué)內(nèi)容
(一)c++的程序設(shè)計(jì)方法和C++簡(jiǎn)介:
c++程序設(shè)計(jì)的基本思想及基本概念:對(duì)程序的的質(zhì)量要求;程序的模塊化和結(jié)構(gòu)化;
為什么要c++:從面向過(guò)程到c++
C++語(yǔ)言發(fā)展的歷史:c++語(yǔ)言分類;C++中支持c++的特點(diǎn)
c++的軟件開(kāi)發(fā)環(huán)境與Visual C++
(二)程序設(shè)計(jì)基礎(chǔ):
1. C++的程序結(jié)構(gòu)
程序從概念到執(zhí)行:編寫(xiě)一個(gè)C++程序;注釋;文件包含預(yù)處理語(yǔ)句#include;條件預(yù)處理語(yǔ)句;宏替換語(yǔ)句;main函數(shù);從main中返回;終端輸出輸入。
2.C++的數(shù)據(jù)類型:基本數(shù)據(jù)類型、復(fù)合數(shù)據(jù)類型和引申數(shù)據(jù)類型
基本數(shù)據(jù)類型:整型、浮點(diǎn)型、字符型、雙精度浮點(diǎn)型和無(wú)值(void)
引申數(shù)據(jù)類型:指針、引用、數(shù)組(本章僅僅提及)
復(fù)合數(shù)據(jù)類型:結(jié)構(gòu)、聯(lián)合、類、位域、枚舉(本章僅僅提及)
3. 常量和變量;
常量:整型常量;浮點(diǎn)型常量;字符型常量;枚舉型常量
變量:變量的說(shuō)明;變量初始化;變量的修飾符
4.表達(dá)式與操作符
什么是表達(dá)式
運(yùn)算符:
賦值運(yùn)算符;賦值中的類型轉(zhuǎn)換;多重賦值;
算術(shù)運(yùn)算符;自增與自減運(yùn)算符;
關(guān)系和邏輯運(yùn)算符;
位操作符;
條件操作符;
指針操作符
編譯時(shí)的操作符sizeof;
其他:逗號(hào)(,)操作符;點(diǎn)(。)和箭頭(->)操作符;括號(hào)[ ]和( )操作符;
操作符優(yōu)先級(jí)
表達(dá)式的求值順序;表達(dá)式中的類型轉(zhuǎn)換
5.程序設(shè)計(jì)風(fēng)格
(三)語(yǔ)句與程序流程:
語(yǔ)句:復(fù)合語(yǔ)句和塊結(jié)構(gòu)。
分支語(yǔ)句:if語(yǔ)句;嵌套的if語(yǔ)句;階梯型if-then-else語(yǔ)句;條件表達(dá)式;switch開(kāi)關(guān)語(yǔ)句;嵌套的switch語(yǔ)句。
迭代語(yǔ)句:for循環(huán)及其變化形式;無(wú)限循環(huán);沒(méi)有循環(huán)體的for循環(huán);while循環(huán);do-while循環(huán)
轉(zhuǎn)移語(yǔ)句:return語(yǔ)句;goto語(yǔ)句;break語(yǔ)句;exit ( )語(yǔ)句;continue語(yǔ)句。
(四)函數(shù):
模塊化程序設(shè)計(jì)介紹
函數(shù)的一般形式
函數(shù)的參數(shù):傳值調(diào)用和引用調(diào)用;const參數(shù);數(shù)組參數(shù);引用參數(shù);缺省參數(shù);void參數(shù)
函數(shù)的返回值:返回語(yǔ)句:返回值;返回指針;返回引用;void返回值
遞歸函數(shù)
內(nèi)聯(lián)函數(shù)
函數(shù)和變量作用域
函數(shù)重載
函數(shù)指針
函數(shù)原型與強(qiáng)類型檢查
main的參數(shù)傳遞與返回
(五)類與對(duì)象:
復(fù)合數(shù)據(jù)類型:結(jié)構(gòu)、聯(lián)合、位域和類
類的定義
類的成員變量和成員函數(shù),存取級(jí)別,作用域分辨符
對(duì)象和類的關(guān)系
類的構(gòu)造函數(shù)和析構(gòu)函數(shù):對(duì)象的初始化;構(gòu)造函數(shù)的定義;析構(gòu)函數(shù);類/對(duì)象數(shù)組;特殊的構(gòu)造函數(shù)X(const X X
靜態(tài)類成員:靜態(tài)成員變量;靜態(tài)成員函數(shù);
const成員:常量成員變量;常量成員函數(shù)
內(nèi)聯(lián)函數(shù):在類中定義內(nèi)聯(lián)函數(shù)
友元:友元函數(shù);友元類
this指針
嵌套類與局部類
在函數(shù)中對(duì)象傳遞的機(jī)制
類屬性:類屬函數(shù);類屬類
結(jié)構(gòu)與類:結(jié)構(gòu)元素的引用與賦值;結(jié)構(gòu)數(shù)組;向函數(shù)傳遞結(jié)構(gòu);結(jié)構(gòu)指針;結(jié)構(gòu)中的數(shù)組和結(jié)構(gòu);結(jié)構(gòu)作為類的定義
聯(lián)合與類:聯(lián)合作為類的定義;匿名聯(lián)合類的成員變量和成員函數(shù);
(六)數(shù)組、指針和引用:
對(duì)象數(shù)組:創(chuàng)建初始化和未初始化的數(shù)組;數(shù)組與指針;數(shù)組賦值;對(duì)象數(shù)組
指針:指針變量的定義、初始化;指針運(yùn)算;指針數(shù)組;指向?qū)ο蟮闹羔?;字符串指?BR> 引用:引用參數(shù);向?qū)ο髠鬟f引用;返回引用;引用與指針的關(guān)系;引用的常用方法
C++的動(dòng)態(tài)存儲(chǔ)分配:動(dòng)態(tài)空間的申請(qǐng)與釋放
(七)繼承性與派生類:
類的層次概念:成員的繼承;將概念和實(shí)現(xiàn)轉(zhuǎn)變?yōu)轭惖膶哟?BR> 單繼承:定義格式;成員存取控制;受保護(hù)基類的繼承;向基類構(gòu)造函數(shù)傳遞參數(shù)
多繼承:多繼承的定義方式;虛基類;二義性問(wèn)題;多繼承的應(yīng)用
(八)多態(tài)性和虛函數(shù):
函數(shù)重載:函數(shù)重載與二義性;重載構(gòu)造函數(shù);求重載函數(shù)的地址
運(yùn)算符重載:雙目運(yùn)算符重載;單目運(yùn)算符重載;建立增值和減值運(yùn)算符的前綴和后綴形式;重載縮寫(xiě)運(yùn)算符;引用在運(yùn)算符重載中的應(yīng)用;運(yùn)算符重載的限制。
使用friend重載運(yùn)算符:使用friend重載++和——;friend operator函數(shù)的作用
重載new和delete:重載數(shù)組的new和delete
重載某些特殊的運(yùn)算符:重載[ ];重載( );重載->
重載逗號(hào)運(yùn)算符
虛函數(shù):繼承虛屬性;虛函數(shù)的層次性
純虛函數(shù):抽象類
早期和后期聯(lián)編
(九)C++的I/O系統(tǒng):
流的定義;基本的流類:C++的預(yù)定義流;
格式化的I/O
重載>:創(chuàng)建自己的插入符;創(chuàng)建自己的提取符
創(chuàng)建自己的操縱符函數(shù):創(chuàng)建無(wú)參數(shù)的操縱符;創(chuàng)建帶參數(shù)的操縱符
文件與文件流
文件操作:打開(kāi)和關(guān)閉、文件的定位與隨機(jī)存取、文件的讀寫(xiě)
(十)模板
1.模板的概念
模板的含義;模板的一般定義形式;模板函數(shù)與模板類;模板的作用;隊(duì)列類模板和模板類及對(duì)象
2.模板的參數(shù)(對(duì)非類型參數(shù)只參考就可以了)
類型參數(shù)和非類型參數(shù);參數(shù)的默認(rèn)值
3.模板的使用
模板的使用;隊(duì)列類模板;模板的實(shí)例化
4.類模板中的友元(參考)
類模板中的友元定義;
5.利用模板進(jìn)行程序設(shè)計(jì)舉例
datalist類模板的定義;datalist類的操作的實(shí)現(xiàn);int的datalist類的實(shí)例
《c++程序設(shè)計(jì)》是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)本科生的一門(mén)必修課程。c++軟件開(kāi)發(fā)方法是吸收了軟件工程領(lǐng)域有益的概念和有效的方法而發(fā)展起來(lái)的一種軟件開(kāi)發(fā)方法。它集抽象性、封裝性、繼承性和多態(tài)性于一體,可以幫助人們開(kāi)發(fā)出模塊化、數(shù)據(jù)抽象程度高的,體現(xiàn)信息隱蔽、可復(fù)用、易修改、易擴(kuò)充等特性的程序。
本課程主要介紹c++程序設(shè)計(jì)的方法和C++語(yǔ)言的基本概念。以C++語(yǔ)言中的c++機(jī)制為主。學(xué)習(xí)者在學(xué)習(xí)過(guò)程中可以通過(guò)大量的程序?qū)嵗拖嚓P(guān)練習(xí),逐步掌握C++的面向過(guò)程和c++的功能,從而掌握c++程序設(shè)計(jì)的基本知識(shí)和基本技能
二、教學(xué)內(nèi)容
(一)c++的程序設(shè)計(jì)方法和C++簡(jiǎn)介:
c++程序設(shè)計(jì)的基本思想及基本概念:對(duì)程序的的質(zhì)量要求;程序的模塊化和結(jié)構(gòu)化;
為什么要c++:從面向過(guò)程到c++
C++語(yǔ)言發(fā)展的歷史:c++語(yǔ)言分類;C++中支持c++的特點(diǎn)
c++的軟件開(kāi)發(fā)環(huán)境與Visual C++
(二)程序設(shè)計(jì)基礎(chǔ):
1. C++的程序結(jié)構(gòu)
程序從概念到執(zhí)行:編寫(xiě)一個(gè)C++程序;注釋;文件包含預(yù)處理語(yǔ)句#include;條件預(yù)處理語(yǔ)句;宏替換語(yǔ)句;main函數(shù);從main中返回;終端輸出輸入。
2.C++的數(shù)據(jù)類型:基本數(shù)據(jù)類型、復(fù)合數(shù)據(jù)類型和引申數(shù)據(jù)類型
基本數(shù)據(jù)類型:整型、浮點(diǎn)型、字符型、雙精度浮點(diǎn)型和無(wú)值(void)
引申數(shù)據(jù)類型:指針、引用、數(shù)組(本章僅僅提及)
復(fù)合數(shù)據(jù)類型:結(jié)構(gòu)、聯(lián)合、類、位域、枚舉(本章僅僅提及)
3. 常量和變量;
常量:整型常量;浮點(diǎn)型常量;字符型常量;枚舉型常量
變量:變量的說(shuō)明;變量初始化;變量的修飾符
4.表達(dá)式與操作符
什么是表達(dá)式
運(yùn)算符:
賦值運(yùn)算符;賦值中的類型轉(zhuǎn)換;多重賦值;
算術(shù)運(yùn)算符;自增與自減運(yùn)算符;
關(guān)系和邏輯運(yùn)算符;
位操作符;
條件操作符;
指針操作符
編譯時(shí)的操作符sizeof;
其他:逗號(hào)(,)操作符;點(diǎn)(。)和箭頭(->)操作符;括號(hào)[ ]和( )操作符;
操作符優(yōu)先級(jí)
表達(dá)式的求值順序;表達(dá)式中的類型轉(zhuǎn)換
5.程序設(shè)計(jì)風(fēng)格
(三)語(yǔ)句與程序流程:
語(yǔ)句:復(fù)合語(yǔ)句和塊結(jié)構(gòu)。
分支語(yǔ)句:if語(yǔ)句;嵌套的if語(yǔ)句;階梯型if-then-else語(yǔ)句;條件表達(dá)式;switch開(kāi)關(guān)語(yǔ)句;嵌套的switch語(yǔ)句。
迭代語(yǔ)句:for循環(huán)及其變化形式;無(wú)限循環(huán);沒(méi)有循環(huán)體的for循環(huán);while循環(huán);do-while循環(huán)
轉(zhuǎn)移語(yǔ)句:return語(yǔ)句;goto語(yǔ)句;break語(yǔ)句;exit ( )語(yǔ)句;continue語(yǔ)句。
(四)函數(shù):
模塊化程序設(shè)計(jì)介紹
函數(shù)的一般形式
函數(shù)的參數(shù):傳值調(diào)用和引用調(diào)用;const參數(shù);數(shù)組參數(shù);引用參數(shù);缺省參數(shù);void參數(shù)
函數(shù)的返回值:返回語(yǔ)句:返回值;返回指針;返回引用;void返回值
遞歸函數(shù)
內(nèi)聯(lián)函數(shù)
函數(shù)和變量作用域
函數(shù)重載
函數(shù)指針
函數(shù)原型與強(qiáng)類型檢查
main的參數(shù)傳遞與返回
(五)類與對(duì)象:
復(fù)合數(shù)據(jù)類型:結(jié)構(gòu)、聯(lián)合、位域和類
類的定義
類的成員變量和成員函數(shù),存取級(jí)別,作用域分辨符
對(duì)象和類的關(guān)系
類的構(gòu)造函數(shù)和析構(gòu)函數(shù):對(duì)象的初始化;構(gòu)造函數(shù)的定義;析構(gòu)函數(shù);類/對(duì)象數(shù)組;特殊的構(gòu)造函數(shù)X(const X X
靜態(tài)類成員:靜態(tài)成員變量;靜態(tài)成員函數(shù);
const成員:常量成員變量;常量成員函數(shù)
內(nèi)聯(lián)函數(shù):在類中定義內(nèi)聯(lián)函數(shù)
友元:友元函數(shù);友元類
this指針
嵌套類與局部類
在函數(shù)中對(duì)象傳遞的機(jī)制
類屬性:類屬函數(shù);類屬類
結(jié)構(gòu)與類:結(jié)構(gòu)元素的引用與賦值;結(jié)構(gòu)數(shù)組;向函數(shù)傳遞結(jié)構(gòu);結(jié)構(gòu)指針;結(jié)構(gòu)中的數(shù)組和結(jié)構(gòu);結(jié)構(gòu)作為類的定義
聯(lián)合與類:聯(lián)合作為類的定義;匿名聯(lián)合類的成員變量和成員函數(shù);
(六)數(shù)組、指針和引用:
對(duì)象數(shù)組:創(chuàng)建初始化和未初始化的數(shù)組;數(shù)組與指針;數(shù)組賦值;對(duì)象數(shù)組
指針:指針變量的定義、初始化;指針運(yùn)算;指針數(shù)組;指向?qū)ο蟮闹羔?;字符串指?BR> 引用:引用參數(shù);向?qū)ο髠鬟f引用;返回引用;引用與指針的關(guān)系;引用的常用方法
C++的動(dòng)態(tài)存儲(chǔ)分配:動(dòng)態(tài)空間的申請(qǐng)與釋放
(七)繼承性與派生類:
類的層次概念:成員的繼承;將概念和實(shí)現(xiàn)轉(zhuǎn)變?yōu)轭惖膶哟?BR> 單繼承:定義格式;成員存取控制;受保護(hù)基類的繼承;向基類構(gòu)造函數(shù)傳遞參數(shù)
多繼承:多繼承的定義方式;虛基類;二義性問(wèn)題;多繼承的應(yīng)用
(八)多態(tài)性和虛函數(shù):
函數(shù)重載:函數(shù)重載與二義性;重載構(gòu)造函數(shù);求重載函數(shù)的地址
運(yùn)算符重載:雙目運(yùn)算符重載;單目運(yùn)算符重載;建立增值和減值運(yùn)算符的前綴和后綴形式;重載縮寫(xiě)運(yùn)算符;引用在運(yùn)算符重載中的應(yīng)用;運(yùn)算符重載的限制。
使用friend重載運(yùn)算符:使用friend重載++和——;friend operator函數(shù)的作用
重載new和delete:重載數(shù)組的new和delete
重載某些特殊的運(yùn)算符:重載[ ];重載( );重載->
重載逗號(hào)運(yùn)算符
虛函數(shù):繼承虛屬性;虛函數(shù)的層次性
純虛函數(shù):抽象類
早期和后期聯(lián)編
(九)C++的I/O系統(tǒng):
流的定義;基本的流類:C++的預(yù)定義流;
格式化的I/O
重載>:創(chuàng)建自己的插入符;創(chuàng)建自己的提取符
創(chuàng)建自己的操縱符函數(shù):創(chuàng)建無(wú)參數(shù)的操縱符;創(chuàng)建帶參數(shù)的操縱符
文件與文件流
文件操作:打開(kāi)和關(guān)閉、文件的定位與隨機(jī)存取、文件的讀寫(xiě)
(十)模板
1.模板的概念
模板的含義;模板的一般定義形式;模板函數(shù)與模板類;模板的作用;隊(duì)列類模板和模板類及對(duì)象
2.模板的參數(shù)(對(duì)非類型參數(shù)只參考就可以了)
類型參數(shù)和非類型參數(shù);參數(shù)的默認(rèn)值
3.模板的使用
模板的使用;隊(duì)列類模板;模板的實(shí)例化
4.類模板中的友元(參考)
類模板中的友元定義;
5.利用模板進(jìn)行程序設(shè)計(jì)舉例
datalist類模板的定義;datalist類的操作的實(shí)現(xiàn);int的datalist類的實(shí)例