浙大Java进阶mooc第二周作业---------有秒针计时的数字时钟

原创 2015年08月20日 09:09:43
有秒针计时的数字时钟

题目内容:


这一周的编程题是需要你在课程所给的时钟程序的基础上修改而成。但是我们并不直接给你时钟程序的代码,请根据视频自己输入时钟程序的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();

}



代码:

package clock;

public class Clock {
	private Display hour = new Display(24);
	private Display minute = new Display(60);
	private Display second = new Display(60);
	
	public Clock(int hour, int minute, int second){
		 this.hour.setValue(hour);
	     this.minute.setValue(minute);
	     this.second.setValue(second);  
	}
    //用hour, minute和second初始化时间。
    public void tick(){
    	second.increase();
    	if(second.getValue()== 0){
    		minute.increase();
    		if(minute.getValue()==0){
    			hour.increase();
    		}
    	}
    	
    }
    //“嘀嗒”一下,时间走1秒。
    public String toString(){
    	String time=String.format("%02d:%02d:%02d",hour.getValue(),minute.getValue(),second.getValue());
    	return time;
    }
package clock;

public class Display {
    private int value = 0;
	private int limit = 0;
	
    public Display(int limit){
    	this.limit = limit;
    }
    public void setValue(int value){
	       this.value = value;
	}
    
    public void increase(){
    	value++;
    	if( value == limit ){
    		value=0;
    	}
    }
    
    public int getValue(){
    	return value;
    }

package clock;

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();
	}
}



Java语言程序设计进阶----第三周作业

1查找里程(10分) 题目内容: 下图为国内主要城市之间的公路里程: 你的程序要读入这样的一张表,然后,根据输入的两个城市的名称,给出这两个城市之间的里程。 注意:任何两个城市之间的里程都已经给出...
  • guochan_xl
  • guochan_xl
  • 2015年07月23日 20:41
  • 2478

hdu(杭电oj)第一页题目题解

第一页有几题没写,有机会补上(嗯,忘了就是另一回事了)。
  • a601025382s
  • a601025382s
  • 2014年08月16日 13:13
  • 13584

记录--java进阶--翁凯--第二周作业

有秒计时的数字时钟(10分) 题目内容: 这一周的编程题是需要你在课程所给的时钟程序的基础上修改而成。但是我们并不直接给你时钟程序的代码,请根据视频自己输入时钟程序的Display和Clock...
  • Kahung_L
  • Kahung_L
  • 2017年02月13日 17:06
  • 526

有秒计时的数字时钟(Java实现)

有秒计时的数字时钟 题目内容: 这一周的编程题是需要你在课程所给的时钟程序的基础上修改而成。但是我们并不直接给你时钟程序的代码,请根据视频自己输入时钟程序的Display和Clock类的代码,然后...
  • GrassRing1
  • GrassRing1
  • 2017年03月30日 16:14
  • 1012

[程序猿初养成]Coursera-C程序设计进阶-第二周作业-编程题#5

编程题#5:细菌实验分组 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 有一种细菌分为A、B两个亚种,它们的外在特征几乎完全相同,仅仅在繁殖能力上有显...
  • spythree
  • spythree
  • 2016年09月18日 17:19
  • 470

[程序猿初养成]Coursera-C程序设计进阶-第二周作业-编程题#6

编程题#6:流感传染 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 有一批易感人群住在网格状的宿舍区内,宿舍区为n*n的矩阵,每个格点为一个房间,房间...
  • spythree
  • spythree
  • 2016年09月18日 17:25
  • 342

[程序猿初养成]Coursera-C程序设计进阶-第二周作业-编程题#2

编程题#2:四大湖 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 我国有4大淡水湖。 A说:洞庭湖最大,洪泽湖最小,鄱阳湖第三。 B说:洪泽湖最大...
  • spythree
  • spythree
  • 2016年09月17日 14:31
  • 598

[土狗之路]coursera上C语言进阶第二周作业

摸爬滚打的,总算把第一门课弄完了,赶紧开工第二门。 第一题: 编程题#1:寻找下标 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 已知一个整数...
  • panda711
  • panda711
  • 2016年01月27日 20:13
  • 1785

[程序猿初养成]Coursera-C程序设计进阶-第二周作业-编程题#4

编程题#4:Tomorrow never knows? 来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。) 注意: 总时间限制: ...
  • spythree
  • spythree
  • 2016年09月17日 17:17
  • 465

【MOOC】数字信号处理-电子科技大学-第二周 - 连续时间信号的数字化处理

2.1连续时间信号的采样Concepts of sampling采样(sampling):指把时间域或空间域的连续量转化成离散量的过程。采样流程实际的连续时间信号的数字化处理过程: 将上述过程的...
  • linzch3
  • linzch3
  • 2017年05月02日 23:30
  • 1007
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:浙大Java进阶mooc第二周作业---------有秒针计时的数字时钟
举报原因:
原因补充:

(最多只允许输入30个字)