40410126甘全中实验一Word文档下载推荐.docx

上传人:b****2 文档编号:1010074 上传时间:2023-04-30 格式:DOCX 页数:14 大小:104.18KB
下载 相关 举报
40410126甘全中实验一Word文档下载推荐.docx_第1页
第1页 / 共14页
40410126甘全中实验一Word文档下载推荐.docx_第2页
第2页 / 共14页
40410126甘全中实验一Word文档下载推荐.docx_第3页
第3页 / 共14页
40410126甘全中实验一Word文档下载推荐.docx_第4页
第4页 / 共14页
40410126甘全中实验一Word文档下载推荐.docx_第5页
第5页 / 共14页
40410126甘全中实验一Word文档下载推荐.docx_第6页
第6页 / 共14页
40410126甘全中实验一Word文档下载推荐.docx_第7页
第7页 / 共14页
40410126甘全中实验一Word文档下载推荐.docx_第8页
第8页 / 共14页
40410126甘全中实验一Word文档下载推荐.docx_第9页
第9页 / 共14页
40410126甘全中实验一Word文档下载推荐.docx_第10页
第10页 / 共14页
40410126甘全中实验一Word文档下载推荐.docx_第11页
第11页 / 共14页
40410126甘全中实验一Word文档下载推荐.docx_第12页
第12页 / 共14页
40410126甘全中实验一Word文档下载推荐.docx_第13页
第13页 / 共14页
40410126甘全中实验一Word文档下载推荐.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

40410126甘全中实验一Word文档下载推荐.docx

《40410126甘全中实验一Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《40410126甘全中实验一Word文档下载推荐.docx(14页珍藏版)》请在冰点文库上搜索。

40410126甘全中实验一Word文档下载推荐.docx

classTime

{

private:

intyear;

intmonth;

intday;

public:

Time(inty,intm,intd):

year(y),month(m),day(d){}

voidDate_time();

};

voidTime:

:

Date_time()

if(this->

year%400==0||this->

year%4==0&

this->

year%100!

=0)

cout<

<

year<

"

"

month<

day<

:

该年是闰年"

endl;

else

cout<

该年不是闰年"

}

intmain()

Timet1(2016,3,31);

Timet2(2015,3,31);

Timet3(2012,3,31);

Timet4(2000,3,31);

t1.Date_time();

t2.Date_time();

t3.Date_time();

t4.Date_time();

return0;

(2)运行结果:

(alt+printscreen)

(3)运行结果分析:

定义一个Time的类,在类里定义私有的数据成员,在类里声明一个公用的成员函数作为对外的接口。

在类外定义成员函数,最后在main函数中声明并调用即可。

2.编制带有构造函数和析构函数的类以及用构造函数来初始化对象:

编写一个程序,定义一个日期时间类,并在类中定义构造函数、析构函数

(1)构造函数和析构函数都没有返回值

(2)构造函数可以有参数,析构函数则不可以有

(3)构造函数和析构函数都是系统自动调用的

intMonth;

inthour;

intminute;

intsex;

Time(inty,intM,intd,inth,intm,ints):

year(y),Month(M),day(d),hour(h),minute(m),sex(s){}

voiddisplay_time()

{

cout<

thisdateis:

Month<

hour<

minute<

sex<

}

~Time()

Destructorcalled."

}

Timet1(2016,3,31,22,37,30);

Timet2(2016,3,31,23,50,35);

Timet3(2016,3,31,00,40,50);

Timet4(2016,4,1,00,00,00);

t1.display_time();

cout<

t2.display_time();

t3.display_time();

t4.display_time();

(3)运行结果分析:

定义时间的一个类,在类里定义私有的有关时间的数据成员和对外的成员函数接口。

并用析构函数作清理工作。

3.输入下列程序

#include<

classCoordinate

