Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >时钟模拟(继承)

时钟模拟(继承)

作者头像
叶茂林
发布于 2023-07-30 01:53:30
发布于 2023-07-30 01:53:30
19300
代码可运行
举报
运行总次数:0
代码可运行

题目描述

定义计数器类,包含保护数据成员value,公有函数increment计数加1。

定义循环计算器继承计数器类,增加私有数据成员:最小值min_value,max_value,

重写公有函数increment,使得value在min_value~max_value区间内循环+1。

定义时钟类,数据成员是私有循环计数器对象小时hour、分钟minute、秒second,公有函数time(int s)计算当前时间经过s秒之后的时间,即hour,minute,second的新value值。

定义时钟类对象,输入当前时间和经过的秒数,调用time函数计算新时间。

根据题目要求,增加必要的构造函数、析构函数和其他所需函数。

因为clock是系统内置函数,为了避免重名,请不要使用clock作为类名或者函数名

输入

第一行测试次数n

2行一组,第一行为当前时间(小时 分钟 秒),第二行为经过的秒数。

输出

输出n行

每行对应每组当前时间和经过秒数后计算得到的新时间(小时:分钟:秒)。

输入样例1 

2 8 19 20 20 23 30 0 1801

输出样例1

8:19:40 0:0:1

思路分析

这道题有点东西,总体看题目你会发现应该是要我们算多少秒之后的时间,但是细细品读题目要求,你就会一脸茫然,这里有三个类,这个循环计算器是干什么的,它的成员函数increment又是干什么的,value在min_value~max_value区间内循环+1是什么意思,注意到这句话:定义时钟类,数据成员是私有循环计数器对象小时hour、分钟minute、秒second,是说hour、minute和second这三个是循环计数器对象的,这就清楚了,increment函数就是实现加一的操作,循环加一就是在一个区间内加一,比如hour是0~24,24加一应该是0,这就叫循环。

所以这里应该还涉及到进位,当value加一之后为0,那么就应该进位了。

