c++试验分析报告_第1页
c++试验分析报告_第2页
c++试验分析报告_第3页
c++试验分析报告_第4页
c++试验分析报告_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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、使用

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

3、+程序。2、实验前要做好充分准备,包括程序清单、调试步骤、调试方法,以及对 程序结果的分析等。四、实验报告:1. 程序运行截图2. 面积计算1、程序说明。用if -else语句进行选择程序功能,while语句实现功能的循环实现程序如下:#in clude#in cludeusing n amespace std;int mai n()cout1计算圆面积endl2计算矩形面积endl3计算正方形面积endl4退出e ndlx;double area;while(x!=4)if(x=1)double r;cout半径:;cinr;area=3.14*r*r;cout面积为vvareavve nd

4、l;else if(x=2)double a,b;coutvv长和宽:;cin ab;area=a*b;coutvv面积为vvareavvendl;else if(x=3)double a,b,c,d;coutvv边长:;cin a;area=a*a;coutvv 面积为vvareavve ndl;elsecoutvv输入有误,请重新输入!vvendl;coutvv功能代码:;cin x;return 0;程序截图:实验二、函数的应用实验报告系软件工程班级131学号139074164 姓名 吴健同组者 指导教师柯栋梁一、实验目的:1、掌握函数的定义和调用方法。2、练习重载函数的使用。3、练习使

5、用系统函数。4、学习使用VC+勺DEBU调试功能,使用STEP INTO追踪到函数的内部。二、实验内容:1、 编写一个函数把华氏温度转换为摄氏温度,转换公式:C=(F-32)*5/9 。2、编写重载函数Max可分别求取两个整数,三个整数,两个双精度数,三 个双精度数的最大值。3、使用系统函数pow(x,y)计算乂的值,注意包含头文件math.h。4、使用递归的方法编写函数求Fib on acci级数,观察递归调用的过程。三、实验报告:1、温度转换A.程序#i nclude using n amespace std;匕double FtoC(double F)return (F-32)*5/9;

6、void mai n()double F,c;coutvv输入华氏温度:;cinF;c=FtoC(F);cout输出摄氏温度vvcvvendl;B.截图2. 重载函数A.程序#in cludeusing n amespace std;int max1(i nt a,i nt b) 两个整数retur n ab?a:b;int max1(i nt a,i nt b,i nt c)三个整数return max1(a,max1(b,c);double max1(double a,double b)两个双精度retur n ab?a:b;三个双精度double max1(double a,double

