c++程序设计实验报告.docx
- 文档编号:7497893
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:33
- 大小:365.55KB
c++程序设计实验报告.docx
《c++程序设计实验报告.docx》由会员分享,可在线阅读,更多相关《c++程序设计实验报告.docx(33页珍藏版)》请在冰豆网上搜索。
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<<"转置后数组:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 程序设计 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)