当前位置:文档之家› 实验一、类与对象

实验一、类与对象

实验一类与对象一、实验目的1.掌握类的定义和使用。

2.掌握类的对象的声明。

3.复习具有不同访问属性的成员的访问方式。

4.观察构造函数和析构函数的执行过程。

5.使用VC++的debug调试功能观察程序流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。

二、实验课时4学时三、实验任务1.定义一个CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等属性,有两个公有成员函数run(提示信息“CPU开始运行”)、stop(提示信息“CPU停止运行”)。

其中,为枚举类型CPU_Rank,定义为enum CPU_Rank{P1=1,P2,P3,P4,P5,P6,P7},frequency为单位是MHz的整型数,voltage 为浮点型的电压值。

在main函数中定义该类的一个对象,并调用其公有成员函数,观察构造函数和析构函数的调用顺序。

试试能不能在主函数中打印该对象的属性值,并分析原因。

2.在上述CPU类中添加成员函数,分别用于设置及获取各属性的值,并在main函数中调用这些函数。

观察当这些函数被设置成private或public时会有什么不同。

3.定义一个简单的Computer类,有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等,有两个公有成员函数run、stop。

cpu为CPU类的一个对象,ram 为RAM类的一个对象,cdrom为CDROM类的一个对象。

CPU类的定义为实验任务1,RAM、CDROM类可以自由设置一些属性,并提供类似的run、stop这两个成员函数。

在main函数中测试这个类,分析成员函数的运行顺序。

4.定义一个Point类,属性为坐标X、Y的值,包含有如下成员函数:构造函数、析构函数、设置与获取X和Y的值的函数,并测试程序的输出结果。

#include<iostream>#include<stdlib.h>using namespace std;/*1.定义一个CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等属性,有两个公有成员函数run(提示信息“CPU开始运行”)、stop(提示信息“CPU停止运行”)。

其中,为枚举类型CPU_Rank,定义为enumCPU_Rank{P1=1,P2,P3,P4,P5,P6,P7},frequency为单位是MHz的整型数,voltage 为浮点型的电压值。

在main函数中定义该类的一个对象,并调用其公有成员函数,观察构造函数和析构函数的调用顺序。

试试能不能在主函数中打印该对象的属性值,并分析原因。

2.在上述CPU类中添加成员函数,分别用于设置及获取各属性的值,并在main 函数中调用这些函数。

观察当这些函数被设置成private或public时会有什么不同。

3.定义一个简单的Computer类,有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等,有两个公有成员函数run、stop。

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 CPU{public:CPU();~CPU();void set_CPU(CPU_Rank r, 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;cout <<"CPU frequency = "<< frequency <<" MHz"<<endl;cout <<"CPU voltage = "<< voltage << endl;}CPU::CPU(){cout <<"CPU构造函数"<< endl;}CPU::~CPU(){cout <<"CPU析构函数"<< endl;}class RAM{public: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 <<"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 CDROM{public:CDROM();~CDROM();void run();void stop();void set_size(unsigned int s);void get_size();private:unsigned int size;};void CDROM::run(){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 Computer{public:Computer();~Computer();void set_PC();void get_PC();void run();void 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.get_CPU();ram.get_size();cdrom.get_size();}Computer::Computer(){cout <<"Computer 构造函数"<< endl; }Computer::~Computer(){cout <<"Computer 析构函数"<< endl; }class Point{public: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; }。

相关主题