java 宠物店管理系统

xiaoxiao2021-02-28  36

项目需求:

1. 完成宠物管理系统!    1. 新建一个Pet类       1. 属性:          1. 名字String name          2. 性别 char sex          3. 年龄 int age       2. 方法:          1. 吃 eat          2. 叫 howl          3. 显示宠物信息 show    2. 新建一个 Dog类 继承 Pet类       1. 新增属性:          1. 品种 kind       2. 新增方法:          1. 跑 run          2. 拆家 dealer    3. 新建一个Cat 类 继承 Pet类       1. 新增属性          1. 和主人的亲密度 love       2. 新增方法          1. 跑 run          2. 卖萌 actingCute    4. 新建一个类 PetShop       1. 属性:          1. 宠物店名字 String name          2. 存储宠物的笼子 Pet[] pets=new Pet[100];(宠物店最多能存储100只宠物)       2. 方法:          1. 进货宠物 private boolean addPet(Pet pet);//私有进货方法。          2. 收购宠物 public boolean purchasePet(Pet pet);//公开收购宠物方法,在该方法调用 进货宠物 addPet 方法。          3. 销售宠物 private Pet sellPet();//销售流程私有。          4. 顾客买宠物 public Pet buyPet(int type);//1代表买 狗,2代表买猫。返回Pet。在该方法调用 销售宠物 sellPet 方法。          5. 向顾客展示所有宠物信息 public void showPets()    5. 测试(用户的角色是顾客):       1. 顾客进入宠物店。PetShop.name宠物店老板说:你是要买宠物(1)?还是要出售宠物(2)?还是随便看看然后离开(0)?          1. 购买宠物:             1. 需要买什么宠物?狗(1),猫(2)                1. 选择狗:                   1. 要什么品种的狗?                   2. 输入完信息后查找宠物店是否存在该品种的狗,如果存在则随机出一个符合品种的狗购买,然后购买成功!输出狗的信息。                      如果不存在该品种的狗,则提示:你选择的品种本店没有,请重新输入!                      (输入:exit离开)                      注意:!!!                      不要求购买交易流程等。只要能通过品种,然后从宠物店中所有该品种的狗随机出一只即可。                2. 选择猫:                   1. 需要多少亲密度的猫咪?(0-100)                   2. 如果输入的亲密度为 X 则 随机出  [x-10~x+10]范围的猫咪,然后完成购买,输出猫咪信息。否则(流程参考狗的购买流程)          2. 出售宠物:             1. 你的宠物是?狗(1),猫(2)                1. 选择狗:                   1. 是什么品种的狗?                   2. 是什么性别的狗?                   3. 狗的年龄多大?                   4. 狗取什么名字?                   5. 输入完信息后完成出售,出售宠物成功!                2. 选择猫:                   1. 你的猫咪和主人的亲密度为多少?(0-100)                   2. 是什么性别的猫?                   3. 猫年龄多大?                   4. 猫取什么名字?                   5. 输入完信息后完成销售,销售成功!          3. 离开! 注:[购买宠物]、[出售宠物]、[离开] 。等菜单可以循环选择!

项目源码下载地址:

https://github.com/benxiaohai8888/Javase/tree/master/work

项目代码:

1 Pet.java

