利用一个类,将时钟封装起来,只将运行接口暴露在外,从而达到数据的封装。
思路:
(1)在类中的构造函数中,利用时间函数获取目前的时间
(2)在运行函数中,需要一个显示函数与一个更新数据的时间的函数
(3)在更新数据的函数中,需要一个清屏函数,从而使得显示不会占满屏幕。
(4)在数据更新函数中,每一次判断是否到达临界状态。
具体实现如下所示:

#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
using namespace std;
#include<time.h>
#include<iomanip>
#include<windows.h>
//#include<unistd.h>class Clock
{
public://构造函数Clock(){time_t t = time(NULL);struct tm ti1 = *localtime(&t);//struct tm * gmtime(const time_t *timer);struct tm ti2 = *localtime(&t);year = ti2.tm_year+1900;month = ti1.tm_mon + 1;day2 = ti1.tm_mday;day1 = ti1.tm_wday;hor = ti1.tm_hour;min = ti1.tm_min;sec = ti1.tm_sec;}void run(){while (1){//显示函数show();//数据更新函数review();}}private:void show(){system("cls");//清屏函数cout << "星期" << setw(1) << day1 << "   ";cout << setw(4) << year << "-";cout << setw(2) << month << "-";cout << setw(2) << day2 << "   ";cout << setw(2) << hor << ":";cout << setw(2) << min << ":";cout << setw(2) << sec << " ";/*time_t lt;lt = time(NULL);printf(ctime(&lt));*/}void review(){Sleep(1000);if (++sec == 60){sec = 0;min += 1;if (min == 60){min = 0;hor += 1;if (hor == 24){hor = 0;day1 += 1;day2 += 1;if ((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0)){if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12){if (day2 == 31||day1 == 7){day1 = 1;day2 = 1;month += 1;if (month == 12){month = 1;year += 1;}}}else if (month == 2){if (day2 == 29 || day1 == 7){day1 = 1;day2 = 1;month += 1;if (month == 12){month = 1;year += 1;}}}else//不是上面两种情况{if (day2 == 30 || day1 == 7){day1 = 1;day2 = 1;month += 1;if (month == 12){month = 1;year += 1;}}}}else//不是闰年{if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12){if (day2 == 31 || day1 == 7){day1 = 1;day2 = 1;month += 1;if (month == 12){month = 1;year += 1;}}}else if (month == 2){if (day2 == 28 || day1 == 7){day1 = 1;day2 = 1;month += 1;if (month == 12){month = 1;year += 1;}}}else//不是上面两种情况{if (day2 == 30 || day1 == 7){day1 = 1;day2 = 1;month += 1;if (month == 12) {month = 1;year += 1;}}}}}}}}private:int year;int month;int day1;//表示显示星期int day2;//表示显示月int hor;//时int min;//分int sec;//秒
};
int main()
{Clock c;c.run();system("pause");return 0;
}

在这个实现中,如果可以将每一个分支封装在函数中,或许会更加有利于可读性,对于这一点,在以后的优化中,会依次提到。

小目标---时钟的实现相关推荐

  1. 小目标检测的增强算法

    小目标检测的增强算法 Augmentation for small object detection 摘要 近年来,目标检测取得了令人瞩目的进展.尽管有了这些改进,但在检测小目标和大目标之间的性能仍有 ...

  2. 深度学习检测小目标常用方法

    作者丨船长@知乎 来源丨https://zhuanlan.zhihu.com/p/83220498 编辑丨极市平台 本文仅用于学术分享,如有侵权,请联系后台作删文处理. 引言 在深度学习目标检测中,特 ...

  3. 干货 | 深度学习检测小目标常用方法

    点击上方"视学算法",选择"星标"公众号 重磅干货,第一时间送达 github地址:https://github.com/Captain1986/Captain ...

  4. 使用关键点进行小目标检测

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|OpenCV学堂 [导语]本文搞了一个小的库,主要是用于 ...

  5. YOLOV5 的小目标检测网络结构优化方法汇总(附代码)

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨南山 来源丨 AI约读社 YOLOv5是一种非常受欢迎的单阶段目标检测,以其性能和速度著称,其结 ...

  6. YOLO-Z | 记录修改YOLOv5以适应小目标检测的实验过程

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨ChaucerG 来源丨集智书童 随着自动驾驶汽车和自动赛车越来越受欢迎,对更快.更准确的检测器 ...

  7. 如何改进YOLOv3使其更好应用到小目标检测(比YOLO V4高出4%)

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨ChaucerG 来源丨集智书童 编辑丨极市平台 导读 针对微小目标的特征分散和层间语义差异的问 ...

  8. 快速小目标检测--Feature-Fused SSD: Fast Detection for Small Objects

    Feature-Fused SSD: Fast Detection for Small Objects 本文针对小目标检测问题,对 SSD 模型进行了一个小的改进,将 contextual infor ...

  9. 浙江大学 | 深度域自适应和小目标检测挑战、技术和数据集:调研

    来源:专知本文为论文,建议阅读5分钟 本文对域自适应目标检测(DDA-OD)和小目标检测(tiny OD)两大检测方向进行全面调研,详细介绍了代表性算法.涨点技术和相关数据集. 论文标题: A Sur ...

最新文章

  1. Objective - C基础: 第一天 - 5.对象和类
  2. [jQuery]10 Things I Learned from the jQuery Source
  3. SQL Server语句大全(增删改查数据、创建表、删除表、修改表)
  4. Linux vim使用心得--一些高级话题
  5. html的属性与css的属性,HTML的属性和css基础
  6. angularJS解决数据显示闪一下的问题?-解决办法
  7. VM虚拟机 安装OS X 错误vcpu-0:VERIFY vmcore/vmm/main/physMem_monitor.c:1123
  8. python物理模拟_在Python游戏中模拟重力【Programming(Python)】
  9. 暴力推荐2:硬盘分区丢失之DiskGenius
  10. 吴恩达神经网络和深度学习-学习笔记-6-训练集、验证集和测试集 + 偏差bias和方差variance
  11. mysql 自动备份脚本+自动上传
  12. python2.3嵌套if结构:
  13. 工厂模型——简单工厂和工厂方法
  14. 工业4.0,智能制造和大规模定制
  15. cocos2d-lua加载cocostudio创建的csb文件
  16. 基于JSP实现医院病历管理系统,程序员如何在工作中自我增值
  17. 编译程序原理VS解释程序原理
  18. java-php-python-ssm商超销售系统计算机毕业设计
  19. windows 10微软拼音输入法变成繁体
  20. 刷了OpenWrt Attitude Adjustment 12.09,很满意

热门文章

  1. 中国神童13岁免试上大学,极端荣耀后却选择出家为僧!
  2. jkd10Eclipse中查看源码—source not found
  3. 【06】Spring源码-分析篇-ApplicationContext
  4. h5在ios下拉上拉会带动整个页面出现空白解决方案
  5. 【屌丝之作】3D遥控坦克大战
  6. [React网络整理]React之表单组件的学习笔记
  7. 通过 Q-learning 深入理解强化学习-附带代码实现
  8. Google退出中国内地祭
  9. PV + MPPT +均匀辐射
  10. ubuntu18.04 设置字体样式, 调整字体大小