《实验一、类与对象》由会员分享,可在线阅读,更多相关《实验一、类与对象(8页珍藏版)》请在金锄头文库上搜索。
1、实验一类与对象一、 实验目的1 掌握类的定义和使用。2 掌握类的对象的声明。3 复习具有不同访问属性的成员的访问方式。4 观察构造函数和析构函数的执行过程。5 使用VC+的debug调试功能观察程序流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。二、 实验课时4学时三、 实验任务1定义一个CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等属性,有两个公有成员函数run(提示信息“CPU开始运行”)、stop(提示信息“CPU停止运行”)。其中,为枚举类型CPURank,定义为enum CPU_RankP1=1,P2,P3,P4,P5,P6,P7,fr
2、equency为单位是MHz的整型数,voltage为浮点型的电压值。在main函数中定义该类的一个对象,并调用其公有成员函数,观察构造函数和析构函数的调用顺序。试试能不能在主函数中打印该对象的属性值,并分析原因。2在上述CPU类中添加成员函数,分别用于设置及获取各属性的值,并在main函数中调用这些函数。观察当这些函数被设置成private或public时会有什么不同。3定义一个简单的Computer类,有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等,有两个公有成员函数run、stop。cpu为CPU类的一个对象,ram为RAM类的一个对象,cdrom为CDROM类的一个对象
3、。CPU类的定义为实验任务1,RAM、CDROM类可以自由设置一些属性,并提供类似的run、stop这两个成员函数。在main函数中测试这个类,分析成员函数的运行顺序。4定义一个Point类,属性为坐标X、Y的值,包含有如下成员函数:构造函数、析构函数、设置与获取X和Y的值的函数,并测试程序的输出结果。#include #include using namespace std;/*1定义一个CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等属性,有两个公有成员函数run(提示信息“CPU开始运行”)、stop(提示信息“CPU停止运行”)。其中,为枚举类型CP
4、URank,定义为enum CPU_RankP1=1,P2,P3,P4,P5,P6,P7,frequency为单位是MHz的整型数,voltage为浮点型的电压值。在main函数中定义该类的一个对象,并调用其公有成员函数,观察构造函数和析构函数的调用顺序。试试能不能在主函数中打印该对象的属性值,并分析原因。2在上述CPU类中添加成员函数,分别用于设置及获取各属性的值,并在main函数中调用这些函数。观察当这些函数被设置成private或public时会有什么不同。3定义一个简单的Computer类,有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等,有两个公有成员函数run、sto
5、p。cpu为CPU类的一个对象,ram为RAM类的一个对象,cdrom为CDROM类的一个对象。CPU类的定义为实验任务1,RAM、CDROM类可以自由设置一些属性,并提供类似的run、stop这两个成员函数。在main函数中测试这个类,分析成员函数的运行顺序。4定义一个Point类,属性为坐标X、Y的值,包含有如下成员函数:构造函数、析构函数、设置与获取X和Y的值的函数,并测试程序的输出结果。*/enum CPU_Rank P1 = 1, P2, P3, P4, P5, P6, P7 ;class CPUpublic:CPU();CPU();void set_CPU(CPU_Rank r,
6、int freq, float v);void get_CPU();void run();void stop();private:CPU_Rank rank;int frequency;float voltage;void CPU:run()cout CPU run endl;void CPU:stop()cout CPU stop endl;void CPU:set_CPU(CPU_Rank r, int f, float v)rank = r;frequency = f;voltage = v;void CPU:get_CPU()cout CPU CPU_Rank = rank endl;
7、cout CPU frequency = frequency MHz endl;cout CPU voltage = voltage endl;CPU:CPU()cout CPU构造函数 endl;CPU:CPU()cout CPU析构函数 endl;class RAMpublic:RAM();RAM();void run();void stop();void set_size(unsigned int s);void get_size();private:unsigned int size;void RAM:run()cout RAM run endl;void RAM:stop()cout
8、 RAM stop endl;void RAM:set_size(unsigned int s)size = s;void RAM:get_size()cout RAM size = size endl;RAM:RAM()cout RAM 构造函数 endl;RAM:RAM()cout RAM 析构函数 endl;class CDROMpublic:CDROM();CDROM();void run();void stop();void set_size(unsigned int s);void get_size();private:unsigned int size;void CDROM:ru
9、n()cout CDROM run endl;void CDROM:stop()cout CDROM stop endl;void CDROM:set_size(unsigned int s)size = s;void CDROM:get_size()cout CDROM size = endl;CDROM:CDROM()cout CDROM 构造函数 endl;CDROM:CDROM()cout CDROM 析构函数 endl;class Computerpublic:Computer();Computer();void set_PC();void get_PC();void run();v
10、oid stop();private:CPU cpu;RAM ram;CDROM cdrom;void Computer:run()cout PC run endl;cpu.run();ram.run();cdrom.run();void Computer:stop()cdrom.stop();ram.stop();cpu.stop();cout PC stop endl;void Computer:set_PC()cpu.set_CPU(P1, 2, 3.4);ram.set_size(1024);cdrom.set_size(2048);void Computer:get_PC()cpu.
11、get_CPU();ram.get_size();cdrom.get_size();Computer:Computer()cout Computer 构造函数 endl;Computer:Computer()cout Computer 析构函数 endl;class Pointpublic:Point();Point();void setPoint(int x, int y);void getPoint();private:int X, Y;void Point:setPoint(int x, int y)X = x;Y = y;void Point:getPoint()cout X = X endl;cout Y = Y endl;Point:Point()cout Point 构造函数 endl;Point:Point()cout Point 析构函数 endl;int main()Computer PC;PC.run();PC.set_PC();PC.get_PC();PC.stop();Point p;p.setPoint(12, 45);p.getPoint();system(pause);return 0;