面向对象程序C++设计实验报告.docx

上传人:b****8 文档编号:11489504 上传时间:2023-03-01 格式:DOCX 页数:19 大小:76.04KB
下载 相关 举报
面向对象程序C++设计实验报告.docx_第1页
第1页 / 共19页
面向对象程序C++设计实验报告.docx_第2页
第2页 / 共19页
面向对象程序C++设计实验报告.docx_第3页
第3页 / 共19页
面向对象程序C++设计实验报告.docx_第4页
第4页 / 共19页
面向对象程序C++设计实验报告.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

面向对象程序C++设计实验报告.docx

《面向对象程序C++设计实验报告.docx》由会员分享,可在线阅读,更多相关《面向对象程序C++设计实验报告.docx(19页珍藏版)》请在冰豆网上搜索。

面向对象程序C++设计实验报告.docx

面向对象程序C++设计实验报告

面向对象程序C++设计实验报告

计算机与信息工程系

C++面向对象程序设计实验报告

专业:

计算机

班级:

学号:

姓名:

指导老师:

刘文涛

实验1:

VisualC++6.0开发环境应用入门

一、实验目的

1、了解VisualC++6.0的特点。

2、熟悉VisualC++6.0的开发环境。

3、学习用VisualC++6.0编写标准的C++控制台程序。

二、实验任务

使用VisualC++来建立一个非图形化的标准C++程序,编译、运行三、实验步骤

#include

structtime{

intyear;

intmonth;

intday;

inthour;

intminue;

intsecond;

};

voidmain()

{timea;

cout<<"pleaseinputyear:

";

cin>>a.year;

cout<<"pleaseinputmonth:

";

cin>>a.month;

cout<<"pleaseinputday:

";

cin>>a.day;

cout<<"pleaseinputhour:

";

cin>>a.hour;

cout<<"pleaseinputminue:

";

cin>>a.minue;

cout<<"pleaseinputsecond:

";

cin>>a.second;

cout<

}

四:

个人小结

这是第一次开始学习C++,以前也没有接触过类似的东西。

所以刚开始的时候心里还是有一点兴奋的。

但是,听说这一门学科是天津大学的四大天书之一。

也还是挺畏惧的。

刚开始的时候,对自己的要求也不算太高。

过了就好了。

说实在的,在第一次编这些题目的时候也遇到了一些困难,这都是什么呀,一堆乱码。

心里特别的苦恼,这门学科应该怎么学习啊。

但是在老师的细心帮助与教诲下,还是最终把这些题做完了。

现在再回首看这些题,其实还是挺简单的。

实验2函数(2学时)一、实验目的

1(掌握函数的声明、调用、实参与形参的值传递关系、返回值;

2(理解函数重载,掌握函数重载的方法;

3(理解递归的概念,掌握递归函数的定义与使用;

二、实验内容及步骤

1.定义一个函数,判断三个整形边长能否构成三角形,如果是三角形,则

判断它是否是直角三角形。

1)声明函数judge;

2)实现函数judge,根据输入的三个边长判断是否可以构成一个三角

形;

3)在main中调用judge;

4)在main中根据judge的返回值判断是否是三角形,如果构成三角形

则判断是否为直角三角形,并给出结论。

程序如下:

#include

usingnamespacestd;intjudge(inta,intb,intc){

intd;

d=a>b?

a:

b;

d=d>c?

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;

cin>>a>>b>>c;

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";

else

cout<<"这个三角形不是直角三角形\n";

}

else

cout<<"这三条边不能组成一个三角形\n";}

运行结果:

2.用重载函数实现两个整数和三个整数的排序,按照从小到大的顺序将排

序结果输出。

1)声明函数sort为重载函数,并根据参数个数的不同分别进行定义;

2)在main中用cin分别输入两个整数和三个整数;

3)根据参数个数的不同,调用不同的函数,从而实现重载。

程序如下:

#include

usingnamespacestd;

voidsort(inta,intb){

inti;

cout<<"这两个数的大小顺序为:

\n";

i=a

a:

b;

cout<

i=a>b?

a:

b;

cout<

}

voidsort(inta,intb,intc){

cout<<"这三个数的大小顺序为:

\n";

intd,i;

d=a>b?

a:

b;

d=d>c?

d:

c;

if(d==a){

i=b

b:

c;

cout<

i=b>c?

b:

c;

cout<

}

if(d==b){

i=a

a:

c;

cout<

i=a>c?

a:

c;

cout<

}

if(d==c){

i=b

b:

a;

cout<

i=b>a?

b:

a;

cout<

}

}

voidmain(){

cout<<"请输入两个整数:

\n";

inta,b,c;

cin>>a>>b;

sort(a,b);

cout<<"请输入三个整数:

\n";

cin>>a>>b>>c;

sort(a,b,c);

}

运行结果:

3.在主函数中输入一个十进制数,调用转换函数把这个十进制数转换成

二、八、十六进制数。

程序如下:

#includeusingnamespacestd;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(;i>0;i--)

cout<

cout<

//inta[100],i=0,j;

i=0;

while(j!

=0){

a[i]=j%8;

j=j/8;

i++;

}

//j=i-1;

cout<<"这个数的八进制形式为:

