当前位置:   article > 正文

java 宠物店管理系统_宠物管理系统java

宠物管理系统java

项目需求:

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

  1. package work;
  2. public abstract class Pet {
  3. protected String name;
  4. protected String sex;
  5. protected int age;
  6. public Pet(String name, String sex, int age) {
  7. this.name = name;
  8. this.sex = sex;
  9. this.age = age;
  10. }
  11. public String getName() {
  12. return name;
  13. }
  14. public void setName(String name) {
  15. this.name = name;
  16. }
  17. public String getSex() {
  18. return sex;
  19. }
  20. public void setSex(String sex) {
  21. this.sex = sex;
  22. }
  23. public int getAge() {
  24. return age;
  25. }
  26. public void setAge(int age) {
  27. this.age = age;
  28. }
  29. public abstract void eat();
  30. public abstract void howl();
  31. public abstract void show();
  32. public abstract void run();
  33. }


2.Cat.java

  1. package work;
  2. public class Cat extends Pet {
  3. private int love;
  4. public Cat(String name, String sex, int age, int love) {
  5. super(name, sex, age);
  6. this.love = love;
  7. }
  8. public void setLove(int love) {
  9. if (love < 0 || love > 100) {
  10. this.love = 20;
  11. } else
  12. this.love = love;
  13. }
  14. public int getLove() {
  15. return love;
  16. }
  17. public static void main(String[] args) {
  18. }
  19. @Override
  20. public void eat() {
  21. }
  22. @Override
  23. public void howl() {
  24. }
  25. @Override
  26. public void show() {
  27. System.out.println(this.toString());
  28. }
  29. @Override
  30. public void run() {
  31. }
  32. public void actingCute() {
  33. }
  34. @Override
  35. public String toString() {
  36. return "Cat [love=" + love + ", name=" + name + ", sex=" + sex + ", age=" + age + "]";
  37. }
  38. }


3. Dog.jva

  1. package work;
  2. public class Dog extends Pet {
  3. private String kind;
  4. public Dog(String name, String sex, int age, String kind) {
  5. super(name, sex, age);
  6. this.kind = kind;
  7. }
  8. public String getKind() {
  9. return kind;
  10. }
  11. public void setKind(String kind) {
  12. this.kind = kind;
  13. }
  14. @Override
  15. public void eat() {
  16. }
  17. @Override
  18. public void howl() {
  19. }
  20. @Override
  21. public void show() {
  22. System.out.println(this.toString());
  23. }
  24. @Override
  25. public void run() {
  26. }
  27. public void dealer() {
  28. }
  29. @Override
  30. public String toString() {
  31. return "Dog [kind=" + kind + ", name=" + name + ", sex=" + sex + ", age=" + age + "]";
  32. }
  33. }


