项目需求:

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;} elsethis.love = love;}public int getLove() {return love;}public static void main(String[] args) {}@Overridepublic void eat() {}@Overridepublic void howl() {}@Overridepublic void show() {System.out.println(this.toString());}@Overridepublic void run() {}public void actingCute() {}@Overridepublic 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;}@Overridepublic void eat() {}@Overridepublic void howl() {}@Overridepublic void show() {System.out.println(this.toString());}@Overridepublic void run() {}public void dealer() {}@Overridepublic 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 6int 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();}
}

项目截图:

java 宠物店管理系统相关推荐

  1. 基于JAVA宠物店管理系统计算机毕业设计源码+数据库+lw文档+系统+部署

    基于JAVA宠物店管理系统计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA宠物店管理系统计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S架构 开发语言: ...

  2. [附源码]Python计算机毕业设计SSM基于JAVA宠物店管理系统(程序+LW)

    环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,St ...

  3. [附源码]JAVA+ssm基于JAVA宠物店管理系统(程序+Lw)

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  4. [附源码]Nodejs计算机毕业设计基于JAVA宠物店管理系统Express(程序+LW)

    该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程.欢迎交流 项目运行 环境配置: Node.js+ Vscode + Mysql5.7 + HBuilderX+Navicat11+Vue ...

  5. 基于JAVA学生会管理系统2021计算机毕业设计源码+系统+数据库+lw文档+部署

    基于JAVA学生会管理系统2021计算机毕业设计源码+系统+数据库+lw文档+部署 基于JAVA学生会管理系统2021计算机毕业设计源码+系统+数据库+lw文档+部署 本源码技术栈: 项目架构:B/S ...

  6. 计算机毕业设计JAVA课堂管理系统小程序用户端mybatis+源码+调试部署+系统+数据库+lw

    计算机毕业设计JAVA课堂管理系统小程序用户端mybatis+源码+调试部署+系统+数据库+lw 计算机毕业设计JAVA课堂管理系统小程序用户端mybatis+源码+调试部署+系统+数据库+lw 本源 ...

  7. JAVA电费管理系统计算机毕业设计Mybatis+系统+数据库+调试部署

    JAVA电费管理系统计算机毕业设计Mybatis+系统+数据库+调试部署 JAVA电费管理系统计算机毕业设计Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构:B/S架构 开发语言:Ja ...

  8. 基于javaweb的宠物店管理系统(java+jsp+javascript+bootstrap+mysql)

    基于javaweb的宠物店管理系统(java+jsp+javascript+bootstrap+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/i ...

  9. 基于Java毕业设计宠物店管理系统源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计宠物店管理系统源码+系统+mysql+lw文档+部署软件 基于Java毕业设计宠物店管理系统源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B/S架构 开发语 ...

  10. [附源码]java毕业设计宠物店管理系统

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

最新文章

  1. 发布后网站浏览时出现乱码
  2. 10大黑客专用的 Linux 操作系统,你了解哪些?
  3. datagrid底部显示水平滚动_看完《惊奇队长》等彩蛋,我想到了一个制作PPT滚动字幕的方法...
  4. 随机抽样一致算法(Random sample consensus,RANSAC)
  5. div图片垂直居中 如何使div中图片垂直居中
  6. paper reading:[第一代GCN] Spectral Networks and Deep Locally Connected Networks on Graphs
  7. sqlite 服务器数据库文件,sqlite可以做服务器数据库吗
  8. netty 百度网盘 密码
  9. 微信小程序TabBar的使用
  10. 短视频从入门到秃头(二)——拍摄第一条短视频
  11. 360影视php采集接口,苹果CMS后台联盟采集API接口数据
  12. 前端工程师的摸鱼日常(4)
  13. 360的网络流量监测
  14. 使用nslookup查询域名的MX记录
  15. 信驰达微信iBeacon摇一摇周边方案ibeacon蓝牙设备
  16. c语言海报,竞选海报 c语言
  17. 光敏传感器实验报告_光敏传感器光电特性测量实验分析报告.ppt
  18. 网页标签中description是什么意思
  19. 维盟智能路由_维盟智能WIFI路由器怎么设置?
  20. electron应用通过web页面按钮唤醒

热门文章

  1. f2fs学习笔记 - 9. f2fs 写文件
  2. 树莓派基础实验9:蜂鸣器实验
  3. 西门子基于RS485通讯恒压供水一拖二S7-200SMART_PLC
  4. 计算机怎么开启tftp服务器,Win7系统如何开启TFTP服务器?开启TFTP服务器方法
  5. Wireshark-ICMP数据报分析
  6. viper4android md,【xposed】微信主题模块(MDWechat)v3.5.0
  7. 渠道为王:销售渠道建设3部曲 读后感
  8. python 大智慧股池_大智慧的一般设置及股票池的安装步骤、使用方法
  9. C++网络编程实例(socket)
  10. oracle导出要工具,Oracle导出工具的具体操作步骤详解