java_有秒计时的数字时钟
题目内容:
这一周的编程题是需要你在课程所给的时钟程序的基础上修改而成。但是我们并不直接给你时钟程序的代码,请根据视频自己输入时钟程序的Display和Clock类的代码,然后来做这个题目。
我们需要给时钟程序加上一个表示秒的Display,然后为Clock增加以下public的成员函数:
public Clock(int hour, int minute, int second);
用hour, minute和second初始化时间。
public void tick();
“嘀嗒”一下,时间走1秒。
public String toString();
返回一个String的值,以“hh:mm:ss“的形式表示当前时间。这里每个数值都占据两位,不足两位时补0。如“00:01:22"。注意其中的冒号是西文的,不是中文的。
提示:String.format()可以用和printf一样的方式来格式化一个字符串。
另外写一个Main类,它的main函数为下面的样子,注意,必须原封不动地作为Main的main函数:
public static void main(String[] args) {
java.util.Scanner in = new java.util.Scanner(System.in);
Clock clock = new Clock(in.nextInt(), in.nextInt(), in.nextInt());
clock.tick();
System.out.println(clock);
in.close();
}
注意!在提交的时候,把Main、Clock和Display三个类的代码合并在一起,其中Main类是public的,而Clock和Display类是没有修饰符的。另外,千万注意第一行不能有package语句。
输入格式:
采用给定的main函数无需考虑输入输出。
输出格式:
采用给定的main函数无需考虑输入输出。
输入样例:
采用给定的main函数无需考虑输入输出。
输出样例:
采用给定的main函数无需考虑输入输出。
//主函数按题要求不动 public class Main { public static void main(String[] args) { java.util.Scanner in = new java.util.Scanner(System.in); Clock clock = new Clock(in.nextInt(), in.nextInt(), in.nextInt()); clock.tick(); System.out.println(clock); in.close(); } } //时钟时分秒都要显示,所以先建立一个显示的类 class Display{ private int value=0;//显示数字 private int limit=0;//上限值 //构造函数,初始化,这里为设定上限值 public Display(int limit){ this.limit=limit;//把limit传给本类的limit } //设定时间的值的函数 public void setValue(int value) { this.value=value; } //得到显示值函数 public int getValue() { return value; } //时间数值增加1函数 public void increase() { value++; if(value==limit) {//如果值增到了上限值 value=0;//值置0 } } } //建立一个表示时钟的类 class Clock { //这个时钟有时分秒三个成员 //因为是用Display类显示所以类型为Display private Display hour = new Display(24);//时,上限为24 private Display minute = new Display(60);//分,上限为60 private Display second = new Display(60);//秒,上限为60 //构造函数,初始化,用于设定时分秒的初始值 public Clock(int hour,int minute,int second) { this.hour.setValue(hour); this.minute.setValue(minute); this.second.setValue(second); } //“嘀嗒”一下,时间走1秒 public void tick(){ this.second.increase();//秒走一秒 if(this.second.getValue()==0) {//零,即达上限,被置零 this.minute.increase();//分走一下 if(this.minute.getValue()==0) {//如果秒达上限值 this.hour.increase();//时走一下 } } } // 把Clock类的对象转化为字符串类型,用于输出 public String toString() { //String.format()可以用和printf一样的方式来格式化一个字符串 String time= String.format("%02d:%02d:%02d", this.hour.getValue(), this.minute.getValue(), this.second.getValue()); return time; } }
java_有秒计时的数字时钟的更多相关文章
- 中国MOOC_面向对象程序设计——Java语言_第2周 对象交互_秒计时的数字时钟
第2周编程题 查看帮助 返回 第2周编程题,在课程所给的时钟程序的基础上修改 依照学术诚信条款,我保证此作业是本人独立完成的. 温馨提示: 1.本次作业属于Online Judge题目,提交后由系 ...
- 面向对象程序设计--Java语言第二周编程题:有秒计时的数字时钟
有秒计时的数字时钟 题目内容: 这一周的编程题是需要你在课程所给的时钟程序的基础上修改而成.但是我们并不直接给你时钟程序的代码,请根据视频自己输入时钟程序的Display和Clock类的代码,然后来做 ...
- 中国MOOC_面向对象程序设计——Java语言_第2周 对象交互_1有秒计时的数字时钟
第2周编程题 查看帮助 返回 第2周编程题,在课程所给的时钟程序的基础上修改 依照学术诚信条款,我保证此作业是本人独立完成的. 温馨提示: 1.本次作业属于Online Judge题目,提交后由系 ...
- HandlerThread实现数字时钟
1.描述 刚看完Android多线程编程,对HandlerThread比较感兴趣,趁热巩固练习,实现一个了数字时钟,希望对学习HandlerThread有所帮助.如下: 启动一个HandlerThre ...
- C#开发漂亮的数字时钟
今天用C#做了一个漂亮的数字时钟.界面如下. 实现技术:主要是通过Graphics类的DrawImage方法来绘制数字时钟中所有的数字,这些数字是从网上找的一些图片文件.时钟使用DateTime中No ...
- 基于Verilog HDL 的数字时钟设计
基于Verilog HDL的数字时钟设计 一.实验内容: 利用FPGA实现数字时钟设计,附带秒表功能及时间设置功能.时间设置由开关S1和S2控制,分别是增和减.开关S3是模式选择:0是正常时钟 ...
- 简单酷炫的Canvas数字时钟
声明:本文为原创文章,如需转载,请注明来源WAxes,谢谢! 我记得很早之前就看过这个DEMO,是岑安大大博客里看到的: 就是这个数字时钟,当时觉得这个创意不错,但是也没去折腾.直到昨天同事又在网上看 ...
- VHDL 数字时钟设计
序言 这个是我在做FPGA界的HelloWorld--数字钟设计时随手写下的,再现了数字钟设计的过程 目标分析 时钟具有时分秒的显示,需6个数码管.为了减小功耗采用扫描法显示 按键设置时间,需要对按键 ...
- 【ARM】2440裸机系列-RTC数字时钟
功能 裸机程序,实现LCD显示数字时钟 主要代码 1)背景绘制 void Brush_ U32 c) { int x,y ; for ( y = 0 ; y < LCD_HEIGHT ; y ...
随机推荐
- winform改变启动界面
我们知道,有时做个小项目什么的,一般从登录开始,再到主页,再到其他业务,如果做到其他页面功能,调试时还要从登录页面一个个点进去,明显的降低开发进度. 这时,我们可以直接将目标界面改为启动页面即可. u ...
- Python学习第四章
1.类和对象: 类对象支持两种操作:属性引用和实例化. 属性引用:obj.name 构造方法:类会定义一个名为__int__()的特殊方法如下 def __init__(self): s ...
- Linux pwn入门教程(2)——shellcode的使用,原理与变形
作者:Tangerine@SAINTSEC 0×00 shellcode的使用 在上一篇文章中我们学习了怎么使用栈溢出劫持程序的执行流程.为了减少难度,演示和作业题程序里都带有很明显的后门.然而在现实 ...
- php开发中应该注意的错误开关与常见处理[开发篇]
我们可能一开始就接触一个项目的开发,刚开始时都是信心满满,一定把这个项目做得非常完美,但是时间那么少,任务那么多,我们就只有将就了. 首先,一般情况下,我们会加一个调试标志,define('APP_D ...
- HttpRunnerManager接口测试平台部署在服务器上(Centos + python3.6 + Mysql5.7 + uwsgi + nginx)
整个思路:HttpRunnerManager + python3.6 + Mysql5.7 + uwsgi + nginx 安装依赖环境,将源代码传到服务器,修改settings,增加uwsgi配置, ...
- Win10下音频设备无法播放音乐问题定位
最近一直在调试音频设备,由于音频设备需要在不同的采样率下面转换,所以会经常导致我的win10无法播放和录音. 刚开始在网上搜了相关的知识,但是一直没找到有效的解决方案.后来,无奈之下,使用了微软的声音 ...
- jq版本的checkbox有radio的单选效果(可得到value值)
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>复 ...
- .NET Core跨平台微服务学习资源
一.Asp.net Core基础 微软英文官网:https://docs.microsoft.com/en-us/aspnet/core/?view=aspnetcore-2.1 .NET Core: ...
- mac下nginx搭建
首先使用brew安装nginx brew install nginx 安装完毕后,如果我们要使用nginx监听本地的80端口,需要改掉mac自带的apache占用的80端口 sudo vim /etc ...
- interface21 - web - Log4jConfigListener(Log4j加载流程)
前言 最近打算花点时间好好看看spring的源码,然而现在Spring的源码经过迭代的版本太多了,比较庞大,看起来比较累,所以准备从最初的版本(interface21)开始入手,仅用于学习,理解其设计 ...