C++实验5对象成员Word文件下载.docx

上传人:b****4 文档编号:16814046 上传时间:2022-11-26 格式:DOCX 页数:17 大小:215.77KB
下载 相关 举报
C++实验5对象成员Word文件下载.docx_第1页
第1页 / 共17页
C++实验5对象成员Word文件下载.docx_第2页
第2页 / 共17页
C++实验5对象成员Word文件下载.docx_第3页
第3页 / 共17页
C++实验5对象成员Word文件下载.docx_第4页
第4页 / 共17页
C++实验5对象成员Word文件下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

C++实验5对象成员Word文件下载.docx

《C++实验5对象成员Word文件下载.docx》由会员分享,可在线阅读,更多相关《C++实验5对象成员Word文件下载.docx(17页珍藏版)》请在冰豆网上搜索。

C++实验5对象成员Word文件下载.docx

<

cube(a1)<

endl;

cube(a2)<

}

程序分析和运行结果如下

A

-i:

int

+A(x:

int)

+get():

a1.i<

=10;

a2.i<

=20

a1=>

a:

a1.i*a1.i*a1.i=>

1000

a2=>

a2.i*a2.i*a2.i=>

8000

2)分析对象成员的调用,写出程序结果。

#include<

classB

private:

inta,b;

B(){}

B(inti,intj);

voidshowb();

classA

Bc;

A(){}

A(inti,intj);

voidshowa();

A:

:

A(inti,intj):

c(i,j)

{}

voidA:

showa()

c.showb();

B:

B(inti,intj)

a=i;

b=j;

voidB:

showb()

"

a="

a<

"

'

\t'

b="

b<

voidmain()

Aa1(5,6);

a1.showa();

B

-a:

-b:

+B(){}

+B(i:

inti,j:

int)

+showb():

void

-c:

+A()

+A(i:

int,j:

+showa():

 

调用A的构造函数A(inti,intj)

调用内嵌对象的构造函数B(inti,intj)

执行a1.c.a<

=5,a1.c.b<

=6

通过a1.showa()调用c.showb()执行对a1.c.a<

在屏幕上显示

2.2编写并调试程序:

按下面的要求编程并调试:

编写一类Cpoint表示一个点的信息。

在此基础上编写一个表示三角形的类tria,顶点为其对象成员。

编写完整的程序输出三角形的面积。

分析:

三角形面积S=√[P(P-A)(P-B)(P-C)],其中P=(A+B+C)/2

Cpoint

-x:

float

-y:

+Cpoit(a:

float,b:

float)

+Cpoint(&

p:

Cpoint)

+getx():

+gety():

tria

+tria(a:

Cpoint,b:

Cpoint,c:

+area():

一开始检测就说我的Cpoint类定义的对象出错,所以我可以肯定是我的Cpoint类定义出了问题,所以我就利用“/*”“*/”的效果先把其他代码屏蔽了直接编译链接Cpoint类的问题并逐一解决。

很快,问题就剩下很少了。

如下图:

接着就是tria类的定义方面有些拼写和粗心的错误,认真地检查了一下再次编译链接就只有一个问题剩下了

最后编码无语法错误:

运行结果如下,结果正确:

代码如下:

iostream>

cmath>

usingnamespacestd;

classCpoint{

floatx,y;

Cpoint(floata=0,floatb=0){x=a;

y=b;

Cpoint(Cpoint&

p){x=p.x;

y=p.y;

floatgetx(){returnx;

floatgety(){returny;

classtria{

Cpointa;

Cpointb;

Cpointc;

doubleab,bc,ca;

doublearea;

tria(Cpointp1,Cpointp2,Cpointp3);

doublegetarea();

doubletria:

length(Cpointp1,Cpointp2);

tria:

tria(Cpointp1,Cpointp2,Cpointp3):

a(p1),b(p2),c(p3){}

doubletria:

length(Cpointp1,Cpointp2){

doublex=double(p1.getx()-p2.getx());

doubley=double(p1.gety()-p2.gety());

returnsqrt(x*x+y*y);

getarea(){

ab=length(a,b);

bc=length(b,c);

ca=length(c,a);

doublep=(ab+bc+ca)/2;

area=sqrt(p*(p-ab)*(p-bc)*(p-ca));

returnarea;

voidmain(){

Cpointp1(0,0),p2(0,3),p3(4,0);

triaA(p1,p2,p3);

三角形的面积是"

A.getarea()<

*3课后练习

调试下面的程序,指出程序实现的功能及程序输出结果,进一步理解对象成员、友元、静态成员等概念。

1)调试程序1

B(){};

B(inti,intj);

voidprintb();

inta,b;

A(){};

A(inti,intj);

voidprinta();

Bc;

A(inti,intj):

c(i,j)

{};

printa()

c.printb();

B(inti,intj)

a=i;

b=j;

printb()

cout<

“a=”<

“,b=”<

b<

voidmain()

Am(7,8);

m.printa();

依程序可作一下UML图:

程序调试及运行结果如下:

2)调试程序2

iostream,h>

classqueue

intq[100];

//存放队列中的各个元素

inthead,rear;

//head和rear分别为队头、队尾

queue();

voidqput(inti);

intqget();

queue:

queue()//构造函数

head=rear=0;

“queueinitialized\n”;

voidqueue:

qput(inti)

if(head==100)

“queueisfu11\n”;

return;

head++;

q[head]=i;

intqueue:

qget()

if(rear==head)

“queueisempty\n”;

return0;

rear++;

retutnq[rear];

queuea,b;

a.qput(10);

b.qput(20);

a.qput(19);

a.qget()<

end1;

//操作1

b.qget()<

类UML图如下

对象如右图:

由于蓝色标明那部分的成员函数定义出错,所以出现了一下问题:

所以我在实验基础上在if语句那里加了一个打括号,这时程序才运行正确

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1