南昌大學(xué)C高級(jí)語言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第1頁
南昌大學(xué)C高級(jí)語言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第2頁
南昌大學(xué)C高級(jí)語言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第3頁
南昌大學(xué)C高級(jí)語言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第4頁
南昌大學(xué)C高級(jí)語言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、實(shí) 驗(yàn) 報(bào) 告實(shí)驗(yàn)課程: 學(xué)生姓名: 學(xué) 號(hào): 專業(yè)班級(jí): 2016年 9 月 1 日目 錄實(shí)驗(yàn)一. C+的開發(fā)環(huán)境和簡(jiǎn)單程序的調(diào)試2實(shí)驗(yàn)二. 函數(shù)的應(yīng)用和類的基本構(gòu)造5實(shí)驗(yàn)三. 數(shù)組、指針、字符串8實(shí)驗(yàn)四. 繼承與派生10實(shí)驗(yàn)五. 多態(tài)與模板15實(shí)驗(yàn)六. 異常處理21實(shí)驗(yàn)七. 輸入輸出25實(shí)驗(yàn)八. 文件28 南昌大學(xué)實(shí)驗(yàn)報(bào)告學(xué)生姓名: 學(xué) 號(hào): 專業(yè)班級(jí): 實(shí)驗(yàn)類型: 驗(yàn)證 綜合 設(shè)計(jì) 創(chuàng)新 實(shí)驗(yàn)日期: 2016-9-9 實(shí)驗(yàn)成績(jī): 一、實(shí)驗(yàn)項(xiàng)目名稱實(shí)驗(yàn)一. C+的開發(fā)環(huán)境和簡(jiǎn)單程序的調(diào)試二、實(shí)驗(yàn)?zāi)康? 熟悉C+程序的風(fēng)格,熟悉實(shí)驗(yàn)環(huán)境。2 練習(xí)C+程序的輸入、修改、編譯、連接與運(yùn)行的全過程

2、三、實(shí)驗(yàn)基本原理C+程序設(shè)計(jì)語言四、主要儀器設(shè)備及耗材PC微機(jī)DOS操作系統(tǒng)或 Windows 操作系統(tǒng)C+程序設(shè)計(jì)語言開發(fā)環(huán)境五、實(shí)驗(yàn)步驟(要求給出運(yùn)行結(jié)果的屏幕截圖,源程序電子打包提交)1. 分析下面程序的輸出結(jié)果:2. 建立一個(gè)被稱為sroot( )的函數(shù),返回其參數(shù)的二次根。重載sroot( )三次,讓它分別返回整數(shù)、長(zhǎng)整數(shù)與雙精度數(shù)的二次根(為了實(shí)際計(jì)算二次根,可以使用標(biāo)準(zhǔn)庫函數(shù)sqrt( ))。3. 編寫C+風(fēng)格的程序,解決百錢問題,將1元人民幣兌換成1,2,5分的硬幣,有多少種換法 六、實(shí)驗(yàn)數(shù)據(jù)及處理結(jié)果1. 分析下面程序的輸出結(jié)果:#include <iostream.h

3、>int &f(int &i) i+=10; return i;void main() int k=0; int &m=f(k); cout<<k<<endl; m=20; cout<<k<<endl;2. 建立一個(gè)被稱為sroot( )的函數(shù),返回其參數(shù)的二次根。重載sroot( )三次,讓它分別返回整數(shù)、長(zhǎng)整數(shù)與雙精度數(shù)的二次根(為了實(shí)際計(jì)算二次根,可以使用標(biāo)準(zhǔn)庫函數(shù)sqrt( ))。#include <iostream>#include <math.h>using namespace s

4、td;int sroot(int i) return (int)sqrt(i); float sroot(float f) return (float)sqrt(f); double sroot(double d) return (double)sqrt(d); int main( ) int i; float f; double d; cout<<"輸入整型參數(shù)i=" cin>>i; cout<<"輸入長(zhǎng)整參數(shù)f=" cin>>f; cout<<"輸入雙精度參數(shù)d=" ci

5、n>>d; cout<<"整型參數(shù)i的二次根="<<sroot(i)<<endl; cout<<"長(zhǎng)整參數(shù)f的二次根="<<sroot(f)<<endl; cout<<"雙精度參數(shù)d的二次根="<<sroot(d)<<endl;3. 編寫C+風(fēng)格的程序,解決百錢問題,將1元人民幣兌換成1,2,5分的硬幣,有多少種換法?#include <iostream>using namespace std;int m