7、 b,double c)return max1(a,max1(b,c);void mai n()int a,b,c,m;double x,y, z;cout1、两个整数endl2、三个整数endl3、两个双精度数endl4、三个双精度数endl5、退出e ndl请选择相应功能代码:;cinm;while(m!=5)if(m=1)cout请输入两个整数 ab;a=max1(a,b);coutvv最大值为aendl;else if(m=2)cout请输入三个整数 abc;a=max1(a,b,c);coutvv最大值为vvavvendl; else if(m=3) cout请输入两个双精度数 xy

8、;x=max1(x,y);coutvv最大值为xendl;else if(m=4)coutvv请输入三个双精度数 xyz;x=max1(x,y,z); coutvv最大值为vvxvvendl;coutvv请选择相应功能代码:; cinm;B.截图K厦 J? 两三两三聶C:User5AdministratorDe s ktophell oDebughello.exer1曾! 码 代度度 J: hA主B.主B. 畳跟双 贸TI两三两三退款奄XJ 123 4 Lorl-ll-u 2 32V 码代I1 M应个 胡相三 大选输M大选输21大选.最请请2最请请12最请PP3 8 5 5 n n n o 软

9、第咄码c 代度139C代to 匕 2L_h 厶目73 A冃MJ 功肢8234功ke 4应个74应V8 hJnB n養入旳養=S e3系统函数pow(x,y)计算XYA. 程序#in clude #in clude using n amespace std;int mai n()int x,y;cout请输入两个数x,y xy;coutx 的 y 次方为vpow(x,y)vendl; B. 截图 XAUwrAdmirxi tlr jtorDeikt?phrl lo0bughel b.ewe请卷入两个数x.V丫的#次方为Pre as anv kev ta cant imLifl4使用递归的方法编写

10、函数求Fibonacci级数A. 程序#in cludeusing n amespace std;int fib(i nt n)coutProcessi ng fib( n);if(n3)coutReutrn 1!n;return(1);elsecoutCall fib( n-2v)a nd fib( n-1v).ve ndl;return(fib( n-2)+fib( n-1);int mai n()int n,an swer;coutE nter nu mber:;cinn;coute ndle ndl;an swer=fib( n);couta nsweris the n vth Fib

11、 on acci nu mbere ndl;B. 截图C:U5ersAdmini5tratorDe5ktoplhellioLDebugihello.exeFntRr nunberProcessing Processing Processing Pi*dc tssinr Processing Processingf Pi*ocessing Pjocessinf Process Inf Els theSthfih-Call fiband fih-Call fib(l?and 班珮1严低11 1!ih+ReutHi itfibC4 JCall fibC2and fibReutpn 1?fibCall

12、 fibCland fib(l Reutrn 1?FibitFibonacci numberfib.fib,Fib(3.fib.Press, ani/ key to continue回实验三、类与对象实验报告系 软件工程班级 131学号139074164 姓名 吴健同组者 指导教师柯栋梁一、实验目的:1、掌握类与对象的声明和使用。2、观察构造函数与析构函数的执行过程。3、掌握具有不同访问属性的成员的访问方式。4、使用DEBU调试功能观察程序流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。j二、实验内容:1、 声明一个CPU类,包含等级(rank)、频率(frequency)、电压(v

13、oltage) 等属性,有两个公有成员函数run、stop。其中,rank为枚举类型CPU_Ran, 声明为 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为CDRO类的一个对象,声明并实现这个类。三、实验报告:匕1、cpu 类A.程序#in clu

14、deusing n amespace std;enum CPU_Ra nk P1=1,P2,P3,P4,P5,P6,P7;class CPUprivate:CPU_Ra nk ran k;int freque ncy;float voltage;public:CPU(int newrank,int newfrequency,float newvoltage);void run();void stop();CPU()cout成功调用析构函数endl;void CPU:ru n()cout程序开始执行endl;void CPU:stop()cout程序结束endl;CPU:CPU(i nt n e

15、wra nk,i nt n ewfreque ncy,float n ewvoltage)ran k=(CPU_Ra nk)n ewra nk;freque ncy=n ewfreque ncy;voltage=n ewvoltage;cout成功调用构造函数endl;cout等级:enum(P1)endl;cout频率:vvfrequencyendl;coutvv电压:vvvoltagevvendl;int mai n()CPU cpu(2,60,220);cpu.r un();cpu.stop();return 0;B.截图puter 类A.程序#i ncludeenum CPU_rank

16、p1=1,p2,p3,p4,p5,p6,p7;class CPUprivate:CPU_ra nk ran k;int freque ncy;float voltage;public:CPU (CPU_ra nk r,int f,float v)ran k=r;freque ncy=f;voltage=v;cout构造了一个 cpu!endl;CPU()cout其构了一个 cpu!endl;CPU_ra nk getra nk() const retur n ran k;void setra nk(CPU_ra nk r) ran k=r;void run()coutcpu 开始运行!endl

17、;void stop()coutcpu 停止运行!endl;class RAMprivate:int ram;public:RAM(i nt 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(i nt c)cdram=c;cout构造了一个 cdram!endl;CDRAM()cout构造了一个

18、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 stop()coutc

19、omputer 停止运行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 mai n()CPU m(p6,300,float(

20、2.8);RAM n (1);CDRAM q(2);computer com1;computer com2(m, n,q);B.截图anramcpu? computer cdram?I caramT 个 cpuBBcomputerppi!?-p-raii?z cdram? PCiPlpUtram? cpu! rcdran!回实验四、C+程序结构实验报告系软件工程班级131学号139074164 姓名 吴健同组者 指导教师柯栋梁一、实验目的:1、观察程序运行时变量的作用域、生存期和可见性。2、掌握类的静态成员的使用。3、学习多文件结构在C+程序中的使用。二、实验内容:1、运行下面的程序,观察变量

21、x、y的值。#i nclude using n amespace std;void fn1();int x = 1, y = 2;int main()cout Begi n. en dl;cout x = x en dl;cout y = y en dl;cout Evaluate x and y in main(). endl;int x = 10, y = 20;cout x = x en dl;cout y = y en dl;cout Step into fn1(). endl;fn1();cout Back in main en dl;cout x = x en dl;cout y

22、= y en dl;return 0;void fn1()int y = 200;cout x = x en dl;cout y = y en dl;2、实现客户机(CLIENT)类。声明字符型静态数据成员 ServerName保存其 服务器名称;整型静态数据成员 ClientNum,记录已定义的客户数量;定义静态 函数ChangeServerName()改变服务器名称。在头文件client.h中声明类,在文件client.cpp中实现,在文件test.cpp中测试这个类,观察相应的成员变量取值的变化情况。三、实验报告:1. 程序运行观察A.截图2.实现客户机(CLIENT)类A.程序# in

23、 cludeusing n amespace std;class Clie ntpublic:static char server name;static int clie ntnum;char *clie ntn ame;Clie nt(char *n ame1);static void cha nge()coutvv请输入要改成的服务器名称: server name;void show name()cout n ame=clie ntn amee ndl;# in cludeClie nt.hint Clie nt:clie ntnum=0;char Clie nt:server name

24、=t;Clie nt:Clie nt(char *n ame1)clie ntn ame=new char20;strcpy(clie ntn ame, name1);clie ntnu m+;# in cludeClie nt.hvoid mai n()Clie nt a(zha ng);a.show name();coutClie nt:server namee ndl;coutClie nt:clie ntnum e ndl;Clie nt:cha nge();a.show name();coutClie nt:server namee ndl;coutClie nt:clie ntnu

25、m e ndl;B.截图实验五、数组、指针与字符串实验报告系 软件工程 班级131学号139074164 姓名 吴健同组者 指导教师柯栋梁一、实验目的:1、学习使用数组数据对象及字符串的组织与处理。2、学习使用标准C+库。3、掌握指针的使用方法,并通过DEBUGS察指针内容及其所指的对象的内容。4、练习通过动态内存分配实现动态数组,并体会指针在其中的作用。二、实验内容:1、编写并测试3X 3矩阵转置函数,使用数组保存 3X 3矩阵。2、使用动态内存分配生成动态数组来重新完成上题。3、编程实现两字符串的连接。要求使用字符数组保存字符串,不允许使用 系统函数。4、使用string类声明字符串对象,

26、重新实现上一小题。三、实验报告:1. 矩阵转置A.程序# in cludeusing n amespace std;void move(i nt matrix33)int i,j,k;for(i=0;i3;i+)for(j=0;ji;j+)k=matrixij;matrixij=matrixji;matrixji=k;int mai n()int i,j;int data33;cout 输入矩阵的元素endl;for(i=0;i3;i+)for(j=0;j3;j+)cout 第i+1行第j+1 dataij;cout 输入的矩阵为:endl;for(i=0;i3;i+) for(j=0;j3;

27、j+) coutdataij; coute ndl;move(data);cout 转置后的矩阵为:endl;for(i=0;i3;i+)for(j=0;j3;j+)cout dataij;cout -1Iu1I5Iff1Tttv!p/111222333A-369 比第第第第第第第第输鶯78:Ln lieto cant2.使用动态内存分配生成动态数组A.程序# in cludeusing n amespace std;void move(i nt *matrix,i nt n)int i,j,k;for(i=0;i n;i+)for(j=0;ji;j+)k= *(matrix + i*n +

28、j);*(matrix + i*n + j)= *(matrix + j*n + i);*(matrix + j*n + i)=k;int mai n()int n,i,j;int *p;cout n;p=new intn*n;cout 输入矩阵的元素endl;for(i=0;i n;i+) for(j=0;j n ;j+)cout vvq第i+1行第vvj+1 Pi*n +j;cout 输入的矩阵为:endl;for(i=0;i n ;i+)for(j=0;j n ;j+)cout pi* n+j;coute ndl;move(p, n);cout 转置后的矩阵为:endl;for(i=0;

29、i n ;i+)for(j=0;j n ;j+)cout vvpi* n+jcout -12345 & 二 ! - A. 1112 22333258345aninue3. 编程实现两字符串的连接A.程序#1 nclude using n amespace std;int mai n()char str140;char str220;int c1=0,c2=0;coutvv请输入第一个字符串cin str1;coutn请输入第二个字符串cin str2;while(str1c1!=0)+co un terl;while(str2c2!=0)str1c1=str2c2;+c1;+c2;fl*str

30、1c1=0;coutn连接后的字符串:#in cludeusing n amespace std;int mai n()stri ng s1,s2;coutvv请输入第一个字符串:;cin s1;cout s2;s1+=s2;coutvv连接后的字符串为:$16ndl; return 0;4B.截图回接后的子符串为:hello world css ankey tn continuehello* GUsersAdin i ni 5tratorOeslrtQphe lo Debu ghe Hoexer壬启三亠实验六、继承和派生实验报告系 软件工程 班级 131学号139074164 姓名 吴健同组

31、者 指导教师柯栋梁一、实验目的:1、学习声明和使用类的继承关系,声明派生类。2、熟悉不同继承方式下对基类成员的访问控制。3、学习利用虚基类解决二义性问题。二、实验内容:1、定义一个基类Animal,有私有数据成员变量age,构造其派生类dog,在其成员函数setAge(int n)中直接给Age赋值,看看会有什么问题,把 age改为公有成员变量,还会有问题吗?编程测试一下。2、定义一个基类BaseClass,有整型成员变量Numbe,构造其派生类DerivedClass,观察构造函数的析构函数的执行情况。3、定义一个车(Vehicle)基类,具有 MaxSpeed Weight等成员变量,Ru

32、n,Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类。自行车类有高度(height)等属性,汽车类有座位数(SeatNum)等属性。从bicycle和moorcar派生出摩托车(motorcycle)类,在继承过程中注意把vehicle设置为虚基类。如果不设为虚基类,会出现什么问题?编程测试一下。三、实验报告:、1定义一个基类AnimalA.程序#in cludeusing n amespace std;class Ani malpublic:int age;class Dog:public An imalpublic:SetAge(i nt n)age=n

33、;coutvvagevve ndl;;void main()Dog dog;dog.SetAge(4);B.截图2.定义一个基类BaseClass,A.程序#in cludeusing n amespace std;class BaseClasspublic:int nu mber;BaseClass() coutvBaseClassve ndl;BaseClass()coutDestory BaseClasse ndl;class DerivedClass:public BaseClasspublic:DerivedClass() coutvDerivedClassve ndl;Derive

34、dClass()coutDestory DerivedClasse ndl;void mai n()DerivedClass sl;B.截图3.定义一个车(Vehicle)基类A.程序#in cludeusing n amespace std;class vehiclepublic:vehicle。coutvehicle 构造函数被调用endl;vehicle()coutvehicle 析构函数被调用endl;virtual void Run()coutvv设置vehicle最大速度和重量endl;virtual void Stop()coutvv显示vehicle最大速度和重量endl;pr

35、ivate:double MaxSpeed,Weight;class bicycle:public vehiclepublic:bicycle()coutbicycle构造函数被调用endl;bicycle()coutbicycle析构函数被调用endl;void Run()coutvv设置bicycle最大速度和重量endl;void Stop()coutvv显示bicycle最大速度和重量endl;private:double Height;class motorcar:public vehiclepublic:motorcar()coutmotorcar 构造函数被调用endl;moto

36、rcar()coutmotorcar 析构函数被调用endl;void Run()coutvv设置 motorcar最大速度和重量endl;void Stop()coutvv显示 motorcar最大速度和重量endl;private:int SeatNum;class motorcycle:public motorcar, public bicyclepublic:motorcycle()coutmotorcycle 构造函数被调用endl;motorcycle()coutmotorcycle 析构函数被调用endl;void Run()coutvv设置 motorcycle 最大速度和重量

37、endl;void Stop()coutvv显示motorcycle最大速度和重量Ru n();p-Stop();int mai n()vehicle aO,*p;bicycle a1;motorcar a2;motorcycle a3;coute ndl;p=&a0;fun( p);p=&a1;fun( p);p=&a2;fun( p);coute ndl;B.截图 BC:ll5er5Admini5tratorDe s ktoplhelloDebugihellD.exerMh% W切造函数彼调用 ”hic W甸這函鞍被调用 bicycle瓚坯函熬邃调用 u e h ic le构i宜函嫌邃询用

38、 moturcwl构造函数祈调用e * 三 AH 丄土益K型4rrii+!,口H 匚口otorcar ehic Le:; bic ycleJ甸造函数严适 甸造函裁鯉 上构iatSfe调用US示leleLelecacalcicycycororh hcuct tuled 丘IDKJn DQ D n 度度 速速速速萇里量轟t 童重重重芾,as调用4用实验七、多态性实验报告系 软件工程班级 131学号139074164 姓名 吴健同组者 指导教师柯栋梁一、实验目的:1、掌握运算符重载的方法。2、掌握使用虚函数实现动态多态性。二、实验内容:1、 定义Point类,有坐标x,y两个成员变量;对Point类

39、重载+、运算符,实现对坐标值的改变。.2、定义一个车(vehicle)基类,有Run Stop等成员函数,由此派生出自行 车类(biclcle)、汽车类(motorcar),从bicycle 和motorcar派生出摩托车类(motorcycle),它们都有Run Stop等成员函数。观察虚函数的作用。三、实验报告:1.定义Point类A.程序#in cludeusing n amespace std;class Poi ntpublic:VPoint()Point(float afloat b)x=a;y=b;Point operator+()X+;y+;return Poi nt(x,y);Point operator-。x-;y-;return Poi nt(x,y);void display。coutThe Poi nt:vv(vxvv,vvyvv)vve ndl;private:float x;float y;void mai n()Poi nt p(3,5);p.display();p+;p.display();p-;p.display();B.截图2.定义一个车(vehicle) 基类A.程序#in cludeusing n amespace std;cl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论