您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 面向对象程序C++设计实验报告
武汉工业学院计算机与信息工程系C++面向对象程序设计实验报告专业:计算机班级:学号:姓名:指导老师:刘文涛实验1:VisualC++6.0开发环境应用入门一、实验目的1、了解VisualC++6.0的特点。2、熟悉VisualC++6.0的开发环境。3、学习用VisualC++6.0编写标准的C++控制台程序。二、实验任务使用VisualC++来建立一个非图形化的标准C++程序,编译、运行三、实验步骤#includeiostream.hstructtime{intyear;intmonth;intday;inthour;intminue;intsecond;};voidmain(){timea;coutpleaseinputyear:;cina.year;coutpleaseinputmonth:;cina.month;coutpleaseinputday:;cina.day;coutpleaseinputhour:;cina.hour;coutpleaseinputminue:;cina.minue;coutpleaseinputsecond:;cina.second;couta.year年a.month月a.day日a.hour时a.minue分a.second秒;}四:个人小结这是第一次开始学习C++,以前也没有接触过类似的东西。所以刚开始的时候心里还是有一点兴奋的。但是,听说这一门学科是天津大学的四大天书之一。也还是挺畏惧的。刚开始的时候,对自己的要求也不算太高。过了就好了。说实在的,在第一次编这些题目的时候也遇到了一些困难,这都是什么呀,一堆乱码。心里特别的苦恼,这门学科应该怎么学习啊。但是在老师的细心帮助与教诲下,还是最终把这些题做完了。现在再回首看这些题,其实还是挺简单的。实验2函数(2学时)一、实验目的1.掌握函数的声明、调用、实参与形参的值传递关系、返回值;2.理解函数重载,掌握函数重载的方法;3.理解递归的概念,掌握递归函数的定义与使用;二、实验内容及步骤1.定义一个函数,判断三个整形边长能否构成三角形,如果是三角形,则判断它是否是直角三角形。1)声明函数judge;2)实现函数judge,根据输入的三个边长判断是否可以构成一个三角形;3)在main中调用judge;4)在main中根据judge的返回值判断是否是三角形,如果构成三角形则判断是否为直角三角形,并给出结论。程序如下:#includeiostreamusingnamespacestd;intjudge(inta,intb,intc){intd;d=ab?a:b;d=dc?d:c;if(d==a)return(b+c)d;if(d==b)return(a+c)d;if(d==c)return(a+b)d;}voidmain(){cout请输入三个整数:\n;inta,b,c;cinabc;if(judge(a,b,c)){cout这三条边能组成一个三角形\n;if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)cout这个三角形是直角三角形\n;elsecout这个三角形不是直角三角形\n;}elsecout这三条边不能组成一个三角形\n;}运行结果:2.用重载函数实现两个整数和三个整数的排序,按照从小到大的顺序将排序结果输出。1)声明函数sort为重载函数,并根据参数个数的不同分别进行定义;2)在main中用cin分别输入两个整数和三个整数;3)根据参数个数的不同,调用不同的函数,从而实现重载。程序如下:#includeiostreamusingnamespacestd;voidsort(inta,intb){inti;cout这两个数的大小顺序为:\n;i=ab?a:b;couti;i=ab?a:b;coutiendl;}voidsort(inta,intb,intc){cout这三个数的大小顺序为:\n;intd,i;d=ab?a:b;d=dc?d:c;if(d==a){i=bc?b:c;couti;i=bc?b:c;coutidendl;}if(d==b){i=ac?a:c;couti;i=ac?a:c;coutidendl;}if(d==c){i=ba?b:a;couti;i=ba?b:a;coutidendl;}}voidmain(){cout请输入两个整数:\n;inta,b,c;cinab;sort(a,b);cout请输入三个整数:\n;cinabc;sort(a,b,c);}运行结果:3.在主函数中输入一个十进制数,调用转换函数把这个十进制数转换成二、八、十六进制数。程序如下:#includeiostreamusingnamespacestd;voidzhuanhuan(intn){inta[100],i=0,j=n,k=n;while(n!=0){a[i]=n%2;n=n/2;i++;}//j=i-1;cout这个数的二进制形式为:\n;for(;i0;i--)couta[i-1];coutendl;//inta[100],i=0,j;i=0;while(j!=0){a[i]=j%8;j=j/8;i++;}//j=i-1;cout这个数的八进制形式为:\n;for(;i0;i--)couta[i-1];coutendl;//inta[100],i=0,j;while(k!=0){a[i]=k%16;k=k/16;i++;}//j=i-1;cout这个数的十六进制形式为:\n;for(;i0;i--){if(a[i-1]=0&&a[i-1]=9)couta[i-1];else{switch(a[i-1]){case10:cout'A';break;case11:cout'B';break;case12:cout'C';break;case13:cout'D';break;case14:cout'E';break;case15:cout'F';break;}}}coutendl;}voidmain(){cout请输入一个整数:\n;intn;cinn;zhuanhuan(n);}运行结果:4.在主函数中定义两个变量,调用交换函数实现两个数的交换。分别用指针和引用作参数来编写交换函数。(体会引用的作用)程序如下:#includeiostreamusingnamespacestd;voidjiaohuan(int*p,int*q){intn;n=*p;*p=*q;*q=n;cout交换后为:a=*pb=*qendl;}voidjiaohuan1(int&a,int&b){intn;n=b;b=a;a=n;cout交换后为:a=ab=bendl;}voidmain(){inta,b,*p,*q;cout请输入两个数a和b:\n;cinab;p=&a;q=&b;jiaohuan(p,q);jiaohuan1(a,b);}运行结果:实验3类与对象(4学时)一、实验目的1.掌握C++类的概念和基本组成,学会设计类,掌握类对象的声明和使用方法;2.熟悉各种成员函数包括构造函数、析构函数、内嵌函数的定义与使用;3.掌握静态数据成员的使用。二、实验内容及步骤1.声明一个Circle类,有1)数据成员Radius(半径)2)成员函数GetArea()计算圆的面积3)构造函数Circle(floatradius)进行初始化4)析构函数在主函数中创建一个Circle类的对象进行测试(输入一个数值,作为Circle类对象的半径,调用该对象的GetArea()求以该数值为半径的圆的面积)。程序如下:#includeiostreamusingnamespacestd;classcircle{public:circle(){radius=0;}circle(floatr){if(r0)radius=r;elseradius=0;}floatgetarea(){return3.14*3.14*radius;}~circle(){}private:floatradius;};voidmain(){cout请输入圆的半径:\n;floatr;cinr;circlec(r);cout圆的面积为:\nc.getarea()endl;}运行结果:2.声明一个tree类,有1)数据成员ages(树龄)2)成员函数grow(intyears)对ages加上years3)成员函数age()显示对象的数据成员ages的值4)构造函数tree(intn=0)进行初始化5)析构函数在主函数中创建一个tree类的对象进行测试(创建一个树龄为18的对象,调用age()显示树龄,之后调用grow(4),生长4年,再显示树龄)。程序如下:#includeiostreamusingnamespacestd;classtree{public:tree(intn=0){ages=n;}intage(){returnages;}voidgrow(intn){ages+=n;}~tree(){}private:intages;};intmain(){treea(18);cout此时树的年龄为:\na.age()endl;cout请输入树的生长年限:\n;intn1;cinn1;a.grow(n1);cout生长n1年后树的年龄为:\na.age()endl;return0;}运行结果:3.人员信息管理系统:以一个小型公司的人员管理为例,说明类及成员函数的设计。提示:1)类的设计:某小型公司,需要存储雇员的编号、级别、月薪,并显示全部信息。根据这些需求,设计一个类employee,在该类中,包括的数据成员有:编号(intindividualEmpNo)级别(intgrade)月薪(floataccumPay)成员函数有:设置编号(voidsetEmpNo(intsteps)):编号顺序加1(利用静态变量实现)提取编号(voidgetEmpNo)晋升级别(voidpromote(intincrement)):提升的级别由参数指定提取级别(intgetGrade)设置月薪(voidSetAccumPay(floatpa)):提取月薪(floatGetAccumPay)构造函数(用于设置数据成员编号、级别和月薪初值)析构函数2)整个程序分为两个独立的文档:employee.h(包含类的定义和类的实现)和employee.cpp(主函数文件)3)在主函数main()中创建employee类的两个对象,对它们设计编号、级别和月薪,并输出每个雇员的基本信息。程序如下:#includeiostreamusingnamespacestd;classemployee{public:employee(){individualEmpNo++;grade=0;accumPay=0;}employee(inta,intb,floatc){individualEmpNo=a;grade=b;accumPay=c;}staticintgetEmpNo(){returnindividualEmpNo;}staticvoidsetEmpNo(intsteps){individualEmpNo=steps;}voidpromote(intincrement){grade+=increment;}intgetgrade(){returngrade;}voidSetAccumPay(float
本文标题:面向对象程序C++设计实验报告
链接地址:https://www.777doc.com/doc-4234093 .html