\n";

for(;i>0;i--)

cout<

cout<

//inta[100],i=0,j;

while(k!

=0){

a[i]=k%16;

k=k/16;

i++;

}

//j=i-1;

cout<<"这个数的十六进制形式为:

\n";

for(;i>0;i--){

if(a[i-1]>=0&&a[i-1]<=9)

cout<

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;

}}

}

cout<

}

voidmain(){

cout<<"请输入一个整数:

\n";

intn;

cin>>n;

zhuanhuan(n);

}

运行结果:

4.在主函数中定义两个变量,调用交换函数实现两个数的交换。

分别用指

针和引用作参数来编写交换函数。

(体会引用的作用)程序如下:

#include

usingnamespacestd;

voidjiaohuan(int*p,int*q){

intn;

n=*p;

*p=*q;

*q=n;

cout<<"交换后为:

a="<<*p<<"b="<<*q<

}

voidjiaohuan1(int&a,int&b){

intn;

n=b;

b=a;

a=n;

cout<<"交换后为:

a="<

}

voidmain(){

inta,b,*p,*q;

cout<<"请输入两个数a和b:

\n";

cin>>a>>b;

p=&a;

q=&b;

jiaohuan(p,q);

jiaohuan1(a,b);

}

运行结果:

实验3类与对象(4学时)一、实验目的

1(掌握C++类的概念和基本组成,学会设计类,掌握类对象的声明和使用方

法;

2(熟悉各种成员函数包括构造函数、析构函数、内嵌函数的定义与使用;

3(掌握静态数据成员的使用。

二、实验内容及步骤

1.声明一个Circle类,有

数据成员Radius(半径)1)

2)成员函数GetArea()计算圆的面积

3)构造函数Circle(floatradius)进行初始化

析构函数4)

在主函数中创建一个Circle类的对象进行测试(输入一个数值,作为

Circle类对象的半径,调用该对象的GetArea()求以该数值为半径的圆的面

积)。

程序如下:

#include

usingnamespacestd;

classcircle{

public:

circle(){

radius=0;

}

circle(floatr){

if(r>0)

radius=r;

else

radius=0;

}

floatgetarea(){

return3.14*3.14*radius;

}

~circle(){

}

private:

floatradius;

};

voidmain(){

cout<<"请输入圆的半径:

\n";

floatr;

cin>>r;

circlec(r);

cout<<"圆的面积为:

\n"<

}

运行结果:

2.声明一个tree类,有

1)数据成员ages(树龄)

2)成员函数grow(intyears)对ages加上years

3)成员函数age()显示对象的数据成员ages的值

4)构造函数tree(intn=0)进行初始化

5)析构函数

在主函数中创建一个tree类的对象进行测试(创建一个树龄为18的对象,

调用age()显示树龄,之后调用grow(4),生长4年,再显示树龄)。

程序如下:

#include

usingnamespacestd;classtree{

public:

tree(intn=0){

ages=n;

}

intage(){

returnages;

}

voidgrow(intn){

ages+=n;

}

~tree(){

}

private:

intages;

};

intmain(){

treea(18);

cout<<"此时树的年龄为:

\n"<

cout<<"请输入树的生长年限:

\n";

intn1;

cin>>n1;

a.grow(n1);

cout<<"生长"<

\n"<

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类的两个对象,对它们设计编号、

级别和月薪,并输出每个雇员的基本信息。

程序如下:

#include

usingnamespacestd;

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(floatpa){

accumPay=pa;

}

floatGetAccumPay(){

returnaccumPay;

}

~employee(){}

private:

staticintindividualEmpNo;

intgrade;

floataccumPay;

};

intemployee:

:

individualEmpNo=0;voidmain(){

inta,b;

floatc;

cout<<"请输入第一个雇员的编号,级别,月薪"<

cin>>a>>b>>c;

employeee1(a,b,c);

/*e1.setEmpNo(a);

e1.promote(b);

e1.SetAccumPay(c);*/

cout<<"请输入第二个雇员的级别,月薪"<

cin>>b>>c;

employeee2;

e2.promote(b);

e2.SetAccumPay(c);

cout<<"第一个雇员的信息为:

\n"<<"编号:

"<

"<

getgrade()<

"<

cout<<"第二个雇员的信息为:

\n"<<"编号:

"<

"<

getgrade()<

"<

运行结果:

4.设计一个类,用来表示直角坐标系中的任意一条线段,成员函数包括输出线段

两个端点的坐标和求该线段的长度,并在main函数中使用这个类。

程序如下:

#include#includeusingnamespacestd;classline{

public:

line(){

x1=0;

y1=0;

x2=0;

y2=0;

}

line(inta,intb,intc,intd){

x1=a;

y1=b;

x2=c;

y2=d;

}

intgetx1(){

returnx1;

}

intgety1(){

returny1;

}

intgetx2(){

returnx2;

}

intgety2(){

returny2;

}

floatlenth(){

returnpow((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1),1/2);

}

private:

intx1,x2,y1,y2;};

voidmain(){

inta,b,c,d;

cout<<"请输入两个点的坐标:

\n";

cin>>a>>b>>c>>d;

linel(a,b,c,d);

cout<

}

运行结果:

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

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1