面向?qū)ο蟪绦虻脑O(shè)計實驗冊_第1頁
面向?qū)ο蟪绦虻脑O(shè)計實驗冊_第2頁
面向?qū)ο蟪绦虻脑O(shè)計實驗冊_第3頁
面向?qū)ο蟪绦虻脑O(shè)計實驗冊_第4頁
面向?qū)ο蟪绦虻脑O(shè)計實驗冊_第5頁
已閱讀5頁,還剩59頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、學(xué) 生 實 驗 報 告 冊(理工類)課程名稱:面向?qū)ο蟪绦蛟O(shè)計 專業(yè)班級: _13計統(tǒng)2班_ 學(xué)生學(xué)號:_1305103038 學(xué)生: 亞孟 _ _ 所屬院部: 計算機工程學(xué)院 指導(dǎo)教師: 吳剛 20 15 20 16 學(xué)年 第 一 學(xué)期 金陵科技學(xué)院教務(wù)處制實驗報告書寫要求實驗報告原則上要求學(xué)生手寫,要求書寫工整。若因課程特點需打印的,要遵照以下字體、字號、間距等的具體要求。紙一律采用A4的紙。實驗報告書寫說明實驗報告中一至四項容為必填項,包括實驗?zāi)康暮鸵?;實驗儀器和設(shè)備;實驗容與過程;實驗結(jié)果與分析。各院部可根據(jù)學(xué)科特點和實驗具體要求增加項目。填寫注意事項(1)細(xì)致觀察,與時、準(zhǔn)確、如實

2、記錄。(2)準(zhǔn)確說明,層次清晰。(3)盡量采用專用術(shù)語來說明事物。(4)外文、符號、公式要準(zhǔn)確,應(yīng)使用統(tǒng)一規(guī)定的名詞和符號。(5)應(yīng)獨立完成實驗報告的書寫,嚴(yán)禁抄襲、復(fù)印,一經(jīng)發(fā)現(xiàn),以零分論處。實驗報告批改說明實驗報告的批改要與時、認(rèn)真、仔細(xì),一律用紅色筆批改。實驗報告的批改成績采用百分制,具體評分標(biāo)準(zhǔn)由各院部自行制定。實驗報告裝訂要求實驗批改完畢后,任課老師將每門課程的每個實驗項目的實驗報告以自然班為單位、按學(xué)號升序排列,裝訂成冊,并附上一份該門課程的實驗大綱。64 / 64實驗項目名稱: C+基礎(chǔ)程序設(shè)計 實驗學(xué)時: 3 同組學(xué)生: 無 實驗地點: A107 實驗日期: 9.18 實驗成績

3、:批改教師: 吳剛 批改時間:一、實驗?zāi)康暮鸵?.了解Visual C+6.0或者Visual C+2005以上版本的特點。2.學(xué)會Visual C+6.0或者Visual C+2005以上版本的開發(fā)環(huán)境,來創(chuàng)建和調(diào)試標(biāo)準(zhǔn)的C+控制后臺應(yīng)用程序。3.學(xué)會使用Visual C+6.0或者Visual C+2005以上版本的開發(fā)環(huán)境中的程序調(diào)試功能,例如單步執(zhí)行、設(shè)置斷點、觀察變量值等。4.掌握string類型的用法。5.掌握C+語言編程時輸入和輸出格式控制。6.掌握多文件結(jié)構(gòu)的使用。7.掌握重載函數(shù)的使用。二、實驗設(shè)備和環(huán)境1.計算機每人一臺。2.安裝WindowsXP或者以上版本操作系統(tǒng)。3

4、.安裝Visual C+6.0或者Visual C+2005以上版本。三、實驗容與步驟1.給出Visual C+調(diào)試一個簡單應(yīng)用程序的步驟,要求程序輸出字符串“Hello!Welcome to C+!”。程序:#include<iostream>using namespace std;int main() cout<<"Hello!"<<endl; cout<<"Welcome to C+!"<<endl; return 0;運行結(jié)果:2.調(diào)試以下程序,觀察運行結(jié)果。#include<io

