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
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 宠物店管理系统相关推荐
- 基于JAVA宠物店管理系统计算机毕业设计源码+数据库+lw文档+系统+部署
基于JAVA宠物店管理系统计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA宠物店管理系统计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S架构 开发语言: ...
- [附源码]Python计算机毕业设计SSM基于JAVA宠物店管理系统(程序+LW)
环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,St ...
- [附源码]JAVA+ssm基于JAVA宠物店管理系统(程序+Lw)
项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...
- [附源码]Nodejs计算机毕业设计基于JAVA宠物店管理系统Express(程序+LW)
该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程.欢迎交流 项目运行 环境配置: Node.js+ Vscode + Mysql5.7 + HBuilderX+Navicat11+Vue ...
- 基于JAVA学生会管理系统2021计算机毕业设计源码+系统+数据库+lw文档+部署
基于JAVA学生会管理系统2021计算机毕业设计源码+系统+数据库+lw文档+部署 基于JAVA学生会管理系统2021计算机毕业设计源码+系统+数据库+lw文档+部署 本源码技术栈: 项目架构:B/S ...
- 计算机毕业设计JAVA课堂管理系统小程序用户端mybatis+源码+调试部署+系统+数据库+lw
计算机毕业设计JAVA课堂管理系统小程序用户端mybatis+源码+调试部署+系统+数据库+lw 计算机毕业设计JAVA课堂管理系统小程序用户端mybatis+源码+调试部署+系统+数据库+lw 本源 ...
- JAVA电费管理系统计算机毕业设计Mybatis+系统+数据库+调试部署
JAVA电费管理系统计算机毕业设计Mybatis+系统+数据库+调试部署 JAVA电费管理系统计算机毕业设计Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构:B/S架构 开发语言:Ja ...
- 基于javaweb的宠物店管理系统(java+jsp+javascript+bootstrap+mysql)
基于javaweb的宠物店管理系统(java+jsp+javascript+bootstrap+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/i ...
- 基于Java毕业设计宠物店管理系统源码+系统+mysql+lw文档+部署软件
基于Java毕业设计宠物店管理系统源码+系统+mysql+lw文档+部署软件 基于Java毕业设计宠物店管理系统源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B/S架构 开发语 ...
- [附源码]java毕业设计宠物店管理系统
项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...
最新文章
- 发布后网站浏览时出现乱码
- 10大黑客专用的 Linux 操作系统,你了解哪些?
- datagrid底部显示水平滚动_看完《惊奇队长》等彩蛋,我想到了一个制作PPT滚动字幕的方法...
- 随机抽样一致算法(Random sample consensus,RANSAC)
- div图片垂直居中 如何使div中图片垂直居中
- paper reading:[第一代GCN] Spectral Networks and Deep Locally Connected Networks on Graphs
- sqlite 服务器数据库文件,sqlite可以做服务器数据库吗
- netty 百度网盘 密码
- 微信小程序TabBar的使用
- 短视频从入门到秃头(二)——拍摄第一条短视频
- 360影视php采集接口,苹果CMS后台联盟采集API接口数据
- 前端工程师的摸鱼日常(4)
- 360的网络流量监测
- 使用nslookup查询域名的MX记录
- 信驰达微信iBeacon摇一摇周边方案ibeacon蓝牙设备
- c语言海报,竞选海报 c语言
- 光敏传感器实验报告_光敏传感器光电特性测量实验分析报告.ppt
- 网页标签中description是什么意思
- 维盟智能路由_维盟智能WIFI路由器怎么设置?
- electron应用通过web页面按钮唤醒
热门文章
- f2fs学习笔记 - 9. f2fs 写文件
- 树莓派基础实验9:蜂鸣器实验
- 西门子基于RS485通讯恒压供水一拖二S7-200SMART_PLC
- 计算机怎么开启tftp服务器,Win7系统如何开启TFTP服务器?开启TFTP服务器方法
- Wireshark-ICMP数据报分析
- viper4android md,【xposed】微信主题模块(MDWechat)v3.5.0
- 渠道为王:销售渠道建设3部曲 读后感
- python 大智慧股池_大智慧的一般设置及股票池的安装步骤、使用方法
- C++网络编程实例(socket)
- oracle导出要工具,Oracle导出工具的具体操作步骤详解