/** * 模擬收音機播放音樂 * * 電池: * 型號(#1 #5 #7) * (收音機只能放入五號電池) * 電量:(初始化的時候,電量爲5,滿電爲10) * * 充電 * * * 收音機 * 電池(每播放一首歌,消耗一格電量) * 開關狀態 * 開機 * 關機 * 裝電池 * * 放音樂(判斷是否裝了電池?是否開了開關?電池是否有電? -->播放音樂,每播放一首音樂,消耗一格電量, * 每首播放完後,提示是否繼續播放;若是說播放完了,電量不足的時候,提示(一、充電二、換電池、三、關機)) * */ public class RadioMusic { //定義收音機 開關狀態 默認關機 String radioPlay ="關機"; Battery enginer =new Battery(); Scanner input =new Scanner(System.in); //定義 開機方法 public void turnOn() { radioPlay="開機"; System.out.println("已開機-----------"); } //定義 關機方法 public void turnOff() { radioPlay="關機"; System.out.println("已關機-----------"); System.exit(0); } //定義 裝電池方法 public int LoadingBattery(Battery battery) { System.out.println("選擇放入的電池型號:一、#1 二、#5 三、#7"); //定義 電池型號的接收值 int type =input.nextInt(); switch(type) { case 1: enginer.batteryType=1; System.out.println("放入電池"+enginer.batteryType+"號"); break; case 2: enginer.batteryType=5; System.out.println("放入電池"+enginer.batteryType+"號"); enginer.batteryPower=5; break; case 3: enginer.batteryType=7; System.out.println("放入電池"+enginer.batteryType+"號"); break; default : System.out.println("選擇有誤,請從新選擇!"); break; } return enginer.batteryType; } //定義 放音樂方法 public void playMusic() { //先打印收音機的開始狀態 System.out.println("裝了"+enginer.batteryType+"號電池"+",收音機狀態:"+radioPlay+",有電量:"+enginer.batteryPower); System.out.println("開始播放音樂---------"); //定義個 曲數計數 變量 int count = 0; // 當收音機有電量時候才進行播放循環 while(enginer.batteryPower>0) { count++; // 播放一次 電量減一 enginer.batteryPower--; while(true) { System.out.println("第"+count+"首歌播放完畢,是否要繼續播放? Y/N"); System.out.println("剩餘電量:"+enginer.batteryPower); String choice =input.next(); if(choice == "Y") { continue;// 繼續播放 繼續當前循環 }else { break; //退出當前循環 } } } System.out.println("播放完,電量不足!請選擇:"); System.out.println("提示(一、充電二、換電池、三、關機)"); int choice1 =input.nextInt(); switch (choice1) { case 1: enginer.batteryPower=enginer.batteryChange(enginer.batteryPower); break; case 2: radioPlay="關機"; System.out.println("收音機狀態:"+radioPlay); LoadingBattery(enginer); break; case 3: turnOff(); break; default : System.out.println("指令不正確,請從新輸入!"); break; } } /* * 主方法 輸出測試 */ public static void main(String[] args) { //實例化 收音機對象 RadioMusic rm=new RadioMusic(); //實例化 電池對象 Battery bt =new Battery(); bt.batteryType=rm.LoadingBattery(bt); while(true) { //判斷收音機電池是不是 #5 if(bt.batteryType == 5) { //判斷收音機的狀態 if(rm.radioPlay.equals("關機")) { rm.turnOn(); //判斷收音機的電量 if(bt.batteryPower >0) { rm.playMusic(); } } else { if(bt.batteryPower >0) { rm.playMusic(); } } } else { System.out.println("電池型號錯誤!請從新插入電池:"); bt.batteryType=rm.LoadingBattery(bt); } } } } /* * 電池: * 型號(#1 #5 #7) * (收音機只能放入五號電池) * 電量:(初始化的時候,電量爲5,滿電爲10) */ public class Battery { //電池型號 int batteryType; //電池電量 int batteryPower =5; //定義 充電的方法 public int batteryChange(int batteryPower) { System.out.println("正在充電-------"); System.out.println("充電已滿!"); return 10; } }