友元实验二Word文件下载.docx
- 文档编号:21303621
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:12
- 大小:61.81KB
友元实验二Word文件下载.docx
《友元实验二Word文件下载.docx》由会员分享,可在线阅读,更多相关《友元实验二Word文件下载.docx(12页珍藏版)》请在冰豆网上搜索。
(4)掌握静态成员和静态成员函数的使用方法。
3.实验步骤与源程序
实验步骤
1:
将书上的题目输进Vc++系统进行调试,定义Dated3时,只需要稍加改变就可以了
2:
根据题意声明定义,一个类
3;
编辑函数
4:
把书上的Stringcharname改为Stringname
源代码
(1)
#include<
iostream.h>
classDate
{
public:
Date(int,int,int);
Date(int,int);
Date(int);
Date();
voiddisplay();
private:
intmonth;
intday;
intyear;
};
Date:
:
Date(intm,intd,inty):
month(m),day(d),year(y)
{}
Date(intm,intd):
month(m),day(d)
year=2005;
}
Date(intm):
month(m)
day=1;
Date()
month=1;
voidDate:
display()
cout<
<
month<
"
/"
day<
year<
endl;
intmain()
Dated1(10,13,2005);
Dated2(12,30);
Dated3(d1);
Dated4;
d1.display();
d2.display();
d3.display();
d4.display();
return0;
(2)
#include<
cmath>
classPoint
voidshow_point(double,double);
intdist();
friendintdist();
private:
doublex;
doubley;
Pointp1,p2;
voidPoint:
show_point(doublea,doubleb)
x=a;
x=b;
("
a<
"
b<
)"
intdist()
两点间的距离:
(sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y)))<
p1.show_point(2.3,4.5);
p2.show_point(6.7,8.9);
dist();
P307-9
classNum
Num(int,int,double);
intdisplay();
friendintdisplay();
staticfloataverage();
friendstaticfloataverage();
intnum;
intquantity;
doubleprice;
staticdoublediscount;
staticdoublesum;
staticintn;
Num:
Num(intn,intq,doublep)
num=n;
quantity=q;
price=p;
floataverage()
return(Num:
sum/Num:
n);
doubleNum:
discount=0.98;
sum=5*23.5+12*24.56*discount+100*21.5*discount;
intNum:
n=5+12+100;
intdisplay()
总销售款:
sum<
平均售价:
average()<
NumN1(101,5,23.5);
NumN2(102,12,24.56);
NumN3(103,100,21.5);
display();
P307-10
iostream>
usingnamespacestd;
classDate;
classTime
Time(int,int,int);
voiddisplay(Date&
);
inthour;
intminute;
intsec;
friendvoidTime:
display(Date&
Time:
Time(inth,intm,ints)
hour=h;
minute=m;
sec=s;
voidTime:
display(Date&
d)
d.month<
d.day<
d.year<
hour<
minute<
sec<
Date(intm,intd,inty)
{month=m;
day=d;
year=y;
Timet1(10,13,56);
Dated1(12,25,2004);
t1.display(d1);
P307-11
Time(int,int,int);
voiddisplay(Date&
friendTime;
month=m;
t1.display(d1);
(4)
string>
classStudent
Student(intn,stringnam,chars)
{num=n;
name=nam;
sex=s;
constructorcalled."
}
~Student()
{cout<
Destructorcalled."
voiddisplay()
{cout<
num:
num<
cout<
name:
name<
sex:
sex<
endl<
stringname;
charsex;
{Studentstud1(10010,"
wang-li"
'
f'
stud1.display();
Studentstud2(10011,"
zhang-fang"
m'
stud2.display();
return0;
3、测试数据与实验结果(可以抓图粘贴)
4、
(1)
5、结果分析与实验体会
point不是一个类或命名空间的名称,“=”从双重转换到int,有可能损失数据,有时输出的代码会有意想不到的文件名,
写第九题时系统总是报错,因为Num不是Mun的一员,看到Mun并未声明,还有一些是未申报的标识符,还有语法错误,缺少“;
”标识符之前‘N1,
还有函数调用参数,还有好多未申报的字符,
在建立对象时要调用对象的构造函数,给该对象中数据成员赋初值,然后调用一开始声明的函数,然后输出数据成员的值,之后在建立其他的对象,建立对象时也要调用函数。
当主函数的调用结束时,,在主函数中建立的对象是局部的,生命周期随着主函数的结束而结束,在撤销对象之前的最后一项工作是调用析构函数。
对象必须先声明,然后才能使用,但在有些情况下,在正式声明类之前,需要使用该类名,但是,从题目中我了解到,累得提前声明是有限的,只有在正式声明一个类后才能用它去定义类对象
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 友元 实验二 实验