6、ain()int i,j,k;int sum=0;for(i=0;i<=100;i+)for(j=0;j<=50;j+)for(k=0;k<=20;k+)if(i*1+2*j+5*k=100)cout<<"一分:"<<i<<" 兩分:"<<j<<" 五分:"<<k<<endl;sum+;cout<<"總數(shù)為:"<<sum<<endl;七、思考討論題或體會(huì)或?qū)Ω倪M(jìn)實(shí)驗(yàn)的建議八、參考

7、資料C+語言程序設(shè)計(jì)學(xué)生用書 清華大學(xué)出版社 鄭莉等 南昌大學(xué)實(shí)驗(yàn)報(bào)告學(xué)生姓名: 學(xué) 號(hào): 專業(yè)班級(jí): 實(shí)驗(yàn)類型: 驗(yàn)證 綜合 設(shè)計(jì) 創(chuàng)新 實(shí)驗(yàn)日期: 2016-9-9 實(shí)驗(yàn)成績(jī): 一、實(shí)驗(yàn)項(xiàng)目名稱實(shí)驗(yàn)二. 函數(shù)的應(yīng)用和類的基本構(gòu)造二、實(shí)驗(yàn)?zāi)康? 熟悉C+程序類定義的一般形式。2 熟悉C+程序?qū)ο蟮亩x,對(duì)象的使用。3 構(gòu)造函數(shù)與析構(gòu)函數(shù)的定義三、實(shí)驗(yàn)基本原理C+程序設(shè)計(jì)語言四、主要儀器設(shè)備及耗材PC微機(jī)DOS操作系統(tǒng)或 Windows 操作系統(tǒng)C+程序設(shè)計(jì)語言開發(fā)環(huán)境五、實(shí)驗(yàn)步驟(要求運(yùn)行結(jié)果的屏幕截圖,源程序電子打包提交)1.運(yùn)行下面的程序,并說明運(yùn)行結(jié)果為什么?。#include <

8、;iostream.h>class example public: example(int n) i=n; cout<<"構(gòu)造函數(shù)n" example() cout<<"析構(gòu)函數(shù)n" int get_i() return i; private: int i;int sqr_it(example o) cout<<"調(diào)用sqr_it開始n"return o.get_i()*o.get_i(); void main() example x(10); cout<<x.get_i()<

9、;<endl; cout<<sqr_it(x)<<endl; cout<<"調(diào)用sqr_it結(jié)束n"2. 建立類cylinder,cylinder的構(gòu)造函數(shù)被傳遞了兩個(gè)double值,分別表示圓柱體的半徑和高度。用類cylinder計(jì)算圓柱體的體積,并存儲(chǔ)在一個(gè)double變量中。在類cylinder中包含一個(gè)成員函數(shù)vol(),用來顯示每個(gè)cylinder對(duì)象的體積。六、實(shí)驗(yàn)數(shù)據(jù)及處理結(jié)果1.運(yùn)行下面的程序,并說明運(yùn)行結(jié)果為什么?。#include <iostream.h>class example public: e

10、xample(int n) i=n; cout<<"構(gòu)造函數(shù)n" example() cout<<"析構(gòu)函數(shù)n" int get_i() return i; private: int i;int sqr_it(example o) cout<<"調(diào)用sqr_it開始n"return o.get_i()*o.get_i(); void main() example x(10); cout<<x.get_i()<<endl; cout<<sqr_it(x)<&l

11、t;endl; cout<<"調(diào)用sqr_it結(jié)束n"2. 建立類cylinder,cylinder的構(gòu)造函數(shù)被傳遞了兩個(gè)double值,分別表示圓柱體的半徑和高度。用類cylinder計(jì)算圓柱體的體積,并存儲(chǔ)在一個(gè)double變量中。在類cylinder中包含一個(gè)成員函數(shù)vol(),用來顯示每個(gè)cylinder對(duì)象的體積。#include <iostream>using namespace std;class cylinder double v; public: cylinder(double r, double h) v=(3.14*r*r)*h

12、; cout<<"圓柱體的半徑r為:"<<r<<"n"<<"圓柱體的高度h為:"<<h<<endl; void vol() cout<<"圓柱體的體積v是:"<<v<<endl; ;main ( ) double r,h; cout<<"輸入圓柱體的半徑r:" cin>>r; cout<<"輸入圓柱體的高度h:" cin>>

