我是靠谱客的博主 聪明啤酒,这篇文章主要介绍PTA R6-26 时间相加 (10 分),现在分享给大家,希望可以做个参考。

设计一个时间类,用来保存时、分、秒等私有数据成员,通过重载操作符“+”实现2个时间的相加。要求: (1)小时的时间范围限制在大于等于0;(2)分的时间范围为0~59分;(3)秒的时间范围为0~59秒。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream> using namespace std; class Time { private: int hours,minutes, seconds; public: Time(int h=0, int m=0, int s=0); Time operator + (Time &); void DispTime(); }; /* 请在这里填写答案 */ int main() { Time tm1(8,75,50),tm2(0,6,16), tm3; tm3=tm1+tm2; tm3.DispTime(); return 0; }

输出:

在这里给出相应的输出。例如:

复制代码
1
9h:22m:6s

 AC代码如下;

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void Time::DispTime(){ cout<<hours<<"h:"<<minutes<<"m:"<<seconds<<"s"; } Time Time::operator + (Time &tm){ tm.hours=hours+ tm.hours; tm.minutes=minutes+tm.minutes; if(tm.minutes>=60){ tm.hours++; tm.minutes=tm.minutes%60; } tm.seconds=seconds+tm.seconds; if(tm.seconds>=60){ tm.minutes++; tm.seconds=tm.seconds%60; } return tm; } Time::Time(int h, int m,int s) { hours=h; minutes=m; seconds=s; }

完整代码如下:

注释中的部分内容与答案想要的代码不太一样,我把题目已给代码稍作注释改动

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <iostream> using namespace std; class Time { private: int hours,minutes, seconds; public: Time(int h=0, int m=0, int s=0);//带默认参数的构造函数 /* Time(int h=0, int m=0, int s=0){hours=h; minutes=m; seconds=s;} 这样写的话就不需要类外重新定义构造函数了; */ Time operator + (Time &); void DispTime(); }; void Time::DispTime(){ cout<<hours<<"h:"<<minutes<<"m:"<<seconds<<"s"; } //对成员函数进行定义,实现输出答案格式; Time Time::operator + (Time &tm){ tm.hours=hours+ tm.hours; tm.minutes=minutes+tm.minutes; if(tm.minutes>=60){ tm.hours++; tm.minutes=tm.minutes%60; } tm.seconds=seconds+tm.seconds; if(tm.seconds>=60){ tm.minutes++; tm.seconds=tm.seconds%60; } return tm; //返回时间对象, } //运算符重载定义,实现时分秒的计算 Time::Time(int h, int m, int s) { hours=h; minutes=m; seconds=s; }//不能在类外定义时还指定默认参数; int main() { Time tm3 tm3.DispTime(); return 0; }

 希望能理解默认参数的构造函数的使用,以及理解构造函数的重载;

推荐一篇文章理解以上两点:

博主龙叙的文章,相应注明如下,点击搜索链接即可阅览
版权声明:本文为CSDN博主「龙叙」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_40162095/article/details/106379853

最后

以上就是聪明啤酒最近收集整理的关于PTA R6-26 时间相加 (10 分)的全部内容,更多相关PTA内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部