5、stream>using namespace std;void main()int a,b=10;int&ra=a;a=20;cout<<a<<endl;cout<<ra<<endl;cout<<&a<<endl;cout<<&ra<<endl;ra=b;cout<<a<<endl;cout<<ra<<endl;cout<<b<<endl;cout<<&a<<endl

6、;cout<<&ra<<endl;cout<<&b<<endl;運行結(jié)果與結(jié)果分析:3.編寫一程序,實現(xiàn)九九乘法表的2中格式輸出,格式如下:(1) 1 2 3 4 5 6 7 8 9 1 1 2 3 4 5 6 7 8 9 2 2 4 6 8 10 12 14 16 18 3 3 6 · · · · · · · 4 4 8 · · · · · · · 5 5 10 · ·

7、· · · · · 6 6 12 · · · · · · · 7 7 14 · · · · · · · 8 8 16 · · · · · · · 9 9 18 · · · · · · ·(2) 1 2 3 4 5 6 7 8 9 1 1 2 2 4 3 3 6 9 4

8、4 8 12 16 5 5 10 15 20 25 6 6 12 18 24 30 36 7 7 14 21 28 35 42 49 8 8 16 24 32 40 48 56 64 9 9 18 27 36 45 54 63 72 81注:要求每種輸出格式均寫成函數(shù)形式程序:#include <iostream>using namespace std;int main()int i,j; cout<<"顯示1:"<<endl;for(i=1;i<10;i+)for(j=1;j<10;j+)cout<<i*j<

9、;<"t"cout<<endl;cout<<endl<<"顯示2:"<<endl;for(i=1;i<10;i+) for(j=1;j<=i;j+) cout<<j*i<<"t" cout<<endl; return 0;運行結(jié)果:4將第3題改成多文件結(jié)構(gòu)實現(xiàn)。要求該工程中有3個.cpp文件和1個.h文件。程序:.h:#include <iostream>using namespace std;int cfb1(int x

10、,int y);int cfb2(int x,int y);.cpp:(1)#include "3head.h"void main()int i,j;cout<<cfb1(i,j)<<endl;cout<<cfb2(i,j)<<endl;(2)#include "3head.h"int cfb1(int i,int j)cout<<"顯示1:"<<endl;for(i=1;i<10;i+)for(j=1;j<10;j+)cout<<i*j&

11、lt;<"t"cout<<endl;return 0;(3)#include "3head.h"int cfb2(int i,int j)cout<<"顯示2:"<<endl;for(i=1;i<10;i+) for(j=1;j<=i;j+) cout<<j*i<<"t" cout<<endl; return 0;5.編程實現(xiàn)比較兩個數(shù)的大小,求較大值(要求使用重載函數(shù)實現(xiàn))。程序:#include<iostream&g

12、t;using namespace std;int max(int a,int b)return a>b?a:b;int main()int m,n;cout<<"Enter two integer:"cin>>m>>n;cout<<"The bigger is:"<<max(m,n)<<endl;return 0;運行結(jié)果:6.編寫一個程序,判斷一個字符串是否為另一個字符串的子串,若是,返回字串在主串中的位置。要求不適用strstr函數(shù),自己編寫一個子函數(shù)實現(xiàn)。(建議使用st

13、ring類型,而非字符數(shù)組。)程序:#include <iostream>#include "string.h"using namespace std;void main()char a="how are you?"char b="are"int i=0,j,na,nb,flag;na=strlen(a);nb=strlen(b);flag=1;for(i=0;i!='0'i+)if(ai=bj) j+;運行結(jié)果:四、實驗體會熟悉了C+開發(fā)環(huán)境的使用,對C+編程有了初步的了解,能夠編寫一些簡單的和C類似的程

14、序。實驗項目名稱: 類與對象 實驗學(xué)時: 3 同組學(xué)生: 無 實驗地點: A107 實驗日期:9.25 實驗成績:批改教師: 吳剛 批改時間:一、實驗?zāi)康暮鸵?.掌握類和對象的概念、定義方法以與類與對象的簡單用法。2.掌握成員函數(shù)的實現(xiàn)與調(diào)用方法。3.深刻領(lǐng)會類與對象的區(qū)別。4.理解類實現(xiàn)數(shù)據(jù)隱藏和封裝的原理。5.掌握構(gòu)造函數(shù)、拷貝構(gòu)造函數(shù)、分析構(gòu)造函數(shù)的定義和使用,尤其注意組合類中它們的調(diào)用順序。二、實驗設(shè)備和環(huán)境1.計算機每人一臺。2.安裝WindowsXP或者以上版本操作系統(tǒng)。3.安裝Visual C+6.0或者Visual C+2005以上版本。三、實驗容與步驟1.用面向?qū)ο蟮某绦蛟O(shè)