{public:

Coordinate(intx1,inty1)

{x=x1;

y=y1;

Coordinate(Coordinate&

p);

~Coordinate()

{cout<

”Destructoriscalleded\n”;

intgetx()

{returnx;

intgety()

{returny;

intx,y;

Coordinate:

p)

{x=p.x;

y=p.y;

”copy-initializationConstructoriscalled\n”;

{Coordinatep1(3,4);

Coordinatep2(p1);

Coordinatep3=p2;

”p3=(“<

p3.getx()<

”,”<

p3.gety()<

”)\n”;

return(0);

(1)写出程序的运行结果。

(2)将Coordinate类中带有两个参数的构造函数进行修改,在函数体内增添下述语句:

”Constructoriscalled.\n”;

写出程序的运行结果,并解释输出结果。

在构造函数中添加了一个输出语句。

在定义类的对象时,自动调用构造函数,在main函数中只调用一次构造函数,故只有一个输出语句!

(3)按下列要求进行调试:

在主函数体内,添加下列语句:

Coordinatep4;

Coordinatep5

(2);

调试程序时会出现什么错误?

为什么?

如何对已有的构造函数进行适当修改?

在构造函数中没有设置默认值,因此它是不确定的。

可以用带参数的构造函数来解决!

(4)经过以上第

(2)步和第(3)步的修改后,结合运行结果分析。

创建不同的对象时会调用不同的构造函数!

运行结果分析:

本程序充分使用了类的用法。

如intgetx(),intgety().的使用。

并且用析构函数完成清理工作。

再则能定义多个构造函数,即函数的重载。

在调用时会根据具体的构造函数。

4.设计一个用来表示直角坐标系的Location类,在主程序中创建类Location的两个对象A和B,要求A的坐标点在第3象限,B的坐标在第2象限,分别采用成员函数和友元函数计算给定两个坐标点之间的距离,要求按如下格式输出结果:

A(x1,y1),B(x2,y2)

Distance1=d1

Distance1=d2

其中:

x1、x2、y1、y2为指定的坐标值,d1和d2为两个坐标点之间的距离。

【提示】

类Location的参考框架如下:

classLocation{

public:

Location(double,double);

doubleGetx()

doubleGety()

doubledistance(Location&

);

frienddoubledistance1(Location&

Location&

private:

doublex,y;

math.h>

classLocation

doubleGetx();

doubleGety();

Location:

Location(doublex1,doubley1)

{

x=x1;

doubleLocation:

Getx()

returnx;

Gety()

returny;

distance(Location&

l1)

return(sqrt((x-l1.x)*(x-l1.x)+(y-l1.y)*(y-l1.y)));

doubledistance1(Location&

x1,Location&

x2)

return(sqrt((x1.x-x2.x)*(x1.x-x2.x)+(x1.y-x2.y)*(x1.y-x2.y)));

LocationA(-1,-2),B(-1,3);

A("

A.Getx()<

"

A.Gety()<

),"

B("

B.Getx()<

B.Gety()<

doubled1=A.distance(B);

doubled2=distance1(A,B);

Distanced1="

d1<

Distanced2="

d2<

分别按题意定义成员函数和友元函数,在成员函数中写出计算两点之间的距离,在主函数中定义并调用。

用友元函数时同理。

5.声明一个Student类,在该类中包括一个数据成员score(分数)、两个静态数据成员total_score(总分)和count(学生人数);

还包括一个成员函数account()用于设置分数、累计学生成绩之和、累计学生人数,一个静态成员函数sum()用于返回学生的成绩之和,另一个静态成员函数average()用于求全班成绩的平均值。

在main函数中,输入某班同学的成绩,并调用上述函数求出全班学生的成绩之和和平均分。

(1)源代码:

classStudent

floatscore;

staticfloattotal_score;

staticintcount;

voidaccount(floatscore)

{

total_score=total_score+score;

count++;

staticfloatsum()

{return(total_score);

staticfloataverage()

return(total_score/count);

intStudent:

count=0;

floatStudent:

total_score=0.0;

intmain()

{

Students1,s2,s3,s4,s5;

s1.account(99);

s2.account(70);

s3.account(85);

s4.account(89);

s5.account(91);

thesumis:

Student:

sum()<

theaverageis:

average()<

(2)运行结果:

按照题目的要求设计。

其中静态成员函数能直接访问静态数据成员。

在每个成员函数中完成各自的任务。

最后在主函数中定义变量并调用即可。

6.使用C++的string类,从键盘输入5个字符串,排序后按从小到大的顺序显示出来。

例如,输入的5个字符串是:

GermanyJapanAmericaBritainFrance,排序后从小到大的顺序输出字符串是:

AmericaBritainFranceGermanyJapan

string>

intmain()

inti;

stringstr[5];

voidsort(strings[]);

Pleaseinputstring:

for(i=0;

i<

5;

i++)

cin>

>

str[i];

sort(str);

Thesortedstringis:

str[i]<

}

voidsort(strings[])

inti,j;

stringtemp;

for(i=0;

4;

for(j=0;

j<

4-i;

j++)

if(s[j]>

s[j+1])

temp=s[j];

s[j]=s[j+1];

s[j+1]=temp;

用string类,输入五个字符串。

通过比较大小来排序,运用冒泡法的排序将五个字符串从小到大的顺序输出。

三、结论

1.学习C++的重要思想,面向对象的设计。

用class类实现对对象的操作,学会使用类和对象。

2.认识友元函数的用法,友元函数可以访问本类中的数据成员。

3.关于静态数据成员和静态成员函数,静态成员函数能访问静态数据成员

 

说明:

1.电子实验报告填写好后,以学生的学号+实验项目名作为该word文件名保存,例如某学生学号为20150001,姓名为某某,本次实验是实验一,则本次实验报告的保存文件名为:

01某某实验一.doc。

2.在规定的时间内,学生将本报告提交给实验指导教师。

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

当前位置:首页 > 外语学习 > 英语考试

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2