一.開發環境
Windows 11 -- JDK 21 -- IDEA 2021.3.3
二.需求
?三.代碼部分??
//創建一個寵物類,被另外兩類繼承public class Pet {private String name;private int age;private String gender;private double cost=0;//買進價格private double sellprice=0;//賣出價格public double getCost() {return cost;}public void setCost(double cost) {this.cost = cost;}public double getSellprice() {return sellprice;}public void setSellprice(int sellprice) {this.sellprice = sellprice;}public Pet(String name, int age, String gender) {this.name = name;this.age = age;this.gender = gender;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}
}
public class Dog extends Pet{private String breed;//品種public Dog(String name, int age, String gender,String breed) {super(name, age, gender);this.breed=breed;}public String getBreed() {return breed;}public void setBreed(String breed) {this.breed = breed;}
}
public class Cat extends Pet{private String isIndoor;//貓類的一個關鍵屬性是否習慣在家里待著public Cat(String name, int age, String gender,String isIndoor) {super(name, age, gender);this.isIndoor=isIndoor;}public String getIsIndoor() {return isIndoor;}public void setIsIndoor(String isIndoor) {this.isIndoor = isIndoor;}
}
import java.util.ArrayList;
import java.util.Scanner;class petshop{private String name;private ArrayList<Pet>stocks;//寵物的庫存private ArrayList<Pet>sales;//記錄銷售的信息private double revenue;//商店的流動資金public petshop(String name){this.name=name;this.stocks=new ArrayList<>();this.sales=new ArrayList<>();this.revenue=30000;}public void buy(Pet pet,double cost){pet.setCost(cost);stocks.add(pet);this.revenue-=cost;}public void BuyRecord(Pet pet,double cost){pet.setCost(cost);sales.add(pet);}//實現檢查庫存-貓的基本信息public void chekStocks_Cat(){System.out.println("店內庫存-貓的基本信息");System.out.println("----------------------------------------");System.out.println("姓名:\t年齡:\t性別:\t備注:\t成本:\t");for(Pet pet:stocks){if(pet instanceof Cat){Cat cat =(Cat) pet;System.out.println(cat.getName()+"\t"+cat.getAge()+"\t"+cat.getGender()+"\t"+cat.getIsIndoor()+"\t"+cat.getCost());}}}//實現檢查庫存-狗的基本信息public void chekStocks_Dog(){System.out.println("店內庫存-狗的基本信息");System.out.println("----------------------------------------");System.out.println("姓名:\t年齡:\t性別:\t品種:\t成本:\t");for(Pet pet:stocks){if(pet instanceof Dog){Dog dog =(Dog) pet;System.out.println(dog.getName()+"\t"+dog.getAge()+"\t"+dog.getGender()+"\t"+dog.getBreed()+"\t"+dog.getCost());}}}//通過輸入名字賣出庫存中的寵物同時記錄這個信息public boolean removePetByName(String name,int sellprice){for(Pet pet:stocks){if(pet.getName().equals(name)){stocks.remove(pet);recordSellpriceByName(name,sellprice);revenue+=sellprice;return true;}}return false;}//通過名字來修改銷售表中的寵物sellpricepublic void recordSellpriceByName(String name,int sellprice){for(Pet pet:sales){if(pet.getName().equals(name)){pet.setSellprice(sellprice);}}}public void printSaleReport(){ //實現統計銷售和盈利double totalProfit=0;for(Pet pet:sales){if(pet instanceof Dog){ //檢查一個pet的對象是否為dogDog dog =(Dog) pet;//Pet 對象強制轉換為 Dog 類型,并將結果存儲在名為 dog 的變量中。現在,你就可以調用 Dog 類的方法或訪問其屬性totalProfit+=(dog.getSellprice()-dog.getCost());System.out.println("Dog "+"名字: "+dog.getName()+" 進價:"+dog.getCost()+" ¥ "+" 售出:"+dog.getSellprice()+" ¥ "+" 凈利潤:"+(dog.getSellprice()-dog.getCost())+" ¥ ");}else if(pet instanceof Cat){Cat cat=(Cat)pet;totalProfit+=(cat.getSellprice()-cat.getCost());System.out.println("Cat "+"名字: "+cat.getName()+" 進價:"+cat.getCost()+" ¥ "+" 售出:"+cat.getSellprice()+" ¥ "+" 凈利潤:"+(cat.getSellprice()-cat.getCost())+" ¥ ");}}System.out.println("總利潤:"+totalProfit+" ¥");System.out.println("商店流動資金:"+revenue);}public void addPet(Pet pet){stocks.add(pet);}
}public class Pet_Manager {public static void printmenu(){System.out.println("---------------------------------------");System.out.println("歡迎寵物商店管理系統");System.out.println("---------------------------------------");System.out.println("1. 買進寵物");System.out.println("2. 賣出寵物");System.out.println("3. 清點寵物庫存");System.out.println("4. 統計銷售和盈利情況");System.out.println("0. 退出系統");System.out.println("---------------------------------------");System.out.print("請輸入操作序號:");}public static void prinemenu2(){//System.out.println("----------------------------------------");System.out.println("選擇一:買進寵物狗");System.out.println("選擇二:買進寵物貓");System.out.println("----------------------------------------");}public static void prinemenu3(){//System.out.println("----------------------------------------");System.out.println("選擇一:賣出寵物狗");System.out.println("選擇二:賣出寵物貓");System.out.println("----------------------------------------");}//-----------------主函數public static void main(String[] args) {Scanner scanner = new Scanner(System.in);petshop petmanager = new petshop("爪印樂園");while (true){printmenu();int opeartion = scanner.nextInt();if (opeartion < 0 || opeartion > 4) {System.out.println("沒有這個選項,請重新選擇!");scanner.nextLine();continue;}scanner.nextLine();switch (opeartion){case 1:{System.out.println("您正在使用功能一:買進寵物");System.out.println("---------------------------------------");prinemenu2();System.out.print("請輸入操作序號:");int opertation2=scanner.nextInt();System.out.println("---------------------------------------");scanner.nextLine();switch (opertation2){case 1:{System.out.print("請輸入狗的名字:");String name = scanner.nextLine();System.out.println("---------------------------------------");System.out.print("請輸入狗的年齡:");int age = scanner.nextInt();System.out.println("---------------------------------------");scanner.nextLine();System.out.print("請輸入狗的性別:");String gender =scanner.nextLine();System.out.println("---------------------------------------");System.out.print("請輸入狗的品種:");String breed =scanner.nextLine();System.out.println("---------------------------------------");System.out.print("請輸入買進寵物價格:");int cost= scanner.nextInt();Dog newDog = new Dog(name,age,gender,breed);petmanager.buy(newDog,cost);//買入存入庫存//同時要記錄這個銷售信息petmanager.BuyRecord(newDog,cost);break;}case 2:{System.out.print("請輸入貓的名字:");String name = scanner.nextLine();System.out.println("---------------------------------------");System.out.print("請輸入貓的年齡:");int age = scanner.nextInt();System.out.println("---------------------------------------");scanner.nextLine();System.out.print("請輸入貓的性別:");String gender =scanner.nextLine();System.out.println("---------------------------------------");System.out.print("請輸入貓是否喜歡呆在家里|| 喜歡/不喜歡 :");String isIndoor = scanner.nextLine()+"呆在家里";System.out.println("---------------------------------------");System.out.print("請輸入買進寵物價格:");int cost= scanner.nextInt();Cat newCat = new Cat(name,age,gender,isIndoor);petmanager.buy(newCat,cost);//買入存入庫存//同時要記錄這個銷售的信息;petmanager.BuyRecord(newCat,cost);break;}default:break;}break;}case 2:{System.out.println("您正在使用功能二:賣出寵物");System.out.println("---------------------------------------");prinemenu3();System.out.print("請輸入操作序號:");int opertation2=scanner.nextInt();System.out.println("---------------------------------------");scanner.nextLine();switch (opertation2) {case 1:{petmanager.chekStocks_Dog();System.out.println("---------------------------------------");System.out.print("請輸入賣出的寵物狗的名字:");String name =scanner.nextLine();System.out.println("---------------------------------------");System.out.print("請輸入賣出的寵物狗的價格:");int sellprice = scanner.nextInt();//同時移除庫存中寵物的數據和記錄銷售記錄boolean isRemoved = petmanager.removePetByName(name,sellprice);if(isRemoved){System.out.println("---------------------------------------");System.out.println("成功賣出名為 " + name + " 的寵物");}else {System.out.println("---------------------------------------");System.out.println("沒有找到改寵物");}scanner.nextLine();break;}case 2:{petmanager.chekStocks_Cat();System.out.println("---------------------------------------");System.out.print("請輸入賣出的寵物貓的名字:");String name =scanner.nextLine();System.out.println("---------------------------------------");System.out.print("請輸入賣出的寵物貓的價格:");int sellprice = scanner.nextInt();//同時移除庫存中寵物的數據和記錄銷售記錄boolean isRemoved = petmanager.removePetByName(name,sellprice);if(isRemoved){System.out.println("---------------------------------------");System.out.println("成功賣出名為 " + name + " 的寵物");}else {System.out.println("---------------------------------------");System.out.println("沒有找到改寵物");}scanner.nextLine();break;}default:break;}break;}case 3:{System.out.println("您正在使用功能三:清點寵物庫存");System.out.println("---------------------------------------");petmanager.chekStocks_Dog();System.out.println("---------------------------------------");petmanager.chekStocks_Cat();scanner.nextLine();break;}case 4:{System.out.println("您正在使用功能四:統計銷售情況");System.out.println("---------------------------------------");petmanager.printSaleReport();scanner.nextLine();break;}case 0:{System.exit(0);}}}}
}