版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C+程序实验报告实验目的1. 掌握 类的定义和使用2. 掌握 类的定义和对象的声明3. 复习具有 不同访问属性的成员的访问方式4. 观察 构造函数和析构函数的执行过程5. 学习类的组合 使用方法6. 使用VC+啲debug调试功能观察程序流程,跟踪观察类的构造函数、析构函数、 成员函数的执行顺序实验要求1. 定义一个 CPU类,包含等级(rank )、频率(frequency )、电压(voltage )等属 性,有两个公有成员函数run、stop。其中,rank为枚举类型CPU_Rank定义为 enum CPU_RankP1=1,P2,P3,P4,P5,P6,P7,frequency 为单位
2、是 MHZ的整型数, voltage 为浮点型的电压值。 观察构造函数和析构函数的调用顺序。2. 定义一个简单的Computer类,有数据成员芯片(cpu )、内存(ram)、光驱(cdrom) 等等,有两个公有成员函数run、stop。cpu为CPU类的一个对象,ram为RAM类的 一个对象,cdrom为CDRO类的一个 对象,定义并实现这个类。3(选做)设计一个用于人事管理的People( 人员) 类。考虑到通用性这里只抽象出所有类型人员都具有的属性:number (编号)、sex (性别)、birthday (出生日期)、 id (身份证号)等等。其中“出生日期”定义为一个“日期”类内嵌
3、子对象。用成 员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造 函数、内联成员函数、组合。实验内容及实验步骤1首先定义枚举类型 CPU_Ran,k 例如 enum CPU_RankP1=1, P2, P3, P4, P5, P6,P7,再定义 CPU类,包含等级(rank )、频率(frequency )、电压(voltage ) 等私有数据成员,定义成员函数 run、 stop ,用来输出提示信息,在构造函数和 析构函数中也可以输出提示信息。在主程序中定义一个CPU的对象,调用其成员函数,观察类对象的构造与析构顺序, 以及成员函数的调用。 程序名: lab4_1.cp
4、p 源程序#include<iostream>using namespace std;enum CPU_Rank P1=1,P2,P3,P4,P5,P6,P7;class CPUprivate:CPU_Rank rank;int frequency;float voltage;public:CPU(CPU_Rank r, int f, float v);CPU();CPU_Rank GetRank()return rank;int GetFrequency()return frequency;float GetVoltage()return voltage;void SetRank
5、(CPU_Rank r)rank=r;void SetFrequency(int f)frequency=f;void SetVoltage(float v)voltage=v;void Run()cout<<"CPU 开始运行 !"<<endl;void Stop()cout<<"CPU 停止运行 !"<<endl; ;CPU:CPU(CPU_Rank r, int f, float v)rank=r;frequency=f;voltage=v;cout<<" 构造了一个 CPU!&
6、quot;<<endl;CPU:CPU()cout<<" 析构了一个 CPU!"<<endl;void main()CPU a(P4, 200, 3.8);a.Run();a.Stop();运行结果:2. 使用 debug 调试功能观察程序 lab4_1.cpp 的运行流程,跟踪观察类的构造函数、 析构函数、成员函数的执行顺序。3调试操作步骤如下:1) 单击Build | Start Debug | Step Into命令,或按下快捷键 F11,系统进入单步执行状态,程序幵始运行,一个 DOS窗口出现,此时 Visual Studio 中
7、光标停在 main() 函数的入口处;2) 从Debug菜单或Debug工具栏中单击Step Over,此时,光标下移,程序准备执行CPU寸象的初始化;3) 单击Step Into ,程序准备执行CPU类的构造函数;4) 连续单击 Step Over ,观察构造函数;5) 此时程序准备执行 CPU对象的run()函数,单击Step Into ,程序进入run()成 员函数,连续单击 Step Over ,直到回到 main() 函数。6) 继续执行程序,参照上述的方法,观察程序的执行顺序,加深对类的构造函数、 析构函数、成员函数的执行顺序的认识。7) 再试试Debug菜单栏中别的菜单项,熟悉
8、Debug的各种方法。运行结果:4.首先定义CPU类(可使用第二题中的 CPU类)、RAM类、CDRO类。再定义Computer 类;定义私有数据成员 cpu、ram、cdrom,定义公有成员函数run、stop,可在其中 输出提示信息。在主程序中定义一个 Computer 的对象,调用其成员函数,观察类对 象及其成员变量的构造与析构顺序,以及成员函数的调用。程序名: lab4_2.cpp.源程序#include<iostream>using namespace std;enum CPU_Rank P1=1,P2,P3,P4,P5,P6,P7;class CPUprivate:CP
9、U_Rank rank;int frequency;/频率float voltage;/电压public:CPU(CPU_Rank r, int f, float v);CPU();CPU();CPU_Rank GetRank()return rank;int GetFrequency()return frequency;float GetVoltage()return voltage;void SetRank(CPU_Rank r)rank=r;void SetFrequency(int f)frequency=f;void SetVoltage(float v)voltage=v;void
10、 Run()cout<<"CPU 开始运行 !"<<endl;void Stop()cout<<"CPU 停止运行 !"<<endl; ;CPU:CPU(CPU_Rank r, int f, float v)rank=r;frequency=f;voltage=v;cout<<" 构造了一个 CPU!"<<endl;CPU:CPU()cout<<" 析构了一个 CPU!"<<endl;/enum RAM_Rank K1=
11、1,K2,K3,K4,K5,K6,K7;class RAMprivate:RAM_Rank rank;int frequency;float voltage;int large;/ 大小public:RAM(RAM_Rank r, int f, float v,int c);RAM();RAM()RAM_Rank GetRank()return rank;int GetFrequency()return frequency;float GetVoltage()return voltage;void SetRank(RAM_Rank r)rank=r;void SetFrequency(int
12、f)frequency=f;void SetVoltage(float v)voltage=v;void Setlarge(int c)large=c;void Run()cout<<"RAM 开始运行 !"<<endl;void Stop()cout<<"RAM 停止运行 !"<<endl; ;RAM:RAM(RAM_Rank r, int f, float v,int c)rank=r;frequency=f;voltage=v;large=c;cout<<" 构造了一个 RAM!
13、"<<endl;RAM:RAM()cout<<" 析构了一个 RAM!"<<endl;/enum CDROM_Rank J1=1,J2,J3,J4,J5,J6,J7;class CDROMprivate:CDROM_Rank rank;int frequency;float voltage;int large;/ 大小float w;/ 转速public:CDROM(CDROM_Rank r, int f, float v,int c,float m);CDROM();CDROM()CDROM_Rank GetRank()ret
14、urn rank;int GetFrequency()return frequency;float GetVoltage()return voltage;void SetRank(CDROM_Rank r)rank=r;void SetFrequency(int f)frequency=f;void SetVoltage(float v)voltage=v;void Setlarge(int c)large=c;void Setw(float m)w=m;void Run()cout<<"CDROM 开始运行 !"<<endl;void Stop()
15、cout<<"CDROM 停止运行 !"<<endl;CDROM:CDROM(CDROM_Rank r, int f, float v,int c,float m)rank=r;frequency=f;large=c;w=m;voltage=v;cout<<" 构造了一个 CDROM!"<<endl;CDROM:CDROM()cout<<" 析构了一个 CDROM!"<<endl;class COMPUTERprivate:CPU cpu;RAM ram;CDRO
16、M cdrom;public:void Run()cout<<"computer RUN"<<endl;void Stop()cout<<"computer STOP"<<endl;COMPUTER()COMPUTER(CPU&cpu1,RAM& ram1,CDROM& cdrom1)cpu=cpu1;ram=ram1;cdrom=cdrom1;COMPUTER(COMPUTER&computer2)cpu=computer2.cpu;ram=computer2.ram; c
17、drom=computer2.cdrom;int main()CPU cpu(P1,100,2);RAM ram(K2, 100, 2, 12 );CDROM cdrom(J3,100,23,233,23);COMPUTER computer(cpu,ram,cdrom);computer.Run();computer.Stop();return 0;运行结果:5. 使用 debug 调试功能观察 lab4_2.cpp 程序的运行流程,跟踪观察类的构造函数、 析构函数、成员函数的执行顺序,特别注意观察成员变量的构造与析构顺序。运行结果:思考题1. 如何 定义一个类 ?数据,构造函数,析构函数,复制构造函数,方法。 。2. 如何 定义类的构造函数和析构函数?构造函数通用于实例化象自内部数据员初始化设置初始值、配内存空间等析构函数则用于删除象做收尾工作比释放申请空间等3. 类的 各成员函数的执行顺序 是怎样的?按调用顺序执行4. 类 组合时对象的构造顺序 是怎
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 富源供电局常态安全培训课件
- 家长食品安全培训课件
- 2026年装修工程借款合同书范本
- 2026年视频广告投放效果评估合同协议
- 解除2026年销售合同协议
- 2026年商场油烟管道专业维护合同
- 2026年化妆品代理销售保密合同
- 2026年软件系统开发授权合同
- 2026年物流管理培训合同
- 2026年建筑外墙涂料合同
- 2024年中国诚通控股集团有限公司所出资企业招聘真题
- DB37-T4975-2025分布式光伏直采直控技术规范
- 画框制作合同范本
- 2025年河北邯郸武安市公开招聘食品检测专业技术人员4名备考考试题库及答案解析
- 反霸凌宣传课件
- 民航空管局面试题及答案
- 2026年海南卫生健康职业学院单招综合素质考试题库参考答案详解
- 陕西省专业技术人员继续教育2025公需课《党的二十届三中全会精神解读与高质量发展》20学时题库及答案
- 肿瘤内科静脉给予抗肿瘤药物评价标准
- (2023春)简明新疆地方史教程学习通课后章节答案期末考试题库2023年
- 停车场施工施工组织方案
评论
0/150
提交评论