AC代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include"iostream"
using namespace std;
class Counter
{
	protected:
		int value;
	public:
		Counter(int v):value(v){}
		void increment(){value++;}
		int getvalue(){return value;}
};
class Cyclecounter:public Counter
{
	private:
		int min_value,max_value;
	public:
		Cyclecounter(int minv,int maxv,int v):min_value(minv),max_value(maxv),Counter(v){}
		void increment()
		{
			if(++value==max_value)
			value=min_value;
		}
};
class CLOCK
{
	private:
		Cyclecounter hour,minute,second;
	public:
		CLOCK(int h,int m,int s):hour(0,24,h),minute(0,60,m),second(0,60,s){}
		void time(int s)
		{
			while(s--)
			{
				second.increment();
				if(second.getvalue()==0)
				{
					minute.increment();
					if(minute.getvalue()==0)
					hour.increment();
				}
			}
		}
		void showoff(){cout<<hour.getvalue()<<':'<<minute.getvalue()<<':'<<second.getvalue()<<endl;}
};
int main()
{
	int t,hour,min,sec,s;
	cin>>t;
	while(t--)
	{
		cin>>hour>>min>>sec>>s;
		CLOCK Clock(hour,min,sec);
		Clock.time(s);
		Clock.showoff();
	}
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-04-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
时钟调整(运算符前后增量)
假定一个时钟包含时、分、秒三个属性,取值范围分别为0~11,0~59,0~59,具体要求如下:
叶茂林
2023/07/30
1680
基于单片机的简易声光报时时钟
本设计采用STC89C51单片机作为主控制器,外部加上74HC573驱动数码管。系统总体框图如下:
一条晒干的咸鱼
2024/11/19
1200
基于单片机的简易声光报时时钟
HLS 设计数字时钟
该项目的目标是展示 HLS 在设计数字系统方面的能力。为此,本文展示如何在 HLS 中描述数字时钟。如果有兴趣学习 HLS 编码技术,请参阅:
碎碎思
2023/08/30
2360
HLS 设计数字时钟
【罗盘时钟(星空版)—使用html,js,css编写。(附全部源代码+效果)】[通俗易懂]
代码存放逻辑: 新建一个文件夹,可以起名“罗盘时钟”,然后在里面新建如下文件夹: 再把我上面所发的代码取相应的名字,放里面即可。 背景图自己加哈!
全栈程序员站长
2022/09/14
15.2K0
【罗盘时钟(星空版)—使用html,js,css编写。(附全部源代码+效果)】[通俗易懂]
内推米哈游(原神),38岁被拒。。。
,我们可以通过两层循环的方式枚举所有子串,当枚举子串左端点 i 的时候,可以同步开一个大小为
宫水三叶的刷题日记
2024/04/26
1370
内推米哈游(原神),38岁被拒。。。
#小手一抬学Python# 玩转时间和日期库【附源码】
在 Python 中是没有原生数据类型支持时间的,日期与时间的操作需要借助三个模块,分别是 time、datetime、calendar。
程序员迪迪
2021/12/28
7030
0423上课练习(list、while、
""" 循环录入3个正整数,求最大值,最小值,总和,平均值 访问列表中的元素: 列表的长度: len(列表名) 索引值的范围:【0,len(列表名)-1】 列表名[索引值] """ #定义一个空列表 nums = [] # print(type(nums)) i = 1 while i <= 3: num = input('请输入1个正整数') num = int(num) #将数字存储到列表中, nums.append(num) # i += 1 i
py3study
2020/01/17
3530
电子时钟代码
/*电子时钟总体样式设置*/ #clock { width: 800px; font-size: 80px; font-weight: bold; color: red; text-align: center; margin: 20px; } /*时分秒数字区域的样式设置*/ .box1 { margin-right: 10px; width: 100px; height: 100px; line-height: 100px; float: left; border: gray 1px solid; } /*冒号区域的样式设置*/ .box2 { width: 30px; float: left; margin-right: 10px; }
全栈程序员站长
2022/09/14
6170
第35天:时钟效果
1、得到现在的时分秒 2、旋转角度原理 一圈360°   60s   1s/6° 旋转 second.style.WebkitTransform="rotate(60deg)";//每秒旋转60度
半指温柔乐
2018/09/11
4220
PAT 1026
程序运行时间(15) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 要获得一个C语言程序的运行时间,常用的方法是调用头文件time.h,其中提供了clock()函数,可以捕捉从程序开始运行到clock()被调用时所耗费的时间。这个时间单位是clock tick,即“时钟打点”。同时还有一个常数CLK_TCK,给出了机器时钟每秒所走的时钟打点数。于是为了获得一个函数f的运行时间,我们
ShenduCC
2018/04/26
6900
c++计算时间
1、获取时间用time_t time( time_t * timer ),计算时间差使用double difftime( time_t timer1, time_t timer0 )。 精确到秒。
用户7886150
2021/02/17
1.9K0
【51单片机】配置定时器
​ 那么我们先创建一个子函数 void Timer0_Init() ⇥ 对定时器进行初始化。 那么首先是TMOD的一个配置,定时器1我们先不管(高四位定时器全部给上0),只管低四位的一个定时器0的一个配置。 在前面的定时器工作有介绍过,STC89C52 的 T0 和 T1 一共有四种工作模式:在这里我们选择最常用的工作模式1。 Ⅰ:工作模式①的话,我们只需要把 M1 = 0,M0 = 1 就是定时器模式①的配置了。 Ⅱ:C/T(取反):这个我们只需要给C/T(取反) = 0即可,SYSclk⇢系统时钟。 Ⅲ:GATE(门控端),GATE = 0,这里当中都是数字电路当中的一些基础逻辑门,TR0 = 1。
謓泽
2022/12/12
7330
【51单片机】配置定时器
C 程序关于时间和日期的操作详解
在 C 语言中可以用 time_t 类型表示时间,time_t 类型时间其实就是所谓的「日历时间」,在 Linux 系统中就是距离 1970-01-01 08:00:00 这个时间点所经过的秒数,通常 time_t 是一个和 long 一样长的整数,但它似乎无法表示 1970 年以前的时间。
用户3105362
2021/02/04
2.1K0
C 程序关于时间和日期的操作详解
【STM32】HAL库 STM32CubeMX教程十三—RTC时钟
本系列教程将 对应外设原理,HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用
全栈程序员站长
2022/08/11
2.8K0
【STM32】HAL库 STM32CubeMX教程十三—RTC时钟
Linux应用开发【第十章】RTC应用开发
​ “RTC”的英文全称是Real-Time Clock,翻译过来是实时时钟芯片。实时时钟芯片是日常生活中应用最为广泛的电子器件之一,它为人们或者电子系统提供精确的实时时间。实时时钟芯片通过引脚对外提供时间读写接口,通常内部带有电池,保证在外部系统关电时,内部电路正常工作,时间正常运行。不同的时钟芯片内部机制不一样,时间数据存储格式、读写操作方式也不一样,Linux系统和驱动封装了不同时钟芯片的操作细节,为应用程序提供了统一的时间操作接口。
韦东山
2021/12/15
2.2K0
基于basys2用verilog设计多功能数字钟(重写)
NingHeChuan
2018/01/05
1.9K0
基于basys2用verilog设计多功能数字钟(重写)
使用 Web Animations API 实现一个精确计时的时钟
在 JavaScript 中,当事情准时发生时,很自然地会想到使用计时器函数。 但是,当某件事由于其他事情依赖于它而在准确的时刻发生时,你很快就会发现计时器会存在一个不准时的问题。而本文所要介绍的 Web Animations API 可以在某些情况下替代计时器函数,同时保持精确。
前端修罗场
2022/12/17
1K0
使用 Web Animations API 实现一个精确计时的时钟
FPGA期末项目 | 数字时钟
选题的意义:个人认为本项目(《数字时钟》)的选题意义有二,其一,时钟和闹钟早已是老生常谈的日常工具,利用课堂上所学习的知识贯通运用到现实生活中,作为操作实践,具有一定的现实意义;其二,数字时钟的功能设计囊括了数码管、LCD屏、开关运用、管教分配等知识,能够对本学期所学的实验知识做一个挽接,在知识的总结上也具备一定意义;
凌川江雪
2019/02/25
1.2K0
FPGA期末项目 | 数字时钟
Python基础模块:日期与时间模块@time+datetime
终于,回家之后准备好好学习一下,从python基础模块开始,今天为大家准备的是python的日期与时间处理模块time和datetime。
可以叫我才哥
2021/08/05
1.6K0
挑战任务: 画动态时钟
挑战题不会做也木有关系,但请务必在自行尝试后,再看下面的解答噢,不然...我也没办法( ̄▽ ̄)"
CodecWang
2021/12/07
9890
挑战任务: 画动态时钟
相关推荐
时钟调整(运算符前后增量)
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档