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. Contoso 大学 - 2 – 实现基本的增删改查

    原文 Contoso 大学 - 2 – 实现基本的增删改查 目录 Contoso 大学 - 使用 EF Code First 创建 MVC 应用 原文地址:http://www.asp.net/mvc ...

  2. 什么是C++标准库?

    C++中的标准程序库(简称标准库)是类库和函数的集合,其使用核心语言写成.标准程序库提供若干泛型容器.函数对象.泛型字符串和流(包含交互和文件I/O),支持部分语言特性和常用的函数,如开平方根.C++ ...

  3. javascript笔记——js的阻塞特性[转载]

    JS具有阻塞特性,当浏览器在执行js代码时,不能同时做其它事情,即<script>每次出现都会让页面等待脚本的解析和执行(不论JS是内嵌的还是外链的),JS代码执行完成后,才继续渲染页面. ...

  4. 打包并发布自己的Android应用(eclipse)

    第一步,在Eclipse中选择需要打包的项目,然后右键--选择Export,会弹出一个打包的提示框,如下图所示. 按Next之后,会继续出现一个提示框,这里你可以选择自己需要打包的项目(默认是刚才选中 ...

  5. (hdu)5423 Rikka with Tree (dfs)

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5423 Problem Description As we know, Rikka is p ...

  6. vc++字符转换

    测试环境: vs2008 开发语言:C++ #include <iostream>#include <windows.h>#include <string> // ...

  7. C++与Lua交互(五)

    引言 要将C++中的对象类型映射到Lua中,就不得不要先了解Lua面向对象的机制.在这里,我们先看一下Lua面向对象的实现基础--metatable,再以此实现C++对象到Lua的映射. Lua面向对 ...

  8. 【转】Windows Phone 调整屏幕亮度的简单实现

    之前看到以及其它应用都有调节屏幕亮度的功能,还以为MS有相关的API,就去MSDN找了下,但是怎么都找不到.今天突然想到做自定义MessageBox时,由于要突出弹出框部分,所以会改变LayoutRo ...

  9. jQuery(function($){...})与(function($){...})(jQuery)知识点分享

    写jQuery插件时一些经验分享一下. 一.推荐写法 jQuery(function($){ //coding }); 全写为 jQuery(document).ready(function($){ ...

  10. PHP SQL注入的防范

    说到网站安全就不得不提到SQL注入(SQL Injection),如果你用过ASP,对SQL注入一定有比较深的理解,PHP的安全性相对较高,这是因为MYSQL4以下的版本不支持子语句,而且当php.i ...