c++实验报告.doc

上传人:罗晋 文档编号:5694393 上传时间:2020-07-22 格式:DOC 页数:51 大小:729.50KB
返回 下载 相关 举报
c++实验报告.doc_第1页
第1页 / 共51页
c++实验报告.doc_第2页
第2页 / 共51页
c++实验报告.doc_第3页
第3页 / 共51页
c++实验报告.doc_第4页
第4页 / 共51页
c++实验报告.doc_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《c++实验报告.doc》由会员分享,可在线阅读,更多相关《c++实验报告.doc(51页珍藏版)》请在三一文库上搜索。

1、面向对象程序设计(C+)实验报告指导老师:柯栋梁学生:吴健班级:软131学号:139074164目录实验一、 VC6.0环境入门与简单程序设计实验报告3实验二、函数的应用实验报告7实验三、类与对象实验报告14实验四、C+程序结构实验报告22实验五、数组、指针与字符串实验报告26实验六、继承和派生实验报告33实验七、 多态性实验报告42实验八、面向对象综合实验实验报告48实验一、 VC6.0环境入门与简单程序设计实验报告系 软件工程 班级 131 学号 139074164 姓名 吴健 同组者 指导教师 柯栋梁 一、实验目的:1、熟悉VC+6.0开了环境并编写简单的C+程序。3、使用C+语言编写简

2、单的输入输出程序。4、使用VC+6.0的DEBUG调试功能:单步执行、设置断点、观察变量值。二、实验内容:1、使用VC+建立一个标准C+程序,编译、运行如下程序:#includeInt main()Cout”Hello World!n”;Cout”Welcome to C+!n”;2、编程计算图形的面积。程序可计算圆形、长方形、正方形等的面积,运行时首先提示用户选择图形类型,然后根据不同图形类型,输入相关参数计算其面积,并将其显示出来。3、使用DEBUG功能观察任务2程序运行中变量值的变化情况。三、实验要求:1、任务1要求熟悉VC+开发环境,并能够使用其建立第一个C+程序。2、实验前要做好充分

3、准备,包括程序清单、调试步骤、调试方法,以及对程序结果的分析等。四、实验报告:1.程序运行截图2.面积计算1、程序说明。用if -else语句进行选择程序功能,while语句实现功能的循环实现程序如下:#include#include using namespace std;int main() cout1计算圆面积endl 2计算矩形面积endl 3计算正方形面积endl 4退出endl x; double area; while(x!=4) if(x=1) double r; coutr; area=3.14*r*r; cout面积为 areaendl; else if(x=2) doub

4、le a,b; coutab; area=a*b; cout面积为 areaendl; else if(x=3) double a,b,c,d; couta; area=a*a; cout面积为 areaendl; else cout输入有误,请重新输入!endl; coutx; return 0;程序截图: 实验二、函数的应用实验报告系 软件工程 班级 131 学号 139074164 姓名 吴健 同组者 指导教师 柯栋梁 一、实验目的:1、掌握函数的定义和调用方法。2、练习重载函数的使用。3、练习使用系统函数。4、学习使用VC+的DEBUG调试功能,使用STEP INTO追踪到函数的内部。

5、二、实验内容:1、编写一个函数把华氏温度转换为摄氏温度,转换公式:C=(F-32)*5/9。2、编写重载函数Max1可分别求取两个整数,三个整数,两个双精度数,三个双精度数的最大值。3、使用系统函数pow(x,y)计算XY的值,注意包含头文件math.h。4、使用递归的方法编写函数求Fibonacci级数,观察递归调用的过程。三、实验报告:1、温度转换A.程序#include using namespace std;double FtoC(double F)return (F-32)*5/9;void main()double F,c;coutF;c=FtoC(F);cout输出摄氏温度cen

6、dl;B.截图2. 重载函数A.程序#includeusing namespace std;int max1(int a,int b)/两个整数return ab?a:b;int max1(int a,int b,int c)/三个整数return max1(a,max1(b,c);double max1(double a,double b)/两个双精度return ab?a:b;double max1(double a,double b,double c)/三个双精度return max1(a,max1(b,c);void main() int a,b,c,m;double x,y,z;co