13、;h; cylinder obj(r,h); obj.vol(); 七、思考討論題或體會(huì)或?qū)Ω倪M(jìn)實(shí)驗(yàn)的建議八、參考資料C+語言程序設(shè)計(jì)學(xué)生用書 清華大學(xué)出版社 鄭莉等高級(jí)語言C+程序設(shè)計(jì)試驗(yàn)指導(dǎo)高等教育出版社 周玉龍 南昌大學(xué)實(shí)驗(yàn)報(bào)告學(xué)生姓名: 學(xué) 號(hào): 專業(yè)班級(jí): 實(shí)驗(yàn)類型: 驗(yàn)證 綜合 設(shè)計(jì) 創(chuàng)新 實(shí)驗(yàn)日期: 2016-9-9 實(shí)驗(yàn)成績(jī): 一、實(shí)驗(yàn)項(xiàng)目名稱實(shí)驗(yàn)三. 數(shù)組、指針、字符串二、實(shí)驗(yàn)?zāi)康?熟悉C+中數(shù)組、指針和字符串的特點(diǎn)和應(yīng)用。三、實(shí)驗(yàn)基本原理C+程序設(shè)計(jì)語言四、主要儀器設(shè)備及耗材PC微機(jī)DOS操作系統(tǒng)或 Windows 操作系統(tǒng)C+程序設(shè)計(jì)語言開發(fā)環(huán)境五、實(shí)驗(yàn)步驟(要求給出簡(jiǎn)單

14、類圖、運(yùn)行結(jié)果的屏幕截圖,源程序電子打包提交) 1構(gòu)建一個(gè)類book,其中含有兩個(gè)私有數(shù)據(jù)成員qu和price,建立一個(gè)有5個(gè)元素的數(shù)組對(duì)象,將qu初始化為15,將price初始化為qu的10倍。顯示每個(gè)對(duì)象的qu*price值。2通過對(duì)象指針訪問對(duì)象數(shù)組,使程序以相反的順序顯示對(duì)象數(shù)組的qu*price值.六、實(shí)驗(yàn)數(shù)據(jù)及處理結(jié)果1構(gòu)建一個(gè)類book,其中含有兩個(gè)私有數(shù)據(jù)成員qu和price,建立一個(gè)有5個(gè)元素的數(shù)組對(duì)象,將qu初始化為15,將price初始化為qu的10倍。顯示每個(gè)對(duì)象的qu*price值。#include <iostream>using namespace st

15、d;class book int qu, price; public: book(int q) qu=q; price=10*q; int get_qu() return qu; int get_price() return price; ;int main( ) book obj5=1,2,3,4,5; for(int i=0;i<5;i+) cout<<"數(shù)組對(duì)象"<<i+1<<"的qu*price值為:"<<obji.get_qu()*obji.get_price()<<endl;

16、2 通過對(duì)象指針訪問對(duì)象數(shù)組,使程序以相反的順序顯示對(duì)象數(shù)組的qu*price值.#include <iostream>using namespace std;class book int qu, price; public: book(int q) qu=q; price=10*q; int get_qu() return qu; int get_price() return price; ;int main( ) book obj5=1,2,3,4,5; book *p; p=&obj4; for(int i=5;i>0;i-) cout<<"

17、;數(shù)組對(duì)象"<<i<<"的qu*price值為:"<<p->get_qu()*p->get_price()<<endl; p-;七、思考討論題或體會(huì)或?qū)Ω倪M(jìn)實(shí)驗(yàn)的建議八、參考資料C+語言程序設(shè)計(jì)學(xué)生用書 清華大學(xué)出版社 鄭莉等 南昌大學(xué)實(shí)驗(yàn)報(bào)告學(xué)生姓名: 學(xué) 號(hào): 專業(yè)班級(jí): 實(shí)驗(yàn)類型: 驗(yàn)證 綜合 設(shè)計(jì) 創(chuàng)新 實(shí)驗(yàn)日期: 2016-9-9 實(shí)驗(yàn)成績(jī): 一、實(shí)驗(yàn)項(xiàng)目名稱實(shí)驗(yàn)四. 繼承與派生二、實(shí)驗(yàn)?zāi)康? 熟悉派生類的聲明。2. 派生類的構(gòu)造函數(shù)與析構(gòu)函數(shù)的定義。3. 繼承的方式。三、實(shí)驗(yàn)基本原理C+程序設(shè)

