java_有秒計時的數字時鐘

題目內容:java

這一週的編程題是須要你在課程所給的時鐘程序的基礎上修改而成。可是咱們並不直接給你時鐘程序的代碼,請根據視頻本身輸入時鐘程序的Display和Clock類的代碼,而後來作這個題目。編程

咱們須要給時鐘程序加上一個表示秒的Display,而後爲Clock增長如下public的成員函數:函數

 

public Clock(int hour, int minute, int second);this

用hour, minute和second初始化時間。spa

public void tick();orm

「嘀嗒」一下,時間走1秒。視頻

public String toString();對象

返回一個String的值,以「hh:mm:ss「的形式表示當前時間。這裏每一個數值都佔據兩位,不足兩位時補0。如「00:01:22"。注意其中的冒號是西文的,不是中文的。blog

 

提示: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;
     }
 }
相關文章
相關標籤/搜索