第一篇:面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)驗(yàn)教學(xué)大綱
《面向?qū)ο蟪绦蛟O(shè)計(jì)》
實(shí)驗(yàn)指導(dǎo)書
《面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)驗(yàn)》課程組
目錄
實(shí)驗(yàn)預(yù)備 實(shí)驗(yàn)環(huán)境和工具使用,多文件應(yīng)用程序的開發(fā)過程 實(shí)驗(yàn)一 類與對(duì)象
實(shí)驗(yàn)二 實(shí)驗(yàn)三 實(shí)驗(yàn)四 實(shí)驗(yàn)五 實(shí)驗(yàn)六 實(shí)驗(yàn)七 I/O實(shí)驗(yàn)八
構(gòu)造函數(shù)、析構(gòu)函數(shù) 繼承-單繼承 繼承-多繼承
多態(tài)-運(yùn)算符重載
多態(tài)-虛函數(shù) 流與文件 模板
實(shí)驗(yàn)預(yù)備 實(shí)驗(yàn)環(huán)境和工具使用 多文件應(yīng)用程序的開發(fā)過程
一、實(shí)驗(yàn)?zāi)康呐c要求
Visual C++提供了一個(gè)集源程序編輯、代碼編譯與調(diào)試于一體的開發(fā)環(huán)境,這個(gè)環(huán)境稱為集成開發(fā)環(huán)境,對(duì)于集成開發(fā)環(huán)境的熟悉程度直接影響程序設(shè)計(jì)的效率,本實(shí)驗(yàn)通過學(xué)習(xí)Visual C++ 6.0界面的常用組成情況,并學(xué)習(xí)各種常用的窗口、菜單、按鈕的意義和功能,并通過一些簡單的程序設(shè)計(jì),目的是使學(xué)生對(duì)用戶界面、菜單和工具欄有一個(gè)全面的了解并掌握主要菜單命令。
? 了解Visual C++集成開發(fā)環(huán)境的界面組成; ? 理解菜單命令的含義 ? 掌握“New:”菜單命令、“Breakpoints”菜單命令、“Build”菜單命令、“Source Brower”菜單命令、工具欄的定制和修改、聯(lián)機(jī)幫助。? 簡單的程序設(shè)計(jì)
二、實(shí)驗(yàn)設(shè)備與平臺(tái)
實(shí)驗(yàn)設(shè)備要求每個(gè)學(xué)生一臺(tái)電腦,其中運(yùn)行環(huán)境為VC++ 6.0系統(tǒng)。
三、實(shí)驗(yàn)內(nèi)容及步驟 1.上機(jī)實(shí)驗(yàn)內(nèi)容
? ? ? ? ? ? ? ? Visual C++集成開發(fā)環(huán)境的用戶界面識(shí)別; 新文件、新工程項(xiàng)目、工作區(qū)的創(chuàng)建; 設(shè)置、查看和刪除斷點(diǎn); 編譯和運(yùn)行程序; 瀏覽資源信息;
工具欄的定制和修改; 聯(lián)機(jī)幫助的使用;
熟悉Visual C++編寫控制臺(tái)模式程序的方法; 上機(jī)輸入例題,調(diào)試并運(yùn)行,并觀察結(jié)果; ? 上機(jī)編寫一個(gè)程序
實(shí)驗(yàn)1調(diào)試并編譯程序。
在Visual C++下,編寫控制臺(tái)模式的程序和在DOS下編寫程序相似,具有簡單方便的特點(diǎn),一般用于后臺(tái)程序的編寫。控制臺(tái)模式下程序的編寫有兩種方法,一是創(chuàng)建一個(gè)C++源程序文件,二是創(chuàng)建一個(gè)控制臺(tái)模式的工程。
⑴ 創(chuàng)建一個(gè)C++源程序文件
① 啟動(dòng)Visual C++,單擊“File”菜單下的“New”菜單命令,出現(xiàn)“New”對(duì)話框。然后選擇“Files”選項(xiàng)卡,在此選項(xiàng)卡的左側(cè),單擊“C++ Source Files”:在選項(xiàng)卡的右側(cè),選擇源程序存放的位置(location)以及源程序文件名(File),然后單擊【OK】按鈕。注意C++源程序文件的擴(kuò)展名為.cpp。
② 在編輯區(qū)輸入源程序,程序內(nèi)容如下:
#include
(Build)按鈕或者選擇“Build”菜單命令,系統(tǒng)提示是否創(chuàng)建一個(gè)默認(rèn)的工程工作區(qū),單擊【是】按鈕即可。④ 系統(tǒng)開始編譯源程序并鏈接相應(yīng)的文件,如果沒有錯(cuò)誤則在集成開發(fā)環(huán)境下方的狀態(tài)欄中出現(xiàn)下列提示“0error(s),0warning(s)”,此時(shí)可以按
① 啟動(dòng)Visual C++,單擊“File”菜單下的“New”菜單命令,出現(xiàn)“New”對(duì)話框。然后選擇“Projects”選項(xiàng)卡,在此選項(xiàng)卡的左側(cè),單擊“Win32 Console Application”;在選項(xiàng)卡的右側(cè),選擇工程文件存放的位置(location)以及工程文件名(Project Name)。然后單擊【OK】按鈕。
② 在“Win32 Console Application-Step 1 of 1”對(duì)話框中選擇應(yīng)用程序的類型“An empty project”,單擊【Finish】按鈕。③ 在集成開發(fā)環(huán)境的左側(cè)單擊“File View”屬性頁,右鍵單擊“Source Files”,選擇“Add Files to Folder?”。在“文件名”中填入文件名,此時(shí)也可以選擇存在的文件。
④ 此時(shí)在“Source Files”左側(cè)出現(xiàn)一個(gè)加號(hào),單擊加號(hào),出現(xiàn)新的源程序文件“1_1.cpp”,雙擊此文件,在集成開發(fā)環(huán)境的右側(cè)輸入例1_1.⑤ 按照創(chuàng)建一個(gè)C++源程序文件的第④個(gè)步驟編譯和運(yùn)行程序。
圖1-1 向工程中添加源程序文件
圖1-2 選擇添加的源程序文件的文件名與類型
實(shí)驗(yàn)一 類與對(duì)象
一、實(shí)驗(yàn)?zāi)康呐c要求
(1)掌握類和對(duì)象的概念、定義和使用方法。(2)掌握不同特性對(duì)象成員的訪問方法
二、實(shí)驗(yàn)設(shè)備與平臺(tái)
實(shí)驗(yàn)設(shè)備要求每個(gè)學(xué)生一臺(tái)電腦,其中運(yùn)行環(huán)境為VC++ 6.0系統(tǒng)。
三、實(shí)驗(yàn)內(nèi)容及步驟
(1)定義一個(gè)描述學(xué)生類,數(shù)據(jù)成員包括:姓名、性別、年齡;成員函數(shù)包括:輸出各個(gè)數(shù)據(jù)成員的值,設(shè)置各個(gè)數(shù)據(jù)成員的值。
(2)求點(diǎn)到直線的距離。定義一個(gè)點(diǎn)類Point,數(shù)據(jù)成員包括:坐標(biāo)點(diǎn)。成員函數(shù)包括:設(shè)置各個(gè)數(shù)據(jù)成員的值的構(gòu)造函數(shù)Point(), 取得坐標(biāo)值的函數(shù)Getx(),Gety(),設(shè)計(jì)一直線類Line,數(shù)據(jù)成員包括:直線系數(shù)a,b,c;成員函數(shù)包括:取得系數(shù)的函數(shù)Geta(),Getb(),Getc();構(gòu)造函數(shù)Line();
? 說明:
? d=|a*x0+b*y0+c|/sqrt(a*a+b*b)
實(shí)驗(yàn)二 構(gòu)造函數(shù)與析構(gòu)函數(shù)
一、實(shí)驗(yàn)?zāi)康呐c要求
1.掌握構(gòu)造函數(shù)和析構(gòu)函數(shù)的使用方法。2.掌握靜態(tài)成員的使用方法。3.掌握友員的使用方法。
二、實(shí)驗(yàn)設(shè)備與平臺(tái)
實(shí)驗(yàn)設(shè)備要求每個(gè)學(xué)生一臺(tái)電腦,其中運(yùn)行環(huán)境為VC++ 6.0系統(tǒng)。
三、實(shí)驗(yàn)內(nèi)容及步驟
(1)寫出下列程序的執(zhí)行結(jié)果,然后上機(jī)進(jìn)行驗(yàn)證。用VC6的Debug的功能跟蹤構(gòu)造函數(shù)、析構(gòu)函數(shù)和成員函數(shù)的執(zhí)行順序。#include
x = 2;y = 50;z = 9;} TEST(int a,int b,int c){
cout << “調(diào)用重載構(gòu)造函數(shù)”<< endl;
x = a;y = b;z = c;} void display(){
cout << “x=” << x << 't' << “y=” << y <<'t' << “z=” << z << endl;} int max(int a,int b){
if(a>b)return a;else return b;} ~TEST(){
cout << “調(diào)用析構(gòu)函數(shù)” << endl;
cout << x << “,” << y <<“和” << z << “最大值是:” << max(max(x,y),z)<< endl;} private: int x,y,z;};
void main(){ TEST obj1;obj1.display();TEST obj2(33, 20, 80);obj2.display();}(3)靜態(tài)成員練習(xí):書例子 class tc {
(4)友元練習(xí):書例子
實(shí)驗(yàn)三 繼承-單繼承
一、實(shí)驗(yàn)?zāi)康募耙?/p>
1、掌握繼承、基類和派生類的概念。
2、掌握初始化基類成員的方法。
3、掌握派生類對(duì)基類的繼承。
二、實(shí)驗(yàn)設(shè)備與平臺(tái)
1、硬件環(huán)境:微型計(jì)算機(jī),2、軟件環(huán)境:Visual C++ 6.0;
三、實(shí)驗(yàn)內(nèi)容及步驟
? 要求:設(shè)計(jì)點(diǎn)類、圓類和圓柱類,其中,圓類繼承點(diǎn)類,圓柱類繼承圓類。求:圓面積。圓柱表面積、體積。? 圓的面積:S=PI*R*R ? 周長:C= 2*PI*R ? 圓柱表面積:A=2*PI*R*H+2*PI*R*R ? =C*H+2*S ? 圓柱體積: V=PI*R*R*H =S*H
? class Point //點(diǎn)類 ? { ? protected: ? double x,y;? public: ? Point(double x0,double y0); double Area();
? };? class Circle:public Point { //圓類 ? protected: ? double r;//半徑 ? public: ? Circle(double x0,double y0,double radius)? double Area()//計(jì)算圓的面積 ?
? };? class Cylinder: public Circle { //圓柱體類 ? double h;//高度 ? public: ? Cylinder(double x0=0,double y0=0,double height=0){ ?
? double Area()//計(jì)算圓柱體的表面積 ?
? double Volume()//計(jì)算圓柱體的體積 ? } ? };
思考:點(diǎn),矩形,立方體?
radius=0, double
實(shí)驗(yàn)四 繼承-多繼承
一、實(shí)驗(yàn)?zāi)康募耙?/p>
1、掌握繼承、基類和派生類的概念。
2、掌握初始化基類成員的方法。
4、掌握派生類對(duì)基類的繼承。
二、實(shí)驗(yàn)設(shè)備與平臺(tái)
1、硬件環(huán)境:微型計(jì)算機(jī),2、軟件環(huán)境:Visual C++ 6.0;
三、實(shí)驗(yàn)內(nèi)容及步驟
1閱讀程序,寫出實(shí)驗(yàn)結(jié)果。
#include “stdafx.h” #include “iostream.h” class BASE1 {public: void show_i(){ cout<
j=y;} };int main(int argc, char* argv[]){ DERIVED obj;obj.set(5,7);obj.show_i();obj.show_j();return 0;} 2 書上作業(yè)。Student,worker,s_w.?
實(shí)驗(yàn)五 運(yùn)算符重載
一、實(shí)驗(yàn)?zāi)康募耙?/p>
1、掌握用成員函數(shù)重載運(yùn)算符的方法。
2、掌握用友元函數(shù)重載運(yùn)算符的方法。
二、實(shí)驗(yàn)設(shè)備與平臺(tái)
1、硬件環(huán)境:微型計(jì)算機(jī),2、軟件環(huán)境:Visual C++ 6.0;
三、實(shí)驗(yàn)內(nèi)容及步驟
1、定義一個(gè)復(fù)數(shù)類,通過重載運(yùn)算符:“ *”,“/”,直接實(shí)現(xiàn)二個(gè)復(fù)數(shù)之間的乘除運(yùn)算。編寫一個(gè)完整的程序,測試重載運(yùn)算符的正確性。要求乘法“*”用友元函數(shù)實(shí)現(xiàn)重載,除法“/”用成員函數(shù)實(shí)現(xiàn)重載。
分析:兩復(fù)數(shù)相乘的計(jì)算公式為:(a+b i)*(c+d i)=(ac-bd)+(ad+bc)i 兩復(fù)數(shù)相除的計(jì)算公式為:(a+b i)/(c+d i)=(ac+bd)/(c*c+d*d)+(bc-ad)/(c*c+d*d)i
2、定義一個(gè)分?jǐn)?shù)類,通過重載運(yùn)算符:“ *”,“/”,直接實(shí)現(xiàn)二個(gè)分?jǐn)?shù)之間的乘除運(yùn)算。編寫一個(gè)完整的程序,測試重載運(yùn)算符的正確性。要求乘法“*”用友元函數(shù)實(shí)現(xiàn)重載,除法“/”用成員函數(shù)實(shí)現(xiàn)重載。
實(shí)驗(yàn)六 多態(tài)性-虛函數(shù)
一、實(shí)驗(yàn)?zāi)康募耙?/p>
5、學(xué)習(xí)虛函數(shù)和純虛函數(shù)的定義與使用方式。
6、理解抽象類的概念,學(xué)習(xí)如何用指針指向其他的派生類,實(shí)現(xiàn)多態(tài)性。
7、掌握抽象類的定義與使用方式,并注意指針的用法。
7、學(xué)習(xí)如何使用虛函數(shù)、純虛函數(shù)、抽象類和實(shí)現(xiàn)類的多態(tài)性。
二、實(shí)驗(yàn)設(shè)備與平臺(tái)
1、硬件環(huán)境:微型計(jì)算機(jī),2、軟件環(huán)境:Visual C++ 6.0;
三、實(shí)驗(yàn)內(nèi)容及步驟
1、虛函數(shù)的簡單使用。
# include
class subclass: public base { public: virtual void fn(){ cout ? “In subclass n ”;} };
void test(base &b){ b.fn();} void main(){ base be;subclass sc;cout? “ Calling test(bc)n ”;test(bc);cout? “Calling test(sc)n ”;test(sc);}
2、定義一個(gè)從正方形、球體和圓柱體的各種運(yùn)算中抽象出一個(gè)公共基 container類,在其中定義表面積和體積的純虛函數(shù),分析:
定義一個(gè)派生于container類的正方體類cube,在類中都具有求表面積的和體積的重定義的成員函數(shù)。定義一個(gè)派生于container類的球體類sphere,在類中都具有求表面積和體積的重定義的成員函數(shù)。
定義一個(gè)派生于container類的圓柱體類cylinder,在類中都具有求表面積和體積的重定義的成員函數(shù)。
實(shí)驗(yàn)八 模板
一、實(shí)驗(yàn)?zāi)康募耙?/p>
1.了解函數(shù)模板、類模板與模板函數(shù)、模板類的關(guān)系; 2.熟悉函數(shù)模板、類模板的聲明與實(shí)例化過程; 3.掌握應(yīng)用模板進(jìn)行的程序設(shè)計(jì)
二、實(shí)驗(yàn)設(shè)備與平臺(tái)
實(shí)驗(yàn)設(shè)備要求每個(gè)學(xué)生一臺(tái)電腦,其中運(yùn)行C程序環(huán)境為VC 6.0系統(tǒng)。
三、實(shí)驗(yàn)內(nèi)容及步驟
模板的概念:
若一個(gè)程序的功能是對(duì)某種特定的數(shù)據(jù)類型進(jìn)行處理,則將所處理的數(shù)據(jù)類型說明為參數(shù),就可把這個(gè)程序改寫為模板。模板可以讓程序?qū)θ魏纹渌麛?shù)據(jù)類型進(jìn)行同樣方式的處理。
C++程序由類和函數(shù)組成,模板也分為函數(shù)模板(function template)和類模板(class template)。因此,可以使用一個(gè)帶有多種不同數(shù)據(jù)類型的函數(shù)和類,而不必顯式記憶針對(duì)不同的數(shù)據(jù)類型的各種具體版本。
函數(shù)模板的一般定義形式是: template <類型形式參數(shù)表> 返回類型 FunctionName(形式參數(shù)表){ //函數(shù)定義體 } 其中的類型形式參數(shù)表可以包含基本數(shù)據(jù)類型,也可以包含類類型。如果是類類型,則須在前面加上 calss。
這樣的函數(shù)模板定義,不是一個(gè)實(shí)實(shí)在在的函數(shù),編譯系統(tǒng)不為其產(chǎn)生任何執(zhí)行代碼。該定義只是對(duì)函數(shù)的描述,表示它每次能單獨(dú)處理在類型形式參數(shù)表中說明的數(shù)據(jù)類型。當(dāng)編譯系統(tǒng)發(fā)現(xiàn)有一個(gè)函數(shù)調(diào)用: FunctionName(實(shí)在參數(shù)表);將根據(jù)實(shí)在參數(shù)表中的類型,確認(rèn)是否匹配函數(shù)模板中對(duì)應(yīng)的形式參數(shù)表,然后生成一個(gè)重載函數(shù)。該重載函數(shù)的定義體與函數(shù)模板的函數(shù)定義體相同,而形式參數(shù)表的類型則以實(shí)在參數(shù)表的實(shí)際類型為依據(jù)。該重載函數(shù)稱為模板函數(shù)(template function)。
注意:函數(shù)模板與模板函數(shù)的區(qū)別在于,函數(shù)模板是模板的定義,定義中用到通用類型參數(shù)。模板函數(shù)是實(shí)實(shí)在在的函數(shù)定義,它由編譯系統(tǒng)在碰見具體的函數(shù)調(diào)用時(shí)所生成,具有程序代碼。
實(shí)驗(yàn)1:用函數(shù)模板方法編寫程序,對(duì)給各種不同類型的三個(gè)數(shù)分別求最大數(shù)。要求:編程序上機(jī)通過,寫出運(yùn)行結(jié)果。
實(shí)驗(yàn)2: 用函數(shù)模板方法編寫程序,對(duì)給各種不同類型的兩個(gè)數(shù)的和。
要求:編程序上機(jī)通過,寫出運(yùn)行結(jié)果。
實(shí)驗(yàn)七 I/O流與文件
一、實(shí)驗(yàn)?zāi)康呐c要求
(1)掌握流的概念。
(2)掌握文本文件和二進(jìn)制文件的使用方法。
二、實(shí)驗(yàn)設(shè)備與平臺(tái)
1、硬件環(huán)境:微型計(jì)算機(jī),2、軟件環(huán)境:Visual C++ 6.0;
三、實(shí)驗(yàn)內(nèi)容與步驟:
(1)#include
cout< (3)建立一個(gè)文本文件“textfile.txt”(內(nèi)容由讀者選定),然后顯示該文件,(4)建立若干個(gè)結(jié)構(gòu)體類型的學(xué)生數(shù)據(jù)。要求 (1)鍵盤輸入學(xué)生的信息,學(xué)生的屬性包括學(xué)號(hào)、姓名和成績,(2)用文件流中write函數(shù)將學(xué)生的信息寫入文件D:student.dat(3)將student.dat中所有的數(shù)據(jù)讀到內(nèi)存中并顯示輸出在屏幕上。(10分)編寫程序上機(jī)完成如下工作: Struct student { Int num;Char name[20];Float score;}stu[10];Main(){ //用鍵盤輸入 For(int i=0;i<10;i++)Cin>>。。。。//寫入文件中 Ifstream ifile(“d:student.dat”,ios::binary);//建立文件,并打開 if(!ifile.fail())//異常處理 { cerr<<“not open!” return 0;} For(int i=0;i<10;i++)Ifile.write(??..);//寫入 Ifile.close();//關(guān)閉 //讀文件 Ofstream ofile(“d:student.dat”,ios::binary);For(int i=0;i<10;i++){Ofile.read(?..)//讀出文件 Cout< 實(shí)驗(yàn)六 綜合應(yīng)用程序一 一、實(shí)驗(yàn)?zāi)康?/p> 本實(shí)驗(yàn)是對(duì)前面所學(xué)知識(shí)的總結(jié),通過一個(gè)比較完整的應(yīng)用程序的設(shè)計(jì),將學(xué)過的知識(shí)連貫起來,掌握開發(fā)一個(gè)實(shí)際應(yīng)用程序的步驟,同時(shí)學(xué)會(huì)使用開發(fā)工具實(shí)現(xiàn)界面友好的應(yīng)用程序。并通過本實(shí)驗(yàn),掌握如何運(yùn)用面向?qū)ο蠹夹g(shù)對(duì)具體的應(yīng)用系統(tǒng)進(jìn)行分析和設(shè)計(jì)。 二、基本知識(shí)點(diǎn) 1、類和對(duì)象的定義、對(duì)象的初始化和使用 2、面向?qū)ο蟮睦^承機(jī)制 3、虛函數(shù)與多態(tài)性 4、運(yùn)算符重載 5、文件的使用 6、算法的使用 三、基本要求 1、理解面向?qū)ο蟮奶匦?/p> 2、掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的開發(fā)方法 3、有一定的分析問題和解決問題的能力 4、根據(jù)學(xué)過的知識(shí)點(diǎn),充分利用已有的開發(fā)工具和素材,使程序編寫具有更高的效率,能真正地解決實(shí)際問題。 四、實(shí)驗(yàn)內(nèi)容: 可以在多個(gè)題目中選擇一個(gè): 1、編寫一本通信錄 2、模擬簡單計(jì)算器 3、簡單的管理系統(tǒng)的設(shè)計(jì):如人事、工資、學(xué)生成績等。(要求部分功能實(shí)現(xiàn))。 五、學(xué)生實(shí)驗(yàn)報(bào)告要求 1、實(shí)驗(yàn)步驟 1)設(shè)計(jì)確定類的結(jié)構(gòu)及各類之間的關(guān)系,注意成員變量和函數(shù)的性質(zhì)(共有、私有或保護(hù)),哪些函數(shù)需要?jiǎng)討B(tài)(定義為虛擬函數(shù))。 2)創(chuàng)建系統(tǒng)項(xiàng)目(解決方案, Project)。 3)按上述結(jié)構(gòu)定義各類,在構(gòu)造函數(shù)中對(duì)成員變量進(jìn)行初始化。4)定義各類中的成員函數(shù) 5)對(duì)用到的算法進(jìn)行描述 2、完成編寫相關(guān)實(shí)驗(yàn)代碼 3、對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行分析 4、對(duì)本次實(shí)驗(yàn)要有總結(jié) 注意:要求在系統(tǒng)設(shè)計(jì)階段對(duì)數(shù)據(jù)結(jié)構(gòu)(主要是類的結(jié)構(gòu)及類之間的聯(lián)系)進(jìn)行分析研究,充分利用面向?qū)ο蟮奶匦裕诡惤Y(jié)構(gòu)盡可能合理和高效。 《面向?qū)ο蟪绦蛟O(shè)計(jì)方法》實(shí)驗(yàn)教學(xué)大綱 (計(jì)算機(jī)科學(xué)與技術(shù)本科專業(yè)使用) 一、教學(xué)目標(biāo) 通過該實(shí)驗(yàn)課,學(xué)生應(yīng)在熟練掌握過程化程序設(shè)計(jì)方法的基礎(chǔ)上,領(lǐng)會(huì)面向?qū)ο蟪绦蛟O(shè)計(jì)及類的封裝、數(shù)據(jù)隱藏、繼承及多態(tài)等特性,逐步掌握面向?qū)ο蟪绦蛟O(shè)計(jì)方法,培養(yǎng)一定的程序設(shè)計(jì)能力,為以后各專業(yè)課程的學(xué)習(xí)打下良好的程序設(shè)計(jì)基礎(chǔ)。 二、實(shí)驗(yàn)教學(xué)時(shí)數(shù) 三、實(shí)驗(yàn)內(nèi)容 實(shí)驗(yàn)一 圖形打印 1、實(shí)驗(yàn)?zāi)康模壕毩?xí)for循環(huán) 2、實(shí)驗(yàn)技能培訓(xùn)內(nèi)容:打印幾種特殊圖形,如菱形和Z字形 3、主要儀器:計(jì)算機(jī) 4、實(shí)驗(yàn)方法:上機(jī)編程 實(shí)驗(yàn)二 判素?cái)?shù) 1、實(shí)驗(yàn)?zāi)康模壕毩?xí)函數(shù) 2、實(shí)驗(yàn)技能培訓(xùn)內(nèi)容:判斷101-200之間有多少個(gè)素?cái)?shù),并輸出所有素?cái)?shù)。 3、主要儀器:計(jì)算機(jī) 4、實(shí)驗(yàn)方法:上機(jī)編程 實(shí)驗(yàn)三 遞歸函數(shù)練習(xí) 1、實(shí)驗(yàn)?zāi)康模壕毩?xí)遞歸函數(shù) 2、實(shí)驗(yàn)技能培訓(xùn)內(nèi)容:有一對(duì)兔子,從出生后第3個(gè)月起每個(gè)月都生一對(duì)兔子,小兔子長到第三個(gè)月后每個(gè)月又生一對(duì)兔子,假如兔子都不死,問每個(gè)月的兔子總數(shù)為多少? 兔子的規(guī)律為數(shù)列1,1,2,3,5,8,13,21....3、主要儀器:計(jì)算機(jī) 4、實(shí)驗(yàn)方法:上機(jī)編程 實(shí)驗(yàn)四 數(shù)列排序 1、實(shí)驗(yàn)?zāi)康模壕毩?xí)數(shù)組及幾種基本排序方法 2、實(shí)驗(yàn)技能培訓(xùn)內(nèi)容:用選擇、插入、冒泡、快速等幾種基本的排序方法對(duì)數(shù)列進(jìn)行排序。 3、主要儀器:計(jì)算機(jī) 4、實(shí)驗(yàn)方法:上機(jī)編程 實(shí)驗(yàn)五 矩陣乘積 1、實(shí)驗(yàn)?zāi)康模壕毩?xí)數(shù)組 20學(xué)時(shí) 2、實(shí)驗(yàn)技能培訓(xùn)內(nèi)容:用數(shù)組存儲(chǔ)兩個(gè)矩陣,求兩個(gè)矩陣的乘積。 3、主要儀器:計(jì)算機(jī) 4、實(shí)驗(yàn)方法:上機(jī)編程 實(shí)驗(yàn)六 設(shè)計(jì)時(shí)間日期類 1、實(shí)驗(yàn)?zāi)康模赫莆蘸唵晤惖脑O(shè)計(jì)方法 2、實(shí)驗(yàn)技能培訓(xùn)內(nèi)容:構(gòu)造一個(gè)TimeDate類,類中包含一個(gè)成員函數(shù),用來在屏幕上顯示時(shí)間與日期(采用建立在標(biāo)準(zhǔn)庫time.h中的標(biāo)準(zhǔn)時(shí)間與日期來尋找與顯示日期)。 3、主要儀器:計(jì)算機(jī) 4、實(shí)驗(yàn)方法:上機(jī)編程 實(shí)驗(yàn)七 設(shè)計(jì)計(jì)時(shí)類 1、實(shí)驗(yàn)?zāi)康模赫莆蘸唵晤惖脑O(shè)計(jì)方法 2、實(shí)驗(yàn)技能培訓(xùn)內(nèi)容:建立Watch類,用來仿效秒表跟蹤消逝的時(shí)間。用構(gòu)造函數(shù)將消逝時(shí)間的初值置為零。提供兩個(gè)成員函數(shù)Start()與Stop(),分別打開與關(guān)閉計(jì)時(shí)器。 3、主要儀器:計(jì)算機(jī) 4、實(shí)驗(yàn)方法:上機(jī)編程 實(shí)驗(yàn)八 設(shè)計(jì)字符棧類 1、實(shí)驗(yàn)?zāi)康模赫莆蘸唵晤惖脑O(shè)計(jì)方法 2、實(shí)驗(yàn)技能培訓(xùn)內(nèi)容:用Stack類,寫一個(gè)函數(shù)LoadStack(),用來返回已經(jīng)將字母表(a-z)入棧的堆棧。在調(diào)用函數(shù)中,將這個(gè)堆棧賦值給另一個(gè)對(duì)象,并證明它包含字母表。可以改變堆棧的尺寸,以便它大得足以支持字母表。 3、主要儀器:計(jì)算機(jī) 4、實(shí)驗(yàn)方法:上機(jī)編程 實(shí)驗(yàn)九 友元的使用方法 1、實(shí)驗(yàn)?zāi)康模赫莆沼言氖褂梅椒?/p> 2、實(shí)驗(yàn)技能培訓(xùn)內(nèi)容:求兩數(shù)的平方差(友元函數(shù)說明) 3、主要儀器:計(jì)算機(jī) 4、實(shí)驗(yàn)方法:上機(jī)編程 實(shí)驗(yàn)十 訪問權(quán)限 1、實(shí)驗(yàn)?zāi)康模赫莆疹惓蓡T的各種訪問權(quán)限 2、實(shí)驗(yàn)技能培訓(xùn)內(nèi)容:類成員的各種訪問權(quán)限 3、主要儀器:計(jì)算機(jī) 4、實(shí)驗(yàn)方法:上機(jī)編程 實(shí)驗(yàn)十一 類的派生 1、實(shí)驗(yàn)?zāi)康模?掌握類的派生 2、實(shí)驗(yàn)技能培訓(xùn)內(nèi)容:給出基類AreaClass(形狀類),建立兩個(gè)派生類Box(方形類)與Isosceles(等腰三角形類),讓每個(gè)派生類包含一個(gè)函數(shù)Area(),分別用來返回方形與等腰三角形的面積。 3、主要儀器:計(jì)算機(jī) 4、實(shí)驗(yàn)方法:上機(jī)編程 實(shí)驗(yàn)十二 用類方法求解一元二次方程 1、實(shí)驗(yàn)?zāi)康模?掌握類的派生 2、實(shí)驗(yàn)技能培訓(xùn)內(nèi)容:實(shí)現(xiàn)一個(gè)Complex類和一個(gè)Real類。將Real類定義為Complex類的子類。然后設(shè)計(jì)一個(gè)求解一元二次實(shí)系數(shù)方程的根的類Root。 3、主要儀器:計(jì)算機(jī) 4、實(shí)驗(yàn)方法:上機(jī)編程 實(shí)驗(yàn)十三 類繼承中的構(gòu)造 1、實(shí)驗(yàn)?zāi)康模?掌握類繼承中的構(gòu)造 2、實(shí)驗(yàn)技能培訓(xùn)內(nèi)容:類繼承中的構(gòu)造方法 3、主要儀器:計(jì)算機(jī) 4、實(shí)驗(yàn)方法:上機(jī)編程 實(shí)驗(yàn)十四 類繼承中的構(gòu)造 1、實(shí)驗(yàn)?zāi)康模?掌握類繼承中的構(gòu)造 2、實(shí)驗(yàn)技能培訓(xùn)內(nèi)容:類繼承中的構(gòu)造方法 3、主要儀器:計(jì)算機(jī) 4、實(shí)驗(yàn)方法:上機(jī)編程 實(shí)驗(yàn)十五 大學(xué)生類 1、實(shí)驗(yàn)?zāi)康模?掌握虛函數(shù)的使用 2、實(shí)驗(yàn)技能培訓(xùn)內(nèi)容:設(shè)計(jì)一個(gè)大學(xué)的類系統(tǒng),包括Student(學(xué)生),Professor(教師),Staff(職員)。另有一個(gè)類既作為學(xué)生又兼作助教的可作為派生類StudentStaff,它是由Student類和Staff類派生而來,另外定義一個(gè)父類DataRec作為上述類(子類)的基類。 3、主要儀器:計(jì)算機(jī) 4、實(shí)驗(yàn)方法:上機(jī)編程 責(zé)任撰寫人:陳桂芬 《面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)驗(yàn)》課程教學(xué)大綱 第六次實(shí)驗(yàn): 友元的使用方式 1.學(xué)時(shí):2課時(shí); 2.實(shí)驗(yàn)類型:驗(yàn)證性實(shí)驗(yàn) 3.實(shí)驗(yàn)?zāi)康模?/p> (1)了解友元機(jī)制的由來和本質(zhì);(2)理解友元機(jī)制的主要作用; (3)掌握友元函數(shù)、友元成員和友元類的聲明、定義和使用方法,并注意友元機(jī)制的安全風(fēng)險(xiǎn)問題。 4.實(shí)驗(yàn)內(nèi)容: 實(shí)驗(yàn)題目1:友元函數(shù)的聲明、定義和使用(1)程序功能簡介 編程實(shí)現(xiàn)一個(gè)類的友元函數(shù)的聲明、定義和使用代碼。(2)程序設(shè)計(jì)要求 ① 采用聲明和定義分開的方式實(shí)現(xiàn)一個(gè)類的友元函數(shù); ② 通過調(diào)用友元函數(shù),實(shí)現(xiàn)對(duì)一個(gè)類內(nèi)所有訪問權(quán)限的成員進(jìn)行訪問,驗(yàn)證友元機(jī)制。(3)程序設(shè)計(jì)說明 ① 參考教材例4.2(見P86)、例4.3(見P86)、例4.4(見P87)。(4)撰寫實(shí)驗(yàn)報(bào)告 參考實(shí)驗(yàn)報(bào)告模板。 實(shí)驗(yàn)題目2:友元成員和友元類的聲明、定義和使用(1)程序功能簡介 編程實(shí)現(xiàn)一個(gè)類的友元成員和友元類的聲明、定義和使用代碼。(2)程序設(shè)計(jì)要求 ① 采用聲明和定義分開的方式實(shí)現(xiàn)一個(gè)類的友元成員和友元類; ② 通過調(diào)用友元成員以及友元類的對(duì)象,實(shí)現(xiàn)對(duì)一個(gè)類內(nèi)所有訪問權(quán)限的成員進(jìn)行訪問,驗(yàn)證友元機(jī)制。(3)程序設(shè)計(jì)說明 ① 參考教材例4.5(見P91)、例4.6(見P92)、例4.7(見P93)。(4)撰寫實(shí)驗(yàn)報(bào)告 參考實(shí)驗(yàn)報(bào)告模板。實(shí)驗(yàn)題目3:利用友元機(jī)制計(jì)算兩點(diǎn)之間的距離(1)程序功能簡介 設(shè)計(jì)一個(gè)點(diǎn)(Point)類,其中包括一對(duì)坐標(biāo)數(shù)據(jù)成員、一個(gè)求兩點(diǎn)之間距離的友元接口和顯示坐標(biāo)點(diǎn)的成員函數(shù),并用數(shù)據(jù)進(jìn)行測試。(2)程序設(shè)計(jì)要求 ① 首先,采用友元函數(shù)distance()的方式實(shí)現(xiàn)友元接口; ② 其次,采用友元成員distance()的方式實(shí)現(xiàn)友元接口; ③ 最后,嘗試采用友元類的方式實(shí)現(xiàn)友元接口。(3)程序設(shè)計(jì)說明 ① 在頭文件中聲明類,在程序文件中定義類的成員函數(shù); ② 采用構(gòu)造函數(shù)進(jìn)行對(duì)象的初始化; ③ 對(duì)于友元成員和友元類兩種實(shí)現(xiàn)方式,可以另外定義一個(gè)求解兩點(diǎn)距離的ComputeDistance類,將distance()作為該類的成員函數(shù)。(4)撰寫實(shí)驗(yàn)報(bào)告 參考實(shí)驗(yàn)報(bào)告模板。 《面向?qū)ο蟪绦蛟O(shè)計(jì)》實(shí)驗(yàn)教學(xué)大綱 課程總學(xué)時(shí):64 學(xué)分:4 實(shí)驗(yàn)學(xué)時(shí):16 實(shí)驗(yàn)個(gè)數(shù): 6個(gè)實(shí)驗(yàn)學(xué)分:1分 課程性質(zhì):專業(yè)必修課適用專業(yè):計(jì)算機(jī)類專業(yè) 教材及參考書:《C++語言程序設(shè)計(jì)(第四版)》,鄭莉、董淵編著,北京:清華大學(xué)出版社,2011 大綱執(zhí)筆人:楊軍 大綱審定人: 一、實(shí)驗(yàn)課的性質(zhì)與任務(wù) 本課程實(shí)驗(yàn)大綱是面向計(jì)算機(jī)專業(yè)學(xué)生開設(shè)的《C++程序設(shè)計(jì)》實(shí)驗(yàn)課計(jì)劃指導(dǎo)大綱,是依據(jù)《面向?qū)ο蟪绦蛟O(shè)計(jì)》課程教學(xué)計(jì)劃指導(dǎo)大綱編制。本課程主要講述了利用C++進(jìn)行程序設(shè)計(jì)的思想和方法,既有面向過程和面向?qū)ο蟮某绦蛟O(shè)計(jì)的理論知識(shí),又包括極強(qiáng)的實(shí)踐應(yīng)用能力的培養(yǎng)。本實(shí)驗(yàn)大綱力求結(jié)合該課程教學(xué)計(jì)劃大綱的相應(yīng)內(nèi)容,由淺入深的指導(dǎo)學(xué)生了解和掌握如何利用C++程序設(shè)計(jì)語言進(jìn)行程序設(shè)計(jì),提高學(xué)生的動(dòng)手能力,做到理論和實(shí)踐相結(jié)合,培養(yǎng)學(xué)生理解,分析程序,編寫,調(diào)試程序的能力,使之能把程序設(shè)計(jì)應(yīng)用到今后的專業(yè)學(xué)習(xí)中。 二、實(shí)驗(yàn)?zāi)康呐c要求 1.實(shí)驗(yàn)?zāi)康?/p> 通過本課程的學(xué)習(xí),使學(xué)生掌握面向過程的程序設(shè)計(jì)思想和編程思路,初步掌握面向?qū)ο蟮某绦蛟O(shè)計(jì)思想,學(xué)會(huì)調(diào)試程序,能獨(dú)立編寫實(shí)用的小型程序。2.實(shí)驗(yàn)要求 學(xué)生應(yīng)該自始至終貫徹課程中所介紹的程序設(shè)計(jì)風(fēng)格,養(yǎng)成良好的編程習(xí)慣; 應(yīng)獨(dú)立完成所布置習(xí)題。為保證盡量在統(tǒng)一安排的上機(jī)時(shí)間內(nèi)編譯運(yùn)行通過程序,學(xué)生應(yīng)事先設(shè)計(jì)好程序。 三、實(shí)驗(yàn)項(xiàng)目及內(nèi)容提要 面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)驗(yàn)課程(071016) 序號(hào) 實(shí)驗(yàn)編號(hào) 實(shí)驗(yàn)名稱 學(xué)時(shí) 必做 選做 學(xué)分?jǐn)?shù) 實(shí)驗(yàn)類型 內(nèi)容提要 基本操作 驗(yàn)證 綜合設(shè)計(jì) 1 類與對(duì)象 √ √ 函數(shù)重載,類的設(shè)計(jì)與使用 2 2 C++程序的結(jié)構(gòu) √ √ 作用域與生存期,靜態(tài)成員 3 數(shù)組、指針與字符串 √ √ 三種常見編程元素的使用 4 繼承與派生 √ √ 派生類的設(shè)計(jì)與使用 5 多態(tài)性 √ √ 運(yùn)算符重載、動(dòng)態(tài)多態(tài) 6 模板和文件 √ √ 模板,異常處理機(jī)制的設(shè)計(jì) 四、實(shí)驗(yàn)內(nèi)容安排: 實(shí)驗(yàn)一類與對(duì)象 (設(shè)計(jì)性實(shí)驗(yàn) 4學(xué)時(shí))目的要求: 掌握類的定義和使用;掌握類對(duì)象的聲明;練習(xí)具有不同訪問屬性的成員的訪問方式;觀察構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行過程; 學(xué)習(xí)類組合使用方法; 使用VC++的debug調(diào)試功能觀察程序流程,跟蹤觀察類的構(gòu)造函數(shù)、析構(gòu)函數(shù)、成員函數(shù)的執(zhí)行順序。實(shí)驗(yàn)內(nèi)容: 編寫重載函數(shù)Max1可分別求取兩個(gè)整數(shù),三個(gè)整數(shù),兩個(gè)雙精度數(shù),三個(gè)雙精度數(shù)的最大值。 寫一個(gè)函數(shù),具有一個(gè)引用作為形參參數(shù),在函數(shù)中改變引用變量的值,觀察實(shí)參變量的變化。 定義一個(gè)CPU類,包含等級(jí)(Rank)、頻率(frequency)、電壓(voltage)等屬性,有兩個(gè)公有成員函數(shù)run、stop。其中,rank為枚舉類型CPU__Rank,定義為enum CPU_Rank{P1=1,P2,P3,P4,P5,P6,P7},frequency為單位是MHz的整型數(shù),voltage為浮點(diǎn)型的電壓值。觀察構(gòu)造函數(shù)和析構(gòu)函數(shù)的調(diào)用順序。定義一個(gè)簡單的Computer類,有數(shù)據(jù)成員芯片(cpu)、內(nèi)存(ram)、光驅(qū)(cdrom)等等,有兩個(gè)公有成員函數(shù)run、stop。cpu為CPU類的一個(gè)對(duì)象,ram為RAM類的一個(gè)對(duì)象,cdrom為CDROM類的一個(gè)對(duì)象,定義并實(shí)現(xiàn)這個(gè)類,為以上的類編寫構(gòu)造和析構(gòu)函數(shù),觀察組合類和內(nèi)嵌類的構(gòu)造函數(shù)和析構(gòu)函數(shù)的調(diào)用順序。 為題目2)的類編寫復(fù)制構(gòu)造函數(shù),在主函數(shù)中利用復(fù)制構(gòu)造的方式創(chuàng)建新的對(duì)象,觀察對(duì)象的狀態(tài)。 思考并回答以下概念:函數(shù)重載,引用,類,對(duì)象,數(shù)據(jù)成員,函數(shù)成員,訪問屬性,構(gòu)造函數(shù),析構(gòu)函數(shù),類的組合,內(nèi)嵌對(duì)象,初始化列表,復(fù)制構(gòu)造函數(shù)。主要儀器設(shè)備及軟件:PC+Windows 2000+VC 6.0 實(shí)驗(yàn)二 C++程序的結(jié)構(gòu)(設(shè)計(jì)性實(shí)驗(yàn) 2學(xué)時(shí))目的要求: 觀察程序運(yùn)行中變量的作用域、生存期和可見性; 學(xué)習(xí)類的靜態(tài)成員的使用; 學(xué)習(xí)多文件結(jié)構(gòu)在C++程序中的使用。實(shí)驗(yàn)內(nèi)容: 實(shí)現(xiàn)客戶機(jī)(CLIENT)類。定義字符型靜態(tài)數(shù)據(jù)成員ServerName,保存其服務(wù)器名稱;整型靜態(tài)數(shù)據(jù)成員ClientNum,記錄已定義的客戶數(shù)量;定義靜態(tài)函數(shù)ChangeServerName()改變服務(wù)器名稱。 利用多文件結(jié)構(gòu)實(shí)現(xiàn)題目1),在頭文件client.h中定義類,在文件client.cpp中實(shí)現(xiàn)該類,在文件test.cpp 中測試這個(gè)類,觀察相應(yīng)的成員變量取值的變化情況,要求ClientNum能夠?qū)崟r(shí)記錄客戶機(jī)對(duì)象的數(shù)量。 思考并回答以下概念:類的靜態(tài)數(shù)據(jù)成員,類的靜態(tài)函數(shù)成員,多文件結(jié)構(gòu),文件包含。主要儀器設(shè)備及軟件:Windows 2000+VC 6.0 實(shí)驗(yàn)三數(shù)組、指針與字符串實(shí)驗(yàn)(設(shè)計(jì)性實(shí)驗(yàn) 4學(xué)時(shí))目的要求: 學(xué)習(xí)使用數(shù)組;學(xué)習(xí)字符串?dāng)?shù)據(jù)的組織和處理;學(xué)習(xí)標(biāo)準(zhǔn)C++庫的使用; 掌握指針的使用方法;練習(xí)通過debug觀察指針的內(nèi)容及其所指的對(duì)象的內(nèi)容;練習(xí)通過動(dòng)態(tài)內(nèi)存分配實(shí)現(xiàn)動(dòng)態(tài)數(shù)組,并體會(huì)指針在其中的作用; 分別使用字符數(shù)組和標(biāo)準(zhǔn)C++庫練習(xí)處理字符串的方法。實(shí)驗(yàn)內(nèi)容: 編寫一個(gè)類用于處理3×3矩陣轉(zhuǎn)置,測試轉(zhuǎn)置的效果,輸出轉(zhuǎn)置前后的矩陣。 定義一個(gè)具有構(gòu)造函數(shù)和析構(gòu)函數(shù)的類,如實(shí)驗(yàn)一的CPU類,定義一個(gè)CPU的對(duì)象數(shù)組,觀察構(gòu)造函數(shù)的析構(gòu)函數(shù)的調(diào)用過程。利用動(dòng)態(tài)內(nèi)存分配的方式重新完成題目2)。 使用系統(tǒng)提供的string類定義字符串對(duì)象并初始化,實(shí)現(xiàn)從原始字符串中提取一個(gè)子串。選做:定義一個(gè)Point(二維點(diǎn)類)的對(duì)象數(shù)組,利用該數(shù)組實(shí)現(xiàn)直線的線性擬合。選做:定義一個(gè)動(dòng)態(tài)數(shù)組類。 思考并回答:數(shù)組,指針,對(duì)象數(shù)組,動(dòng)態(tài)內(nèi)存分配,默認(rèn)構(gòu)造函數(shù),標(biāo)準(zhǔn)類庫,字符串類 string,線性擬合。 3.主要儀器設(shè)備及軟件:Windows 2000+VC 6.0 實(shí)驗(yàn)四繼承與派生 (設(shè)計(jì)性實(shí)驗(yàn) 2學(xué)時(shí))目的要求: 學(xué)習(xí)定義和使用類的繼承關(guān)系,定義派生類;熟悉不同繼承方式下對(duì)基類成員的訪問控制; 學(xué)習(xí)利用虛基類解決二義性問題。實(shí)驗(yàn)內(nèi)容: 定義一個(gè)基類Animal,有私有整型成員變量age,構(gòu)造其派生類dog,在其成員函數(shù)SetAge(int n)中直接給age賦值,看看會(huì)有什么問題,把 age改為公有成員變量,還會(huì)有問題嗎?編程試試看。 定義一個(gè)基類BaseClass,有整型成員變量Number,構(gòu)造其派生類DerivedClass,定義該派生類的對(duì)象,觀察構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行情況。 定義一個(gè)車(vehicle)基類,具有MaxSpeed、Weight等成員變量,Run、Stop等成員函數(shù),由此派生出自行車(bicycle)類,汽車(motorcar)類。自行車(bicycle)類有高度(Height)等屬性,汽車(motorcycle)類有座位數(shù)(SeatNum)等屬性。從bicycle和motorcycle派生出摩托車(Motorcar)類,在繼承過程中,注意把vehicle設(shè)置為虛基類。如果不把vehicle 設(shè)置為虛基類,會(huì)有什么問?編程實(shí)驗(yàn)及分析原因。 思考并回答:繼承,派生,子類對(duì)基類成員的訪問權(quán)限,繼承方式,繼承時(shí)的構(gòu)造函數(shù)和析構(gòu)函數(shù)的調(diào)用順序,虛基類 主要儀器設(shè)備及軟件:PC+Windows 2000+VC 6.0 實(shí)驗(yàn)五多態(tài)和運(yùn)算符重載(設(shè)計(jì)性實(shí)驗(yàn) 2學(xué)時(shí))目的要求: 掌握運(yùn)算符重載的方法;學(xué)習(xí)使用虛函數(shù)實(shí)現(xiàn)動(dòng)態(tài)多態(tài)性。實(shí)驗(yàn)內(nèi)容: 定義Point類,有坐標(biāo)x,y兩個(gè)私有成員變量;對(duì)Point類重載“+”(相加)、“-”(相減)和“==”(相等)運(yùn)算符,實(shí)現(xiàn)對(duì)坐標(biāo)的改變,要求用友元函數(shù)和成員函數(shù)兩種方法實(shí)現(xiàn)。對(duì)Point類重載<<運(yùn)算符,以使得代碼 Point p;cout< 定義一個(gè)車(vehicle)基類,有虛函數(shù)Run、Stop等成員函數(shù),由此派生出自行車(bicycle)類、汽車(motorcar)類,它們都有Run、Stop等成員函數(shù)。在主函數(shù)中用不同的方法調(diào)用Run、Stop成員函數(shù),觀察這些函數(shù)的執(zhí)行結(jié)果,思考如何實(shí)現(xiàn)動(dòng)態(tài)多態(tài)性,如果Run、Stop沒有被定義為虛函數(shù),執(zhí)行結(jié)果會(huì)怎樣,把結(jié)果和分析寫入實(shí)驗(yàn)報(bào)告。選做,利用類完成求函數(shù)的積分(參考教材)。 思考并回答:多態(tài),實(shí)現(xiàn)多態(tài)性的方法,虛函數(shù),運(yùn)算符重載,前++,后++,實(shí)現(xiàn)運(yùn)算符重載的方式。 主要儀器設(shè)備及軟件:PC+Windows 2000+VC 6.0 實(shí)驗(yàn)六模板和文件 (設(shè)計(jì)性實(shí)驗(yàn) 2學(xué)時(shí))目的要求: 理解模板的作用和語法。 學(xué)習(xí)掌握C++文件處理類的基本用法。實(shí)驗(yàn)內(nèi)容: 使用函數(shù)模板實(shí)現(xiàn)一個(gè)求3個(gè)數(shù)最大值的函數(shù),并完成測試。 編寫程序,用二進(jìn)制方式打開指定的一個(gè)文件,在每一行前加行號(hào)。選做,練習(xí)使用STL中的vector模板類。選做,定義一個(gè)異常類CException,有成員函數(shù)Reason(),用來顯示異常的類型。在子函數(shù)中觸發(fā)異常,在主程序中處理異常,觀察程序的執(zhí)行過程。思考并回答:模板,函數(shù)模板,類模板,文件,文件讀寫,文件流類,文件操作方式,文件存儲(chǔ)方式; STL,容器,異常處理。 3.主要儀器設(shè)備及軟件:PC+Windows 2000+VC 6.0 五實(shí)驗(yàn)報(bào)告的格式(本部分要求各學(xué)院設(shè)計(jì)成表格作為教學(xué)大綱附件) 實(shí)驗(yàn)完畢,應(yīng)用專門的實(shí)驗(yàn)報(bào)告本,根據(jù)預(yù)習(xí)和實(shí)驗(yàn)中的現(xiàn)象及數(shù)據(jù)記錄等,及時(shí)而認(rèn)真地寫出實(shí)驗(yàn)報(bào)告。實(shí)驗(yàn)報(bào)告一般包括以下內(nèi)容: 實(shí)驗(yàn)(序號(hào))實(shí)驗(yàn)名稱 (一)實(shí)驗(yàn)?zāi)康?/p> (二)儀器工具及材料列出實(shí)驗(yàn)中所使用的主要儀器工具及材料。 (三)內(nèi)容及程序應(yīng)簡明扼要地寫出實(shí)驗(yàn)步驟流程。 (四)結(jié)果及分析應(yīng)用文字、表格、圖形等形式將數(shù)據(jù)表示出來。根據(jù)實(shí)驗(yàn)要求對(duì)數(shù)據(jù)進(jìn)行分析和誤差處理。 (五)問題討論結(jié)合有關(guān)理論對(duì)實(shí)驗(yàn)中的現(xiàn)象、產(chǎn)生的誤差等進(jìn)行討論和分析,以提高自己的分析問題、解決問題的能力,并提出應(yīng)注意的事項(xiàng),也為以后的科學(xué)研究打下一定的基礎(chǔ)。 六、考核方式、方法及實(shí)驗(yàn)成績評(píng)定方法 1、考核方式、方法: 面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)驗(yàn)課成績占面向?qū)ο蟪绦蛟O(shè)計(jì)總成績的15%,即共15分。考核方法為采用實(shí)驗(yàn)課隨堂檢查學(xué)生完成情況及現(xiàn)場提問讓學(xué)生回答,根據(jù)學(xué)生完成情況及答辯情況給分次給出平時(shí)成績,共5分。學(xué)生在完成實(shí)驗(yàn)后應(yīng)將自己的實(shí)驗(yàn)過程,結(jié)果,經(jīng)驗(yàn)寫入實(shí)驗(yàn)報(bào)告并提交實(shí)驗(yàn)報(bào)告,實(shí)驗(yàn)報(bào)告成績占10分,根據(jù)學(xué)生實(shí)驗(yàn)報(bào)告的書寫質(zhì)量及實(shí)驗(yàn)出勤情況打出。 2、實(shí)驗(yàn)成績評(píng)定方法: 評(píng)定各級(jí)成績時(shí),可參考以下標(biāo)準(zhǔn): (一)優(yōu)秀(很好)14-15 能正確理解實(shí)驗(yàn)的目的要求,能獨(dú)立、順利而正確地完成各項(xiàng)實(shí)驗(yàn)操作,會(huì)分析和處理實(shí)驗(yàn)中遇到的問題,能掌握所學(xué)的各項(xiàng)實(shí)驗(yàn)技能,能較好地完成實(shí)驗(yàn)報(bào)告及其它各項(xiàng)實(shí)驗(yàn)作業(yè),有一定創(chuàng)造精神和能力。有良好的實(shí)驗(yàn)工作作風(fēng)和習(xí)慣。 (二)良好(較好)13-14 能理解實(shí)驗(yàn)的目的和要求,能認(rèn)真而正確地完成各項(xiàng)實(shí)驗(yàn)操作,能分析和處理實(shí)驗(yàn)中遇到的一些問題。能掌握所學(xué)實(shí)驗(yàn)技能的絕大部分,對(duì)難點(diǎn)較大的操作完成有困難。能一般完成實(shí)驗(yàn)報(bào)告和其它實(shí)驗(yàn)作業(yè)。有較好的實(shí)驗(yàn)習(xí)慣和工作作風(fēng)。 (三)中等(一般)11-12 能粗淺理解實(shí)驗(yàn)?zāi)康囊螅苷J(rèn)真努力進(jìn)行各項(xiàng)實(shí)驗(yàn)操作,但技巧較差。能分析和處理實(shí)驗(yàn)中一些較容易的問題,掌握實(shí)驗(yàn)技能的大部分。有30%掌握得不好。能一般完成各項(xiàng)實(shí)驗(yàn)作業(yè)和報(bào)告。處理問題缺乏條理。工作作風(fēng)較好。能認(rèn)真遵守各項(xiàng)規(guī)章制度。學(xué)習(xí)努力。 (四)及格(較差)8-9 只能機(jī)械地了解實(shí)驗(yàn)內(nèi)容,能一般性地按實(shí)驗(yàn)步驟完成實(shí)驗(yàn)操作,能完成60%所學(xué)的實(shí)驗(yàn)技能,有些雖作但不準(zhǔn)確。遇到問題常常缺乏解決的辦法,在別人啟發(fā)下能作些簡單處理,但效果不理想。能一般完成實(shí)驗(yàn)報(bào)告,能認(rèn)真遵守實(shí)驗(yàn)室各項(xiàng)規(guī)章制度,工作中有小的習(xí)慣性毛病(如工作無計(jì)劃,處理問題缺乏條理)。 (五)不及格(很差)0-7 盲目地操作,只掌握50%的所學(xué)實(shí)驗(yàn)技能。有些實(shí)驗(yàn)雖能作,但一般效果不好,操作不正確。工作忙亂無條理。一般能遵守實(shí)驗(yàn)室規(guī)章制度,但常有小的錯(cuò)誤。實(shí)驗(yàn)報(bào)告較多的時(shí)候有結(jié)果,遇到問題時(shí)說不明原因,在教師指導(dǎo)下也較難完成各項(xiàng)實(shí)驗(yàn)作業(yè)。或有些小聰明但不努力,不求上進(jìn)。 七、實(shí)驗(yàn)主要應(yīng)配套儀器設(shè)備及臺(tái)(套)數(shù)(以一個(gè)實(shí)驗(yàn)教學(xué)班40人為標(biāo)準(zhǔn))序號(hào) 儀器設(shè)備名稱 數(shù)量 備注 計(jì)算機(jī) 40臺(tái) C++開發(fā)工具軟件 1套 網(wǎng)絡(luò)版 八、主要教材及參考書 《C++語言程序設(shè)計(jì)習(xí)題與實(shí)驗(yàn)指導(dǎo)》,鄭莉、傅仕星編著,北京:清華大學(xué)出版社,2004 《面向?qū)ο蟪绦蛟O(shè)計(jì)》教學(xué)大綱 課程名稱:信息內(nèi)容安全 課程代碼:042504 總 學(xué) 時(shí):64 學(xué) 分:2 課程類型:專業(yè)必修課 適用專業(yè): 信息安全專業(yè) 制 訂 人:徐雪飛 審 定 人:肖 文 制訂日期:2015年3月 《面向?qū)ο蟪绦蛟O(shè)計(jì)》教學(xué)大綱 一、課程性質(zhì)、目的和任務(wù) C#語言是.NET平臺(tái)上的核心開發(fā)語言,具有簡單易學(xué)、類型安全、完全面向?qū)ο蟮忍匦裕且婚T面向現(xiàn)代軟件工程的主流程序設(shè)計(jì)語言。本課程系統(tǒng)地介紹C#語言的結(jié)構(gòu)化設(shè)計(jì)、面向?qū)ο蟆⒎盒汀⑸虡I(yè)開發(fā)等功能要素,使學(xué)生在掌握程序設(shè)計(jì)的基本方法和技巧,培養(yǎng)利用計(jì)算機(jī)解決實(shí)際問題的能力,以滿足專業(yè)課應(yīng)用和繼續(xù)學(xué)習(xí)的需要。 二、教學(xué)基本要求 通過學(xué)習(xí)本課程,要求學(xué)生能夠熟悉C#語言的語法和類型系統(tǒng),掌握面向?qū)ο蟪绦蛟O(shè)計(jì)和泛型程序設(shè)計(jì)的基本方法,并具有商業(yè)應(yīng)用開發(fā)的基本能力,能靈活地使用C#語言及Visual Studio.NET開發(fā)環(huán)境解決一般性編程問題。 三、教學(xué)內(nèi)容 1、緒論(教學(xué)2學(xué)時(shí),上機(jī)2學(xué)時(shí)) 教學(xué)內(nèi)容: (1).NET技術(shù)和框架結(jié)構(gòu)簡介(2)C#語言概貌 (3)面向?qū)ο蟮幕靖拍?/p> 教學(xué)目的:使學(xué)生對(duì).NET平臺(tái)和C#有一個(gè)綜合性的了解。 2、C#語法基礎(chǔ)(教學(xué)6學(xué)時(shí),上機(jī)4學(xué)時(shí)) 教學(xué)內(nèi)容:(1)數(shù)據(jù)類型(2)值和方法(3)表達(dá)式(4)控制語句 教學(xué)目的:使學(xué)生基本掌握C#語言的類型系統(tǒng)和基本語法結(jié)構(gòu)。 3、類和繼承(教學(xué)4學(xué)時(shí),上機(jī)4學(xué)時(shí)) 教學(xué)內(nèi)容: (1)類的數(shù)據(jù)成員和各種函數(shù)成員(2)繼承和多態(tài)(3).NET常用類型(4)接口與實(shí)現(xiàn) 教學(xué)目的:使學(xué)生進(jìn)一步掌握類型的定義和使用方法,掌握.NET類庫中一些典型類的用法;深入理解繼承和多態(tài)性的概念,從而掌握面向?qū)ο筌浖芍赜眯缘年P(guān)鍵技術(shù)。 4、Windows窗體界面(教學(xué)2學(xué)時(shí),上機(jī)2學(xué)時(shí)) 教學(xué)內(nèi)容: (1)Windows Form編程技術(shù)(2)WPF編程技術(shù) (3)繪圖、動(dòng)畫和媒體 教學(xué)目的:使學(xué)生掌握Windows程序界面設(shè)計(jì)的基本要素,能夠使用Windows Form和WPF編程技術(shù)開發(fā)交互式圖形界面應(yīng)用程序。 5、泛型(教學(xué)4學(xué)時(shí),上機(jī)2學(xué)時(shí)) 教學(xué)內(nèi)容: (1)泛型的定義與使用(2)元組和可空類型的用法(3)泛型集合與循環(huán)遍歷 (4)匿名方法和Lambda表達(dá)式 教學(xué)目的:使學(xué)生掌握泛型程序設(shè)計(jì)的基本概念,能夠利用類型抽象和操作抽象開發(fā)出高可適的軟件程序。 6、異常處理(教學(xué)1學(xué)時(shí)) 教學(xué)內(nèi)容: (1)C#異常處理結(jié)構(gòu) (2)主動(dòng)引發(fā)異常和自定義異常 教學(xué)目的:使學(xué)生能夠通過異常處理來提高程序可靠性。 7、文件操作(教學(xué)1學(xué)時(shí),上機(jī)1學(xué)時(shí)) 教學(xué)內(nèi)容: (1)驅(qū)動(dòng)器、目錄和文件(2)文件流和數(shù)據(jù)流 教學(xué)目的:使學(xué)生掌握在C#程序中進(jìn)行磁盤文件存取的基本技術(shù)。 8、數(shù)據(jù)庫訪問(教學(xué)2學(xué)時(shí),上機(jī)1學(xué)時(shí)) 教學(xué)內(nèi)容: (1)ADO.NET聯(lián)機(jī)數(shù)據(jù)訪問(2)ADO.NET脫機(jī)數(shù)據(jù)訪問 教學(xué)目的:使學(xué)生掌握C#程序中進(jìn)行數(shù)據(jù)庫存取的基本技術(shù)。 9、綜合練習(xí)(教學(xué)2學(xué)時(shí),上機(jī)8學(xué)時(shí))教學(xué)內(nèi)容: (1)進(jìn)程和線程 (2)ASP.NET網(wǎng)絡(luò)程序設(shè)計(jì) (3)采用案例驅(qū)動(dòng)的方式,綜合運(yùn)用C#編程技術(shù)開發(fā)較為完整的軟件程序。教學(xué)目的:提高學(xué)生軟件設(shè)計(jì)的綜合能力。 五、教學(xué)方法與手段 講授法、討論法、多媒體教學(xué)、實(shí)驗(yàn)教學(xué)。 六、考核方式 考試成績占70%,平時(shí)成績占30%。閉卷考試。 七、推薦教材和教學(xué)參考書 教 材:《C#程序設(shè)計(jì)基礎(chǔ)》第3版,鄭宇軍,石海鶴,王衛(wèi)紅,清華大學(xué)出版社,2014年。參考書: 1、《C#應(yīng)用開發(fā)與實(shí)踐》,曾憲權(quán)、李梅蓮 等,清華大學(xué)出版社,2015年 2、《C#編程實(shí)戰(zhàn)寶典》,付強(qiáng)、丁寧 等,清華大學(xué)出版社,2014年。第二篇:《面向?qū)ο蟪绦蛟O(shè)計(jì)方法》實(shí)驗(yàn)教學(xué)大綱
第三篇:2017-教學(xué)大綱-《面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)驗(yàn)》
第四篇:《面向?qū)ο蟪绦蛟O(shè)計(jì)》(c++)實(shí)驗(yàn)教學(xué)大綱
第五篇:《面向?qū)ο蟪绦蛟O(shè)計(jì)》教學(xué)大綱