《面向对象程序设计 C++》实验报告文档格式.docx

上传人:b****5 文档编号:17368428 上传时间:2022-12-01 格式:DOCX 页数:61 大小:120.21KB
下载 相关 举报
《面向对象程序设计 C++》实验报告文档格式.docx_第1页
第1页 / 共61页
《面向对象程序设计 C++》实验报告文档格式.docx_第2页
第2页 / 共61页
《面向对象程序设计 C++》实验报告文档格式.docx_第3页
第3页 / 共61页
《面向对象程序设计 C++》实验报告文档格式.docx_第4页
第4页 / 共61页
《面向对象程序设计 C++》实验报告文档格式.docx_第5页
第5页 / 共61页
点击查看更多>>
下载资源
资源描述

《面向对象程序设计 C++》实验报告文档格式.docx

《《面向对象程序设计 C++》实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《《面向对象程序设计 C++》实验报告文档格式.docx(61页珍藏版)》请在冰豆网上搜索。

《面向对象程序设计 C++》实验报告文档格式.docx

2

熟悉VC++开发环境

C++简单程序设计

4

基本算法结构

3

函数的应用

函数设计、模板函数

类与对象

6

类的设计与使用

5

C++程序的结构

作用域与生存期,静态成员

数组、指针与字符串

三种常见编程元素的使用

7

继承与派生

派生类的设计与使用

8

多态性

运算符重载、动态多态

9

群体类和群体数据的组织

群体类的设计

10

泛型程序设计与C++标准模板库

STL库的使用

11

十一

流内库与输入、输出

常用输入输出方法

12

十二

异常处理

异常处理机制的设计

十三

Windows应用程序框架

VC开发Windows程序方法

四、实验内容安排:

实验一VisualC++6.0开发环境应用入门

(验证性实验2学时)

1.目的要求:

了解VisualC++6.0的特点,熟悉了解VisualC++6.0的开发环境,学习使用VisualC++6.0编写标准的C++控制台应用程序。

2.实验内容:

使用VisualC++来建立一个非图形化的标准C++程序,编译、运行教材中的例3-3,用公式法求解PI的数值,并尝试利用其他方法求解并获得相同的结果。

π=16arctan(1/5)-4arctan(1/239)

arctan(x)=x-x³

/3+x5/5-x7/7+…求π=?

 

#include<

iostream>

usingnamespacestd;

intmain()

{

doublea,b;

doublearctan(doublex);

a=16.0*arctan(1/5.0);

b=4.o*aarctan(1/239.0);

cout<

<

”PI=”<

a-b<

endl;

}

doublearctan(doublex)

inti;

doubler,ef,sqr;

sqr=x*x;

r=0;

e=x;

i=1;

while(e/i>

1e-15)

f=e/I;

r=(i%4==1)?

r+f:

r-f;

e=e*sqr;

I+=2;

returnr;

stdio.h>

math.h>

main()

ints=1;

floatn=1,t=1,pi=0;

while(fabs(t)1e-4)

{

pi=pi+t;

n=n+2;

s=-s;

t=s/n;

}

pi=pi*4;

printf("

%d"

pi);

3.主要仪器设备及软件:

PC+Windows2000+VC6.0

实验二C++简单程序设计实验

(验证性实验4学时)

4.目的要求:

会编写简单的C++程序;

复习基本数据类型变量和常量的应用;

复习运算符与表达式的应用;

复习结构化程序设计基本控制结构的应用;

复习自定义数据类型的应用;

练习使用简单的输入输出;

观察头文件的作用;

学会使用VC6.0开发环境中的debug调试功能;

熟练程序设计中的技巧;

5.实验内容:

3)给定一个字符变量输出其二进制形式。

例如chara=’a’;

其二进制为00100001。

charch;

intj,k[8]={0};

cout<

"

请输入一个字符:

cin>

>

ch;

for(j=0;

j<

=7;

j++)

if(ch)

{

if(ch%2==0)

k[j]=0;

else

k[j]=1;

ch=(ch-(ch%2))/2;

}

for(j=7;

j>

=0;

j--)

cout<

k[j];

4)给定一个字符变量输出其二进制反转形式。

其二进制为00100001,反转形式为10000100。

(提示:

使用位运算)

ch<

二进制是:

;

k[j]=k[j]^1;

二进制反码是:

5)袋子里有红,黄,蓝,绿,黑五种不同颜色的球若干个,从中取出三个不同颜色的球,编程输出每种取法及统计不同取法的总数(提示:

使用枚举)

#include<

enumcolor{red=0,yellow,blue,green,black};

boolisNum(inti)

intj=0;

for(intk=0;

k<

6;

k++)if(i>

k&

1==1)j++;

returnj==3?

true:

false;

voidprintResult(inti)

5;

k++)

if(i>

1==1)

switch(k)

casered:

printf("

red"

);

break;

caseyellow:

yellow"

caseblue:

blue"

casegreen:

green"

caseblack:

black"

default:

error!

!

\n"

voidmain()

可能的方案有:

for(inti=0;

i<

=32;

i++)

if(isNum(i))

printResult(i);

j++;

6)(选做)给定一个整型变量输出其二进制形式。

6.主要仪器设备及软件:

实验三函数的应用实验

(设计性实验2学时)

7.目的要求:

掌握函数的定义和调用方法;

练习重载函数的使用;

练习使用系统函数;

学习使用VC++的debug调试功能,使用stepinto追踪到函数内部。

8.实验内容:

7)用递归的方法编写函数求Fibonacci级数,观察递归调用的过程。

intFibonacci(inti)

if(i==1)

return0;

else

if(i==2)

return1;

else

