版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、武汉工业学院计算机与信息工程系C+面向对象程序设计实验报告专业:计算机 班级: 学号:姓名:指导老师:刘文涛实验1:Visual C+6.0开发环境应用入门一、实验目的1、 了解Visual C+6.0的特点。2、 熟悉Visual C+6.0的开发环境。3、 学习用Visual C+6.0编写标准的C+控制台程序。二、实验任务使用Visual C+来建立一个非图形化的标准C+程序,编译、运行三、实验步骤#include struct time int year; int month; int day; int hour; int minue; int second; ;void main()
2、 time a; couta.year; couta.month; couta.day; couta.hour; couta.minue; couta.second; couta.year年a.month月a.day日a.hour时a.minue分a.second秒;四:个人小结这是第一次开始学习C+,以前也没有接触过类似的东西。所以刚开始的时候心里还是有一点兴奋的。但是,听说这一门学科是天津大学的四大天书之一。也还是挺畏惧的。刚开始的时候,对自己的要求也不算太高。过了就好了。说实在的,在第一次编这些题目的时候也遇到了一些困难,这都是什么呀,一堆乱码。心里特别的苦恼,这门学科应该怎么学习啊。但
3、是在老师的细心帮助与教诲下,还是最终把这些题做完了。现在再回首看这些题,其实还是挺简单的。实验2 函 数(2学时)一、实验目的1 掌握函数的声明、调用、实参与形参的值传递关系、返回值;2 理解函数重载,掌握函数重载的方法;3 理解递归的概念,掌握递归函数的定义与使用;二、实验内容及步骤1. 定义一个函数,判断三个整形边长能否构成三角形,如果是三角形,则判断它是否是直角三角形。1) 声明函数judge;2) 实现函数judge,根据输入的三个边长判断是否可以构成一个三角形;3) 在main中调用judge;4) 在main中根据judge的返回值判断是否是三角形,如果构成三角形则判断是否为直角三
4、角形,并给出结论。程序如下:#includeusing namespace std;int judge(int a,int b,int c)int d;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;void main()coutabc;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这三条边不
5、能组成一个三角形n;运行结果:2. 用重载函数实现两个整数和三个整数的排序,按照从小到大的顺序将排序结果输出。1) 声明函数sort为重载函数,并根据参数个数的不同分别进行定义;2) 在main中用cin分别输入两个整数和三个整数;3) 根据参数个数的不同,调用不同的函数,从而实现重载。程序如下:#includeusing namespace std;void sort(int a,int b)int i;cout这两个数的大小顺序为:n;i=ab?a:b;coutib?a:b;coutiendl;void sort(int a,int b,int c)coutb?a:b;d=dc?d:c;i
6、f(d=a)i=bc?b:c; coutic?b:c;couti dendl;if(d=b)i=ac?a:c; coutic?a:c;couti dendl;if(d=c)i=ba?b:a; coutia?b:a;couti dendl;void main()coutab;sort(a,b);coutabc;sort(a,b,c);运行结果:3. 在主函数中输入一个十进制数,调用转换函数把这个十进制数转换成二、八、十六进制数。程序如下:#includeusing namespace std;void zhuanhuan(int n)int a100,i=0,j=n,k=n;while(n!=0
7、)ai=n%2;n=n/2;i+;/j=i-1;cout0;i-)coutai-1;coutendl;/int a100,i=0,j;i=0;while(j!=0)ai=j%8;j=j/8;i+;/j=i-1;cout0;i-)coutai-1;coutendl;/int a100,i=0,j;while(k!=0)ai=k%16;k=k/16;i+;/j=i-1;cout0;i-)if(ai-1=0&ai-1=9)coutai-1;else switch(ai-1)case 10:coutA;break;case 11:coutB;break;case 12:coutC;break;case
8、 13:coutD;break;case 14:coutE;break;case 15:coutF;break;coutendl;void main()coutn;zhuanhuan(n);运行结果:4. 在主函数中定义两个变量,调用交换函数实现两个数的交换。分别用指针和引用作参数来编写交换函数。(体会引用的作用)程序如下:#includeusing namespace std;void jiaohuan(int *p,int*q)int n;n=*p;*p=*q;*q=n;cout交换后为:a=*p b=*qendl;void jiaohuan1(int &a,int &b)int n;n=
9、b;b=a;a=n;cout交换后为:a=a b=bendl;void main()int a,b,*p,*q;coutab;p=&a;q=&b;jiaohuan(p,q);jiaohuan1(a,b);运行结果:实验3 类与对象(4学时)一、实验目的1 掌握C+类的概念和基本组成,学会设计类,掌握类对象的声明和使用方法;2 熟悉各种成员函数包括构造函数、析构函数、内嵌函数的定义与使用;3 掌握静态数据成员的使用。二、实验内容及步骤1. 声明一个Circle类,有1) 数据成员Radius(半径)2) 成员函数GetArea()计算圆的面积3) 构造函数Circle(float radius)
10、进行初始化4) 析构函数在主函数中创建一个Circle类的对象进行测试(输入一个数值,作为Circle类对象的半径,调用该对象的GetArea()求以该数值为半径的圆的面积)。程序如下:#includeusing namespace std;class circlepublic:circle()radius=0;circle(float r)if(r0) radius=r;elseradius=0;float getarea()return 3.14*3.14*radius;circle()private:float radius;void main() coutr;circle c(r);c
11、out圆的面积为:nc.getarea()endl;运行结果:2. 声明一个tree类,有1) 数据成员ages(树龄)2) 成员函数grow(int years)对ages加上years3) 成员函数age()显示对象的数据成员ages的值4) 构造函数tree(int n=0)进行初始化5) 析构函数在主函数中创建一个tree类的对象进行测试(创建一个树龄为18的对象,调用age()显示树龄,之后调用grow(4),生长4年,再显示树龄)。程序如下:#includeusing namespace std;class treepublic:tree(int n=0)ages=n;int ag
12、e()return ages;void grow(int n)ages+=n;tree()private:int ages;int main()tree a(18);cout此时树的年龄为:na.age()endl;coutn1;a.grow(n1);cout生长n1年后树的年龄为:na.age()endl; return 0;运行结果:3. 人员信息管理系统:以一个小型公司的人员管理为例,说明类及成员函数的设计。提示:1) 类的设计:某小型公司,需要存储雇员的编号、级别、月薪,并显示全部信息。根据这些需求,设计一个类employee,在该类中,包括的数据成员有:编号(int individu
13、alEmpNo)级别(int grade)月薪(float accumPay)成员函数有:设置编号(void setEmpNo(int steps)):编号顺序加1(利用静态变量实现)提取编号(void getEmpNo)晋升级别(void promote(int increment)):提升的级别由参数指定提取级别(int getGrade)设置月薪(void SetAccumPay(float pa):提取月薪(float GetAccumPay)构造函数(用于设置数据成员编号、级别和月薪初值)析构函数2) 整个程序分为两个独立的文档:employee.h(包含类的定义和类的实现)和emp
14、loyee.cpp(主函数文件)3) 在主函数main()中创建employee类的两个对象,对它们设计编号、级别和月薪,并输出每个雇员的基本信息。程序如下:#includeusing namespace std;class employeepublic:employee()individualEmpNo+;grade=0;accumPay=0;employee(int a,int b,float c)individualEmpNo=a;grade=b;accumPay=c; static int getEmpNo()return individualEmpNo;static void set
15、EmpNo(int steps)individualEmpNo=steps;void promote(int increment)grade+=increment;int getgrade()return grade;void SetAccumPay(float pa)accumPay=pa;float GetAccumPay()return accumPay;employee()private: static int individualEmpNo;int grade;float accumPay;int employee:individualEmpNo=0;void main()int a
16、,b;float c;cout请输入第一个雇员的编号,级别,月薪abc;employee e1(a,b,c);/*e1.setEmpNo(a);mote(b);e1.SetAccumPay(c);*/cout请输入第二个雇员的级别,月薪bc;employee e2;mote(b);e2.SetAccumPay(c);cout第一个雇员的信息为:n编号:e1.getEmpNo()endl级别:e1. getgrade()endl月薪:e1.GetAccumPay()endl;cout第二个雇员的信息为:n编号:e2.getEmpNo()endl级别:e2. getgrade()endl月薪:e2.GetAccumPay()endl;运行结果:4.设计一个类,用来表示直角坐标系中的任意一条线段,成员函数包括输出线段两个端点的坐标和求该线段的长度,并在main函数中使用这个类。程序如下:#include#includeusing namespace std;class linepublic:line()x1=0;y1=0;x2=0;y2=0;line(int a,int b,int
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年内蒙古北方职业技术学院单招综合素质笔试参考题库含详细答案解析
- 2026年朔州陶瓷职业技术学院单招综合素质考试备考题库含详细答案解析
- 2026年焦作师范高等专科学校单招综合素质考试参考题库含详细答案解析
- 2026年潍坊科技学院单招综合素质考试参考题库含详细答案解析
- 2026上海市社会主义学院公开招聘专职教师考试重点试题及答案解析
- 2026年内蒙古机电职业技术学院单招综合素质笔试参考题库含详细答案解析
- 2026年陕西工业职业技术学院单招综合素质考试备考试题含详细答案解析
- 2026一季度浙商银行上海分行社会招聘考试重点试题及答案解析
- 2026年枣庄职业学院单招职业技能考试模拟试题含详细答案解析
- 2026年江苏卫生健康职业学院单招综合素质笔试模拟试题含详细答案解析
- 生产现场资产管理制度
- 起重设备安全使用指导方案
- 江苏省扬州市区2025-2026学年五年级上学期数学期末试题一(有答案)
- 建筑与市政工程地下水控制技术规范
- “党的二十届四中全会精神”专题题库及答案
- 2025年天翼云解决方案架构师认证考试模拟题库(200题)答案及解析
- 2026年西藏自治区政府部门所属事业单位人才引进(130人)笔试备考试题及答案解析
- 油气开采毕业论文
- 血凝d-二聚体和fdp课件
- 2026-2031中国房地产估价市场分析预测研究报告
- 天津市和平区2025年高二化学第一学期期末监测试题含解析
评论
0/150
提交评论