邹欣C++实验2.docx

上传人:b****6 文档编号:8266339 上传时间:2023-01-30 格式:DOCX 页数:13 大小:92.05KB
下载 相关 举报
邹欣C++实验2.docx_第1页
第1页 / 共13页
邹欣C++实验2.docx_第2页
第2页 / 共13页
邹欣C++实验2.docx_第3页
第3页 / 共13页
邹欣C++实验2.docx_第4页
第4页 / 共13页
邹欣C++实验2.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

邹欣C++实验2.docx

《邹欣C++实验2.docx》由会员分享,可在线阅读,更多相关《邹欣C++实验2.docx(13页珍藏版)》请在冰豆网上搜索。

邹欣C++实验2.docx

邹欣C++实验2

福建工程学院计算机与信息科学系

实验报告

–学年第学期任课老师:

课程名称

班级

1102

座号

15

姓名

邹欣

实验题目

实验时间

实验开始日期:

报告提交日期:

实验目的、要求

掌握类与对象的定义方法,成员函数的实现与调用方法,领会类实现数据隐藏与封装的原理。

实验步骤与内容

1、编写Circle类,有数据成员Radius,

成员函数get_area()用于计算面积,

get_perimeter()用于计算周长,

disp()用于显示面积和周长,

set_radius()设置半径,

get_radius()获取半径。

完善必要的构造函数,构造一个Circle的对象进行测试,对构造函数和析构函数的调用情况进行分析。

#include"stdafx.h"

#include

usingnamespacestd;

constfloatPI=3.1415;

classCircle{

public:

floatget_area();

floatget_perimeter();

voiddisp();

floatset_radius(floatr2);

floatget_radius();

Circle(floatr);

Circle();

~Circle();

private:

floatradius;

};

//有参数的构造函数

Circle:

:

Circle(floatr){

radius=r;

cout<<"有参数构造函数被调用!

"<

}

//无参数的构造函数

Circle:

:

Circle(){

cout<<"无参数构造函数被调用!

"<

}

//析构函数

Circle:

:

