面向对象程序设计实验指导书(4)

2019-04-22 10:53

ram.stop(); } };

enum CPU_Rank {p1=1,p2,p3,p4,p5,p6,p7}; class CPU { private:

CPU_Rank rank; int freauency; float voltage; public:

CPU(CPU_Rank r, int f,float v) { rank=r; freauency=f; voltage=v;

cout<<” this is CPU construct program”<

cout<<”this is CPU destroy function”<

void run(){cout<< the CPU is running”<

void main()

{ enum CPU_Rank rank; rank=p5;

CPU cpu1(rank, 1024, 3.6); RAM ram(5,1024); CDROM cdrom(5,1024);

Computer cp(cpu1,ram,cdrom); cp.run(); cp.stop(); }

四、 思考题

1、 注意类的定义;

2、 类的成员函数的访问方式;

实验五 C++程序的结构

一、 实验目的

1、观察程序运行中变量的作用域、生存期和可见性。 2、学习类的静态成员的使用。

3、学习多文件结构在C++程序中的使用。

二、 主要仪器及耗材 PC电脑,VC6.0软件 三、 实验内容和步骤 1、实验内容:

1、运行下面的程序,观察变量x、y的值。 #include using namespace std; void fn1(); int x=1,y=2; int main()

{cout<<”Begin…”<

cout<<”x=”<

cout<<”x=”<

cout<<”Back in main”<

cout<<”x=”<

void fn1() {

int y=200;

cout<<”x=”<

2、实现客户机(CLient)类,声明字符型静态数据成员ServerName,保存其服务器名称;整形静态数据成员ClientNum,记录已定义的客户数量;定义静态函数ChangeServerName()改变服务器名称。在头文件Client.h中声明类,在文件中Client.cpp实现,在文件test.cpp中测试这个类,观察在相应的成员变量取值的变化情况。

2、实验步骤:

1、源程序结果为: Begin… X=1

Y=2

Evaluate x and y in main() X=10 Y=20

Step into fn1().. X=1 Y=200

Back in main X=10 Y=20

2、源程序结果为: //头文件Client.h

#include class Client

{ static char ServerName[80]; static int ClientNum;

static void ChangeServerName( char *a); int GetClientNum(return ClientNum); Client(char *a) { ServerName=a; ClientNum++; } };

//在文件中Client.cpp #include “Client.h”

char Client ::ServerName[80]=”MyClient”; int Client:: ClientNum=0;

void Client::ChangeServerName( char *a) {ServerName=a }

//在文件test.cpp中 #include “Client.h” void main()

{Client c1(thisClient); Char ch[]=”theseClient”; C1.ChangeServerName(ch);

Cout<

四、 思考题

1、 注意类的定义,类的实现,类的访问方式在不同的文件中怎样实现; 2、 C++语言上的三种控制程序结构;

实验六 继承与派生

一、 实验目的

1、学习声明和使用类的继承关系,声明派生类。 2、熟悉不同继承方式下对基类成员的访问控制。 3、学习利用虚基类解决二义性问题。

二、 主要仪器及耗材 PC电脑,VC6.0软件 三、 实验内容和步骤 1、实验内容:

1、声明一个基类Animal,有私有整形成员变量age,构造其派生类dog,在其成员函数SetAge(int n)中直接给age赋值,看看会有什么问题,把age改为公有成员变量,还会有问题吗?编程试试。

2、声明一个基类BaseClass,有整形成员变量Number,构造其派生类DerivedClass,观察构造函数和析构函数的执行情况。

3、声明一个车(vehicle)基类,具有MaxSpeed、Weight等成员变量,Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类。自行车(bicycle)类有高度(Height)等属性,汽车(motorcar)类有座位数(seatNum)等属性。从bicycle和motorcar派生出摩托车(motorcycle)类,在继承过程中,注意把设置vehicle为虚基类,如果不把vehicle设置为虚基类,会有什么问题?编程方式。

2、实验步骤:

1、源程序结果为: class Animal {

Privte: int age; };

class dog :public Animal {

public :

void SetAge(int n) {age=n;} };

void main() {dog dg;

dg.SetAge(5); }

结果有问题:C:\\Documents and Settings\\traffic02\\my.cpp(12) : error C2248: 'age' :

cannot access private member declared in class 'Animal'

C:\\Documents and Settings\\traffic02\\my.cpp(5) : see declaration of 'age'

把age改为公有成员变量后:Linking... my.exe - 0 error(s), 0 warning(s)

2、源程序为:

#include class BaseClass {

private:

int Number; public:

BaseClass(int N) {

cout<<”this is BaseClass construct function”<

~BaseClass() {

Cout<< “this is BaseClass destroy function”<

class DerivedClass :public BaseClass {

public:

DerivedClass(int N):BaseClass(N)

{cout<<”this is DerivedClass construct function”<

~DerivedClass() {

cout<<”this is DerivedClass destroy function”<

void main()

{ DerivedClass DClass(5); }

3、源程序为:

#include class vehicle {

protected: int MaxSpeed;


面向对象程序设计实验指导书(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:桩基础设计实例

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: