面向对象软件工程综合实验 软件工程实验4Word格式.docx
《面向对象软件工程综合实验 软件工程实验4Word格式.docx》由会员分享,可在线阅读,更多相关《面向对象软件工程综合实验 软件工程实验4Word格式.docx(13页珍藏版)》请在冰点文库上搜索。
1.目的与要求
掌握类的定义和使用。
掌握类的定义和对象的声明。
复习具有不同访问属性的成员的访问方式。
察构造函数和析构函数的执行过程。
学习类的聚集使用方法。
使用DEBUG来调试程序,跟踪观察类的构造函数,析构函数,成员函数的执行顺序。
2.实验内容
1)定义一个CPU类,包含等级(rank),频率(frequency),电压(voltage)等属性,有两个公有成员函数run,stop.其中rank为枚举类型CPU_Rank,定义为enumCPU_Rank={P1=1,P2,P3,P4,P5,P6,P7},frequency为单位为MHz的整型数,voltage为浮点型的电压值.观察构造函数和析构函数的调用顺序.
2)定义一个简单的Computer类,有数据成员芯片(cpu),内存(ram),光驱(cdrom)等等,cpu为CPU类的一个对象,ram为RAM类的一个对象,cdrom为CDROM类的一个对象,定义并实现这个类。
3)(选做)设计一个用于人事管理的People(人员)类.考虑到通用性,这里只抽象出所有类型人员都具有的属性:
number(编号),sex(性别),birthday(出生日期),id(身份证号)等等.其中"
出生日期"
定义为一个"
日期"
类内嵌子对象.用成员函数实现对人员信息的录入和显示.要求包括:
构造函数和析构函数,拷贝构造函数,内联成员函数。
3.实验步骤
首先定义枚举类型CPU_Rank,例如enumCPU_Rank{P1=1,P2,P3,P4,P5,P6,P7},再定义CPU类,包含等级(rank),频率(frequency),电压(voltage)等私有数据成员,定义成员函数run,stop,用来输出提示信息,在构造函数和析构函数中也可以输出提示信息.在主程序中定义一个CPU类的对象,调用其成员函数,观察类对象的构造与析构顺序,以及成员函数的调用.程序名:
lab4_1.cpp。
使用debug调试功能观察lab4_1.cpp的运行流程,跟踪观察类的构造函数,析构函数,成员函数的执行顺序.参考程序如下:
//lab4_1.cpp
#include
enumCPU_Rank(P1=1,P2,P3,P4,P5,P6,P7);
classCPU
{
private:
CPU_Rankrank;
Intfrequency;
Floatvoltage;
Public:
CPU(CPU_Rankr,intf,floatv)
rank=r;
frequency=f;
voltage=v;
cout<
<
"
构造了一个CPU!
}
~CPU(){cout<
析构了一个CPU!
CPU_RankGetRank()const{returnrank;
}
IntGetFrequency()const{returnfrequency;
FloatGetVoltage()const{returnvoltage;
VoidSetRank(CPU_Rankr){rank=r;
VoidSetFrequency(intf){frequency=f;
VoidSetVoltage(floatv){voltage=v;
VoidRun(){cout<
CPU开始运行!
VoidStop(){cout<
};
voidmain()
CPUa(P6,300,2.8);
Run();
Stop();
(3)调试操作步骤如下:
Build|StartDebug|StepInto命令,系统进行单步执行状态,程序开始运行,一个DOS窗口出现,此时光标停在main()函数的入口处;
A)从Debug菜单栏中单击StepOver,此时,光标下移,程序准备执行CPU对象的初始化;
B)单击StepInto,程序准备执行CPU类的构造函数;
C)连续单击StepOver,观察构造函数的执行情况,直到执行完构造函数,程序回到主函数;
D)此时程序准备执行CPU对象的run()函数,单击StepInto,程序进入run()成员函数,连续单击StepOver,直到回到main()函数;
E)继续执行程序,参照上述的方法,观察程序的执行顺序,加深对类的构造函数,析构函数,成员函数的执行顺序的认识;
F)再试Debug菜单栏中的别的菜单项,熟悉Debug的各种方法。
G)选定义CPU类,RAM类,CDROM类.再定义Computer类:
定义私有数据成员cpu,ram,cdrom,定义公有成员函数run,stop,可在其中输出提标信息居主程序中定义一个Computer的对象,调用其成员函数,观察类对象及其成员变量的构造与析构顺序,以及成员函数的调用.程序名:
lab4_2.cpp。
(5)使用debug调试功能观察lab4_2.cpp程序的运行流程,跟踪观察类的构造函数,析构函数,成员函数的执行顺序,特别注意观察成员变量的构造与析构顺序。
4.测试数据与实验结果
Lab4_1
Lab4_2
5.实验体会
本次实验主要是考察C++的类和软件工程知识点相互结合的综合性比较高的实验,我做的实验部分是关于一个CPU类包括等级;
电压;
频率,来测试学习类的定义和使用并且用DEBUG调试,观察构造函数的调用顺序。
这次实验帮助我们复习了C++中的类,感觉自己还欠缺很多,并且这次其中融合了软件工程的知识点中,使我认识到自身的不足。
副实验代码:
#include<
iostream.h>
enumCPU_Rank{P1=1,P2,P3,P4,P5,P6,P7};
classCPU
CPU_Rankrank;
intfrequency;
doublevoltage;
public:
CPU(CPU_RankinitialRank,intinitialFrequency,doubleinitialVoltage)
{
rank=initialRank;
frequency=initialFrequency;
voltage=initialVoltage;
cout<
endl<
Rank:
rank<
Frequency:
frequency<
Voltage:
voltage<
endl;
~CPU()
voidrun();
voidstop();
voidCPU:
:
run(){cout<
stop(){cout<
CPU停止运行!
CPUcpu(P5,300,2.8);
cpu.run();
cpu.stop();
l//lb4_2.cpp
#include<
iostream>
usingnamespacestd;
classvehicle
floatMaxspeed;
floatWeight;
voidRun(){cout<
Memberofvehicle开始运行!
voidStop(){cout<
Memberofvehicle停止运行!
classbicycle:
virtualpublicvehicle
{public:
floatHeight;
classmotorcar:
intSeatNum;
classmotorcycle:
virtualpublicbicycle,virtualpublicmotorcar
{};
motorcyclem;
m.Run();
m.Stop();