returnFibonacci(i-1)+Fibonacci(i-2);

{

intn,j,i;

n;

for(i=1;

=n;

j=Fibonacci(i);

8)编写重载函数Max1可分别求取两个整数,三个整数,两个双精度数,三个双精度数的最大值。

intMAX1(inta,intb)

if(a>

=b)

returna;

returnb;

intMAX1(inta,intb,intc)

if(a<

=c)

returnc;

returna;

if(b<

returnb;

doubleMAX1(doublea,doubleb)

doubleMAX1(doublea,doubleb,doublec)

inta,b,c;

doublei,j,k;

请输入两个整数"

a>

b;

最大的数"

MAX1(a,b)<

endl<

请输入三个整数"

b>

c;

最大的数是"

MAX1(a,b,c)<

请输入两个小数"

i>

j;

MAX1(i,j)<

请输入三个小数"

k;

MAX1(i,j,k)<

9)写一个函数,能够接收身高、体重等数据,能够根据身高、体重检测身体状况,胖,瘦等。

voidSHENGC(doublei,doublej)

if(i<

j*32)

这个人偏胖"

{if(i=j*32)

cout<

这个人适中"

这个人偏瘦"

doublei,j;

请输入身高(cm)和体重(kg)"

SHENGC(i,j);

9.主要仪器设备及软件:

实验四类与对象实验

(设计性实验4学时)

10.目的要求:

掌握类的定义和使用;

掌握类对象的声明;

复习具有不同访问属性的成员的访问方式;

观察构造函数和析构函数的执行过程;

学习类组合使用方法;

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

11.实验内容:

10)定义一个CPU类,包含等级(Rank)、频率(frequency)、电压(voltage)等属性,有两个公有成员函数run、stop。

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

观察构造函数和析构函数的调用顺序。

enumCPU_Rank{P1=1,P2,P3,P4,P5,P6,P7};

classCPU

public:

CPU();

~CPU();

voidrun(enumCPU_Rankr,intf,doublev);

voidstop();

private:

enumCPU_RankRank;

intfrequency;

doublevoltage;

};

CPU:

:

CPU()

调用构造函数"

~CPU()

调研析构函数"

voidCPU:

run(enumCPU_Rankr,intf,doublev)

Rank=r;

frequency=f;

voltage=v;

stop()

Rank<

frequency<

voltage<

enumCPU_Rankt=P1;

CPUc;

c.run(t,2,4.865);

c.stop();

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

cpu为CPU类的一个对象,ram为RAM类的一个对象,cdrom为CDROM类的一个对象,定义并实现这个类,观察这些类的构造函数和析构函数的调用顺序。

{

CPU()

CPU构造函数被调用"

~CPU()

CPU析构函数被调用"

classRAM

RAM()

RAM构造函数被调用”<

~RAM()

RAM析构函数被调用"

classCDROM

CDROM()

CDROM构造函数被调用"

~CDROM()

CDROM析构函数被调用"

classComputer

CPUcpu;

RAMram;

CDROMcdrom;

Computer()

Computer构造函数被调用"

~Computer()

Computer析构函数被调用"

voidrun();

ComputerC;

12)定义一个Body类,拥有身高、体重等数据,能够根据身高、体重检测身体状况,要求设计相应的函数成员和构造函数。

classbody

body()

构造函数被调用"

~body()

析构函数被调用"

voidset(doubleh,doublew)

HIGH=h;

WEIGHT=w;

voidshow()

HIGH="

HIGH<

WEIGHT="

WEIGHT<

doubleHIGH;

doubleWEIGHT;

bodya;

a.set(i,j);

a.show();

13)(选做)设计一个用于人事管理的People(人员)类。

考虑到通用性,这里只抽象出所有类型人员都具有的属性:

number(编号)、sex(性别)、birthday(出生日期)、id(身份证号)等等。

其中“出生日期”定义一个“日期”类内嵌子对象。

用成员函数实现对人员信息录入和显示。

要求包括:

构造函数和析构函数、拷贝构造函数、内联成员函数、类组合。

12.主要仪器设备及软件:

PC+Windows2000+VC6.0

实验五C++程序的结构实验

13.目的要求:

观察程序运行中变量的作用域、生存期和可见性;

学习类的静态成员的使用;

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

14.实验内容:

14)运行下面的程序,观察变量X、Y的值。

(删除)

//lab5_1.cpp

iostream.h>

voidfnl();

intx=1,y=2;

”Begin…”<

”x=”<

x<

”y=”<

y<

”Evaluatexandyinmain()…”<

intx=10,y=20;

”Stepintofnl()…”<

fnl();

”Backinmain”<

return0;

voidfnl()

inty=200;

15)实现客户机(CLIENT)类。

定义字符型静态数据成员ServerName,保存其服务器名称;

整型静态数据成员ClientNum,记录已定义的客户数量;

定义静态函数ChangeServerName()改变服务器名称。

在头文件client.h中定义类,在文件client.cpp中实现,在文件test.cpp中测试这个类,观察相应的成员变量取值的变化情况。

(需要给出main函数代码和运行结果)

//cilent.h

classClient

staticcharSeverName[10];

staticintClientnum;

Client()

Client构造函数被调用"

Clientnum++;

~Client()

Client析构函数被调用"

Clientnum--;

staticvoidChangeServername()

inti;

请输入服务器的名字:

cin>

SeverName;

voidshow();

intClient:

Clientnum=0;

charClient:

SeverName[10]="

abcd"

//Client.cpp

voidClient:

show()

该用户机的服务器端名字是:

SeverName<

用户数量有:

"

Clientnum<

//Client.exe

Client:

ChangeServername();

Client

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 城乡园林规划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1