15、計方法實現(xiàn)棧的操作。棧又叫堆棧,是一個常用的數(shù)據(jù)結(jié)構(gòu),它是一種運算受限的線性表,僅允許在表的一端進(jìn)行插入和刪除運算,是一種后進(jìn)先出表。提示:棧用一維整型數(shù)組來表示,棧的大小定義為10;棧定義為一個類stack;實現(xiàn)棧的創(chuàng)建、進(jìn)棧和出棧、棧的消亡。進(jìn)棧函數(shù):void push(int n);出棧函數(shù):int pop(void);程序:#include<iostream>using namespace std;const int maxsize=10;class stackpublic:void init()top=-1;void push(int n);int pop();void

16、dead();private:int top;int datamaxsize;void stack:push(int n)if(top=maxsize)cout<<"棧已滿!"<<endl;elsetop+;datatop=n;int stack:pop()if(top<0)cout<<"棧下溢!"<<endl;return 0;elsetop-;return datatop+1;void stack:dead()if(top<0)cout<<"棧下溢!"<

17、<endl;elsetop-;cout<<"棧中還剩"<<(top+1)<<"個元素"<<endl;int main()stack seqstack;int i,x,m;seqstack.init();cout<<"請輸入10個數(shù)字:"for(i=0;i<maxsize;i+)cin>>x;seqstack.push(x);cout<<"請輸入你所需要的操作:"<<endl;cout<<1<

18、<""<<"元素出棧!"<<endl;cout<<2<<""<<"棧的消亡!"<<endl;cin>>m;switch(m) case 1: for(i=0;i<maxsize;i+) cout<<""<<seqstack.pop(); break; case 2: for(i=0;i<maxsize;i+) seqstack.dead(); break; return

19、0;運行結(jié)果:2.將第1題中的實驗容改為多文件結(jié)構(gòu)實現(xiàn)。程序:#include <iostream>using namespace std;#define N 10class stackstatic int top;int aN;public:void push(int n);void pop();void die();#include <head.h>int stack:top=0;void stack:push(int n)if(top<N)atop+=n;cout<<"進(jìn)棧數(shù)據(jù):"<<n<<endl;e

20、lsecout<<"堆棧已經(jīng)滿了,不能再加數(shù)進(jìn)去了!"<<endl;void stack:pop()if(top<=0)cout<<"堆棧已經(jīng)空了,沒有數(shù)據(jù)了!"<<endl;elsecout<<"出棧數(shù)據(jù):"cout<<a-top<<endl;void stack:die()int i;for(i=0;i<N;i+)ai=0;cout<<"消亡堆棧!"<<endl;#include "

21、head.h"void main()int n,m;cout<<"輸入兩個你要輸入的數(shù)據(jù)N和M:"cin>>n>>m;stack s;s.push(n);s.push(m);s.pop();s.pop();s.pop();s.die();3.設(shè)計一個用于人事管理的People(人員)類??紤]到通用性,這里只抽象出所有類型人員都具有的屬性:number(編號)、sex(性別)、birthday(出生日期)、id(號)等。其中“出生日期”聲明為一個“日期”類嵌子對象。用成員函數(shù)實現(xiàn)對人員信息的錄入和顯示。要求包括:構(gòu)造函數(shù)和折構(gòu)函數(shù)

22、、拷貝構(gòu)造函數(shù)、聯(lián)成員函數(shù)、組合類等。程序:#include <iostream>#include <string>using namespace std;class Dateprivate: int year;int month; int day; public: Date()Date(int y,int m,int d)year=y; month=m; day=d; void set() cin>>year>>month>>day; void display() cout<<year<<"年&qu

