首页 > 编程语言 >2023.4.17编程一小时打卡

2023.4.17编程一小时打卡

时间:2023-04-17 21:15:34浏览次数:36  
标签:17 Clock int 60 second 2023.4 operator 打卡 minute

一、问题描述:

设计一款电子钟类,用于显示时、分、秒。

实验要求:

  1. 含有形参有默认值的默认构造函数;
  2. 重载 前缀++ 和 后缀—用于调整时间,每次调整均对秒进行调整,若秒满60,则分加1,若分满60则时加1,时满24,则清零重新开始;
  3. 重载插入运算符 >> 用于输入(设定)时间;
  4. 重载插入运算符 << 用于输出时间。

二、解题思路:

首先,定义一个时钟类,然后根据实验要求去进行运算符重载,前缀++的定义需要考虑秒到达60后要重置等。然后,根据输入输出要求去实现所需功能。

三、代码实现:

#include<iostream>
#include<string>
using namespace std;
class Clock
{
private:
	int hour,minute,second;
public:
	Clock(int h=0,int m=0,int s=0):hour(h),minute(m),second(s){}
	Clock & operator++();
    Clock operator--(int);
	friend istream & operator>>(istream &,Clock &); 
	friend ostream & operator<<(ostream &,Clock &);
};
Clock & Clock::operator++()
{
	second++;
	if(second>=60)
	{
		minute++;
		second=0;
		if(minute>=60)
		{
			hour=(hour+1)%24;
			minute=0;
		}
	}
	return *this;
}
Clock Clock::operator--(int)
{
	--second;
	if(second<0)
	{
		second=60+second;
		minute--;
		if(minute<0)
		{
			hour--;
			minute=60+minute;
			if(hour<0)
			{
				hour=24+hour;
			}
		}
	}
	return *this;
}
istream & operator>>(istream &put,Clock &c)
{
	put>>c.hour>>c.minute>>c.second;
	return put;
}
ostream & operator<<(ostream &out,Clock &c)
{
	out<<c.hour<<":"<<c.minute<<":"<<c.second<<endl;
	return out;
}
int main()
{	
	Clock c;
	cin>>c;
	cout<<c;
	++c;
    cout<<c;
	c--;
	cout<<c;
	return 0;
}

 

标签:17,Clock,int,60,second,2023.4,operator,打卡,minute
From: https://www.cnblogs.com/lixinyao20223933/p/17327510.html

相关文章

  • 打卡 pta c++ 汽车收费
    现在要开发一个系统,管理对多种汽车的收费工作。给出下面的一个基类框架classVehicle{protected:stringNO;public:Vehicle(stringn){NO=n;}virtualintfee()=0;//计算应收费用};以Vehicle为基类,构建出Car、Truck和Bus三个类。Car的收费公式为:载客数*8+重量*2......
  • 面试题4-17
    操作系统的中断和异常有什么区别?中断是外部事件触发的,硬件设备发出的异步信号,用于向操作系统请求服务。中断事件发生时,会停止当前程序的运行,而转向中断处理程序的执行。在中断处理程序执行完成之后再回到原来的进程执行。异常是cpu执行指令的时候遇到的错误和意外情况,是cpu内......
  • 4月17日打卡
    #include<bits/stdc++.h>usingnamespacestd;inta[100010];intmain(){inti,j;intN;cin>>N;for(i=0;i<N;i++){cin>>a[i];}intt=0;for(i=1;i<=N-1;i++){for(j......
  • c++打卡练习(9)
    二分法查找数据所在位置流程图:伪代码:源代码:#include<stdio.h>#defineN10intmain(){ inti,a[N]={-3,4,7,9,13,45,67,89,100,180},low=0,high=N-1,mid,k=-1,m; printf("a数组中的数据如下:\n"); for(i=0;i<N;i++) printf("%d",a[i]); printf("\n"); pr......
  • ms17-010
    用nmap的漏洞扫描模式nmap--script=vuln192.168.178.128可以发现,靶机上扫到了4个漏洞,其中包括了MS17-010。 打开metasploit(msf很有意思的是,每次打开都会显示不同的画面。)msfconsole 搜索ms17-010相关模块,可以看到一共找到了6个不同的模块。(选项:0-5)searchms17-010......
  • c++打卡第7天
    一、总共有五本书,分给A,B,C三个人,一人一本,问一共有几种分法。二、设计思路。①、代码大体通过for循环实现。三种书都可以是从1循环到5,并判断是否三个人分到的书编号相同,如果不同,则不成立。②、当A和B的书所分到的编号不同的话,无论c分到的是什么书都是不成立的。所以我们可以通......
  • 每日总结 4.17
    今天进行了王老师的课,王老师讲解了用户情景分析,对典型用户进行分析。接下来两节课,我们继续进行每个队的任务。昨天完成了虚拟售卖机的基本流程,今天继续进行页面优化,进行下一项的用户信息确认web实现。困难,页面的设计div无法理想实现,解决:最后经过div内嵌,位置分布解决。@chars......
  • 2023.4.17
    #include<iostream>#include<string>#defineMAX1000usingnamespacestd;voidshowMenu(){ cout<<"***************************"<<endl; cout<<"*****1、添加联系人*****"<<endl; cout<<"***......
  • The Super Powers UVA - 11752
     求1~2^64区间里,有多少合法数X合法数:X=a^b,至少存在2个不同的a #include<iostream>#include<algorithm>#include<vector>usingnamespacestd;constintN=65536+3;intb[int(1e6)];__int128_tMAX=1;voidinit(){ inti,j; b[0]=b[1]=1; fo......
  • 编程一小时2023.4.17
    1.#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;classVehicle{protected:stringNO;public:Vehicle(stringstr){NO=str;}virtualvoiddisplay()=0;virtual~Vehicle(){};};classCar:publicVehicle{int......