DIY时钟类--广州百田笔试之一
2014.05.30 武汉华科大活
题目:(
原题不记得,大概回忆)用户输入一个时间,输出下一个时间
这个小题看似不难,实际处理起来对date的处理稍微繁琐,每月有30,31,28,29(闰年的判断)天四种可能
判定闰年:当不能被100整除且能被4整除时, 或能被400整除,为闰年
关键是如何让写出的代码规范且反应思路清晰,目前的代码见后文
当时居然没有意识到要用类,真是太菜了,没关系还不晚
虽然不难但比较繁琐,想要在笔试时用20~30分钟,在一张单面A4纸上,完整清晰的实现,
就需要思路很清晰不能大片修改,也没办法像上机一样调试,还是有难度的
自己写了时钟类,和++操作符重载,代码+测试结果如下:

//DataClock.h
#pragma once //2014.05.30百田笔试过这个题
#include <iostream>
using namespace std; class DataClock{
public:
//Clock(int hour=0, int min=0, int sec=0); //默认值???
DataClock(int cYear, int cMonth, int cDate, int cHour, int cMin, int cSec);
void showTime();
bool ifLeapYear(int y);
int howManyDays(int m, int y);
//bool ifThirtyDays(int m);
//bool ifThirtyOneDays(int m); void operator ++();//前置没有形参(可看做默认的规矩??)
//void operator ++(int t);
private:
int year; int month; int date;
int hour; int min; int sec;
};
//DataClock.cpp实现
#include "DataClock.h" DataClock::DataClock(int cYear, int cMonth, int cDate, int cHour, int cMin, int cSec){
int thisMonDays = howManyDays(cMonth, cYear); //这里带哦用方法对么??
if(<=cYear && <cMonth && cMonth<= && <cDate && cDate<=thisMonDays
&& <=cHour && cHour< && <=cMin && < && <=cSec&&cSec<) {
year=cYear; month=cMonth; date=cDate;
hour = cHour; min = cMin; sec = cSec;
}else
cout << "time error!" <<endl;
} void DataClock::showTime(){
cout <<year<<"/"<<month<<"/"<<date<<" " <<hour <<":" <<min << " " <<sec<<"s" <<endl;
} int DataClock::howManyDays(int m, int y){
int days;
if (m==||m==||m==||m==||m==||m==||m==)
days=;
else if(m!=)
days=;
else if(ifLeapYear(y))
days=;
else
days=; return days;
} bool DataClock::ifLeapYear(int year){
if((year%!= && year%==) || year%==)//如果尾数不是00,且能被4整除
return true;
else
return false;
} void DataClock::operator ++(){
++sec; if (sec>=){
sec = sec-;
min++;
if(min>=){
min = min-;
hour++;
if(hour>=){
hour = hour-; //这里相对 hour-24的优势是???
date++;
int thisMonDays = howManyDays(month, year);
if(date> thisMonDays){
date = date-thisMonDays;
month++;
if(month>){
month=month-;
year++;
}
}
}
}
}
}
//年月日 时分秒 测试
void DataClockTest(){
int y,m,d,h,min,s;
cout << "请输入年月日时分秒共六个数:";
cin >>y>>m>>d>> h >> min >>s;
DataClock myTime(y, m, d, h, min, s);
cout<<"输入时间是:";
myTime.showTime();
++myTime;
cout << " 下一秒是:" ;
myTime.showTime();
}