18、計(jì)語言四、主要儀器設(shè)備及耗材PC微機(jī)DOS操作系統(tǒng)或 Windows 操作系統(tǒng)C+程序設(shè)計(jì)語言開發(fā)環(huán)境五、實(shí)驗(yàn)步驟(要求給出簡(jiǎn)單類圖、運(yùn)行結(jié)果的屏幕截圖,源程序電子打包提交)1.下面的程序包含了Time類和Date類的聲明,要求設(shè)計(jì)一個(gè)Brithtime類,它繼承了Time類和Date類,并且還有一項(xiàng)出生孩子的名字Childname,同時(shí)設(shè)計(jì)主程序顯示一個(gè)小孩的出生時(shí)間和名字。#include <iostream.h>#include <string.h>class Time protected: int hours,minutes,seconds; public: T

19、ime(int h, int m, int s) hours=h; minutes=m; seconds=s; virtual void display() cout<<hours<<":"<<minutes<<":"<<seconds<<endl; ;class Date protected: int month,day,year; public: Date(int m, int d, int y) month=m; day=d; year=y; virtual void disp

20、lay() cout<<month<<"/"<<day<<"/"<<year<<endl; ;2. 建立普通的基類buliding,用來存儲(chǔ)一座樓房的層數(shù)、房間數(shù)以及它的總平方米數(shù)。建立派生類house,繼承building,并存儲(chǔ)下面的內(nèi)容:臥室與浴室的數(shù)量。另外,建立派生類office,繼承building,并存儲(chǔ)滅火器與電話的數(shù)目。六、實(shí)驗(yàn)數(shù)據(jù)及處理結(jié)果1.下面的程序包含了Time類和Date類的聲明,要求設(shè)計(jì)一個(gè)Brithtime類,它繼承了Time類和Date類,并且還有一

21、項(xiàng)出生孩子的名字Childname,同時(shí)設(shè)計(jì)主程序顯示一個(gè)小孩的出生時(shí)間和名字。#include <iostream>#include <string.h>using namespace std;class Time protected: int hours,minutes,seconds; public: Time(int h, int m, int s) hours=h; minutes=m; seconds=s; virtual void display() cout<<hours<<":"<<minutes

22、<<":"<<seconds<<endl; ;class Date protected: int month,day,year; public: Date(int m, int d, int y) month=m; day=d; year=y; virtual void display() cout<<month<<"/"<<day<<"/"<<year<<endl; ;class Brithtime:public Time,

23、public Date protected: char *Childname; public: Brithtime(int m, int d, int y, int h, int min, int s, char *p):Date(m,d,y),Time(h,min,s) Childname=new charstrlen(p)+1; strcpy(Childname,p); void display() cout<<"姓名:"<<Childname<<"n" Date:display(); Time:display()

24、; ;main( ) int m, d, y, h, min, s; char p20; cout<<"姓名:" scanf("%s",&p); cout<<"輸入出生年月日:" cin>>y>>m>>d; cout<<"輸入出生時(shí)分秒:" cin>>h>>min>>s; Brithtime ob(m,d,y,h,min,s,p); ob.display();2. 建立普通的基類buliding,用來

25、存儲(chǔ)一座樓房的層數(shù)、房間數(shù)以及它的總平方米數(shù)。建立派生類house,繼承building,并存儲(chǔ)下面的內(nèi)容:臥室與浴室的數(shù)量。另外,建立派生類office,繼承building,并存儲(chǔ)滅火器與電話的數(shù)目。#include <iostream>using namespace std;class building protected: int fr; int r; double m; public: building(int a, int b, double x) fr=a; r=b; m=x; ;class house : public building private: int b

26、r; int dr;public:house(int a, int b, double x, int c, int d):building(a,b,x) br=c; dr=d; void show() cout << "樓房層數(shù) :"<<fr<<endl; cout << "房間數(shù) :"<<r<<endl; cout << "樓房總面積:"<<m<<endl; cout << "臥室數(shù)量 :"&l

27、t;<br<<endl; cout << "浴室數(shù)量 :"<<dr<<endl; ;class offic : public building private: int mr; int tr;public:offic(int a, int b, double x, int c, int d):building(a,b,x) mr=c; tr=d; void show() cout << "樓房層數(shù) :"<<fr<<endl; cout << "

