c++程序设计实验报告.docx

上传人:b****5 文档编号:7497893 上传时间:2023-01-24 格式:DOCX 页数:33 大小:365.55KB
下载 相关 举报
c++程序设计实验报告.docx_第1页
第1页 / 共33页
c++程序设计实验报告.docx_第2页
第2页 / 共33页
c++程序设计实验报告.docx_第3页
第3页 / 共33页
c++程序设计实验报告.docx_第4页
第4页 / 共33页
c++程序设计实验报告.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

c++程序设计实验报告.docx

《c++程序设计实验报告.docx》由会员分享,可在线阅读,更多相关《c++程序设计实验报告.docx(33页珍藏版)》请在冰豆网上搜索。

c++程序设计实验报告.docx

c++程序设计实验报告

c++程序设计实验报告

C++程序设计

姓名:

班级:

学号:

指导教师:

实验一VC6.0环境入门与简单程序设计

一、实验目的:

1、熟悉VC++6.0开了环境并编写简单的C++程序。

3、使用C++语言编写简单的输入输出程序。

4、使用VC++6.0的DEBUG调试功能:

单步执行、设置断点、观察变量值。

二、实验内容:

1、使用VC++建立一个标准C++程序,编译、运行如下程序:

#include

Intmain()

{

Cout<<”HelloWorld!

\n”;

Cout<<”WelcometoC++!

\n”;

}

voidrectangle_area()

{

floata,b,s;

cout<<"输入长方形的长和宽:

";

cin>>a>>b;

s=a*b;

cout<<"该长方形的面积是:

"<

}

voidsquare_area()

{

floata,s;

cout<<"输入正方形的边长:

";

cin>>a;

s=a*a;

cout<<"该正方形的面积是:

"<

}

实验二函数的应用

一、实验目的:

1、掌握函数的定义和调用方法。

2、练习重载函数的使用。

3、练习使用系统函数。

4、学习使用VC++的DEBUG调试功能,使用STEPINTO追踪到函数的内部。

二、实验内容:

1、编写一个函数把华氏温度转换为摄氏温度,转换公式:

C=(F-32)*5/9。

#include

usingnamespacestd;

voidWenDu();

intmain()

{

WenDu();

return0;

}

voidWenDu()

{

doubles;

doublef;

cout<<"请输入华氏温度:

";

cin>>f;

s=((f-39)*5/9.0);

cout<<"摄氏温度为"<

}

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

#include

usingnamespacestd;

intMax1(inta,intb);

intMax1(inta,intb,intc);

doubleMax1(doublea,doubleb);

doubleMax1(doublea,doubleb,doublec);

intmain()

{

inta,b,c;

doublex,y,z;

cout<<"请输入两个整数:

";

cin>>a>>b;

cout<<"最大值是:

"<

cout<<"请输入三个整数:

";

cin>>a>>b>>c;

cout<<"最大值是:

"<

cout<<"请输入两个浮点数:

";

cin>>x>>y;

cout<<"最大值是:

"<

cout<<"请输入三个浮点数:

";

cin>>x>>y>>z;

cout<<"最大值是:

"<

return0;

}

intMax1(inta,intb)

{

intt;

if(a>b)

t=a;

elseif(b>a)

t=b;

returnt;

}

intMax1(inta,intb,intc)

{

intt;

if(a>b&&a>c)

t=a;

elseif(b>a&&b>c)

t=b;

elseif(c>a&&c>b)

t=c;

returnt;

}

doubleMax1(doublea,doubleb)

{

doublet;

if(a>b)

t=a;

elseif(b>a)

t=b;

returnt;

}

doubleMax1(doublea,doubleb,doublec)

{

doublet;

if(a>b&&a>c)

t=a;

elseif(b>a&&b>c)

t=b;

elseif(c>a&&c>b)

t=c;

returnt;

}

3、使用系统函数pow(x,y)计算XY的值,注意包含头文件math.h。

#include

#include

usingnamespacestd;

intmain()

{

intx,y;

cout<<"输入x,y:

";

cin>>x>>y;

cout<<"x^y="<

return0;

}

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

#include

usingnamespacestd;

voidFibonacci();

intmain()

{

Fibonacci();

return0;

}

voidFibonacci()