DIY时钟类--广州百田笔试之一的更多相关文章
- 笔试总结篇(一) : 广州X公司笔试
一.单选题: Ps : 当时由于去广州路上颠簸很困,导致刚做几分钟题目就睡了一觉.起来发现20分钟过去了.擦擦! 1. 假设磁盘文件foobar.txt 由 6个ASCII 码字符“foobar” 组 ...
- java 学习(day2) 时钟类
看过python的面向对象,所以入手java总的来说还是比较快的. 看视频学习之后写了一个简单的时钟 一个时钟有两部分组成小时和分钟.再大一些还有月,日. 分析一下就是,上述这些属性到达一个值之后,就 ...
- 编写Java应用程序。首先,定义一个时钟类——Clock,它包括三个int型 成员变量分别表示时、分、秒,一个构造方法用于对三个成员变量(时、分、秒) 进行初始化,还有一个成员方法show()用于显示时钟对象的时间。其次,再定义 一个主类——TestClass,在主类的main方法中创建多个时钟类的对象,使用这 些对象调用方法show()来显示时钟的时间。
package com.hanqi.test; public class Clock { int hh; int mm; int ss; String time; Clock(int h,int m, ...
- 4.编写Java应用程序。首先,定义一个时钟类——Clock,它包括三个int型 成员变量分别表示时、分、秒,一个构造方法用于对三个成员变量(时、分、秒) 进行初始化,还有一个成员方法show()用于显示时钟对象的时间。其次,再定义 一个主类——TestClass,在主类的main方法中创建多个时钟类的对象,使用这 些对象调用方法show()来显示时钟的时间。
Clock package com.hanqi.test; public class Clock { int hour,minute,second; Clock(int h,int m,int s) ...
- 【Flash 插件】时钟类插件
1.honehone_clock人体时钟实现 原理:就是在网页上播放已写好的.SWF文件. 效果如下: 效果一:背景透明,推荐为白色或浅背景 效果二:背景白色,推荐黑色或深色背景 实现步骤: 先引用 ...
- 定义一个时钟类——Clock,它包括三个int型 成员变量分别表示时、分、秒,一个构造方法用于对三个成员变量(时、分、秒) 进行初始化,还有一个成员方法show()用于显示时钟对象的时间。其次,再定义 一个主类——TestClass,在主类的main方法中创建多个时钟类的对象,使用这 些对象调用方法show()来显示时钟的时间
package java1; public class Clock { int hhh; int mmm; int sss; Clock(int h,int m,int s) { hhh=h; mmm ...
- [java面试]宇信易诚 广州分公司 java笔试题目回忆录
本文地址:http://blog.csdn.net/sushengmiyan/article/details/28479895 作者:sushengmiyan -------------------- ...
- [java面试]宇信易诚 广州分公司 java笔试题目回顾录
本文地址:http://blog.csdn.net/sushengmiyan/article/details/28479895 作者:sushengmiyan -------------------- ...
- css3clock.js - 一个用CSS3与纯js实现的简单时钟
前言 项目代码明细可以查看我Github上的源码:https://github.com/nelsonkuang/css3clock.js 实现思路 主要是用CSS3控制时针.分针和秒针旋转:时针每12 ...
随机推荐
- Javascript之登陆验证
匹配中文字符的正则表达式: [\u4e00-\u9fa5] 匹配双字节字符(包括汉字在内):[^\x00-\xff] 匹配空行的正则表达式:\n[\s| ]*\r 匹配网址URL的正则表达式:http ...
- 安装和启动mongodb数据库
参考链接:http://www.fkblog.org/blog569 参考链接:http://www.cnblogs.com/linjiqin/p/3192159.html
- H5API——Canvas
http://item.jd.com/11241807.html HTML5移动Web开发实战http://item.jd.com/10982275.html HTML5程序设计(第2版)http:/ ...
- css设置网页打印样式
有三种方法 1. 为屏幕显示和打印分别准备一个css文件,如下所示: 用于屏幕显示的css: <link rel="stylesheet" href="css/n ...
- Mysql数据表的操作
表的操作 前提:选择数据库 语法: use 数据库名; 1.创建数据表 语法: create table 表名( 字段1 字段类型 [附加属性], 字段2 字段类型 [附加属性], 字段3 字段类型 ...
- excl剔除不合格数据求平均值
excl剔除不合格数据求平均值 trimmean函数 正态分布: CONFIDENCE.NORM 函数
- ubuntu windows 双系统 磁盘乱搞 grub 导致 error:no such partition grub rescue>
乱搞分区磁盘什么的导致开机和这位仁兄一样:http://zhidao.baidu.com/question/495602654256708364.html?ssid=0&from=100187 ...
- 面向切面的Spring
在软件开发中,发布于应用中多处的功能被称为横切关注点.通常,这些横切关注点从概念上是与应用的业务逻辑相分离的(但往往直接嵌入到应用的业务逻辑之中).将横切关注点与业务逻辑相分离是AOP所要解决的. 一 ...
- NSS_02 日志配置
采用log4net,使用系统推荐的最新版本:log4net-1.2.11-bin-newkey.zip(网址:http://logging.apache.org/log4net/download_lo ...
- 探索 Java 同步机制[Monitor Object 并发模式在 Java 同步机制中的实现]
探索 Java 同步机制[Monitor Object 并发模式在 Java 同步机制中的实现] https://www.ibm.com/developerworks/cn/java/j-lo-syn ...