第一篇:2013級計算機科學(xué)與技術(shù)專業(yè)《面向?qū)ο蟮某绦蛟O(shè)計》實驗考核題
2013級計算機科學(xué)與技術(shù)專業(yè)《面向?qū)ο蟮某绦蛟O(shè)計》實驗考核題
一、編寫C++程序,要求:(50’)
(1)聲明一個類Complex,定義類Complex的兩個對象c1和c2,對象c1通過構(gòu)造函數(shù)指定復(fù)數(shù)的實部與虛
部(類私有數(shù)據(jù)成員為double型的real和image)為2.5及3.7,對象c2通過構(gòu)造函數(shù)直接指定復(fù)數(shù)的實部與虛部為4.2及6.5。
(2)編寫加法友元函數(shù),以c1,c2對象為參數(shù),調(diào)用時能返回兩個復(fù)數(shù)對象相加操作。編寫減法友元函數(shù),以c1,c2對象為參數(shù),調(diào)用時能返回兩個復(fù)數(shù)對象相減操作;編寫取反成員函數(shù),調(diào)用時能返回該復(fù)數(shù)的相反數(shù)(實部、虛部分別是原數(shù)的相反數(shù))。
(3)定義成員函數(shù)print(),調(diào)用該函數(shù)時,以格式(real,image)輸出當(dāng)前對象。
(4)編寫主程序,計算出復(fù)數(shù)對象c1與c2相減結(jié)果,并輸出。然后計算c2的相反數(shù)與c1相加結(jié)果,并輸出。
二、編寫C++程序,要求:(50’)
(1)建立一個代表空間點的基類Point, 它的數(shù)據(jù)成員為點的三維坐標(biāo),分別用成員變量X、Y和Z表示。建立代表球體的派生類Sphere,繼承Point,以該點為球心并增加了數(shù)據(jù)成員R表示半徑。
(2)基類中有計算該點到坐標(biāo)原點距離的辦法,派生類中有計算球體表面積和體積的方法
(3)基類和派生類都有構(gòu)造函數(shù),并且可以通過構(gòu)造函數(shù)直接設(shè)定數(shù)據(jù)成員。(球體表面積4*3.1415926*R*R,球體體積4*3.1415926*R*R*R/3)
(4)主函數(shù)中讓用戶輸入球體中心坐標(biāo)及半徑,然后輸出球心到原點的距離、球體表面積和體積。
代碼開頭部分:
#include
#include
const double PI=3.1415926;
Class Point{
private:
double X,Y,Z;
public:
Point(double x, double y, double z){
X=x;Y=y;Z=z;
}
double distance(){return sqrt(X*X+Y*Y+Z*Z);}
double getX(){return X;}
double getY(){return Y;}
double getZ(){return Z;;}
void setX(double x){X=x;}
void setY(double y){Y=y;}
void setZ(double z){Z=z;}
};
第二篇:面向?qū)ο蟪绦蛟O(shè)計教學(xué)大綱-計算機科學(xué)與軟件學(xué)院
面向?qū)ο蠹夹g(shù)
Technology of Object-Oriented Programming 課程編號:30420032 學(xué)分?jǐn)?shù):2 開課單位:計算機技術(shù)與自動化學(xué)院
課內(nèi)總時數(shù):40 任課教師姓名及職稱:陳勇副教授、柯永振講師、劉坤良講師 開課學(xué)期:第2學(xué)期 教學(xué)方式:講授
一、教學(xué)要求及目的:
理解面向?qū)ο蟮幕舅枷?、基本概念;掌握面向?qū)ο蟪绦蛟O(shè)計語言的基本結(jié)構(gòu)、各種語法成分的作用、語法結(jié)構(gòu)及運用方式;掌握面向?qū)ο蟪绦蛟O(shè)計的方法和技巧;能比較熟練地用C#語言進(jìn)行一般面向?qū)ο蟮某绦蚍治?、設(shè)計,提高編寫和調(diào)試應(yīng)用程序的能力。
二、課程的主要內(nèi)容
1.面向?qū)ο蠓椒ǖ臍v史與現(xiàn)狀
面向?qū)ο蠹夹g(shù)的發(fā)展歷史,主要的面向?qū)ο笳Z言介紹。
2..Net Framework概述.Net Framework基本框架,.Net Framework的優(yōu)點,以及開發(fā)平臺。3.C#概述
C#的起源和特點,C#源程序的基本構(gòu)成,C#中非面向?qū)ο蠓矫娴摹┏绦蛱匦浴?.C#中類和對象
類與對象的基本概念,構(gòu)造函數(shù),方法與屬性,參數(shù)傳遞,靜態(tài)成員。5.派生、繼承、多態(tài)性
數(shù)據(jù)的抽象與封裝,派生類的概念,派生類的構(gòu)造函數(shù),C#中多重繼承的處理方法,虛方法的實現(xiàn),抽象類,重載的實現(xiàn),接口的實現(xiàn),代理的實現(xiàn)。6. 基于Windows 與Web的應(yīng)用程序開發(fā)
開發(fā)Windows,Web應(yīng)用程序的基本框架。7.Web Service實現(xiàn)
使用XML的Web Service實現(xiàn)。8.面向?qū)ο蠹夹g(shù)實踐
根據(jù)所掌握的面向?qū)ο蠹夹g(shù),分析一個具體案例,利用C#實現(xiàn)其功能。
三、課程教材及主要參考書
1.C#面向?qū)ο蟪绦蛟O(shè)計,黃聰明,科學(xué)出版社,2004年 2.C#程序設(shè)計,田原,清華大學(xué)出版社,2005 3.C#高級編程,李敏波,清華大學(xué)出版社,2005(第3版).4.C#程序設(shè)計教程,余安萍,電子工業(yè)出版社,2002 5.面向?qū)ο蟮姆治雠c設(shè)計,(美)Grady Booch著,機械工業(yè)出版社,2005年
6.C#范例解析,朱沭紅,電子工業(yè)出版社,2002 7.Visual C#程序設(shè)計基礎(chǔ)教程,邵鵬鳴,清華大學(xué)出版社,2005.四、預(yù)修課程
C語言程序設(shè)計、數(shù)據(jù)結(jié)構(gòu)、程序設(shè)計方法學(xué)
五、適用專業(yè)、范圍
計算機應(yīng)用技術(shù)專業(yè)、計算機軟件與理論專業(yè)
第三篇:面向?qū)ο蟪绦蛟O(shè)計教學(xué)大綱-計算機科學(xué)與軟件學(xué)院
人工智能原理及應(yīng)用
Artificial Intelligence Principles and Applications
課程編號:30420082 學(xué)分?jǐn)?shù):2 開課單位:計算機技術(shù)與自動化學(xué)院
課內(nèi)總時數(shù):40 任課教師姓名及職稱:劉文菊副教授、郭景講師
開課學(xué)期: 第2學(xué)期 教學(xué)方式:講授
一、教學(xué)要求及目的
人工智能是研究智能信息處理技術(shù)、開發(fā)具有智能特性的各類應(yīng)用系統(tǒng)的核心技術(shù)。通過本課程的學(xué)習(xí),要求學(xué)生了解人工智能的基本概念和原理,掌握常用的知識表示、邏輯推理和問題求解的方法,熟悉人工智能的發(fā)展學(xué)派和主要理論。為智能信息分析和構(gòu)建專家系統(tǒng)、智能決策支持系統(tǒng)等各類智能系統(tǒng)奠定基礎(chǔ),并培養(yǎng)學(xué)生提高解決復(fù)雜問題的能力。
二、課程的主要內(nèi)容
1.人工智能概述
人工智能的概念; 人工智能的產(chǎn)生和發(fā)展; 人工智能的內(nèi)容和特點; 人工智能的研究和應(yīng)用領(lǐng)域。2.知識表示方法
知識表示的概念;
謂詞邏輯表示法; 產(chǎn)生式表示法; 語義網(wǎng)絡(luò)表示法; 框架表示法; 面向?qū)ο蟊硎痉ā?.推理方法
推理的基本概念;
確定性推理:推理方法及其分類、推理的控制策略、推理的邏輯基礎(chǔ); 不確定性推理:確定性因子法、主觀Bayes法、證據(jù)理論、模糊推理。4.問題求解與搜索方法
狀態(tài)空間搜索,狀態(tài)圖問題求解; 與或樹搜索,與或樹問題求解;
博弈樹搜索,極大極小過程,?-?剪枝法。5.機器學(xué)習(xí)
機器學(xué)習(xí)的概念; 機械學(xué)習(xí); 基于經(jīng)驗的學(xué)習(xí); 基于事例的學(xué)習(xí); 基于類比的學(xué)習(xí); 基于神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)。6.人工智能應(yīng)用--專家系統(tǒng)
專家系統(tǒng)的概念; 專家系統(tǒng)的結(jié)構(gòu);
專家系統(tǒng)的應(yīng)用與發(fā)展概況; 產(chǎn)生式系統(tǒng) 專家系統(tǒng)設(shè)計舉例。
7.人工智能的爭論與展望
關(guān)于人工智能的爭論; 人工智能對人類的影響; 對人工智能的展望。
三、課程教材及主要參考書
1.人工智能及其應(yīng)用(第三版)研究生用書,蔡自興編著,清華大學(xué)出版社,2006年5月 2.人工智能技術(shù)導(dǎo)論,廉師友編著,西安電子科技大學(xué)出版社,2002年第1版 3.人工智能原理及其應(yīng)用,王萬森編著,電子工業(yè)出版社,2000年9月
4.Artificial Intelligence A New Synthesis
Nils J.Nilsson
機械工業(yè)出版社 1999.9
四、預(yù)修課程
數(shù)理邏輯、離散數(shù)學(xué)、高級語言程序設(shè)計、數(shù)據(jù)結(jié)構(gòu)與算法
五、適用專業(yè)、范圍
計算機應(yīng)用技術(shù)專業(yè)、計算機軟件與理論專業(yè)
第四篇:《面向?qū)ο蟪绦蛟O(shè)計方法》實驗教學(xué)大綱
《面向?qū)ο蟪绦蛟O(shè)計方法》實驗教學(xué)大綱
(計算機科學(xué)與技術(shù)本科專業(yè)使用)
一、教學(xué)目標(biāo)
通過該實驗課,學(xué)生應(yīng)在熟練掌握過程化程序設(shè)計方法的基礎(chǔ)上,領(lǐng)會面向?qū)ο蟪绦蛟O(shè)計及類的封裝、數(shù)據(jù)隱藏、繼承及多態(tài)等特性,逐步掌握面向?qū)ο蟪绦蛟O(shè)計方法,培養(yǎng)一定的程序設(shè)計能力,為以后各專業(yè)課程的學(xué)習(xí)打下良好的程序設(shè)計基礎(chǔ)。
二、實驗教學(xué)時數(shù)
三、實驗內(nèi)容
實驗一 圖形打印
1、實驗?zāi)康模壕毩?xí)for循環(huán)
2、實驗技能培訓(xùn)內(nèi)容:打印幾種特殊圖形,如菱形和Z字形
3、主要儀器:計算機
4、實驗方法:上機編程
實驗二 判素數(shù)
1、實驗?zāi)康模壕毩?xí)函數(shù)
2、實驗技能培訓(xùn)內(nèi)容:判斷101-200之間有多少個素數(shù),并輸出所有素數(shù)。
3、主要儀器:計算機
4、實驗方法:上機編程
實驗三 遞歸函數(shù)練習(xí)
1、實驗?zāi)康模壕毩?xí)遞歸函數(shù)
2、實驗技能培訓(xùn)內(nèi)容:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數(shù)為多少? 兔子的規(guī)律為數(shù)列1,1,2,3,5,8,13,21....3、主要儀器:計算機
4、實驗方法:上機編程
實驗四 數(shù)列排序
1、實驗?zāi)康模壕毩?xí)數(shù)組及幾種基本排序方法
2、實驗技能培訓(xùn)內(nèi)容:用選擇、插入、冒泡、快速等幾種基本的排序方法對數(shù)列進(jìn)行排序。
3、主要儀器:計算機
4、實驗方法:上機編程
實驗五 矩陣乘積
1、實驗?zāi)康模壕毩?xí)數(shù)組
20學(xué)時
2、實驗技能培訓(xùn)內(nèi)容:用數(shù)組存儲兩個矩陣,求兩個矩陣的乘積。
3、主要儀器:計算機
4、實驗方法:上機編程
實驗六 設(shè)計時間日期類
1、實驗?zāi)康模赫莆蘸唵晤惖脑O(shè)計方法
2、實驗技能培訓(xùn)內(nèi)容:構(gòu)造一個TimeDate類,類中包含一個成員函數(shù),用來在屏幕上顯示時間與日期(采用建立在標(biāo)準(zhǔn)庫time.h中的標(biāo)準(zhǔn)時間與日期來尋找與顯示日期)。
3、主要儀器:計算機
4、實驗方法:上機編程
實驗七 設(shè)計計時類
1、實驗?zāi)康模赫莆蘸唵晤惖脑O(shè)計方法
2、實驗技能培訓(xùn)內(nèi)容:建立Watch類,用來仿效秒表跟蹤消逝的時間。用構(gòu)造函數(shù)將消逝時間的初值置為零。提供兩個成員函數(shù)Start()與Stop(),分別打開與關(guān)閉計時器。
3、主要儀器:計算機
4、實驗方法:上機編程
實驗八 設(shè)計字符棧類
1、實驗?zāi)康模赫莆蘸唵晤惖脑O(shè)計方法
2、實驗技能培訓(xùn)內(nèi)容:用Stack類,寫一個函數(shù)LoadStack(),用來返回已經(jīng)將字母表(a-z)入棧的堆棧。在調(diào)用函數(shù)中,將這個堆棧賦值給另一個對象,并證明它包含字母表??梢愿淖兌褩5某叽?,以便它大得足以支持字母表。
3、主要儀器:計算機
4、實驗方法:上機編程
實驗九 友元的使用方法
1、實驗?zāi)康模赫莆沼言氖褂梅椒?/p>
2、實驗技能培訓(xùn)內(nèi)容:求兩數(shù)的平方差(友元函數(shù)說明)
3、主要儀器:計算機
4、實驗方法:上機編程
實驗十 訪問權(quán)限
1、實驗?zāi)康模赫莆疹惓蓡T的各種訪問權(quán)限
2、實驗技能培訓(xùn)內(nèi)容:類成員的各種訪問權(quán)限
3、主要儀器:計算機
4、實驗方法:上機編程
實驗十一 類的派生
1、實驗?zāi)康模?掌握類的派生
2、實驗技能培訓(xùn)內(nèi)容:給出基類AreaClass(形狀類),建立兩個派生類Box(方形類)與Isosceles(等腰三角形類),讓每個派生類包含一個函數(shù)Area(),分別用來返回方形與等腰三角形的面積。
3、主要儀器:計算機
4、實驗方法:上機編程
實驗十二 用類方法求解一元二次方程
1、實驗?zāi)康模?掌握類的派生
2、實驗技能培訓(xùn)內(nèi)容:實現(xiàn)一個Complex類和一個Real類。將Real類定義為Complex類的子類。然后設(shè)計一個求解一元二次實系數(shù)方程的根的類Root。
3、主要儀器:計算機
4、實驗方法:上機編程
實驗十三 類繼承中的構(gòu)造
1、實驗?zāi)康模?掌握類繼承中的構(gòu)造
2、實驗技能培訓(xùn)內(nèi)容:類繼承中的構(gòu)造方法
3、主要儀器:計算機
4、實驗方法:上機編程
實驗十四 類繼承中的構(gòu)造
1、實驗?zāi)康模?掌握類繼承中的構(gòu)造
2、實驗技能培訓(xùn)內(nèi)容:類繼承中的構(gòu)造方法
3、主要儀器:計算機
4、實驗方法:上機編程
實驗十五 大學(xué)生類
1、實驗?zāi)康模?掌握虛函數(shù)的使用
2、實驗技能培訓(xùn)內(nèi)容:設(shè)計一個大學(xué)的類系統(tǒng),包括Student(學(xué)生),Professor(教師),Staff(職員)。另有一個類既作為學(xué)生又兼作助教的可作為派生類StudentStaff,它是由Student類和Staff類派生而來,另外定義一個父類DataRec作為上述類(子類)的基類。
3、主要儀器:計算機
4、實驗方法:上機編程
責(zé)任撰寫人:陳桂芬
第五篇:面向?qū)ο蟪绦蛟O(shè)計實驗教學(xué)大綱
《面向?qū)ο蟪绦蛟O(shè)計》
實驗指導(dǎo)書
《面向?qū)ο蟪绦蛟O(shè)計實驗》課程組
目錄
實驗預(yù)備 實驗環(huán)境和工具使用,多文件應(yīng)用程序的開發(fā)過程 實驗一 類與對象
實驗二 實驗三 實驗四 實驗五 實驗六 實驗七 I/O實驗八
構(gòu)造函數(shù)、析構(gòu)函數(shù) 繼承-單繼承 繼承-多繼承
多態(tài)-運算符重載
多態(tài)-虛函數(shù) 流與文件 模板
實驗預(yù)備 實驗環(huán)境和工具使用 多文件應(yīng)用程序的開發(fā)過程
一、實驗?zāi)康呐c要求
Visual C++提供了一個集源程序編輯、代碼編譯與調(diào)試于一體的開發(fā)環(huán)境,這個環(huán)境稱為集成開發(fā)環(huán)境,對于集成開發(fā)環(huán)境的熟悉程度直接影響程序設(shè)計的效率,本實驗通過學(xué)習(xí)Visual C++ 6.0界面的常用組成情況,并學(xué)習(xí)各種常用的窗口、菜單、按鈕的意義和功能,并通過一些簡單的程序設(shè)計,目的是使學(xué)生對用戶界面、菜單和工具欄有一個全面的了解并掌握主要菜單命令。
? 了解Visual C++集成開發(fā)環(huán)境的界面組成; ? 理解菜單命令的含義 ? 掌握“New:”菜單命令、“Breakpoints”菜單命令、“Build”菜單命令、“Source Brower”菜單命令、工具欄的定制和修改、聯(lián)機幫助。? 簡單的程序設(shè)計
二、實驗設(shè)備與平臺
實驗設(shè)備要求每個學(xué)生一臺電腦,其中運行環(huán)境為VC++ 6.0系統(tǒng)。
三、實驗內(nèi)容及步驟 1.上機實驗內(nèi)容
? ? ? ? ? ? ? ? Visual C++集成開發(fā)環(huán)境的用戶界面識別; 新文件、新工程項目、工作區(qū)的創(chuàng)建; 設(shè)置、查看和刪除斷點; 編譯和運行程序; 瀏覽資源信息;
工具欄的定制和修改; 聯(lián)機幫助的使用;
熟悉Visual C++編寫控制臺模式程序的方法; 上機輸入例題,調(diào)試并運行,并觀察結(jié)果; ? 上機編寫一個程序
實驗1調(diào)試并編譯程序。
在Visual C++下,編寫控制臺模式的程序和在DOS下編寫程序相似,具有簡單方便的特點,一般用于后臺程序的編寫??刂婆_模式下程序的編寫有兩種方法,一是創(chuàng)建一個C++源程序文件,二是創(chuàng)建一個控制臺模式的工程。
⑴ 創(chuàng)建一個C++源程序文件
① 啟動Visual C++,單擊“File”菜單下的“New”菜單命令,出現(xiàn)“New”對話框。然后選擇“Files”選項卡,在此選項卡的左側(cè),單擊“C++ Source Files”:在選項卡的右側(cè),選擇源程序存放的位置(location)以及源程序文件名(File),然后單擊【OK】按鈕。注意C++源程序文件的擴(kuò)展名為.cpp。
② 在編輯區(qū)輸入源程序,程序內(nèi)容如下:
#include
(Build)按鈕或者選擇“Build”菜單命令,系統(tǒng)提示是否創(chuàng)建一個默認(rèn)的工程工作區(qū),單擊【是】按鈕即可。④ 系統(tǒng)開始編譯源程序并鏈接相應(yīng)的文件,如果沒有錯誤則在集成開發(fā)環(huán)境下方的狀態(tài)欄中出現(xiàn)下列提示“0error(s),0warning(s)”,此時可以按
① 啟動Visual C++,單擊“File”菜單下的“New”菜單命令,出現(xiàn)“New”對話框。然后選擇“Projects”選項卡,在此選項卡的左側(cè),單擊“Win32 Console Application”;在選項卡的右側(cè),選擇工程文件存放的位置(location)以及工程文件名(Project Name)。然后單擊【OK】按鈕。
② 在“Win32 Console Application-Step 1 of 1”對話框中選擇應(yīng)用程序的類型“An empty project”,單擊【Finish】按鈕。③ 在集成開發(fā)環(huán)境的左側(cè)單擊“File View”屬性頁,右鍵單擊“Source Files”,選擇“Add Files to Folder?”。在“文件名”中填入文件名,此時也可以選擇存在的文件。
④ 此時在“Source Files”左側(cè)出現(xiàn)一個加號,單擊加號,出現(xiàn)新的源程序文件“1_1.cpp”,雙擊此文件,在集成開發(fā)環(huán)境的右側(cè)輸入例1_1.⑤ 按照創(chuàng)建一個C++源程序文件的第④個步驟編譯和運行程序。
圖1-1 向工程中添加源程序文件
圖1-2 選擇添加的源程序文件的文件名與類型
實驗一 類與對象
一、實驗?zāi)康呐c要求
(1)掌握類和對象的概念、定義和使用方法。(2)掌握不同特性對象成員的訪問方法
二、實驗設(shè)備與平臺
實驗設(shè)備要求每個學(xué)生一臺電腦,其中運行環(huán)境為VC++ 6.0系統(tǒng)。
三、實驗內(nèi)容及步驟
(1)定義一個描述學(xué)生類,數(shù)據(jù)成員包括:姓名、性別、年齡;成員函數(shù)包括:輸出各個數(shù)據(jù)成員的值,設(shè)置各個數(shù)據(jù)成員的值。
(2)求點到直線的距離。定義一個點類Point,數(shù)據(jù)成員包括:坐標(biāo)點。成員函數(shù)包括:設(shè)置各個數(shù)據(jù)成員的值的構(gòu)造函數(shù)Point(), 取得坐標(biāo)值的函數(shù)Getx(),Gety(),設(shè)計一直線類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)
實驗二 構(gòu)造函數(shù)與析構(gòu)函數(shù)
一、實驗?zāi)康呐c要求
1.掌握構(gòu)造函數(shù)和析構(gòu)函數(shù)的使用方法。2.掌握靜態(tài)成員的使用方法。3.掌握友員的使用方法。
二、實驗設(shè)備與平臺
實驗設(shè)備要求每個學(xué)生一臺電腦,其中運行環(huán)境為VC++ 6.0系統(tǒng)。
三、實驗內(nèi)容及步驟
(1)寫出下列程序的執(zhí)行結(jié)果,然后上機進(jì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í):書例子
實驗三 繼承-單繼承
一、實驗?zāi)康募耙?/p>
1、掌握繼承、基類和派生類的概念。
2、掌握初始化基類成員的方法。
3、掌握派生類對基類的繼承。
二、實驗設(shè)備與平臺
1、硬件環(huán)境:微型計算機,2、軟件環(huán)境:Visual C++ 6.0;
三、實驗內(nèi)容及步驟
? 要求:設(shè)計點類、圓類和圓柱類,其中,圓類繼承點類,圓柱類繼承圓類。求:圓面積。圓柱表面積、體積。? 圓的面積: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 //點類 ? { ? 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()//計算圓的面積 ?
? };? class Cylinder: public Circle { //圓柱體類 ? double h;//高度 ? public: ? Cylinder(double x0=0,double y0=0,double height=0){ ?
? double Area()//計算圓柱體的表面積 ?
? double Volume()//計算圓柱體的體積 ? } ? };
思考:點,矩形,立方體?
radius=0, double
實驗四 繼承-多繼承
一、實驗?zāi)康募耙?/p>
1、掌握繼承、基類和派生類的概念。
2、掌握初始化基類成員的方法。
4、掌握派生類對基類的繼承。
二、實驗設(shè)備與平臺
1、硬件環(huán)境:微型計算機,2、軟件環(huán)境:Visual C++ 6.0;
三、實驗內(nèi)容及步驟
1閱讀程序,寫出實驗結(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.?
實驗五 運算符重載
一、實驗?zāi)康募耙?/p>
1、掌握用成員函數(shù)重載運算符的方法。
2、掌握用友元函數(shù)重載運算符的方法。
二、實驗設(shè)備與平臺
1、硬件環(huán)境:微型計算機,2、軟件環(huán)境:Visual C++ 6.0;
三、實驗內(nèi)容及步驟
1、定義一個復(fù)數(shù)類,通過重載運算符:“ *”,“/”,直接實現(xiàn)二個復(fù)數(shù)之間的乘除運算。編寫一個完整的程序,測試重載運算符的正確性。要求乘法“*”用友元函數(shù)實現(xiàn)重載,除法“/”用成員函數(shù)實現(xiàn)重載。
分析:兩復(fù)數(shù)相乘的計算公式為:(a+b i)*(c+d i)=(ac-bd)+(ad+bc)i 兩復(fù)數(shù)相除的計算公式為:(a+b i)/(c+d i)=(ac+bd)/(c*c+d*d)+(bc-ad)/(c*c+d*d)i
2、定義一個分?jǐn)?shù)類,通過重載運算符:“ *”,“/”,直接實現(xiàn)二個分?jǐn)?shù)之間的乘除運算。編寫一個完整的程序,測試重載運算符的正確性。要求乘法“*”用友元函數(shù)實現(xiàn)重載,除法“/”用成員函數(shù)實現(xiàn)重載。
實驗六 多態(tài)性-虛函數(shù)
一、實驗?zāi)康募耙?/p>
5、學(xué)習(xí)虛函數(shù)和純虛函數(shù)的定義與使用方式。
6、理解抽象類的概念,學(xué)習(xí)如何用指針指向其他的派生類,實現(xiàn)多態(tài)性。
7、掌握抽象類的定義與使用方式,并注意指針的用法。
7、學(xué)習(xí)如何使用虛函數(shù)、純虛函數(shù)、抽象類和實現(xiàn)類的多態(tài)性。
二、實驗設(shè)備與平臺
1、硬件環(huán)境:微型計算機,2、軟件環(huán)境:Visual C++ 6.0;
三、實驗內(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、定義一個從正方形、球體和圓柱體的各種運算中抽象出一個公共基 container類,在其中定義表面積和體積的純虛函數(shù),分析:
定義一個派生于container類的正方體類cube,在類中都具有求表面積的和體積的重定義的成員函數(shù)。定義一個派生于container類的球體類sphere,在類中都具有求表面積和體積的重定義的成員函數(shù)。
定義一個派生于container類的圓柱體類cylinder,在類中都具有求表面積和體積的重定義的成員函數(shù)。
實驗八 模板
一、實驗?zāi)康募耙?/p>
1.了解函數(shù)模板、類模板與模板函數(shù)、模板類的關(guān)系; 2.熟悉函數(shù)模板、類模板的聲明與實例化過程; 3.掌握應(yīng)用模板進(jìn)行的程序設(shè)計
二、實驗設(shè)備與平臺
實驗設(shè)備要求每個學(xué)生一臺電腦,其中運行C程序環(huán)境為VC 6.0系統(tǒng)。
三、實驗內(nèi)容及步驟
模板的概念:
若一個程序的功能是對某種特定的數(shù)據(jù)類型進(jìn)行處理,則將所處理的數(shù)據(jù)類型說明為參數(shù),就可把這個程序改寫為模板。模板可以讓程序?qū)θ魏纹渌麛?shù)據(jù)類型進(jìn)行同樣方式的處理。
C++程序由類和函數(shù)組成,模板也分為函數(shù)模板(function template)和類模板(class template)。因此,可以使用一個帶有多種不同數(shù)據(jù)類型的函數(shù)和類,而不必顯式記憶針對不同的數(shù)據(jù)類型的各種具體版本。
函數(shù)模板的一般定義形式是: template <類型形式參數(shù)表> 返回類型 FunctionName(形式參數(shù)表){ //函數(shù)定義體 } 其中的類型形式參數(shù)表可以包含基本數(shù)據(jù)類型,也可以包含類類型。如果是類類型,則須在前面加上 calss。
這樣的函數(shù)模板定義,不是一個實實在在的函數(shù),編譯系統(tǒng)不為其產(chǎn)生任何執(zhí)行代碼。該定義只是對函數(shù)的描述,表示它每次能單獨處理在類型形式參數(shù)表中說明的數(shù)據(jù)類型。當(dāng)編譯系統(tǒng)發(fā)現(xiàn)有一個函數(shù)調(diào)用: FunctionName(實在參數(shù)表);將根據(jù)實在參數(shù)表中的類型,確認(rèn)是否匹配函數(shù)模板中對應(yīng)的形式參數(shù)表,然后生成一個重載函數(shù)。該重載函數(shù)的定義體與函數(shù)模板的函數(shù)定義體相同,而形式參數(shù)表的類型則以實在參數(shù)表的實際類型為依據(jù)。該重載函數(shù)稱為模板函數(shù)(template function)。
注意:函數(shù)模板與模板函數(shù)的區(qū)別在于,函數(shù)模板是模板的定義,定義中用到通用類型參數(shù)。模板函數(shù)是實實在在的函數(shù)定義,它由編譯系統(tǒng)在碰見具體的函數(shù)調(diào)用時所生成,具有程序代碼。
實驗1:用函數(shù)模板方法編寫程序,對給各種不同類型的三個數(shù)分別求最大數(shù)。要求:編程序上機通過,寫出運行結(jié)果。
實驗2: 用函數(shù)模板方法編寫程序,對給各種不同類型的兩個數(shù)的和。
要求:編程序上機通過,寫出運行結(jié)果。
實驗七 I/O流與文件
一、實驗?zāi)康呐c要求
(1)掌握流的概念。
(2)掌握文本文件和二進(jìn)制文件的使用方法。
二、實驗設(shè)備與平臺
1、硬件環(huán)境:微型計算機,2、軟件環(huán)境:Visual C++ 6.0;
三、實驗內(nèi)容與步驟:
(1)#include
cout< (3)建立一個文本文件“textfile.txt”(內(nèi)容由讀者選定),然后顯示該文件,(4)建立若干個結(jié)構(gòu)體類型的學(xué)生數(shù)據(jù)。要求 (1)鍵盤輸入學(xué)生的信息,學(xué)生的屬性包括學(xué)號、姓名和成績,(2)用文件流中write函數(shù)將學(xué)生的信息寫入文件D:student.dat(3)將student.dat中所有的數(shù)據(jù)讀到內(nèi)存中并顯示輸出在屏幕上。(10分)編寫程序上機完成如下工作: 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< 實驗六 綜合應(yīng)用程序一 一、實驗?zāi)康?/p> 本實驗是對前面所學(xué)知識的總結(jié),通過一個比較完整的應(yīng)用程序的設(shè)計,將學(xué)過的知識連貫起來,掌握開發(fā)一個實際應(yīng)用程序的步驟,同時學(xué)會使用開發(fā)工具實現(xiàn)界面友好的應(yīng)用程序。并通過本實驗,掌握如何運用面向?qū)ο蠹夹g(shù)對具體的應(yīng)用系統(tǒng)進(jìn)行分析和設(shè)計。 二、基本知識點 1、類和對象的定義、對象的初始化和使用 2、面向?qū)ο蟮睦^承機制 3、虛函數(shù)與多態(tài)性 4、運算符重載 5、文件的使用 6、算法的使用 三、基本要求 1、理解面向?qū)ο蟮奶匦?/p> 2、掌握面向?qū)ο蟪绦蛟O(shè)計的開發(fā)方法 3、有一定的分析問題和解決問題的能力 4、根據(jù)學(xué)過的知識點,充分利用已有的開發(fā)工具和素材,使程序編寫具有更高的效率,能真正地解決實際問題。 四、實驗內(nèi)容: 可以在多個題目中選擇一個: 1、編寫一本通信錄 2、模擬簡單計算器 3、簡單的管理系統(tǒng)的設(shè)計:如人事、工資、學(xué)生成績等。(要求部分功能實現(xiàn))。 五、學(xué)生實驗報告要求 1、實驗步驟 1)設(shè)計確定類的結(jié)構(gòu)及各類之間的關(guān)系,注意成員變量和函數(shù)的性質(zhì)(共有、私有或保護(hù)),哪些函數(shù)需要動態(tài)(定義為虛擬函數(shù))。 2)創(chuàng)建系統(tǒng)項目(解決方案, Project)。 3)按上述結(jié)構(gòu)定義各類,在構(gòu)造函數(shù)中對成員變量進(jìn)行初始化。4)定義各類中的成員函數(shù) 5)對用到的算法進(jìn)行描述 2、完成編寫相關(guān)實驗代碼 3、對實驗結(jié)果進(jìn)行分析 4、對本次實驗要有總結(jié) 注意:要求在系統(tǒng)設(shè)計階段對數(shù)據(jù)結(jié)構(gòu)(主要是類的結(jié)構(gòu)及類之間的聯(lián)系)進(jìn)行分析研究,充分利用面向?qū)ο蟮奶匦?,使類結(jié)構(gòu)盡可能合理和高效。