7、ut1、两个整数endl2、三个整数endl3、两个双精度数endl4、三个双精度数endl5、退出endl m;while(m!=5)if(m=1)cout请输入两个整数ab;a=max1(a,b);cout最大值为aendl;else if(m=2)cout请输入三个整数abc;a=max1(a,b,c);cout最大值为aendl;else if(m=3)cout请输入两个双精度数xy;x=max1(x,y);cout最大值为xendl;else if(m=4)cout请输入三个双精度数xyz;x=max1(x,y,z);cout最大值为xendl;coutm;B.截图3系统函数pow(

8、x,y)计算XYA. 程序#include#includeusing namespace std;int main() int x,y;cout请输入两个数x,yxy;coutx的y次方为pow(x,y)endl;B. 截图4使用递归的方法编写函数求Fibonacci级数A. 程序#includeusing namespace std;int fib(int n) coutProcessing fib(n); if(n3) coutReutrn 1!n; return(1); else coutCall fib(n-2)and fib(n-1).endl; return(fib(n-2)+fi

9、b(n-1); int main() int n,answer;coutn;coutendlendl;answer=fib(n);coutansweris thenth Fibonacci numberendl; B. 截图实验三、类与对象实验报告系 软件工程 班级 131 学号 139074164 姓名 吴健 同组者 指导教师 柯栋梁 一、实验目的:1、掌握类与对象的声明和使用。2、观察构造函数与析构函数的执行过程。3、掌握具有不同访问属性的成员的访问方式。4、使用DEBUG调试功能观察程序流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。二、实验内容:1、声明一个CPU类,包含等级

10、(rank)、频率(frequency)、电压(voltage)等属性,有两个公有成员函数run、stop。其中,rank为枚举类型CPU_Rank,声明为enum CPU_RankP1=1,P2,P3,P4,P5,P6,P7,frequency为单位是MHz的整型数,voltage为浮点型的电压值,观察构造函数和析构函数的调用顺序。2、声明一个简单的computer类,有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等等,有两个公有成员函数run、stop。cpu为CPU类的一个对象,ram为RAM类的一个对象,cdrom为CDROM类的一个对象,声明并实现这个类。三、实验报告:

11、1、cpu类A.程序#includeusing namespace std;enum CPU_Rank P1=1,P2,P3,P4,P5,P6,P7;class CPUprivate: CPU_Rank rank; int frequency; float voltage;public: CPU(int newrank,int newfrequency,float newvoltage); void run(); void stop(); CPU()cout成功调用析构函数endl;void CPU:run() cout程序开始执行endl; void CPU:stop() cout程序结束e

12、ndl;CPU:CPU(int newrank,int newfrequency,float newvoltage) rank=(CPU_Rank)newrank; frequency=newfrequency; voltage=newvoltage; cout成功调用构造函数endl; cout等级:enum(P1)endl; cout频率:frequencyendl; cout电压:voltageendl; int main() CPU cpu(2,60,220); cpu.run(); cpu.stop(); return 0;B.截图puter类A.程序#includeenum CPU

13、_rankp1=1,p2,p3,p4,p5,p6,p7;class CPUprivate: CPU_rank rank; int frequency; float voltage;public:CPU (CPU_rank r,int f,float v) rank=r; frequency=f; voltage=v; cout构造了一个cpu!endl; CPU() cout其构了一个cpu!endl; CPU_rank getrank() const return rank; void setrank(CPU_rank r) rank=r; void run() coutcpu开始运行!en

14、dl; void stop() coutcpu停止运行!endl;class RAMprivate: int ram;public:RAM(int r) cout构造了一个ram!endl; RAM() ram=0;cout构造了一个ram!endl; RAM()cout析构了一个ram!endl;void run() coutram开始运行!endl;void stop()coutram停止运行!endl;class CDRAMprivate: int cdram;public: CDRAM(int c) cdram=c; cout构造了一个cdram!endl; CDRAM() cout构

15、造了一个cdram!endl; CDRAM()cout析构了一个cdram!endl; void run() coutcdram开始运行endl; void stop() coutcdram停止运行endl;class computerprivate:CPU cpu;RAM ram;CDRAM cdram;public: computer(CPU c,RAM r,CDRAM cd); computer(); computer()cout析构了一个computerendl; computer(computer &p); void run() coutcomputer开始运行endl; void

