題目內容: 這一周的編程題是需要你在課程所給的時鐘程式的基礎上修改而成。但是我們並不直接給你時鐘程式的代碼,請根據視頻自己輸入時鐘程式的Display和Clock類的代碼,然後來做這個題目。 我們需要給時鐘程式加上一個表示秒的Display,然後為Clock增加以下public的成員函數: publ ...
題目內容:
這一周的編程題是需要你在課程所給的時鐘程式的基礎上修改而成。但是我們並不直接給你時鐘程式的代碼,請根據視頻自己輸入時鐘程式的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;//把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; } }