版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 道樂物流交通安全培訓(xùn)課件
- 辰溪縣交通安全課件大賽
- 車險險種介紹課件
- 車隊安全生產(chǎn)課件
- 車隊安全培訓(xùn)常識大全課件
- 2026年項目經(jīng)理年終總結(jié)范文(2篇)
- 車間負(fù)責(zé)人安全培訓(xùn)記錄課件
- 車間級安全教育培訓(xùn)題庫課件
- 2025年電商合規(guī)經(jīng)營(資質(zhì)-廣告)與風(fēng)險規(guī)避工作心得(3篇)
- 2026年消毒供應(yīng)中心不良事件的應(yīng)急及對策(2篇)
- DB35T 2136-2023 茶樹病害測報與綠色防控技術(shù)規(guī)程
- 蓋板涵蓋板計算
- 運輸工具服務(wù)企業(yè)備案表
- 醫(yī)院藥房醫(yī)療廢物處置方案
- 天塔之光模擬控制PLC課程設(shè)計
- 金屬眼鏡架拋光等工藝【省一等獎】
- 《藥品經(jīng)營質(zhì)量管理規(guī)范》的五個附錄
- ASMEBPE介紹專題知識
- 八年級上冊地理期末復(fù)習(xí)計劃通用5篇
- 初中日語人教版七年級第一冊單詞表講義
- GB/T 9065.5-2010液壓軟管接頭第5部分:37°擴(kuò)口端軟管接頭
評論
0/150
提交評論