package work; public abstract class Pet { protected String name; protected String sex; protected int age; public Pet(String name, String sex, int age) { this.name = name; this.sex = sex; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public abstract void eat(); public abstract void howl(); public abstract void show(); public abstract void run(); }

2.Cat.java

package work; public class Cat extends Pet { private int love; public Cat(String name, String sex, int age, int love) { super(name, sex, age); this.love = love; } public void setLove(int love) { if (love < 0 || love > 100) { this.love = 20; } else this.love = love; } public int getLove() { return love; } public static void main(String[] args) { } @Override public void eat() { } @Override public void howl() { } @Override public void show() { System.out.println(this.toString()); } @Override public void run() { } public void actingCute() { } @Override public String toString() { return "Cat [love=" + love + ", name=" + name + ", sex=" + sex + ", age=" + age + "]"; } }

3. Dog.jva

package work; public class Dog extends Pet { private String kind; public Dog(String name, String sex, int age, String kind) { super(name, sex, age); this.kind = kind; } public String getKind() { return kind; } public void setKind(String kind) { this.kind = kind; } @Override public void eat() { } @Override public void howl() { } @Override public void show() { System.out.println(this.toString()); } @Override public void run() { } public void dealer() { } @Override public String toString() { return "Dog [kind=" + kind + ", name=" + name + ", sex=" + sex + ", age=" + age + "]"; } }

4.PetShop.java

package work; import java.util.Random; public class PetShop { private String name; private Pet[] pets = new Pet[10]; private int count = 0; public PetShop(String name) { this.name = name; addPet(new Dog("小黑", "雄", 2, "拉布拉多")); addPet(new Cat("莉莉", "母", 4, 80)); addPet(new Dog("小白", "雌", 1, "中华田园犬")); addPet(new Cat("露西", "母", 6, 85)); addPet(new Dog("andy", "公", 1, "藏獒")); addPet(new Cat("默默", "母", 2, 50)); addPet(new Cat("小强", "公", 8, 89)); addPet(new Dog("小小", "雄", 2, "拉布拉多")); addPet(new Dog("big", "雄", 2, "中华田园犬")); } // 判断是否有用户输入的品种 public boolean hasDogKind(String kind) { for (Pet pet : pets) { if (pet instanceof Dog) { Dog d = (Dog) pet; boolean equals = d.getKind().equals(kind); if (equals) { return true; } } } return false; } public String getName() { return name; } public int size() { return count; } // 进货宠物 private boolean addPet(Pet pet);//私有进货方法。 private boolean addPet(Pet pet) { if (count >= pets.length) { return false; } pets[count] = pet; count++; return true; } // 收购宠物 public boolean purchasePet(Pet pet);//公开收购宠物方法,在该方法调用 进货宠物 addPet // 方法。 public boolean purchasePet(Pet pet) { return this.addPet(pet); } // 购买狗的方法 public Pet buyDog(String kind) { int kindNum = 0; for (int i = 0; i < pets.length; i++) { Pet pet = pets[i]; if (pet instanceof Dog) { Dog d = (Dog) pet; boolean equals = d.getKind().equals(kind); if (equals) { kindNum++; } } } int[] kindIndex = new int[kindNum];// 保存符合 kind品种的dog的下标位置 int k = 0; for (int i = 0; i < pets.length; i++) { Pet pet = pets[i]; if (pet instanceof Dog) { Dog d = (Dog) pet; boolean equals = d.getKind().equals(kind); if (equals) { kindIndex[k++] = i; } } } Random r = new Random(); int nextInt = r.nextInt(kindIndex.length); int i = kindIndex[nextInt]; Pet result = pets[i];// 确定卖出去的宠物 capaticyConfirm(i); return result; } // 购买宠物成功后将数组长度减少 private void capaticyConfirm(int index) { // 5 6 int tag = index; while (tag < count - 1) { pets[tag] = pets[tag + 1]; tag++; } pets[--count] = null; } // 5. 向顾客展示所有宠物信息 public void showPets() public void showPets() { for (int i = 0; i < count; i++) { pets[i].show(); } } // 判断是否有用户要购买的猫 public boolean hasCatLove(int love) { for (Pet pet : pets) { if (pet instanceof Cat) { Cat c = (Cat) pet; boolean equals = love - c.getLove() >= -10 && love - c.getLove() <= 10; if (equals) { return true; } } } return false; } // 购买猫的方法 public Pet buyCat(int love) { int kindNum = 0; for (int i = 0; i < pets.length; i++) { Pet pet = pets[i]; if (pet instanceof Cat) { Cat c = (Cat) pet; boolean equals = love - c.getLove() >= -10 && love - c.getLove() <= 10; if (equals) { kindNum++; } } } int[] kindIndex = new int[kindNum];// 保存符合 love的cat的下标位置 int k = 0; for (int i = 0; i < pets.length; i++) { Pet pet = pets[i]; if (pet instanceof Cat) { Cat c = (Cat) pet; boolean equals = love - c.getLove() >= -10 && love - c.getLove() <= 10; if (equals) { kindIndex[k++] = i; } } } Random r = new Random(); int nextInt = r.nextInt(kindIndex.length); int i = kindIndex[nextInt]; Pet result = pets[i];// 确定卖出去的宠物 capaticyConfirm(i); return result; } }

5 Main.java

package work; import java.util.Scanner; public class Main { // 键盘输入 static Scanner sc = new Scanner(System.in); PetShop petShop = new PetShop("老王"); public static void main(String[] args) { Main main = new Main(); main.start(); } // 开始方法 private void start() { while (true) { System.out.println(petShop.getName() + "说:你是要买宠物(1)?还是要出售宠物(2)?查看所有宠物(3)?还是随便看看然后离开(0)?"); int choise = sc.nextInt(); switch (choise) { case 1: this.buyPetView(); break; case 2: this.purchasePetView(); break; case 3: petShop.showPets(); break; default: System.out.println("再见..."); return; } } } // 收购宠物 private void purchasePetView() { int choise = inputInt("你的宠物是?狗(1),猫(2)"); switch (choise) { case 1: purchaseDogView(); break; case 2: purchaseCatView(); break; default: break; } } // 收购猫 private void purchaseCatView() { // 1. 你的猫咪和主人的亲密度为多少?(0-100) // 2. 是什么性别的猫? // 3. 猫年龄多大? // 4. 猫取什么名字? int love = inputInt("你的猫咪和主人的亲密度为多少?(0-100)"); String sex = inputStr("是什么性别的猫?"); int age = inputInt("猫年龄多大?"); String name = inputStr("猫取什么名字?"); Cat cat = new Cat(name, sex, age, love); boolean purchasePet = petShop.purchasePet(cat); System.out.println(purchasePet ? "收购成功!" : "收购失败!"); } // 收购狗 private void purchaseDogView() { // 1. 是什么品种的狗? // 2. 是什么性别的狗? // 3. 狗的年龄多大? // 4. 狗取什么名字? String kind = inputStr("是什么品种的狗?"); String sex = inputStr("是什么性别的狗?"); String name = inputStr("狗取什么名字?"); int age = inputInt("狗的年龄多大?"); Dog dog = new Dog(name, sex, age, kind); boolean purchasePet = petShop.purchasePet(dog); System.out.println(purchasePet ? "收购成功!" : "收购失败!"); } // 购买宠物 private void buyPetView() { switch (inputInt("需要买什么宠物?狗(1),猫(2)")) { case 1: buyDogView(); break; case 2: buyCatView(); break; default: break; } } /** * 购买cat的流程 */ private void buyCatView() { while (true) { int love = inputInt("需要多少亲密度的猫咪?(0-100)"); boolean hasCatLove = petShop.hasCatLove(love); if (!hasCatLove) { System.out.println("你选择的亲密度本店没有,请重新输入!"); continue; } Pet buyCat = petShop.buyCat(love); buyCat.show(); return; } } /** * 购买dog的流程 */ private void buyDogView() { while (true) { String kind = inputStr("要什么品种的狗?"); boolean hasDogKind = petShop.hasDogKind(kind); if (!hasDogKind) { System.out.println("你选择的品种本店没有,请重新输入!"); continue; } Pet buyDog = petShop.buyDog(kind); buyDog.show(); return; } } // 输入int方法 public int inputInt(String tip) { System.out.println(tip); return sc.nextInt(); } // 输入String方法 public String inputStr(String tip) { System.out.println(tip); return sc.next(); } }

项目截图:

转载请注明原文地址: https://www.6miu.com/read-36023.html

最新回复(0)