23、ot;<<month<<"月"<<day<<"日" ; class Personprivate: int num; char sex; Date birthday; char ID18;public:Person()Person(int n,int y,int m,int d,char id18,char s='m'):birthday(y,m,d) num=n; sex=s; strcpy(ID,id);Person(Person& p)num=p.num;sex=p.sex;bi

24、rthday=p.birthday;strcpy(ID,p.ID); void input()cout<<"錄入數(shù)據(jù):"<<endl;cout<<"編號:" cin>>num;cout<<"性別(m/f):"cin>>sex;cout<<"生日:"birthday.set();cout<<"號:"cin>>ID; ID18='0'cout<<endl;void

25、output()cout<<"編號:"<<num<<endl;cout<<"性別:"<<sex<<endl;cout<<"生日:"birthday.display();cout<<endl;cout<<"號:"<<ID<<endl; Person()cout<<" "<<num<<"號人員已經(jīng)錄入"<&l

26、t;endl;int main()Person p1;p1.input();p1.output();return 0;運行結(jié)果:4.設(shè)計一個計算薪水的類Payroll,它的數(shù)據(jù)成員包括:單位小時的工資、已經(jīng)工作的小時數(shù)、本周應(yīng)付工資數(shù)。在主函數(shù)定義一個具有10個元素的對象數(shù)組(代表10個雇員)(可以定義普通對象數(shù)組,也可以定義堆對象數(shù)組)。程序詢問每個雇員本周已經(jīng)工作的小時數(shù),然后顯示應(yīng)得的工資。要求:輸入有效性檢驗:每個雇員每周工作的小時數(shù)不能大于60,同時也不能為負(fù)數(shù)。程序:#include<string.h>#include<stdio.h>class Payro

27、llprivate:double money;double total;public:int time;int GetTime()doprintf("input time:");scanf("%d",&time); while(time< 0 && time >60 ); money = 100; return 0;int GetTotalMoney()return (total =time * money); void Print()printf("total:%lfn",total); ;mai

28、n()Payroll p10;p0.GetTime();p0.GetTotalMoney();p0.Print();運行結(jié)果:四、實驗體會對多文件有了更深了解,能夠熟練的掌握多文件的使用方法。學(xué)習(xí)了C+的構(gòu)造函數(shù),以與拷貝構(gòu)造函數(shù),接觸友元組合類等新知識,需要課后多加練習(xí)。實驗項目名稱: 靜態(tài)成員與友元 實驗學(xué)時: 3 同組學(xué)生: 無 實驗地點: A107 實驗日期: 10.09 實驗成績:批改教師: 吳剛 批改時間:一、實驗?zāi)康暮鸵?.掌握類中靜態(tài)成員的定義的方法。2.掌握靜態(tài)數(shù)據(jù)成員初始化的方法。3.掌握靜態(tài)數(shù)據(jù)成員和數(shù)據(jù)函數(shù)成員的訪問和使用方法。4.掌握友元函數(shù)的定義和使用方法。5.了

29、解友元類的使用方法。二、實驗設(shè)備和環(huán)境1.計算機每人一臺。2.安裝WindowsXP或者以上版本操作系統(tǒng)。3.安裝Visual C+6.0或者Visual C+2005以上版本。三、實驗容與步驟1.任意輸入10個數(shù),計算器總和與平均值。設(shè)計程序測試該功能(要求用類、靜態(tài)友員實現(xiàn))。程序:#include<iostream>#include<string>using namespace std;class numberint No;int figure;static double sum; static int sumpeople;public:number(int n,

30、int ifigure)No=n;figure=ifigure;sum+=figure;sumpeople+;static int Sum()return sum;static double Average()return sum/sumpeople;int number:sumpeople=0;double number:sum=0;void main()int i,j;cout<<"The ten number is:"<<endl;for(i=1;i<=10;i+)cin>>j;number(i,j);cout<<

31、"The sum is:"<<number:Sum()<<endl;cout<<"The average is:"<<number:Average()<<endl;運行結(jié)果:2.求兩點之間的距離(要求定義點Point類,并用友員函數(shù)實現(xiàn))。程序:#include <iostream>#include <cmath>using namespace std;class Pointdouble x,y;public:Point(double m,double n):x(m),y