28、房間數(shù) :"<<r<<endl; cout << "樓房總面積:"<<m<<endl; cout << "滅火器數(shù)量:"<<mr<<endl; cout << "電話數(shù)量 :"<<tr<<endl; ;main() int fr;int r; double m; int br;int dr; int mr;int tr; cout << "輸入樓房層數(shù):"cin&

29、gt;> fr; cout << "輸入房間數(shù) :"cin>> r; cout << "總平方米數(shù) :"cin>> m; cout << "臥室數(shù)量 :"cin>> br; cout << "浴室數(shù)量 :"cin>> dr; cout << "滅火器數(shù)量 :"cin>> mr; cout << "電話數(shù)量 :"cin>> tr;

30、 cout <<endl; building ob1(fr,r,m); house ob2(fr,r,m,br,dr); offic ob3(fr,r,m,mr,tr); cout <<"住宅樓"<<endl; ob2.show(); cout <<"n辦公大樓"<<endl; ob3.show();七、思考討論題或體會(huì)或?qū)Ω倪M(jìn)實(shí)驗(yàn)的建議八、參考資料C+語言程序設(shè)計(jì)學(xué)生用書 清華大學(xué)出版社 鄭莉等 南昌大學(xué)實(shí)驗(yàn)報(bào)告學(xué)生姓名: 學(xué) 號(hào): 專業(yè)班級(jí): 實(shí)驗(yàn)類型: 驗(yàn)證 綜合 設(shè)計(jì) 創(chuàng)新 實(shí)驗(yàn)日期:

31、2016-9-9 實(shí)驗(yàn)成績(jī): 一、實(shí)驗(yàn)項(xiàng)目名稱實(shí)驗(yàn)五. 多態(tài)與模板二、實(shí)驗(yàn)?zāi)康? 熟悉函數(shù)(成員函數(shù))的重載。2. 熟悉運(yùn)算符重載。3. 了解虛函數(shù)、純虛函數(shù)和抽象類。4 函數(shù)模板與模板函數(shù)。55. 類模板和模板類。三、實(shí)驗(yàn)基本原理C+程序設(shè)計(jì)語言四、主要儀器設(shè)備及耗材PC微機(jī)DOS操作系統(tǒng)或 Windows 操作系統(tǒng)C+程序設(shè)計(jì)語言開發(fā)環(huán)境五、實(shí)驗(yàn)步驟(要求給出簡(jiǎn)單類圖、運(yùn)行結(jié)果的屏幕截圖,源程序電子打包提交)1. 用成員函數(shù)重載運(yùn)算符“+”和“-”,將兩個(gè)二維數(shù)組相加和相減,要求第一個(gè)二維數(shù)組的值由構(gòu)造函數(shù)設(shè)置,另一個(gè)二維數(shù)組的值由由鍵盤數(shù)入。2. 編寫程序,計(jì)算汽車運(yùn)行的時(shí)間,首先建立基

32、類car,其中含有數(shù)據(jù)成員distance存儲(chǔ)兩點(diǎn)間的距離,假定距離以英里計(jì)算,速度為每小時(shí)80英里,使用虛函數(shù)travel_time()計(jì)算并顯示通過這段距離的時(shí)間。派生類kilometre中,假定距離以千米計(jì)算,速度為每小時(shí)120千米,使用函數(shù)travel_time()計(jì)算并顯示通過這段距離的時(shí)間。3 寫一個(gè)函數(shù)模板,求數(shù)組中的最大元素,并使得在函數(shù)調(diào)用時(shí),數(shù)組的類型和返回類型可以是整數(shù)也可以是雙精度類型。4. 建立類模板input,在調(diào)用構(gòu)造函數(shù)時(shí),完成以下工作:(1)提示用戶輸入;(2)讓用戶輸入數(shù)據(jù);(3)如果數(shù)據(jù)不在預(yù)定范圍內(nèi),重新提示輸入。六、實(shí)驗(yàn)數(shù)據(jù)及處理結(jié)果1. 用成員函數(shù)重

33、載運(yùn)算符“+”和“-”,將兩個(gè)二維數(shù)組相加和相減,要求第一個(gè)二維數(shù)組的值由構(gòu)造函數(shù)設(shè)置,另一個(gè)二維數(shù)組的值由由鍵盤數(shù)入。#include <iostream>using namespace std;class Tow_arr / 定義類Tow_arr protected: int a23; public: Tow_arr(int ,int ,int ,int ,int ,int ); /構(gòu)造函數(shù) Tow_arr(); /無參構(gòu)造函數(shù) void Set(); /設(shè)置二維數(shù)組數(shù)據(jù)的函數(shù) void Show(); /顯示二維數(shù)組數(shù)據(jù)的函數(shù) Tow_arr operator +( Tow_

