C++实验代码Word格式文档下载.docx
《C++实验代码Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C++实验代码Word格式文档下载.docx(62页珍藏版)》请在冰豆网上搜索。
cout<
<
t1.hour<
“:
”<
t1.minute<
“:
t1.sec<
endl;
//输出时间
return0;
}
改写程序,要求:
①将数据成员改为私有的;
②将输入和输出的功能改为由成员函数实现;
③在类体定义成员函数。
然后编译和运行程序。
请分析什么成员应指定为公用的?
什么成员应指定为私有的?
什么函数最好放在类中定义?
什么函数最好放在类外定义?
代码:
/实验_1.cpp:
定义控制台应用程序的入口点。
#include"
stdafx.h"
{
private:
//数据成员为私有的
intsec;
public:
voidInput()
{
cout<
"
请输入时、分、秒:
hour>
minute>
sec;
}
voidprint()
时间为:
hour<
:
minute<
"
sec<
int_tmain(intargc,_TCHAR*argv[])
Timet1;
t1.Input();
t1.print();
结果:
(2)修改实验1中的学生成绩管理系统,建立类OurClass,实现班级学生信息的输入,排序和输出。
要求:
添加构造函数,初始化班级名称,将成员函数定义在类外,类的定义单独放在头文件中。
头文件:
#defineN3
structStudent
longlNum;
charsName[12];
floatcGrade;
floatccGrade;
floatfGrade;
classOurClass
charcName[20];
Studentstu[N];
OurClass:
OurClass();
voidInput();
voidprint();
voidSort();
.cpp:
//学生成绩管理.cpp:
#include"
iostream"
student.h"
intmain()
OurClassc1;
c1.Input();
c1.Sort();
endl<
排序结果为:
c1.print();
OurClass:
OurClass()//(charNme[20])
{
请输入班级名称:
cName;
voidOurClass:
Input()
inti;
输入"
N<
个学生的学号、和成绩"
for(i=0;
i<
N;
i++)
stu[i].lNum>
stu[i].sName>
stu[i].cGrade>
stu[i].ccGrade;
stu[i].fGrade=stu[i].cGrade+stu[i].ccGrade;
Sort()
inti,j;
StudentTemp;
for(j=i+1;
j<
j++)
{
if(stu[i].fGrade<
stu[j].fGrade)
{
Temp=stu[i];
stu[i]=stu[j];
stu[j]=Temp;
}
}
print()
班级名称:
;
cName<
学号成绩"
stu[i].lNum<
stu[i].sName<
stu[i].fGrade<
(3)需要求3个长方柱的体积(用对象数组完成),请编一个基于对象的程序。
数据成员包括length(长)、width(宽)、height(高)。
要求用成员函数实现以下功能:
①由键盘分别输入3个长方柱的长、宽、高;
②计算长方柱的体积;
③输出3个长方柱的体积。
请编程序,上机调试并运行。
完成后,将其中的数组名当常量指针用。
classcube
doublelength;
doublewidth;
doubleheight;
cube();
voidinput();
doublevolume();
//求长方柱的体积.cpp:
cube.h"
voidcube:
input()
doublelength;
doublewidth;
doubleheight;
cube:
cube()
{cout<
请输入长方柱的长、宽、高:
length>
width>
height;
doublecube:
volume()
returnlength*width*height;
print()
长方柱的体积为:
volume()<
cubec[3];
for(inti=0;
3;
c[i].input();
(c+i)->
print();
(4)友元函数
classDate;
//对Date类的提前引用声明
Time(int,int,int);
voiddisplay(Date&
);
//display是成员函数,形参是Date类对象的引用
private:
inthour;
intminute;
classDate//声明Date类
Date(int,int,int);
friendvoidTime∷display(Date&
//声明Time中的display函数为友元成员函数
intmonth;
intday;
intyear;
Time∷Time(inth,intm,ints)//类Time的构造函数
{hour=h;
minute=m;
sec=s;
voidTime∷display(Date&
d)//display的作用是输出年、月、日和时、分、秒
{cout<
d.month<
“/”<
d.day<
d.year<
//引用Date类对象中的私有数据
cout<
“:
//引用本类对象中的私有数据
Date∷Date(intm,intd,inty)//类Date的构造函数
{month=m;
day=d;
year=y;
intmain()
{Timet1(10,13,56);
//定义Time类对象t1
Dated1(12,25,2004);
//定义Date类对象d1
t1.display(d1);
//调用t1中的display函数,实参是Date类对象d1
return0;
请读者分析和运行此程序,注意友元函数Time:
display的作用。
将程序中的display函数不放在Time类中,而作为类外的普通函数,然后分别在Time和Date类中将display声明为友元函数。
在主函数中调用display函数,display函数分别引用Time和Date两个类的对象的私有数据,输出年、月、日和时、分、秒。
修改后上机调试和运行。
//实验_4.cpp:
friendvoiddisplay(Date&
Time&
//voiddisplay(Date&
public:
Time:
Time(inth,intm,ints)//类Time的构造函数
hour=h;
minute=m;
sec=s;
d,Time&
t1)//display变为普通函数
/"
:
Date:
Date(i