小目标---时钟的实现
利用一个类,将时钟封装起来,只将运行接口暴露在外,从而达到数据的封装。
思路:
(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(<));*/}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;
}
在这个实现中,如果可以将每一个分支封装在函数中,或许会更加有利于可读性,对于这一点,在以后的优化中,会依次提到。
小目标---时钟的实现相关推荐
- 小目标检测的增强算法
小目标检测的增强算法 Augmentation for small object detection 摘要 近年来,目标检测取得了令人瞩目的进展.尽管有了这些改进,但在检测小目标和大目标之间的性能仍有 ...
- 深度学习检测小目标常用方法
作者丨船长@知乎 来源丨https://zhuanlan.zhihu.com/p/83220498 编辑丨极市平台 本文仅用于学术分享,如有侵权,请联系后台作删文处理. 引言 在深度学习目标检测中,特 ...
- 干货 | 深度学习检测小目标常用方法
点击上方"视学算法",选择"星标"公众号 重磅干货,第一时间送达 github地址:https://github.com/Captain1986/Captain ...
- 使用关键点进行小目标检测
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|OpenCV学堂 [导语]本文搞了一个小的库,主要是用于 ...
- YOLOV5 的小目标检测网络结构优化方法汇总(附代码)
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨南山 来源丨 AI约读社 YOLOv5是一种非常受欢迎的单阶段目标检测,以其性能和速度著称,其结 ...
- YOLO-Z | 记录修改YOLOv5以适应小目标检测的实验过程
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨ChaucerG 来源丨集智书童 随着自动驾驶汽车和自动赛车越来越受欢迎,对更快.更准确的检测器 ...
- 如何改进YOLOv3使其更好应用到小目标检测(比YOLO V4高出4%)
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨ChaucerG 来源丨集智书童 编辑丨极市平台 导读 针对微小目标的特征分散和层间语义差异的问 ...
- 快速小目标检测--Feature-Fused SSD: Fast Detection for Small Objects
Feature-Fused SSD: Fast Detection for Small Objects 本文针对小目标检测问题,对 SSD 模型进行了一个小的改进,将 contextual infor ...
- 浙江大学 | 深度域自适应和小目标检测挑战、技术和数据集:调研
来源:专知本文为论文,建议阅读5分钟 本文对域自适应目标检测(DDA-OD)和小目标检测(tiny OD)两大检测方向进行全面调研,详细介绍了代表性算法.涨点技术和相关数据集. 论文标题: A Sur ...
最新文章
- Objective - C基础: 第一天 - 5.对象和类
- [jQuery]10 Things I Learned from the jQuery Source
- SQL Server语句大全(增删改查数据、创建表、删除表、修改表)
- Linux vim使用心得--一些高级话题
- html的属性与css的属性,HTML的属性和css基础
- angularJS解决数据显示闪一下的问题?-解决办法
- VM虚拟机 安装OS X 错误vcpu-0:VERIFY vmcore/vmm/main/physMem_monitor.c:1123
- python物理模拟_在Python游戏中模拟重力【Programming(Python)】
- 暴力推荐2:硬盘分区丢失之DiskGenius
- 吴恩达神经网络和深度学习-学习笔记-6-训练集、验证集和测试集 + 偏差bias和方差variance
- mysql 自动备份脚本+自动上传
- python2.3嵌套if结构:
- 工厂模型——简单工厂和工厂方法
- 工业4.0,智能制造和大规模定制
- cocos2d-lua加载cocostudio创建的csb文件
- 基于JSP实现医院病历管理系统,程序员如何在工作中自我增值
- 编译程序原理VS解释程序原理
- java-php-python-ssm商超销售系统计算机毕业设计
- windows 10微软拼音输入法变成繁体
- 刷了OpenWrt Attitude Adjustment 12.09,很满意