34、arr );/成員函數(shù)重載運(yùn)算符“+” Tow_arr operator -( Tow_arr );/成員函數(shù)重載運(yùn)算符“-”; /構(gòu)造函數(shù)完整Tow_arr:Tow_arr(int a1,int a2,int a3,int a4,int a5,int a6) a00=a1; a01=a2; a02=a3;a10=a4; a11=a5; a12=a6;Tow_arr:Tow_arr() /無參構(gòu)造函數(shù)完整 for (int i=0; i<2; i+) for (int j=0; j<3; j+) aij=0;void Tow_arr:Set() /設(shè)置二維數(shù)組數(shù)據(jù)的函數(shù)完整 cou

35、t<<"數(shù)入 2 X 3 個(gè)整數(shù):"<<endl; for (int i=0; i<2; i+) for (int j=0; j<3; j+) cout<<"輸入第"<<(i+1)*(j+1)<<"個(gè)數(shù)為:" cin>>aij; void Tow_arr:Show() /顯示二維數(shù)組數(shù)據(jù)的函數(shù)完整 cout<<"二維數(shù)組內(nèi)的數(shù)據(jù)是:"<<endl; for (int i=0; i<2; i+) for

36、(int j=0; j<3; j+) cout<<aij<<" " cout<<'n' /成員函數(shù)重載運(yùn)算符“+”完整Tow_arr Tow_arr:operator +( Tow_arr add2) Tow_arr temp; for (int i=0; i<2; i+) for (int j=0; j<3; j+) temp.aij=aij+add2.aij; return temp;/成員函數(shù)重載運(yùn)算符“-”完整Tow_arr Tow_arr:operator -( Tow_arr add2) To

37、w_arr temp; for (int i=0; i<2; i+) for (int j=0; j<3; j+) temp.aij=aij-add2.aij; return temp; main() Tow_arr obja(12,56,34,56,24,82); /定義對(duì)象obja Tow_arr objb, objc; /定義對(duì)象objb, objcobjb.Set(); /給對(duì)象objb設(shè)置數(shù)據(jù)cout<<"Obja"obja.Show(); /顯示對(duì)象obja數(shù)據(jù)cout<<"Objb"objb.Show()

38、;objc=obja+objb; cout<<"Obja+Objb后,Objc"objc.Show(); /顯示對(duì)象objc數(shù)據(jù) objc=obja-objb; cout<<"Obja-Objb后,Objc"objc.Show(); /顯示對(duì)象objc數(shù)據(jù)2. 編寫程序,計(jì)算汽車運(yùn)行的時(shí)間,首先建立基類car,其中含有數(shù)據(jù)成員distance存儲(chǔ)兩點(diǎn)間的距離,假定距離以英里計(jì)算,速度為每小時(shí)80英里,使用虛函數(shù)travel_time()計(jì)算并顯示通過這段距離的時(shí)間。派生類kilometre中,假定距離以千米計(jì)算,速度為每小時(shí)120

39、千米,使用函數(shù)travel_time()計(jì)算并顯示通過這段距離的時(shí)間。#include <iostream>using namespace std;class car / 定義類car protected: float distance; public: car(float x) distance=x; virtual int travel_time() /虛函數(shù)travel_time() float time; int h,m; time=distance/80; h=int(time); m=(time-h)*60; cout<<"距離:"<

40、;<distance<<"英里,通過時(shí)間:"<<h<<"小時(shí)"<<m<<"分鐘"<<endl; ;class kilometre : public car public: kilometre(float y):car(y) virtual int travel_time() /重新定義虛函數(shù)travel_time() float time; int h,m; time=distance/120; h=int(time); m=(time-h)*60; cou

41、t<<"距離:"<<distance<<"千米,通過時(shí)間:"<<h<<"小時(shí)"<<m<<"分鐘"<<endl; ;main() car obja(453),*op; kilometre objb(1455);op=&obja;op->travel_time(); op=&objb;op->travel_time();3 寫一個(gè)函數(shù)模板,求數(shù)組中的最大元素,并使得在函數(shù)調(diào)用時(shí),數(shù)組的類型和返回類

