Zoo Manage


Submit solution

Points: 60 (partial)
Time limit: 1.0s
Memory limit: 256M

Authors:
Problem types
Allowed languages
Java 19, Java 8

題目說明

請設計Zoo類別,其中包含以下內容:

【參數】(皆為private)

animal:字串,飼養的動物名稱(英文單字,不含空格)  
feed:整數,飼料存量  
buyTimes:整數,買飼料的次數

【建構子】

Zoo(String animal):需傳入飼養的動物,在建構子裡設定物件的參數  
                    this.animal = 傳入的String;  
                    feed = 1000; // 預設飼料量為1000

【方法】

getAnimal():回傳動物名稱  

setBuyTime():傳入購買次數(正整數),設為物件參數buyTimes的值  

feedOnce():餵食飼料一次(飼料量-100),需先判斷飼料存量是否充足,  
            若飼料不足,使用this.buyFeed()購買飼料  

buyFeed():當buyTimes不為0(還有剩餘購買次數),可購買飼料一次(飼料量+100),並將buyTimes的值-1  
           若沒有剩餘購買次數(buyTimes == 0),印出"No enough feed!!",並終止程式

remainFeed():回傳剩餘飼料量。若有剩餘購買次數(buyTimes!=0),需加上再回傳。

主程式須執行以下步驟:

建立Zoo物件
接鍵盤輸入資料(動物名稱、餵食次數、購買次數)
使用setBuyTime()方法,設定購買次數
用for迴圈,根據餵食次數,執行feedOnce()
印出動物名稱
印出剩餘飼料量

輸入

動物名稱、餵食次數、購買次數

輸出

I have a(n) 動物
Remain Feed: 剩餘飼料量

測試資料0 輸入

cat 20 15

測試資料0 輸出

I have a(n) cat
Remain Feed: 500

測試資料1 輸入

dog 15 2

測試資料1 輸出

No enough feed!!

Comments


  • 0
    scu09156146  commented on May 7, 2024, 5:53 p.m. edit 2

    題解

    import java.util.Scanner;
    
    class Zoo {
        private String animal;
        private int feed;
        private int buyTimes;
    
        public Zoo(String animal) {
            this.animal = animal;
            feed = 1000;        // 飼料存量初始值(1000)
        }
    
        public String getAnimal() {
            return animal;
        }
    
        public void setBuyTime(int n) {
            buyTimes = n;
        }
    
        public void feedOnce() {
            if (feed - 100 < 0) // 檢查飼料是否充足
                this.buyFeed(); // 飼料不足,呼叫buyFeed()
            feed -= 100;        // 餵食飼料(-100)
        }
    
        public void buyFeed() {
            if (buyTimes > 0) { // 檢查是否還有購買次數
                feed += 100;    // 購買飼料(+100)
                buyTimes--;     // 買了一次,buyTimes要-1
            } else {
                System.out.println("No enough feed!!");
                System.exit(0);
            }
        }
    
        public int remainFeed() {
            feed = feed + 100 * buyTimes;   // 把剩餘購買次數計算完,加到飼料存量
            return feed;
        }
    
    }
    
    public class ZooManage {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Scanner input = new Scanner(System.in);
            Zoo zoo = new Zoo(input.next());    // 建立Zoo物件
    
            int feedTimes = input.nextInt();
            int buyfeed = input.nextInt();
            input.close();
    
            zoo.setBuyTime(buyfeed);
            for (int i = 0; i < feedTimes; i++) {
                zoo.feedOnce();         // 根據餵食次數,用迴圈執行feedOnce()
            }
            System.out.println("I have a(n) " + zoo.getAnimal());
            System.out.println("Remain Feed: " + zoo.remainFeed());
    
        }
    
    }