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时钟类--广州百田笔试之一的更多相关文章

  1. 笔试总结篇(一) : 广州X公司笔试

    一.单选题: Ps : 当时由于去广州路上颠簸很困,导致刚做几分钟题目就睡了一觉.起来发现20分钟过去了.擦擦! 1. 假设磁盘文件foobar.txt 由 6个ASCII 码字符“foobar” 组 ...

  2. java 学习(day2) 时钟类

    看过python的面向对象,所以入手java总的来说还是比较快的. 看视频学习之后写了一个简单的时钟 一个时钟有两部分组成小时和分钟.再大一些还有月,日. 分析一下就是,上述这些属性到达一个值之后,就 ...

  3. 编写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. 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) ...

  5. 【Flash 插件】时钟类插件

    1.honehone_clock人体时钟实现 原理:就是在网页上播放已写好的.SWF文件. 效果如下: 效果一:背景透明,推荐为白色或浅背景 效果二:背景白色,推荐黑色或深色背景 实现步骤: 先引用 ...

  6. 定义一个时钟类——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 ...

  7. [java面试]宇信易诚 广州分公司 java笔试题目回忆录

    本文地址:http://blog.csdn.net/sushengmiyan/article/details/28479895 作者:sushengmiyan -------------------- ...

  8. [java面试]宇信易诚 广州分公司 java笔试题目回顾录

    本文地址:http://blog.csdn.net/sushengmiyan/article/details/28479895 作者:sushengmiyan -------------------- ...

  9. css3clock.js - 一个用CSS3与纯js实现的简单时钟

    前言 项目代码明细可以查看我Github上的源码:https://github.com/nelsonkuang/css3clock.js 实现思路 主要是用CSS3控制时针.分针和秒针旋转:时针每12 ...

随机推荐

  1. 随笔001:Group by 语法剪辑

    基本语法: GROUP BY [ALL] group_by_expression[,……n][WITH (CUBE|ROLLUP)] 参数说明: ALL:用于指定包含所有组和结果集,甚至包含那些其中任 ...

  2. JAVA.IO流学习笔记

    一.java.io 的描述 通过数据流.序列化和文件系统提供系统输入和输出.IO流用来处理设备之间的数据传输 二.流 流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数 ...

  3. UGUI之在场景中设置、修改标签和按钮

    UnityGUI使用一个特殊的OnGUI()函数,在该函数中加入实现UI的脚本. 它一共有两种类型的接口:GUI.xxx()和GUILayout.xxx(). 第一种需要自动手写填写处于屏幕上的位置. ...

  4. Bootstrap学习笔记(一) 排版

    Bootsrap是一款优秀的前端开发框架,我从慕课网上开始学习Bootstrap,以下我学习过程中的一些笔记及代码. 首先学习排版: 从Bootstrap网站下载Bootstrap3中文文档(V3.3 ...

  5. spring 中的 RowMapper

    spring 中的 RowMapper sping中的RowMapper可以将数据中的每一行数据封装成用户定义的类.    我们在数据库查询中,如果返回的类型是用户自定义的类型(其实我们在数据库查询中 ...

  6. Java多线程(二) 多线程的锁机制

    当两条线程同时访问一个类的时候,可能会带来一些问题.并发线程重入可能会带来内存泄漏.程序不可控等等.不管是线程间的通讯还是线程共享数据都需要使用Java的锁机制控制并发代码产生的问题.本篇总结主要著名 ...

  7. DICOM开源库

    转载于 http://blog.csdn.net/jackmacro/article/details/5850142 Developers used to search for libraries , ...

  8. 对vector等STL标准容器的排序操作

    [+] STL提供的Sort 算法 所有sort算法介绍 sort 中的比较函数 sort 的稳定性 全排序 局部排序 nth_element 指定元素排序 partition 和stable_par ...

  9. Fedora 命令

    1. 更新包 yum clear all yum -y update 2.yum包查找 yum whatprovides xxxx.os.l 3 df 查看磁盘空间 xclip 复制到粘贴板 xcli ...

  10. Group 原则

    select 后面的所有劣种,没有使用聚合函数的列,必须出现在 group by 后面,比如下面的例子 insert into #temp_move2 ) from #temp_move group ...