16、stop()coutcomputer停止运行endl;computer:computer():cpu(p6,100,float(1.3),ram(20),cdram(30)cout构造了一个 cpu00endl;computer:computer(CPU c,RAM r,CDRAM cd):cpu(c),ram(r),cdram(cd)cout构造了一个computerendl;computer:computer(computer &p): cpu(p.cpu),ram(p.ram),cdram(p.cdram)cout调用了复制构造函数endl;void main()CPU m(p6,300

17、,float(2.8);RAM n(1);CDRAM q(2);computer com1;computer com2(m,n,q);B.截图实验四、C+程序结构实验报告系 软件工程 班级 131 学号 139074164 姓名 吴健 同组者 指导教师 柯栋梁 一、实验目的:1、观察程序运行时变量的作用域、生存期和可见性。2、掌握类的静态成员的使用。3、学习多文件结构在C+程序中的使用。二、实验内容:1、运行下面的程序,观察变量x、y的值。#include using namespace std;void fn1(); int x = 1, y = 2; int main()cout Begi

18、n. endl; cout x = x endl; cout y = y endl;cout Evaluate x and y in main(). endl;int x = 10, y = 20; cout x = x endl; cout y = y endl;cout Step into fn1(). endl; fn1(); cout Back in main endl; cout x = x endl; cout y = y endl; return 0;void fn1() int y = 200; cout x = x endl; cout y = y endl;2、实现客户机(

19、CLIENT)类。声明字符型静态数据成员ServerName,保存其服务器名称;整型静态数据成员ClientNum,记录已定义的客户数量;定义静态函数ChangeServerName()改变服务器名称。在头文件client.h中声明类,在文件client.cpp中实现,在文件test.cpp中测试这个类,观察相应的成员变量取值的变化情况。三、实验报告:1.程序运行观察A.截图2. 实现客户机(CLIENT)类A. 程序# include using namespace std; class Client public: static char servername; static int cl

20、ientnum; char *clientname; Client(char *name1); static void change() cout请输入要改成的服务器名称:servername; void showname() coutname=clientnameendl; # includeClient.h int Client:clientnum=0; char Client:servername=t; Client:Client(char *name1) clientname=new char20; strcpy(clientname,name1); clientnum+;# incl

21、udeClient.hvoid main() Client a(zhang); a.showname(); coutClient:servernameendl; coutClient:clientnumendl; Client:change(); a.showname(); coutClient:servernameendl; coutClient:clientnumendl;B. 截图 实验五、数组、指针与字符串实验报告系 软件工程 班级 131 学号 139074164 姓名 吴健 同组者 指导教师 柯栋梁 一、实验目的:1、学习使用数组数据对象及字符串的组织与处理。2、学习使用标准C+库

22、。3、掌握指针的使用方法,并通过DEBUG观察指针内容及其所指的对象的内容。4、练习通过动态内存分配实现动态数组,并体会指针在其中的作用。二、实验内容:1、编写并测试33矩阵转置函数,使用数组保存33矩阵。2、使用动态内存分配生成动态数组来重新完成上题。3、编程实现两字符串的连接。要求使用字符数组保存字符串,不允许使用系统函数。4、使用string类声明字符串对象,重新实现上一小题。三、实验报告:1.矩阵转置A.程序# includeusing namespace std;void move(int matrix33)int i,j,k;for(i=0;i3;i+)for(j=0;ji;j+)

23、k=matrixij;matrixij=matrixji;matrixji=k;int main()int i,j;int data33;cout 输入矩阵的元素endl;for(i=0;i3;i+)for(j=0;j3;j+)cout 第i+1行第j+1dataij;cout 输入的矩阵为:endl;for(i=0;i3;i+)for(j=0;j3;j+)coutdataij;coutendl;move(data);cout 转置后的矩阵为:endl;for(i=0;i3;i+)for(j=0;j3;j+)cout dataij;cout endl;B.截图2. 使用动态内存分配生成动态数组

24、A. 程序# includeusing namespace std;void move(int *matrix,int n)int i,j,k;for(i=0;in;i+)for(j=0;ji;j+)k= *(matrix + i*n + j);*(matrix + i*n + j)= *(matrix + j*n + i);*(matrix + j*n + i)=k;int main()int n,i,j;int *p;cout n;p=new intn*n;cout 输入矩阵的元素endl;for(i=0;in;i+)for(j=0;jn;j+)cout 第i+1行第j+1 pi*n +j

25、;cout 输入的矩阵为:endl; for(i=0;in;i+)for(j=0;jn;j+)cout pi*n+j ;coutendl; move(p,n);cout 转置后的矩阵为:endl;for(i=0;in;i+)for(j=0;jn;j+)cout pi*n+j ;cout endl;B.截图3. 编程实现两字符串的连接A. 程序#include using namespace std; int main() char str140; char str220;int c1=0,c2=0;coutstr1; coutstr2; while(str1c1!=0) +counter1;

26、while(str2c2!=0) str1c1=str2c2;+c1; +c2; str1c1=0;coutn连接后的字符串:str1; B.截图4. 使用string类声明字符串对象A. 程序#include#includeusing namespace std;int main()string s1,s2;couts1;couts2;s1+=s2;cout连接后的字符串为:s1endl; return 0;B.截图实验六、继承和派生实验报告系 软件工程 班级 131 学号 139074164 姓名 吴健 同组者 指导教师 柯栋梁 一、实验目的:1、学习声明和使用类的继承关系,声明派生类。2

27、、熟悉不同继承方式下对基类成员的访问控制。3、学习利用虚基类解决二义性问题。二、实验内容:1、定义一个基类Animal,有私有数据成员变量age,构造其派生类dog,在其成员函数setAge(int n)中直接给Age赋值,看看会有什么问题,把age改为公有成员变量,还会有问题吗?编程测试一下。2、定义一个基类BaseClass,有整型成员变量Number,构造其派生类DerivedClass,观察构造函数的析构函数的执行情况。3、定义一个车(Vehicle)基类,具有MaxSpeed,Weight等成员变量,Run,Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorc

28、ar)类。自行车类有高度(height)等属性,汽车类有座位数(SeatNum)等属性。从bicycle和moorcar派生出摩托车(motorcycle)类,在继承过程中注意把vehicle设置为虚基类。如果不设为虚基类,会出现什么问题?编程测试一下。三、实验报告:1定义一个基类AnimalA. 程序#includeusing namespace std;class Animalpublic:int age;class Dog:public Animalpublic:SetAge(int n)age=n;coutageendl;void main()Dog dog;dog.SetAge(4)

29、;B.截图2. 定义一个基类BaseClass,A. 程序#includeusing namespace std;class BaseClasspublic:int number;BaseClass()coutBaseClassendl;BaseClass()coutDestory BaseClassendl;class DerivedClass:public BaseClasspublic:DerivedClass()coutDerivedClassendl;DerivedClass()coutDestory DerivedClassendl;void main()DerivedClass

30、sl;B.截图3.定义一个车(Vehicle)基类A. 程序#includeusing namespace std;class vehiclepublic:vehicle()coutvehicle构造函数被调用endl;vehicle()coutvehicle析构函数被调用endl;virtual void Run()cout设置vehicle最大速度和重量endl;virtual void Stop()cout显示vehicle最大速度和重量endl;private:double MaxSpeed,Weight;class bicycle:public vehiclepublic:bicyc

31、le()coutbicycle构造函数被调用endl;bicycle()coutbicycle析构函数被调用endl;void Run()cout设置bicycle最大速度和重量endl;void Stop()cout显示bicycle最大速度和重量endl;private:double Height;class motorcar:public vehiclepublic:motorcar()coutmotorcar构造函数被调用endl;motorcar()coutmotorcar析构函数被调用endl;void Run()cout设置motorcar最大速度和重量endl;void Sto

32、p()cout显示motorcar最大速度和重量endl;private:int SeatNum;class motorcycle:public motorcar, public bicyclepublic:motorcycle()coutmotorcycle构造函数被调用endl;motorcycle()coutmotorcycle析构函数被调用endl;void Run()cout设置motorcycle最大速度和重量endl;void Stop()cout显示motorcycle最大速度和重量Run();p-Stop();int main()vehicle a0,*p;bicycle a1; motorcar a2; motorcycle a3; coutendl;p=&a0;fun(p);p=&a1;fun(p);p=&a2;fun(p);coutendl;B.截图实验七、 多态性实验报告系 软件工程 班级 131 学号 139074164 姓名 吴健 同组者 指导教师 柯栋梁 一、实验目的:1、掌握运算符重载的方法。2、掌握使用虚函数实现动态多态性。二、实验内容:1、定义

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

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1