4.PetShop.java

  1. package work;
  2. import java.util.Random;
  3. public class PetShop {
  4. private String name;
  5. private Pet[] pets = new Pet[10];
  6. private int count = 0;
  7. public PetShop(String name) {
  8. this.name = name;
  9. addPet(new Dog("小黑", "雄", 2, "拉布拉多"));
  10. addPet(new Cat("莉莉", "母", 4, 80));
  11. addPet(new Dog("小白", "雌", 1, "中华田园犬"));
  12. addPet(new Cat("露西", "母", 6, 85));
  13. addPet(new Dog("andy", "公", 1, "藏獒"));
  14. addPet(new Cat("默默", "母", 2, 50));
  15. addPet(new Cat("小强", "公", 8, 89));
  16. addPet(new Dog("小小", "雄", 2, "拉布拉多"));
  17. addPet(new Dog("big", "雄", 2, "中华田园犬"));
  18. }
  19. // 判断是否有用户输入的品种
  20. public boolean hasDogKind(String kind) {
  21. for (Pet pet : pets) {
  22. if (pet instanceof Dog) {
  23. Dog d = (Dog) pet;
  24. boolean equals = d.getKind().equals(kind);
  25. if (equals) {
  26. return true;
  27. }
  28. }
  29. }
  30. return false;
  31. }
  32. public String getName() {
  33. return name;
  34. }
  35. public int size() {
  36. return count;
  37. }
  38. // 进货宠物 private boolean addPet(Pet pet);//私有进货方法。
  39. private boolean addPet(Pet pet) {
  40. if (count >= pets.length) {
  41. return false;
  42. }
  43. pets[count] = pet;
  44. count++;
  45. return true;
  46. }
  47. // 收购宠物 public boolean purchasePet(Pet pet);//公开收购宠物方法,在该方法调用 进货宠物 addPet
  48. // 方法。
  49. public boolean purchasePet(Pet pet) {
  50. return this.addPet(pet);
  51. }
  52. // 购买狗的方法
  53. public Pet buyDog(String kind) {
  54. int kindNum = 0;
  55. for (int i = 0; i < pets.length; i++) {
  56. Pet pet = pets[i];
  57. if (pet instanceof Dog) {
  58. Dog d = (Dog) pet;
  59. boolean equals = d.getKind().equals(kind);
  60. if (equals) {
  61. kindNum++;
  62. }
  63. }
  64. }
  65. int[] kindIndex = new int[kindNum];// 保存符合 kind品种的dog的下标位置
  66. int k = 0;
  67. for (int i = 0; i < pets.length; i++) {
  68. Pet pet = pets[i];
  69. if (pet instanceof Dog) {
  70. Dog d = (Dog) pet;
  71. boolean equals = d.getKind().equals(kind);
  72. if (equals) {
  73. kindIndex[k++] = i;
  74. }
  75. }
  76. }
  77. Random r = new Random();
  78. int nextInt = r.nextInt(kindIndex.length);
  79. int i = kindIndex[nextInt];
  80. Pet result = pets[i];// 确定卖出去的宠物
  81. capaticyConfirm(i);
  82. return result;
  83. }
  84. // 购买宠物成功后将数组长度减少
  85. private void capaticyConfirm(int index) {
  86. // 5 6
  87. int tag = index;
  88. while (tag < count - 1) {
  89. pets[tag] = pets[tag + 1];
  90. tag++;
  91. }
  92. pets[--count] = null;
  93. }
  94. // 5. 向顾客展示所有宠物信息 public void showPets()
  95. public void showPets() {
  96. for (int i = 0; i < count; i++) {
  97. pets[i].show();
  98. }
  99. }
  100. // 判断是否有用户要购买的猫
  101. public boolean hasCatLove(int love) {
  102. for (Pet pet : pets) {
  103. if (pet instanceof Cat) {
  104. Cat c = (Cat) pet;
  105. boolean equals = love - c.getLove() >= -10 && love - c.getLove() <= 10;
  106. if (equals) {
  107. return true;
  108. }
  109. }
  110. }
  111. return false;
  112. }
  113. // 购买猫的方法
  114. public Pet buyCat(int love) {
  115. int kindNum = 0;
  116. for (int i = 0; i < pets.length; i++) {
  117. Pet pet = pets[i];
  118. if (pet instanceof Cat) {
  119. Cat c = (Cat) pet;
  120. boolean equals = love - c.getLove() >= -10 && love - c.getLove() <= 10;
  121. if (equals) {
  122. kindNum++;
  123. }
  124. }
  125. }
  126. int[] kindIndex = new int[kindNum];// 保存符合 love的cat的下标位置
  127. int k = 0;
  128. for (int i = 0; i < pets.length; i++) {
  129. Pet pet = pets[i];
  130. if (pet instanceof Cat) {
  131. Cat c = (Cat) pet;
  132. boolean equals = love - c.getLove() >= -10 && love - c.getLove() <= 10;
  133. if (equals) {
  134. kindIndex[k++] = i;
  135. }
  136. }
  137. }
  138. Random r = new Random();
  139. int nextInt = r.nextInt(kindIndex.length);
  140. int i = kindIndex[nextInt];
  141. Pet result = pets[i];// 确定卖出去的宠物
  142. capaticyConfirm(i);
  143. return result;
  144. }
  145. }