32、(n)friend double Distance(Point& px,Point& py);double Distance(Point& px,Point& py)double d;d=sqrt(px.x-py.x)*(px.x-py.x)+(px.y-py.y)*(px.y-py.y);return d;void main()Point p1,p2;int a1,b1,a2,b2;cin>>a1>>b1>>a2>>b2;p1=Point(a1,b1);p2=Point(a2,b2);cout<<&q

33、uot;the distance is"<<Distance(p1,p2)<<endl;運行結(jié)果:3.定義一個經(jīng)理類Manager,其成員數(shù)據(jù)包括編號id,name和年齡age,均聲明為private訪問屬性。再定義一個員工類Employee,其成員數(shù)據(jù)與訪問屬性與經(jīng)理類一樣。將Manager類聲明為Employee類的友員函數(shù),并在Manager類中定義一個函數(shù)訪問Employee類的私有數(shù)據(jù)成員并進(jìn)行輸出。程序:#include<stdlib.h>#include<iostream>using namespace std;class

34、 Employeefriend class Manager; private: int id; char *n; int age;public:Employee()id = 1;n = "abc"age = 20;class Managerprivate:int id;char name10;int age;public:Manager()Employee e; void Print(Employee &e) cout<<e.id<<endl;cout<<e.n<<endl;cout<<e.age<&

35、lt;endl; ;void main()Employee e;Manager m;m.Print(e);system("pause"); 運行結(jié)果:四、實驗體會懂得了靜態(tài)成員的使用、靜態(tài)成員的作用域和使用方法。理解并掌握友元的使用。實驗項目名稱: 繼承與派生 實驗學(xué)時: 3 同組學(xué)生: 無 實驗地點: A107 實驗日期: 10.16 實驗成績:批改教師: 吳剛 批改時間:一、實驗?zāi)康暮鸵?.掌握利用單繼承和多重繼承的方式定義派生類的方法。2.理解在各種繼承方式下構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行順序。3.理解和掌握public、protected、private對基類成員的訪問

36、機制。4.理解虛基類的概念,引入虛基類的目的和作用。5. 理解在虛基類時的構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行順序。二、實驗設(shè)備和環(huán)境1.計算機每人一臺。2.安裝WindowsXP或者以上版本操作系統(tǒng)。3.安裝Visual C+6.0或者Visual C+2005以上版本。三、實驗容與步驟1.分析以下程序,寫出運行結(jié)果。#include<iostream>using namespace std;class Basepublic:Base() cout<<"執(zhí)行基類構(gòu)造函數(shù)"<<endl;Base() cout<<"執(zhí)行基類折構(gòu)函

37、數(shù)"<<endl;class Derive:public Basepublic:Derive() cout<<"執(zhí)行派生類構(gòu)造函數(shù)"<<endl;Derive() cout<<"執(zhí)行派生類折構(gòu)函數(shù)"<<endl;void main()Derive d;運行結(jié)果:2. 分析以下程序,寫出運行結(jié)果。#include<iostream.h>calss Basepublic: Base()cout<<”基類構(gòu)造函數(shù)”<<endl;Base()cout<

38、<”基類析構(gòu)函數(shù)”<<endl;class Derive:public Base public:Derive()cout<<”派生類構(gòu)造函數(shù)”<<endl;Derive()cout<<”派生類析構(gòu)函數(shù)”<<endl;;void main()Derive *p=new Derive;Delete p;運行結(jié)果:3.求一個三角形物體的面積,同時求一個圓形物體的面積(要求使用繼承)。#include <iostream>#include <cmath>using namespace std;class Obje

