中國MOOC_面向對象程序設計——Java語言_第2周 對象交互_1有秒計時的數字時鐘
第2周編程題
查看幫助
第2周編程題,在課程所給的時鐘程序的基礎上修改
依照學術誠信條款,我保證此作業是本人獨立完成的。
溫馨提示:
1.本次作業屬於Online Judge題目,提交後由系統即時判分。
2.學生可以在作業截止時間之前不限次數提交答案,系統將取其中的最高分作為最終成績。
1 有秒計時的數字時鐘(10分)題目內容:
這一周的編程題是需要你在課程所給的時鐘程序的基礎上修改而成。但是我們並不直接給你時鐘程序的代碼,請根據視頻自己輸入時鐘程序的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函數無需考慮輸入輸出。
時間限制:500ms內存限制:32000kb
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; } public void increase() { value++; if (value == limit) { value = 0; } } public int getValue() { return value; } public void setValue(int value) { this.value = value; } } 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) {// 用hour, minute和second初始化時間。 this.hour.setValue(hour); this.minute.setValue(minute); this.second.setValue(second); } public void tick() {// “嘀嗒”一下,時間走1秒。 this.second.increase(); if (this.second.getValue() == 0) { this.minute.increase(); if (this.minute.getValue() == 0) { this.hour.increase(); } } } public String toString() {// 返回一個String的值,以“hh:mm:ss“的形式表示當前時間。這裏每個數值都占據兩位,不足兩位時補0。如“00:01:22"。註意其中的冒號是西文的,不是中文的。 return String.format("%02d:%02d:%02d", this.hour.getValue(), this.minute.getValue(), this.second.getValue());// 提示:String.format()可以用和printf一樣的方式來格式化一個字符串。 } }
中國MOOC_面向對象程序設計——Java語言_第2周 對象交互_1有秒計時的數字時鐘