5 Main.java

  1. package work;
  2. import java.util.Scanner;
  3. public class Main {
  4. // 键盘输入
  5. static Scanner sc = new Scanner(System.in);
  6. PetShop petShop = new PetShop("老王");
  7. public static void main(String[] args) {
  8. Main main = new Main();
  9. main.start();
  10. }
  11. // 开始方法
  12. private void start() {
  13. while (true) {
  14. System.out.println(petShop.getName() + "说:你是要买宠物(1)?还是要出售宠物(2)?查看所有宠物(3)?还是随便看看然后离开(0)?");
  15. int choise = sc.nextInt();
  16. switch (choise) {
  17. case 1:
  18. this.buyPetView();
  19. break;
  20. case 2:
  21. this.purchasePetView();
  22. break;
  23. case 3:
  24. petShop.showPets();
  25. break;
  26. default:
  27. System.out.println("再见...");
  28. return;
  29. }
  30. }
  31. }
  32. // 收购宠物
  33. private void purchasePetView() {
  34. int choise = inputInt("你的宠物是?狗(1),猫(2)");
  35. switch (choise) {
  36. case 1:
  37. purchaseDogView();
  38. break;
  39. case 2:
  40. purchaseCatView();
  41. break;
  42. default:
  43. break;
  44. }
  45. }
  46. // 收购猫
  47. private void purchaseCatView() {
  48. // 1. 你的猫咪和主人的亲密度为多少?(0-100)
  49. // 2. 是什么性别的猫?
  50. // 3. 猫年龄多大?
  51. // 4. 猫取什么名字?
  52. int love = inputInt("你的猫咪和主人的亲密度为多少?(0-100)");
  53. String sex = inputStr("是什么性别的猫?");
  54. int age = inputInt("猫年龄多大?");
  55. String name = inputStr("猫取什么名字?");
  56. Cat cat = new Cat(name, sex, age, love);
  57. boolean purchasePet = petShop.purchasePet(cat);
  58. System.out.println(purchasePet ? "收购成功!" : "收购失败!");
  59. }
  60. // 收购狗
  61. private void purchaseDogView() {
  62. // 1. 是什么品种的狗?
  63. // 2. 是什么性别的狗?
  64. // 3. 狗的年龄多大?
  65. // 4. 狗取什么名字?
  66. String kind = inputStr("是什么品种的狗?");
  67. String sex = inputStr("是什么性别的狗?");
  68. String name = inputStr("狗取什么名字?");
  69. int age = inputInt("狗的年龄多大?");
  70. Dog dog = new Dog(name, sex, age, kind);
  71. boolean purchasePet = petShop.purchasePet(dog);
  72. System.out.println(purchasePet ? "收购成功!" : "收购失败!");
  73. }
  74. // 购买宠物
  75. private void buyPetView() {
  76. switch (inputInt("需要买什么宠物?狗(1),猫(2)")) {
  77. case 1:
  78. buyDogView();
  79. break;
  80. case 2:
  81. buyCatView();
  82. break;
  83. default:
  84. break;
  85. }
  86. }
  87. /**
  88. * 购买cat的流程
  89. */
  90. private void buyCatView() {
  91. while (true) {
  92. int love = inputInt("需要多少亲密度的猫咪?(0-100)");
  93. boolean hasCatLove = petShop.hasCatLove(love);
  94. if (!hasCatLove) {
  95. System.out.println("你选择的亲密度本店没有,请重新输入!");
  96. continue;
  97. }
  98. Pet buyCat = petShop.buyCat(love);
  99. buyCat.show();
  100. return;
  101. }
  102. }
  103. /**
  104. * 购买dog的流程
  105. */
  106. private void buyDogView() {
  107. while (true) {
  108. String kind = inputStr("要什么品种的狗?");
  109. boolean hasDogKind = petShop.hasDogKind(kind);
  110. if (!hasDogKind) {
  111. System.out.println("你选择的品种本店没有,请重新输入!");
  112. continue;
  113. }
  114. Pet buyDog = petShop.buyDog(kind);
  115. buyDog.show();
  116. return;
  117. }
  118. }
  119. // 输入int方法
  120. public int inputInt(String tip) {
  121. System.out.println(tip);
  122. return sc.nextInt();
  123. }
  124. // 输入String方法
  125. public String inputStr(String tip) {
  126. System.out.println(tip);
  127. return sc.next();
  128. }
  129. }


项目截图:


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/374963
推荐阅读
相关标签
  

闽ICP备14008679号