39、ctpublic:void getData()cout<<"Input x,y,z:"cin>>x>>y>>z;protected:int x,y,z;class Triangle:public Objectpublic:void getData()cout<<"triangle:"Object:getData();double Area()double d=(x+y+z)/2;double s=sqrt(d*(d-x)*(d-y)*(d-z);return s;class Circle:pub

40、lic Objectpublic:void getData()cout<<"circle:(only radius=x)"<<endl;Object:getData();double Area()double s=x*x*3.1415;return s;void main()Triangle t;t.getData();cout<<"The results:"<<t.Area()<<endl;Circle c;c.getData();cout<<"The results:&

41、quot;<<c.Area()<<endl;運行結(jié)果:4.一個三口之家,大家知道父親會開車,母親會唱歌。但其父親還會修電視機,只有家里人知道。小孩既會開車又會唱歌,甚至也會修電視機。母親瞞著任何人在外面做小工以補貼家用。此外小孩還會打乒乓球。編寫程序輸出者三口之家一天從事的活動:先是父親出去開車,然后母親出去工作(唱歌),母親下班后去做兩個小時的小工。小孩在俱樂部打球,在父親回家后,開車玩,后又高興地唱歌。晚上,小孩和父親一起修電視機。程序:#include<iostream>using namespace std;class father protecte

42、d:void repairTV()cout<<"Repairing TV."<<endl; public: void drive ()cout<<"Father is driving."<<endl; friend main();class mother void dootherJob()cout<<"Mother is doing other job!"public: virtual void sing()cout<<"Mother is singin

43、g songs."<<endl; friend main();class child:public father,public motherpublic: void drive() cout<<"Child is driving ."<<endl; void sing()cout<<"Child is singing."<<endl; void repair()cout<<"Child is repairing tv."<<endl; voi

44、d playingPingPang()cout<<"Child is playing pingpang."int main() cout<<"main: "<<endl; father f; mother m; child c; f.drive(); m.sing(); m.dootherJob(); c.playingPingPang(); c.drive(); c.sing(); f.repairTV(); c.repair(); return 0;運行結(jié)果:5.設(shè)計定義一個哺乳動物類Mammal,再由此派生出狗類

45、Dog和豬類Pig,從狗類Dog和豬類Pig又派生出PigDog類。定義一個PigDog類的對象,觀察基類與各派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù)的調(diào)用順序。程序:#include <iostream>using namespace std;class Mammalpublic:Mammal()cout<<"調(diào)用mammal構(gòu)造函數(shù)"<<endl;Mammal()cout<<"調(diào)用mammal析構(gòu)函數(shù)"<<endl;class Dog:public Mammalpublic:Dog()cout<&l

46、t;"調(diào)用dog構(gòu)造函數(shù)"<<endl;Dog()cout<<"調(diào)用dog析構(gòu)函數(shù)"<<endl;class Pig:public Mammalpublic:Pig()cout<<"調(diào)用pig構(gòu)造函數(shù)"<<endl;Pig()cout<<"調(diào)用pig析構(gòu)函數(shù)"<<endl;class PigDog:public Dog,public Pigpublic:PigDog()cout<<"調(diào)用pigdog構(gòu)造函數(shù)&q

47、uot;<<endl;PigDog()cout<<"調(diào)用pigdog析構(gòu)函數(shù)"<<endl;void main()/* Mammal m;*/Dog d;Pig p;PigDog pd;運行結(jié)果:四、實驗體會本次實驗學(xué)習(xí)了繼承和派生,對于其使用以與理解有點困難。實驗項目名稱: 多態(tài)性 實驗學(xué)時: 3 同組學(xué)生: 無 實驗地點: A107 實驗日期: 10.23 實驗成績:批改教師: 吳剛 批改時間:一、實驗?zāi)康暮鸵?.加深理解繼承和多繼承的概念、應(yīng)用等。2.掌握虛函數(shù)的定義方法,以與在實現(xiàn)多態(tài)性中的作用;理解掌握實現(xiàn)動態(tài)多態(tài)性的前提條件

48、,理解靜態(tài)多態(tài)性和動態(tài)多態(tài)性的區(qū)別。3.理解運算符重載的概念和實質(zhì);掌握預(yù)案算重載函數(shù)的定義方法;掌握運算符重載為類的成員函數(shù)和友元函數(shù)的方法;掌握幾種常用運算符的重載,用來解決函數(shù)。二、實驗設(shè)備和環(huán)境1.計算機每人一臺。2.安裝WindowsXP或者以上版本操作系統(tǒng)。3.安裝Visual C+6.0或者Visual C+2005以上版本。三、實驗容與步驟1.利用虛函數(shù)實現(xiàn)的多態(tài)性來求四種幾何圖形的面積。這四種幾何圖形是:三角形、矩形、正方形和圓。程序:#include <iostream>#define PI 3.1415926using namespace std;class