{

inta,b,n,i,t;

cout<<"请输入前两项:

";

cin>>a>>b;

cout<<"请输入显示个数:

";

cin>>n;

cout<

for(i=2;i

{

t=a+b;

cout<

a=b;

b=t;

if((i+1)%5==0)

cout<

}

cout<

}

实验三类与对象

一、实验目的:

1、掌握类与对象的声明和使用。

2、观察构造函数与析构函数的执行过程。

3、掌握具有不同访问属性的成员的访问方式。

4、使用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类的一个对象,声明并实现这个类。

#include

usingnamespacestd;

classCPU

{

public:

voidrun_cpu();

voidstop_cpu();

CPU(intfre,doublevol);

CPU();

~CPU();

CPU(CPU&p);

private:

intfre_cpu;

doublevol_cpu;

};

classRAM

{

public:

voidrun_ram();

voidstop_ram();

RAM(intfre,doublevol);

RAM();

~RAM();

RAM(RAM&p);

private:

intfre_ram;

doublevol_ram;

};

classCUMPUTER

{

friendclassCPU;

friendclassRAM;

public:

voidrun_cum();

voidstop_cum();

CUMPUTER();

CUMPUTER(CPUc,RAMr);

CUMPUTER(CUMPUTER&c);

~CUMPUTER();

private:

CPUcpu;

RAMram;

};

voidCPU:

:

run_cpu()

{

cout<<"CPU运行"<

cout<

}

voidCPU:

:

stop_cpu()

{

cout<<"CPU停止"<

}

CPU:

:

CPU()

{

fre_cpu=0;

vol_cpu=0;

cout<<"CPU缺省样式构造函数调用完成"<

}

CPU:

:

CPU(intfre,doublevol)

{

fre_cpu=fre;vol_cpu=vol;

cout<<"CPU构造函数调用完成"<

}

CPU:

:

~CPU()

{

cout<<"CPU析构函数调用完成"<

}

CPU:

:

CPU(CPU&p)

{

fre_cpu=p.fre_cpu;

vol_cpu=p.vol_cpu;

cout<<"CPU拷贝构造函数调用完成"<

}

voidRAM:

:

run_ram()

{

cout<<"RAM运行"<

cout<

}

voidRAM:

:

stop_ram()

{

cout<<"RAM停止"<

RAM:

:

RAM()

{

fre_ram=0;

vol_ram=0;

cout<<"RAM缺省样式构造函数调用完成"<

}

RAM:

:

RAM(intfre,doublevol)

{

fre_ram=fre;

vol_ram=vol;

cout<<"RAM构造函数调用完成"<

}

RAM:

:

~RAM()

{

cout<<"RAM析构函数调用完成"<

}

RAM:

:

RAM(RAM&p)

{

fre_ram=p.fre_ram;

vol_ram=p.vol_ram;

cout<<"RAM拷贝构造函数调用完成"<

}

voidCUMPUTER:

:

run_cum()

{

cout<<"cumputer运行"<

cpu.run_cpu();ram.run_ram();}

voidCUMPUTER:

:

stop_cum()

{

cout<<"cumputer停止"<

cpu.stop_cpu();ram.stop_ram();

}

CUMPUTER:

:

CUMPUTER(CPUc,RAMr):

cpu(c),ram(r)

{

cout<<"CUMPUTER构造函数调用完成"<

}

CUMPUTER:

:

CUMPUTER(CUMPUTER&c)

{

cpu=c.cpu;ram=c.ram;

cout<<"CUMPUTER拷贝构造函数调用完成"<

}

CUMPUTER:

:

~CUMPUTER()

{

cout<<"CUMPUTER析构函数调用完成"<

}

intmain()

{

CPUc1(1,5.5);

CPUc2=c1;

RAMr1(3,8.8);

RAMr2=r1;

CUMPUTERcum1(c1,r1);

CUMPUTERcum2=cum1;

c2.run_cpu();

r2.run_ram();

cum1.run_cum();

cum1.stop_cum();

cum2.run_cum();

cum2.stop_cum();

system("pause");

}

实验四C++程序结构

一、实验目的:

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

2、掌握类的静态成员的使用。

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

二、实验内容:

1、运行下面的程序,观察变量x、y的值。

#include

usingnamespacestd;

voidfn1();

intx=1,y=2;

intmain()

{

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、实现客户机(CLIENT)类。

声明字符型静态数据成员ServerName,保存其服务器名称;整型静态数据成员ClientNum,记录已定义的客户数量;定义静态函数ChangeServerName()改变服务器名称。

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

#include

usingnamespacestd;

classClient

{

private:

staticcharServerName[10];

staticintClientNum;

public:

Client();

~Client();

static

voidChangeServerName();

voidshow();

};

intClient:

:

ClientNum=0;

charClient:

:

ServerName[10]="abcd";

voidClient:

:

show()

{

cout<<"服务器名称是:

";

cout<

cout<<"客户数量是:

";

cout<

cout<

}

voidClient:

:

ChangeServerName()

{

cout<<"请输入服务器名称:

";

cin>>ServerName;

}

Client:

:

Client()

{

cout<<"客户已记录"<

ClientNum++;

}

Client:

:

~Client()

{

cout<<""<

ClientNum--;

}

intmain()

{

Client:

:

ChangeServerName();

Clienta;

a.show();

Client:

:

ChangeServerName();

Clientb;

b.show();

Client:

:

ChangeServerName();

Clientc;

c.show();

system("pause");

}

实验五数组、指针与字符串

一、实验目的:

1、学习使用数组数据对象及字符串的组织与处理。

2、学习使用标准C++库。

3、掌握指针的使用方法,并通过DEBUG观察指针内容及其所指的对象的内容。

4、练习通过动态内存分配实现动态数组,并体会指针在其中的作用。

二、实验内容:

1、编写并测试3×3矩阵转置函数,使用数组保存3×3矩阵。

#include

usingnamespacestd;

voidmain()

{

intJuZheng[3][3]={11,44,98,36,45,82,48,91,64};

inti,j;

intNew[3][3];

for(i=0;i<3;i++)

for(j=0;j<3;j++)

{

New[j][i]=JuZheng[i][j];

}

cout<<"原矩阵是:

"<

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

cout<

cout<

}

cout<<"转置后矩阵是:

"<

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

cout<

cout<

}

}

2、使用动态内存分配生成动态数组来重新完成上题。

#include

usingnamespacestd;

intmain()

{

inttemp;

int**a;

a=newint*[3];

cout<<"输入数组元素:

"<

for(inti=0;i<3;i++)

if((a[i]=newint[3])==NULL)

exit(0);

for(i=0;i<3;i++)

{

for(intj=0;j<3;j++)

cin>>a[i][j];

}

//输出原数组

cout<<"原数组:

"<

for(i=0;i<3;i++)

{

for(intj=0;j<3;j++)

cout<<""<

cout<

}

for(i=0;i<3;i++)

{

for(intj=i;j<3;j++)

{

temp=a[j][i];

a[j][i]=a[i][j];

a[i][j]=temp;

}

}

cout<<"转置后数组:

"<

for(i=0;i<3;i++)

{

for(intj=0;j<3;j++)

cout<<""<

cout<

}

}

3、编程实现两字符串的连接。

要求使用字符数组保存字符串,不允许使用系统函数。

#include

usingnamespacestd;

intmain()

{

charstr1[40];

charstr2[20];

inti=0,j=0;

cout<<"请输入第一个字符串:

";

cin>>str1;

cout<<"请输入第二个字符串:

";

cin>>str2;

while(str1[i]!

='\0')

i++;

while(str2[j]!

='\0')

{

str1[i]=str2[j];

i++;

j++;

}

str1[i]='\0';

cout<<"连接后的字符串:

 "<

}

4、使用string类声明字符串对象,重新实现上一小题。

#include

#include

usingnamespacestd;

intmain()

{

strings1;

strings2;

cout<<"请输入第一个字符串:

";

cin>>s1;

cout<<"请输入第二个字符串:

";

cin>>s2;

s1+=s2;

cout<<"连接后的字符串为:

"<

return0;

}

实验六继承与派生

一、实验目的:

1、学习声明和使用类的继承关系,声明派生类。

2、熟悉不同继承方式下对基类成员的访问控制。

3、学习利用虚基类解决二义性问题。

二、实验内容:

1、定义一个基类Animal,有私有数据成员变量age,构造其派生类dog,在其成员函数setAge(intn)中直接给Age赋值,看看会有什么问题,把age改为公有成员变量,还会有问题吗?

编程测试一下。

#include

usingnamespacestd;

classAnimal

{

public:

intage;

};

classDog:

publicAnimal

{

public:

SetAge(intn)

{

age=n;

cout<<"年纪是:

"<

}

};

voidmain()

{

Dogdog;

dog.SetAge(5);

}

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

#include

usingnamespacestd;

classBassClass

{

private:

intNumber;

public:

BassClass();

BassClass(intnum);

~BassClass();

voidGetNum()

{

cout<<"Thenumberis"<

}

};

classDerivedClass:

publicBassClass

{

public:

DerivedClass():

BassClass()

{

cout<<"缺省样式构造函数调用完成"<

}

DerivedClass(intnum):

BassClass(num)

{cout<<"带参数构造函数调用完成"<

};

~DerivedClass()

{

cout<<"析构函数调用完成"<

}

voidGetNumner()

{

GetNum();

}

};

BassClass:

:

BassClass()

{

Number=1;

cout<<"缺省样式构造函数调用完成"<

}

BassClass:

:

BassClass(intnum)

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

当前位置:首页 > 求职职场 > 面试

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

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