42、型可以是整數(shù)也可以是雙精度類型。# include<iostream>using namespace std;template<class AT>AT max(AT a, int n) AT maxitem; maxitem=a0;for(int i=0; i<n; i+)if( ai>maxitem ) maxitem=ai;return maxitem; main() int a10=12,24,97,65,81,23,145,12,32,54; double b5=12.34,32.56,65.28,98.56,12.54; cout<<&

43、quot;整數(shù)數(shù)組a的最大元素是:"<<max(a,10)<<endl; cout<<"雙精度數(shù)組b的最大元素是:"<<max(b,5)<<endl;4. 建立類模板input,在調(diào)用構(gòu)造函數(shù)時(shí),完成以下工作:(1)提示用戶輸入;(2)讓用戶輸入數(shù)據(jù);(3)如果數(shù)據(jù)不在預(yù)定范圍內(nèi),重新提示輸入。#include<iostream>#include <string.h>using namespace std; template <class Type> /定義有個(gè)機(jī)動(dòng)類型

44、的類模板inputclass inputprivate: Type max, min; public: input(char *s, Type mi, Type ma) /構(gòu)造函數(shù) Type temp; min=mi; max=ma; cout<<"請(qǐng)輸入"<<s<<"("<<min<<"到"<<max<<")數(shù)據(jù):" cin>>temp; do if(min<=temp&&temp<=max

45、) break; cout<<"數(shù)據(jù)錯(cuò)誤,請(qǐng)輸入"<<s<<"數(shù)據(jù)范圍("<<min<<"到"<<max<<"):" cin>>temp; while(1); ;main() input<int> obj1("integer",1,10); /用int實(shí)例化類模板七、思考討論題或體會(huì)或?qū)Ω倪M(jìn)實(shí)驗(yàn)的建議八、參考資料C+語言程序設(shè)計(jì)學(xué)生用書 清華大學(xué)出版社 鄭莉等 南昌大學(xué)實(shí)驗(yàn)報(bào)告學(xué)生姓名:

46、學(xué) 號(hào): 專業(yè)班級(jí): 實(shí)驗(yàn)類型: 驗(yàn)證 綜合 設(shè)計(jì) 創(chuàng)新 實(shí)驗(yàn)日期: 2016-9-9 實(shí)驗(yàn)成績(jī): 一、實(shí)驗(yàn)項(xiàng)目名稱實(shí)驗(yàn)六. 異常處理二、實(shí)驗(yàn)?zāi)康睦斫猱惓L幚淼脑砗瓦^程掌握異常處理的基本方法三、實(shí)驗(yàn)基本原理C+程序設(shè)計(jì)語言四、主要儀器設(shè)備及耗材PC微機(jī)DOS操作系統(tǒng)或 Windows 操作系統(tǒng)C+程序設(shè)計(jì)語言開發(fā)環(huán)境五、實(shí)驗(yàn)步驟(要求給出簡(jiǎn)單類圖、運(yùn)行結(jié)果的屏幕截圖,源程序電子打包提交)設(shè)計(jì)一個(gè)包含異常處理的100以內(nèi)的四則運(yùn)算程序,異常情況包括除數(shù)為0、數(shù)據(jù)溢出、減法結(jié)果小于0等。六、實(shí)驗(yàn)數(shù)據(jù)及處理結(jié)果#include<stdio.h>#include<windows.h

47、>int main()char a;float num1;float num2;float num3;printf("請(qǐng)輸入運(yùn)算公式(num1 運(yùn)算符號(hào) num2):");scanf("%f%c%f",&num1,&a,&num2);switch(a)case '+': if(0<=num1&&num1<=100) if(0<=num2&&num2<=100) printf("%6.2f+%6.2f=%6.2fn", num1,num

48、2,num1 + num2); else printf("數(shù)字num2不在0100內(nèi),請(qǐng)重新輸入n"); else if(0<=num2&&num2<=100) printf("數(shù)字num1不在0100內(nèi),請(qǐng)重新輸入n"); else printf("數(shù)字num1不在0100內(nèi),請(qǐng)重新輸入n"); printf("數(shù)字num2不在0100內(nèi),請(qǐng)重新輸入n"); break; case '-': if(0<=num1&&num1<=100) if