49、Areadouble x,y;public:Area(double x,double y,int z):x(x),y(y)if(z=0)cout<<"三角形的面積為:"<<x*y/2<<endl;else if(z=1)cout<<"矩形面積為:"<<x*y<<endl;Area(double x,int z):x(x)if(z=0)cout<<"正方形的面積為:"<<x*x<<endl;else if(z=1)cout<

50、<"圓的面積為:"<<PI*x*x<<endl;void main()Area a(3,4,0);Area b(3,4,1);Area c(5,0);Area d(5,1);運行結(jié)果:2.聲明Point類,有坐標(biāo)-x,-y兩個成員變量;對Point類重載“+”(自增)、“”(自減)運算符,實現(xiàn)對坐標(biāo)值的改變。程序:#include <iostream>using namespace std;class Pointdouble _x,_y;public:Point(Point &point)_x=point._x;_y=poi

51、nt._y;Point(double x,double y):_x(x),_y(y)void operator +()cout<<"原來的值為:"<<_x<<endl;_x=_x+2;cout<<"改過后的值為:"<<_x<<endl;double getx()return _x;double gety()return _y;void main()double x,y;Point p(1,2);p.operator +();運行結(jié)果:3.定義一個復(fù)數(shù)類,通過重載運算符:*,/,直接實

52、現(xiàn)兩個復(fù)數(shù)之間的乘除運算。編寫一個完整的程序,測試重載運算符的正確性。要求乘法“*”用友元函數(shù)實現(xiàn)重載,除法“/”用成員函數(shù)實現(xiàn)重載。程序:#include <iostream>using namespace std;class Complexdouble r,v;public:Complex(Complex &c)r=c.r;v=c.v;Complex(double r=0,double v=0):r(r),v(v)void operator =(Complex c);void show()cout<<r<<(v>=0?"+&quo

53、t;:"-")<<v<<"i"<<endl;friend Complex operator +(Complex a,Complex b);friend Complex operator *(Complex a,double r);Complex operator /(Complex a);double getr()return r;double fetv()return v;void Complex:operator =(Complex c)r=c.r;v=c.v;Complex operator *(Complex

54、&a,Complex &b)double ar=a.getr();double av=a.fetv();double br=b.getr();double bv=b.fetv();Complex c(ar*br-av*bv,av+bv);return c;Complex operator *(Complex a,double r)double ar=a.getr();double av=a.fetv();Complex c(ar+r,av);cout<<"*的結(jié)果為:"return c;Complex Complex:operator /(Com

55、plex a)Complexc(a.r*r-a.v*(-v)/(a.r*a.r+a.v*(-a.v),(a.v)/(a.r*a.r+a.v*(-a.v);cout<<"/的結(jié)果為:"return c;void main()Complex a(2,2),b(3,4),test;test=a*b;test.show();test=a/b;test.show();運行結(jié)果:4.在第3題基礎(chǔ)上,增加重載函數(shù)的加法和減法運算符的功能,實現(xiàn)兩個復(fù)數(shù)的加法,一個復(fù)數(shù)和一個實數(shù)的加法;兩個復(fù)數(shù)的減法,一個復(fù)數(shù)與一個實數(shù)的減法。用成員函數(shù)實現(xiàn)加法運算符的重載,用友元函數(shù)實現(xiàn)減法運

56、算符的重載。 要求:自己設(shè)計主函數(shù),完成程序的調(diào)試工作。 程序:#include <iostream>using namespace std;class Complexdouble r,v;public:Complex(Complex &c)r=c.r;v=c.v;Complex(double r=0,double v=0):r(r),v(v)void operator =(Complex c);void show()cout<<r<<(v>=0?"+":"")<<v<<"i"<<endl;friend Complex operator *(Complex a,Complex b);friend Complex operator -(Complex a,Complex b);friend Complex operator -(Complex a,double r);Complex operator/(Complex a);Complex operator+(Complex a);

溫馨提示

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

評論

0/150

提交評論