c++面向对象实验报告.docx
《c++面向对象实验报告.docx》由会员分享,可在线阅读,更多相关《c++面向对象实验报告.docx(15页珍藏版)》请在冰豆网上搜索。
c++面向对象实验报告
实验一类与对象
一、实验目的
1、掌握类的声明和使用。
2、掌握类的声明和对象的声明。
3、复习具有不同访问属性的成员的访问方式。
4、观察构造函数和析构函数的执行过程。
5、学习类的组合使用方法。
6、使用VC++的debug调试功能观察程序流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。
二、实验任务
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)等等,有两个公有成员函数run、stop。
cpu为CPU类的一个对象,ram为RAM类的一个对象,cdrom为CDROM类的一个对象,声明并实现这个类。
3、(选作)设计一个用于人事管理的People(人员)类。
考虑到通用性,这里只抽象出所有类型人员都具有的属性:
number(编号)、sex(性别)、birthday(出生日期)、id(身份证号)等等。
其中“出生日期”声明为一个“日期”类内嵌子对象。
用成员函数实现对人员信息的录入和显示。
要求包括:
构造函数和析构函数、拷贝构造函数、内联成员函数、组合。
1、#include
usingnamespacestd;
enumCPU_Rank{p1=1,p2,p3,p4,p5,p6,p7};
classCPU
{private:
CPU_Rankrank;
intfreauency;
floatvoltage;
public:
CPU(CPU_Rankr,intf,floatv)
{rank=r;
freauency=f;
voltage=v;
cout<<"ThisisCPUconstructprogram"<~CPU()
{cout<<"ThisisCPUdestroyfunction"<voidrun(){cout<<"TheCPUisrunning"<voidstop(){cout<<"TheCPUisStopping"<};
intmain()
{
enumCPU_Rankrank;
rank=p5;
CPUcpu1(rank,1024,;
();
();
return0;
}
运行结果:
ThisisCPUconstructprogram
TheCPUisrunning
TheCPUisStopping
ThisisCPUdestroyfunction
2、#include
usingnamespacestd;
enumCPU_Rank{p1=1,p2,p3,p4,p5,p6,p7};
classCPU
{private:
CPU_Rankrank;
intfreauency;
floatvoltage;
public:
CPU(CPU_Rankr=p1,intf=0,floatv=0)
{rank=r;
freauency=f;
voltage=v;
cout<<"ThisisCPUconstructprogram"<~CPU()
{cout<<"ThisisCPUdestroyfunction"<voidrun(){cout<<"TheCPUisrunning"<voidstop(){cout<<"TheCPUisStopping"<};
classRAM
{private:
intrank;
intsize;
public:
RAM(intr=0,ints=0)
{rank=r;
size=s;}
voidrun(){cout<<"TheRAMisrunning"<voidstop(){cout<<"TheRAMisStopping"<};
classCDROM
{private:
intrank;
intsize;
public:
CDROM(intr=0,ints=0)
{rank=r;
size=s;}
voidrun(){cout<<"TheCDROMisrunning"<voidstop(){cout<<"TheCDROMisStopping"<};
classComputer
{
private:
CPUcpu;
RAMram;
CDROMcdrom;
public:
Computer(CPUc,RAMr,CDROMcd)
{cout<<"ThisistheComputerConstruct"<cpu=c;
ram=r;
cdrom=cd;}
voidrun()
{cout<<"ThisisComputerisrunning"<();
();}
voidstop()
{cout<<"ThisisComputerisstop"<();
();}
};
intmain()
{enumCPU_Rankrank;
rank=p5;
CPUcpu1(rank,1024,;
RAMram(5,1024);
CDROMcdrom(5,1024);
Computercp(cpu1,ram,cdrom);
();
();
return0;
}
实验二C++程序结构
1、实验目的
1.观察程序运行中的变量的作用域、生存期和可见性。
2.学习类的静态成员的使用。
3.学习多文件结构在C++程序中的使用。
2、实验任务
1.运行下面程序,2.观察变量x、y的值。
实现客户机(CLIENT)类。
定义字符型静态数据成员ServerName,4.保存其服5.务器名6.称:
整型静态数据成员ClientNum,7.记录已定义的客户数量;定义静态函数ChangeServerName()改变服8.务器名9.称。
在头文件中定义类,10.在文件中实现,11.在文件中测试这个类,12.观察相应的成员变量取值的变化情况。
实验二C++程序结构
1、实验目的
1.观察程序运行中的变量的作用域、生存期和可见性。
2.学习类的静态成员的使用。
3.学习多文件结构在C++程序中的使用。
2、实验任务
1.运行下面程序,2.观察变量x、y的值。
3.实现客户机(CLIENT)类。
定义字符型静态数据成员ServerName,4.保存其服务器名称:
整型静态数据成员ClientNum,记录已定义的客户数量;定义静态函数ChangeServerName()改变服务器名称。
在头文件中定义类,在文件中实现,在文件中测试这个类,观察相应的成员变量取值的变化情况。
三、实验结果
1.
2.服务器名称为:
N
客户机数量为:
2
服务器名称为:
A
实验源代码:
1.#include
usingnamespacestd;
voidfn1();
intx=1,y=2;
voidmain()
{
cout<<"Begin..."<cout<<"x="<cout<<"y="<cout<<"Evaluatexandyinmain()..."<intx=10,y=20;
cout<<"x="<cout<<"y="<cout<<"Stepintofn1()..."<fn1();
cout<<"Backinmain"<cout<<"x="<cout<<"y="<return0;
}
voidfn1()
{
inty=200;
cout<<"x="<cout<<"y="<}
2.//
#include
#include
usingnamespacestd;
classCLIENT
{
private:
staticcharServerName;
staticintClientNum;
public:
CLIENT();
~CLIENT();
staticintGetClientNum();
staticvoidChangServerName(charname);
staticcharGetServerName();
};
//
#include""
CLIENT:
:
CLIENT()
{
ClientNum++;
}
CLIENT:
:
~CLIENT()
{
ClientNum--;
}
intCLIENT:
:
GetClientNum()
{
returnClientNum;
}
voidCLIENT:
:
ChangServerName(charname)
{
ServerName=name;
}
charCLIENT:
:
GetServerName()
{
returnServerName;
}
//
#include<>
#include""
intCLIENT:
:
ClientNum=0;
charCLIENT:
:
ServerName='N';
intmain()
{
CLIENTa;
CLIENTb;
cout<<"服务器名称为:
"<:
GetServerName()<CLIENT:
:
ChangServerName('A');
cout<<"客户机数量为:
"<:
GetClientNum()<cout<<"服务器名称为:
"<:
GetServerName()<}
实验三数组与指针
一、实验目的
1、学习使用数组。
2、学习字符串数据的组织和处理。
3、掌握指针的使用方法。
4、练习通过debug观察指针的内容及其所指的