49、(0<=num2&&num2<=100) num3=num1-num2; if(num3>=0) printf("%6.2f+%6.2f=%6.2fn", num1,num2,num1 - num2); else printf("num1-num2小于0,請(qǐng)重新輸入n"); else printf("數(shù)字num2不在0100內(nèi),請(qǐng)重新輸入n"); else if(0<=num2&&num2<=100) printf("數(shù)字num1不在0100內(nèi),請(qǐng)重新輸入n&qu

50、ot;); else printf("數(shù)字num1不在0100內(nèi),請(qǐng)重新輸入n"); printf("數(shù)字num2不在0100內(nèi),請(qǐng)重新輸入n"); break; case '*': if(0<=num1&&num1<=100) if(0<=num2&&num2<=100) printf("%6.2f*%6.2f=%6.2fn", num1,num2,num1 * num2); else printf("數(shù)字num2不在0100內(nèi),請(qǐng)重新輸入n"

51、;); else if(0<=num2&&num2<=100) printf("數(shù)字num1不在0100內(nèi),請(qǐng)重新輸入n"); else printf("數(shù)字num1不在0100內(nèi),請(qǐng)重新輸入n"); printf("數(shù)字num2不在0100內(nèi),請(qǐng)重新輸入n"); break; case '/': if(0<=num1&&num1<=100) if(0<=num2&&num2<=100) if(num2=0) printf("

52、數(shù)字num2為0,請(qǐng)重新輸入n"); else printf("%6.2f*%6.2f=%6.2fn", num1,num2,num1 * num2); else printf("數(shù)字num2不在0100內(nèi),請(qǐng)重新輸入n"); else if(0<=num2&&num2<=100) printf("數(shù)字num1不在0100內(nèi),請(qǐng)重新輸入n"); else printf("數(shù)字num1不在0100內(nèi),請(qǐng)重新輸入n"); printf("數(shù)字num2不在0100內(nèi),請(qǐng)重新

53、輸入n"); break; default: printf("error");system("pause");return 0;七、思考討論題或體會(huì)或?qū)Ω倪M(jìn)實(shí)驗(yàn)的建議八、參考資料C+語言程序設(shè)計(jì)學(xué)生用書 清華大學(xué)出版社 鄭莉等 南昌大學(xué)實(shí)驗(yàn)報(bào)告學(xué)生姓名: 學(xué) 號(hào): 專業(yè)班級(jí): 實(shí)驗(yàn)類型: 驗(yàn)證 綜合 設(shè)計(jì) 創(chuàng)新 實(shí)驗(yàn)日期: 2016-9-9 實(shí)驗(yàn)成績(jī): 一、實(shí)驗(yàn)項(xiàng)目名稱實(shí)驗(yàn)七. 輸入輸出二、實(shí)驗(yàn)?zāi)康睦斫夂驼莆蛰斎胼敵龅幕驹砗头椒?。三、?shí)驗(yàn)基本原理C+程序設(shè)計(jì)語言四、主要儀器設(shè)備及耗材PC微機(jī)DOS操作系統(tǒng)或 Windows 操作系統(tǒng)C+程序

54、設(shè)計(jì)語言開發(fā)環(huán)境五、實(shí)驗(yàn)步驟(要求給出運(yùn)行結(jié)果的屏幕截圖,源程序電子打包提交)編程:按要求實(shí)現(xiàn)數(shù)據(jù)的輸入和輸出。(1)以左對(duì)齊和右對(duì)齊方式輸出整數(shù),域?qū)挒?2。(2)以八進(jìn)制、十進(jìn)制和十六進(jìn)制輸入和輸出整數(shù)。(3)實(shí)現(xiàn)浮點(diǎn)數(shù)的指數(shù)格式和定點(diǎn)格式輸入輸出,并指定精度,按實(shí)際情況進(jìn)行調(diào)整。(4)把字符串讀入字符型數(shù)組變量中,從鍵盤輸入字符串,要求能讀入串中的空白字符,以回車符結(jié)束。六、實(shí)驗(yàn)數(shù)據(jù)及處理結(jié)果#include<iostream>#include<iomanip> using namespace std; int main(void) int inum1=123,i

55、num2=4567,inum3=98765; double fnum=12.123456789,fnum1; char str123; cout<<"以左對(duì)齊方式輸出整數(shù),域?qū)挒?2:"<<endl; cout.flags(ios:left); cout.width(12); cout<<inum1; cout.width(12); cout<<inum2; cout.width(12); cout<<inum3<<endl; cout.flags(ios:left|ios:oct|ios:showbase); cout.width(12); cout<<inum1; cout.width(12); cout

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論