~Circle(){

cout<<"析构函数被调用!

"<

//求面积

floatCircle:

:

get_area(){

returnPI*radius*radius;

}

//求周长

floatCircle:

:

get_perimeter(){

return2*PI*radius;

}

//显示函数

voidCircle:

:

disp(){

cout<<"面积是:

"<

cout<<"周长是:

"<

}

//获取半径

floatCircle:

:

get_radius()

{returnradius;}

//设置半径

floatCircle:

:

set_radius(floatr2){

cout<<"Pleaseinputr:

";

cin>>r2;

radius=r2;

returnradius;

}

 

voidmain()

{

floata;

Circleb;

b.set_radius(a);

cout<<"半径是:

"<

b.disp();

floatc;

cout<<"请输入半径:

"<

cin>>c;

Circled(c);

cout<<"半径是:

"<

d.disp();

}

2、编写圆柱体类Cylinder,有数据成员Circle对象和长度Len,

成员函数get_vol()计算体积,

get_area()计算表面积。

完善必要的构造函数和拷贝构造函数,构造Cylinder的对象进行测试。

对构造函数,拷贝构造函数和析构函数的调用情况进行分析。

#include"stdafx.h"

#include

usingnamespacestd;

constfloatPI=3.1415;

classCircle{

public:

floatget_area();

floatget_perimeter();

voiddisp();

floatset_radius(floatr2);

Circle(floatr);

Circle();

Circle(Circle&C);

~Circle();

private:

floatradius;

};

//有参数的构造函数

Circle:

:

Circle(floatr){

radius=r;

cout<<"圆的构造函数被调用!

"<

}

//复制构造函数

Circle:

:

Circle(Circle&C){

radius=C.radius;

cout<<"圆的复制构造函数被调用"<

}

//析构函数

Circle:

:

~Circle(){

cout<<"圆的析构函数被调用!

"<

//求圆的面积

floatCircle:

:

get_area(){

returnPI*radius*radius;

}

//求圆的周长

floatCircle:

:

get_perimeter(){

return2*PI*radius;

}

 

classCylinder{

public:

floatget_vol();//计算体积

floatget_area();//计算表面积

Cylinder(CircleC1,floatL);

~Cylinder();

private:

CircleL1;

floatlen;

};

//组合类的构造函数

Cylinder:

:

Cylinder(CircleC1,floatL):

L1(C1),len(L){

cout<<"组合类的构造函数被调用"<

}

//析构函数

Cylinder:

:

~Cylinder(){

cout<<"圆柱的析构函数被调用!

"<

//计算体积

floatCylinder:

:

get_vol(){

return(L1.get_area())*len;

}

//计算表面积

floatCylinder:

:

get_area(){

returnL1.get_perimeter()*len+2*L1.get_area();

}

 

intmain()

{

floatr,h;

cout<<"请输入圆柱的底面半径:

"<

cin>>r;

cout<<"请输入圆柱的高:

"<

cin>>h;

Circlea(r);

Cylinderb(a,h);

cout<<"表面积是:

"<

cout<<"体积是:

"<

return0;

}

设计学生类Stu,含no(学号),name(姓名),deg(成绩)数据成员,成员函数有setdata()用于设置对象,disp()用于输出80—89分段学生数据。

在main()中定义对象数组,用于存储输入学生数据。

#include"stdafx.h"

#include"iostream"

#include"string"

usingnamespacestd;

#defineMax3

//学生类Stu

classStu{

public:

voidsetdata(stringno,stringname,floatdeg);//用于设置对象

voiddisp();//用于输出80—89分段学生数据

//构造函数

Stu()

{

cout<<"构造函数被调用"<

}

private:

stringsno;//学号

stringsname;//姓名

floatsdeg;//成绩

};

//实现成员函数

voidStu:

:

setdata(stringno,stringname,floatdeg){

sno=no;

sname=name;

sdeg=deg;

}

voidStu:

:

disp(){

if(sdeg>=80&&sdeg<=89)

{

cout<<"学号:

"<

"<

}

}

intmain()

{

Stustu[Max];//创建对象数组

stringstr[Max],name[Max];//str数组存储学生学号,name数组存储学生姓名

floatscores[Max];//scores数组存储学生成绩

//输入学生信息

for(inti=0;i

{

cout<<"第"<

"<

cout<<""<<"学号:

";

cin>>str[i];

cout<<""<<"姓名:

";

cin>>name[i];

cout<<""<<"成绩:

";

cin>>scores[i];

cout<<"\n";

}

cout<<"成绩在80-89:

"<

for(intj=0;j

{

stu[j].setdata(str[j],name[j],scores[j]);//调用对象数组的成员方法

stu[j].disp();

}

system("pause");

return0;

}

或者:

#include"stdafx.h"

#include

#include

#include

usingnamespacestd;

constintmax=2;

classStu{

public:

Stu();

voidsetdata();

voiddisp();

private:

charno[10];

charname[10];

floatdeg;

};

Stu:

:

Stu(){cout<<"构造函数被调用!

"<

voidStu:

:

setdata(){

chara[10],b[10];

floatc;

cout<<"请输入学号:

";

cin>>a;

cout<

cout<<"请输入姓名:

";

cin>>b;

cout<

cout<<"请输入成绩:

";

cin>>c;

strcpy(no,a);

strcpy(name,b);

deg=c;

}

voidStu:

:

disp(){

if(deg>=80&°<=89)

cout<<"学号:

"<

"<

"<

}

intmain()

{

Stud[max];

inti;

for(i=0;i<=max;i++)

{

d[i].setdata();

cout<<"第"<

"<

}

cout<<"输入结束!

"<

cout<<"输出成绩在80-89的信息:

"<

for(i=0;i<=max;i++)

d[i].disp();

system("pause");

return0;

}

试验过程记录

 

总结以及心得体会

指导老师评阅意见

指导老师:

年月日

填写内容时,可把表格扩大。

实验的源程序代码(要有注释)附在表后。

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

当前位置:首页 > 经管营销 > 销售营销

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

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