一.开发环境
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);}}}}
}