第一篇:C++實驗教案
實驗一 熟悉實驗環境
一、實驗目的
1)了解和使用VC++集成開發環境;
2)熟悉VC++環境的基本命令和功能鍵; 3)學習完整的C++程序開發過程; 4)理解簡單的C++程序結構;
5)學習C++程序基本的輸入輸出操作。
二、實驗內容及要求
1)控制臺應用程序:在終端上輸出“Hello”(printf); 2)Windows應用程序:在窗口上輸出“Hello”(pDC->TextOut(50,50,“Hello”))。
三、實驗重點
1)C、C++、VC++三者之間的關系; 2)項目與源文件的區別;
3)控制臺應用程序與Windows應用程序的區別。
四、實驗步驟
1)進入VC+;2)編寫程序;3)調試程序;4)分析結果。
五、實驗環境
Windows 2000、VC++ 6.0
六、思考題
在一個項目中可有幾個main()函數?如何調試多個源程序?
七、實驗報告要求
1)實驗名稱、日期;2)姓名、班級、學號;3)源代碼需有注釋;4)實驗結果;5)心得體會。
八、參考書籍 《C++面向對象程序設計習題解析與上機指導》,陳維興等,清華大學出版社
實驗三 函數
一、實驗目的
學習C++中內置函數、默認參數的定義與調用方法; 學習C++中函數重載的使用方法。
二、實驗內容及要求
編寫一個sum內聯函數,能返回二個整數的和,其二個參數都為默認參數,然后由主函數進行調用;
編寫二個add函數,分別可對int與char類型進行加法操作,其中針對char類型的加法操作可視為連接操作,如add(‘x’,’y’)的返回值為”xy”。
三、實驗重點
函數的重載;
默認參數的定義次序。
四、實驗步驟
1)進入VC+;2)編寫程序;3)調試程序;4)分析結果。
五、實驗環境
Windows 2000、VC++ 6.0
六、思考題
函數重載調用時的判斷依據是什么?
七、實驗報告要求
1)實驗名稱、日期;2)姓名、班級、學號;3)源代碼需有注釋;4)實驗結果;5)心得體會。
八、參考書籍
實驗五 類與對象
一、實驗目的
1)學習類與對象的定義和聲明; 2)掌握類與對象的使用方法;
3)學習數據成員與成員函數的訪問方式。
二、實驗內容及要求
1)編程實現一個student類,管理一個學生的基本信息,包括學生姓名、學號、語文成績、數學成績、英語成績、平均成績等數據成員,然后在main函數中,從鍵盤輸入得到一個學生的基本信息,最后輸出所有數據成員值到屏幕上;
2)要求使用成員函數的方式實現對姓名、學號的讀寫操作、語數英三科成績的寫操作、平均成績的讀操作。
三、實驗重點
1)類與實例的關系;
四、實驗步驟
1)進入VC+;2)編寫程序;3)調試程序;4)分析結果。
五、實驗環境
Windows 2000、VC++ 6.0
六、思考題
為什么要采用成員函數對數據成員進行讀寫操作,而不是直接操作?
七、實驗報告要求
1)實驗名稱、日期;2)姓名、班級、學號;3)源代碼需有注釋;4)實驗結果;5)心得體會。
八、參考書籍
《C++面向對象程序設計習題解析與上機指導》,陳維興等,清華大學出版社
實驗七 對象數組與對象指針
一、實驗目的
1)掌握數組與指針的定義與使用方法; 2)理解數組與指針的存儲分配與表示; 3)學習向函數傳遞數組的方法;
4)學習用指針和引用向函數傳遞參數。
二、實驗內容及要求
1)在實驗五的student類基礎上,實現一個Sum函數,可將一個student類數組作為參數傳送到函數中,計算出語、數、英的總分,并輸出在屏幕上;
2)要求Sum函數中的參數傳送分別用普通、指針和引用三種方式實現。
三、實驗重點
1)直接傳送、引用傳送、指針傳送三種方式的區別,分別對參數值的影響;
四、實驗步驟
1)進入VC+;2)編寫程序;3)調試程序;4)分析結果。
五、實驗環境
Windows 2000、VC++ 6.0
六、思考題
對象數組和對象指針與普通對象和普通指針的關系。
七、實驗報告要求
1)實驗名稱、日期;2)姓名、班級、學號;3)源代碼需有注釋;4)實驗結果;5)心得體會。
八、參考書籍 《C++面向對象程序設計習題解析與上機指導》,陳維興等,清華大學出版社
《C++面向對象程序設計習題解析與上機指導》,陳維興等,清華大學出版社
實驗九 派生類與繼承
一、實驗目的
1)學習類的的繼承,能夠定義和使用類的繼承關系; 2)學習派生類的聲明與定義方法; 3)熟悉公有派生和私有派生的訪問特性。
二、實驗內容及要求
在實驗五的student類基礎上,定義小學生、中學生、大學生三個繼承類; 小學生類增加“年級”數據成員及讀寫函數,實現全部信息的屏幕輸出; 中學生類增加“文理科”數據成員及讀寫函數,實現全部信息的屏幕輸出; 大學生類增加“專業”數據成員及讀寫函數,實現全部信息的屏幕輸出。
三、實驗重點
Private和public派生方式對基類數據成員的可見性。
四、實驗步驟
1)進入VC+;2)編寫程序;3)調試程序;4)分析結果。
五、實驗環境
Windows 2000、VC++ 6.0
六、思考題
為什么要派生類?類繼承的好處是什么? 派生類的構造/析構函數執行次序。
七、實驗報告要求
1)實驗名稱、日期;2)姓名、班級、學號;3)源代碼需有注釋;4)實驗結果;5)心得體會。
八、參考書籍
實驗十一 函數和運算符重載
一、實驗目的
1)掌握運算符重載的基本方法。
二、實驗內容及要求
在實驗五student類的基礎上重載“= =”運算符,判斷二個student對象是否相等; 在實驗五student類的基礎上重載“>”運算符,判斷二個student對象的成績關系。
三、實驗重點
1)運算符重載的語法規則。
四、實驗步驟
2)進入VC+;2)編寫程序;3)調試程序;4)分析結果。
五、實驗環境
Windows 2000、VC++ 6.0
六、思考題
函數與運算符的關系。
七、實驗報告要求
1)實驗名稱、日期;2)姓名、班級、學號;3)源代碼需有注釋;4)實驗結果;5)心得體會。
八、參考書籍
《C++面向對象程序設計習題解析與上機指導》,陳維興等,清華大學出版社
實驗十三 函數模板
一、實驗目的
1)理解模板的作用;
2)學習函數模板及其聲明和生成方法; 3)學習函數模板的異常情形處理方法。
二、實驗內容及要求
1)定義函數模板實現對int型數組和double型數組的累加。
三、實驗重點
1)函數模板的語法規則。
四、實驗步驟
1)進入VC+;2)編寫程序;3)調試程序;4)分析結果。
五、實驗環境
Windows 2000、VC++ 6.0
六、思考題
函數模板的應用場景是什么?
七、實驗報告要求
1)實驗名稱、日期;2)姓名、班級、學號;3)源代碼需有注釋;4)實驗結果;5)心得體會。
八、參考書籍
《C++面向對象程序設計習題解析與上機指導》,陳維興等,清華大學出版社
實驗十五 自定義類型I/O
一、實驗目的
1)熟悉流及流類庫的作用;
2)掌握流類庫中常用的類及其成員函數的使用方法。
二、實驗內容及要求
1)在實驗五student類的基礎上,重載“>>”和“<<”運算符。
三、實驗重點
1)自定義類型的I/O運算符重載。
四、實驗步驟
1)進入VC+;2)編寫程序;3)調試程序;4)分析結果。
五、實驗環境
Windows 2000、VC++ 6.0
六、思考題
在自定義類型上重載“>>”和“<<”運算符的用途。
七、實驗報告要求
1)實驗名稱、日期;2)姓名、班級、學號;3)源代碼需有注釋;4)實驗結果;5)心得體會。
八、參考書籍 《C++面向對象程序設計習題解析與上機指導》,陳維興等,清華大學出版社
第二篇:C++實驗
上機實驗:
1、回文是指正讀,反讀均相同的字符序列,如“abba”和“abdba”均是回文,但是“good”不是回文,試用STACK類編寫該程序。
#include
int top = 1;char *cMyStack =(char *)malloc((iLen/2+1)*sizeof(char));//定位對原始數組的檢測索引初始位置 cMyStack[0] = iLen/2;if(1 == iLen%2){ ++cMyStack[0];}
//將原始數組的一半元素入棧 for(top=1;top<=iLen/2;top++){ cMyStack[top] = *(cScr+top-1);} //從棧頂開始依次匹配
while(*(cScr+cMyStack[0])== cMyStack[--top] && cMyStack[0]++ < iLen){} if(0 == top){//是回文數 free(cMyStack);return 1;} else {//不是回文數
free(cMyStack);return 0;} } 運行結果:
2.利用兩個棧類S1、S2模擬一個隊列時,編寫一程序利用棧的運算實現隊列的插入、刪除以及判斷隊列空的運算。
#include
template
assert(!mStack2.empty());mStack2.pop();} template
sq.pushBack(1);printQueue(sq);sq.pushBack(2);printQueue(sq);sq.pushBack(3);printQueue(sq);sq.popFront();printQueue(sq);sq.popFront();printQueue(sq);sq.popFront();printQueue(sq);return 0;} 運行結果:
實驗2:
聲明復數的類Complex,使用友元函數add實現復數的加法。
#include < iostream > using namespace std;
class Complex { private:
double real, image;public :
Complex(){}
Complex(double a,double b)
{
real = a;image = b;}
void setRI(double a, double b){
real = a;image = b;} double getReal(){ return real;}
double getImage(){ return image;} void print(){ if(image>0)
cout<<“復數:”<< real <<“ + ”<< image <<“i”<< endl;if(image<0)
cout<<“復數:”<< real <<“-”<< image <<“i”<< endl;}
friend Complex add(Complex ,Complex);//聲明友元函數 };
Complex add(Complex c1, Complex c2)//定義友元函數
{
Complex c3;
c3.real = c1.real + c2.real;//訪問Complex類中的私有成員
c3.image = c1.image + c2.image;return c3;}
void main(){
Complex c1(29, 0.634), c2, c3;c2.setRI(85,106.012);c3 = add(c1, c2);
cout<<“復數一:”;c1.print();cout<<“復數二:”;c2.print();cout<<“相加后:”;c3.print();}
結果:
實驗三:
7-5 定義一個基類Shape,在此基礎上派生出一個Rectangle和Circle,二者都有getArea()函數計算對象的面積。使用Rectangle類創建一個派生類Square.#include
public: Shape(){}
double GetArea()
{
return 0.1;}
};class Rectangle: public Shape {
public:
Rectangle(double w,double h)
{
width=w;height=h;}
double GetArea(){
return width*height;}
private: double width,height;};class Circle:public Shape { private: double r;
public: Circle(double rr){ r=rr;}
double GetArea(){
return PI*r*r;} };
int main(){
Rectangle * rec=new Rectangle(5,6);
Circle * cir=new Circle(5);
cout<<“RecArea:”< cout<<“CirArea:”< return 1; } 運行結果: 7-10.定義一個Object類,有數據成員weight及相應的操作函數,由此派生出Box類,增加數據成員height和width及相應的操作函數,聲明一個Box對象,觀察構造函數和析構函數的調用順序。#include object(){ cout<<“構造object對象”< class box:public object { private: int Height,Width;public: box(){ cout<<“構造box對象”< 面向對象程序設計實驗 Object Oriented Programming 課程編號: 學 分: 學 時:10 先修課程:計算機導論、C語言程序設計 適用專業:計算機科學與技術、軟件工程 教 材:《C++程序設計教程:實驗手冊》,清華大學出版社,Harvery M.,Paul J.,Tem R.,2004 開課院系:計算機科學與技術系 一、實驗的性質和任務 C++是一門高效實用的程序設計語言,它既可進行過程化程序設計,也可進行面向對象程序設計。隨著C++逐漸成為ANSI標準,這種新的面向對象程序設計語言已經成為了程序員最廣泛使用的工具。本課程是一門計算機及相關專業的重要的專業基礎課,開設實驗課程主要目的是使學生掌握有關C++語言的基本概念、基本語法和編程方法,理解C++語言面向對象的重要特征,促使學生理論聯系實際,能夠靈活應用自己所學的理論知識進行程序開發,增強學生的實踐動手技能,并能夠提高學生獨立分析問題和解決問題的能力。 二、實驗的基本內容及要求 實驗 一、C++程序的運行環境、簡單C++數據類型及運算(1學時)1. 實驗目的 (1)熟悉VC++6.0集成開發環境;掌握簡單C++程序的編輯、編譯和運行 (2)熟悉和理解C++語言中的數據類型、表達式;掌握簡單C++程序的編寫及調試方法 2. 實驗內容 (1)熟悉VC++6.0集成開發環境的基本操作方法,學會獨立使用該系統(2)了解在該系統上如何編輯、編譯、連接和運行一個C++程序(3)通過運行一個簡單的C++程序,初步了解C++源程序的特點 (4)熟悉和理解C++語言中的數據類型、表達式,了解基本數據類型的字節寬度和范圍表示 (5)利用學習的數據類型,編制簡單的C++程序實驗準備(6)初步學習程序調試方法 3. 實驗準備 (1)安裝Visual C++編譯系統 (2)熟悉Vc++6.0編譯系統的使用步驟,以及簡單C++程序的編輯、編譯和運行過程(3)復習C++的基本數據類型,表達式(4)復習程序的上機調試過程 (5)根據實驗內容要求,編寫好實驗程序 4. 實驗步驟 (1)選擇菜單“開始/程序/Microsoft Visual Studio 6.0/Microsoft Visual C++ 6.0”,得到Visual C++ 6.0啟動后的用戶界面;(2)創建一個新工程; (3)編寫一個簡單的C++源程序,并保存;(4)編譯連接和運行程序 (5)輸入源程序,編譯、連接直到沒有錯誤(6)運行程序,觀察程序運行結果 5. 實驗報告 (1)提交源程序 (2)舉例說明在建立源程序、編譯、連接程序時,發現的錯誤屬于何種類型及解決辦法 (3)改變所用變量的數據類型,觀察程序運行結果的變化并分析原因(4)寫出上機實驗體會和實驗報告 實驗 二、數組(1學時)1.實驗目的 熟練掌握一維數組和二維數組的定義、引用和初始化;掌握字符數組與字符串的關系以及字符串變量的表示,熟練字符串處理函數的應用。2.實驗內容 (1)有一個數組,內放10個整數,找出最小的數和它的下標,然后把它和數組中最前面的元素對換 輸入一個n×n的矩陣,求出兩條對角線元素值之和 編寫一程序,將兩個字符串連接起來,不要strcat函數 3.實驗準備 (1)復習一維數組和二維數組的定義、引用和初始化方法,進一步了解常用字符串處理函數的使用。 (2)根據實驗內容要求,編寫好實驗程序 4.實驗步驟 (1)輸入源程序,編譯、連接直到沒有錯誤(2)根據實驗步驟,撰寫實驗報告 5.實驗報告 (1)結合上課內容,寫出程序,并調試程序,要給出測試數據和實驗結果(2)整理上機步驟,總結經驗和體會(3)完成實驗報告和提交源程序 實驗 三、函數與編譯預處理(1學時)1.實驗目的 掌握函數的定義、申明和使用方法;掌握函數調用的方法;掌握全局變量、局部變量、靜態變量的使用方法;掌握編譯預處理的使用。2.實驗內容 (1)求兩正整數的最大公約數和最小公倍速數,用一個函數求最大公約數,另一個函數求最小公倍數。要求:不使用全局變量。將最大公約數和最小公倍數在主函數中輸出。 (2)十進位制數轉換二、八和十六進制數程序。要求: a.編寫一個函數實現十進制數轉換其它進制數; b.在主函數中給十進制數和轉換的進位制,輸出轉換結果。 3.實驗準備 (1)復習函數的定義、申明和使用方法,熟悉函數調用和編譯預處理(2)根據實驗內容要求,編寫好實驗程序 4.實驗步驟 (1)輸入源程序,編譯、連接直到沒有錯誤(2)根據實驗步驟,撰寫實驗報告 5.實驗報告 (1)結合上課內容,寫出程序,并調試程序,要給出測試數據和實驗結果(2)整理上機步驟,總結經驗和體會(3)完成實驗報告和提交源程序 實驗 四、指針(2學時)1.實驗目的 熟練掌握各種類型指針的定義、申明、引用和運算;掌握數組指針和指向數組的指針變量,以及字符串的指針和指向字符串的指針變量;了解指針與鏈表關系。2.實驗內容 (1)編寫程序,在堆內存中申請一個float型數組,把10個float型數據0.1、0.2、0.3?、1.0賦予該數組,然后使用float型指針輸出該數組的各元素值并求出其累加和。(2)使用指針編寫函數strcat()函數,即實現兩個字符串的首尾連接(將字符串str2接到str1的后面,str1最后面的‘
主站蜘蛛池模板:
亚洲国产天堂久久综合|
精品午夜福利1000在线观看|
亚洲精品无码永久中文字幕|
国产片a国产片免费看视频|
日日摸夜夜添夜夜添无码免费视频|
人妻视频一区二区三区免费|
亚洲国产精品不卡av在线|
亚洲人成电影在线播放|
99这里有精品热视频|
国产亚洲日韩在线aaaa|
99久久久无码国产精品9|
亚洲国产精品无码成人片久久|
国产成人香蕉久久久久|
国产精品992tv在线观看|
欧美不卡一区二区三区|
亚洲不卡中文字幕无码|
久久96国产精品久久久|
亚洲va欧美va天堂v国产综合|
欧美黑人又粗又大xxxx|
看全色黄大色大片免费久久|
亚洲视频中文字幕|
亚洲色欲久久久久综合网|
亚洲日韩欧美国产另类综合|
亚洲人成综合网站7777香蕉|
中文字幕av无码不卡免费|
国产成人无码a区在线观看视频app|
久久综合一色综合久久小蛇|
自偷自拍亚洲综合精品第一页|
亚洲女教师丝祙在线播放|
久久精品国产99国产精品澳门|
蜜桃av色偷偷av老熟女|
亚洲欧洲无码av不卡在线|
超碰97资源站|
日韩精品无码一区二区三区|
日日碰狠狠躁久久躁|
国产精品久久久久av福利动漫|
97人妻中文字幕总站|
精品一区二区三区四区五区六区|
av大片在线无码永久免费|
香蕉蕉亚亚洲aav综合|
亚洲国产av一区二区三区丶|
第三篇:c++實驗(網絡工程 ))