首页 > 分享 > java宠物商店管理系统

java宠物商店管理系统

java面向对象编写宠物商店管理系统,控制台输出和输入,使用map集合和list集合存储输入的数据信息。

宠物抽象类:

public class Pet {

private String name;

private int age;

private String sex;

private String strain;

private int inPrice;

private int outPrice;

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 getSex() {

return sex;

}

public void setSex(String sex) {

this.sex = sex;

}

public String getStrain() {

return strain;

}

public void setStrain(String strain) {

this.strain = strain;

}

public int getInPrice() {

return inPrice;

}

public void setInPrice(int inPrice) {

this.inPrice = inPrice;

}

public int getOutPrice() {

return outPrice;

}

public void setOutPrice(int outPrice) {

this.outPrice = outPrice;

}

public Pet() {

}

public Pet(String name, int age, String sex, String strain, int inPrice, int outPrice) {

this.name = name;

this.age = age;

this.sex = sex;

this.strain = strain;

this.inPrice = inPrice;

this.outPrice = outPrice;

}

public void play() {

System.out.printf("宠物:%stt年龄:%dtt性别:%stt品种:%stt购入价格:%dtt售出价格:%dtt利润:%dn",

this.name, this.age, this.sex, this.strain, this.inPrice, this.outPrice, (this.outPrice - this.inPrice));

}

}

宠物管理接口:

import java.util.ArrayList;

//宠物管理接口

public interface PetAdministration {

/**

void showAllPets(ArrayList<Pet>pets);

/**

void findPetByName(String name,ArrayList<Pet>pets);

/**

void deletePetByName(String name,ArrayList<Pet>pets,ArrayList<Pet> pets1);

/**

Pet petInformation();

/**

void addPets(Pet pet,ArrayList<Pet>pets);

/**

void updatePets(String name,ArrayList<Pet>pets);

/**

void sortByInprice(ArrayList<Pet>pets);

/**

void sortByOutPrice(ArrayList<Pet>pets);

/**

void sortByProfit(ArrayList<Pet>pets);

/**

void findDeletePets(ArrayList<Pet>pets1);

}

接口实现类:

import org.junit.Test;

import java.util.*;

import java.util.stream.Collectors;

/**

public class PetBiz implements PetAdministration {

Scanner input = new Scanner(System.in);

Pet pet4 = new Pet();

/**

@Override

public void showAllPets(ArrayList<Pet> pets) {

if (pets.size() == 0) {

System.out.println("没有查询到宠物信息!!您的宠物商店还没有宠物!!");

}

for (Pet pet : pets) {//遍历集合 调用play方法输出

if (pet.getName() != null) {

pet.play();

}

}

}

/**

@Override

public void findPetByName(String name, ArrayList<Pet> pets) {

boolean flag = false;//标志位 flag

for (Pet pet1 : pets) {//遍历集合

if (pet1.getName().equals(name)) {//如果传递的参数(name)和集合中的name相同

pet1.play();//调用显示方法

flag = true;//修改标志位

break;//跳出循环

}

}

if (!flag) {//如果遍历后标志位没有变,输出该宠物不存在

System.out.println(name + "不存在!!");

}

}

/**

@Override

public void deletePetByName(String name, ArrayList<Pet> pets, ArrayList<Pet> pets1) {

boolean flag = false;//标志位

for (Pet pet2 : pets) {

if (pet2.getName().equals(name)) {

pet4 = pet2;

pets1.add(pet4);

pets.remove(pet2);

flag = true;

System.out.println("宠物删除成功!!");

break;

}

}

if (!flag) {

System.out.println("删除失败!!! 宠物" + name + "不存在!!");

}

}

/**

@Override

public Pet petInformation() {

System.out.print("宠物名字:");

String name = input.next();

System.out.print("年龄:");

int age = input.nextInt();

System.out.print("性别:");

String sex = input.next();

System.out.print("品种:");

String strain = input.next();

System.out.print("购入价格:");

int inPrice = input.nextInt();

System.out.print("售出价格:");

int outPrice = input.nextInt();

return new Pet(name, age, sex, strain, inPrice, outPrice);

}

/**

@Override

public void addPets(Pet pet, ArrayList<Pet> pets) {

pets.add(pet);//对象.add(对象)

}

/**

@Override

public void updatePets(String name, ArrayList<Pet> pets) {

boolean flag = false;//标志位

for (Pet pet2 : pets) {

if (pet2.getName().equals(name)) {//对比集合中的宠物姓名和输入的宠物姓名 如果相同删除该宠物信息

pets.remove(pet2);

System.out.println("请输入要修改的宠物信息:");

Pet pet3 = petInformation();//调用输入宠物信息的方法

pets.add(pet3);

flag = true;//修改标志位

System.out.println("修改成功!!");

break;

}

}

if (!flag) {

System.out.println(name + "不存在!!");

}

}

/**

@Override

public void sortByInprice(ArrayList<Pet> pets) {

/* //Collections是一个工具类,sort是其中的静态方法,是用来对List集合进行排序的

//当集合中的元素为某个类的实例时,则必须传入比较器,比较器无法省略

//compare(类名 o1,类名 o2) 返回值为

//当值>0时,相邻的两个元素o1和o2不交换位置;值<0时,相邻的两个元素o1和o2交换位置。

// 需要注意的是,o1是List中下标较大的那个元素,o2是List中下标较小的那个元素

Collections.sort(pets, (o1, o2) -> o1.getInPrice() - o2.getInPrice());*/

/*双冒号(::)运算符在Java 8中被用作方法引用(method reference)*/

Collections.sort(pets, Comparator.comparingInt(Pet::getInPrice).reversed());

}

/**

@Override

public void sortByOutPrice(ArrayList<Pet> pets) {

Collections.sort(pets, Comparator.comparingInt(Pet::getOutPrice));

}

/**

@Override

public void sortByProfit(ArrayList<Pet> pets) {

Collections.sort(pets, Comparator.comparingInt(o -> (o.getOutPrice() - o.getInPrice())));

}

/**

@Override

public void findDeletePets(ArrayList<Pet> pets1) {

if (pets1.size() == 0) {

System.out.println("还没有删除数据哦!!!");

} else {

for (Pet pet : pets1) {

pet.play();

}

}

}

}

工具类:

import org.junit.Test;

import java.text.SimpleDateFormat;

import java.util.*;

public class Tool1 {

//属性

String userName;//用户名

String password;//密码

Map<String, String> map = new HashMap<>();

Scanner input = new Scanner(System.in);

@Test

public void register() {//注册

map.put("zsss1", "111111");//初始化信息

map.put("admin1", "123456");

map.put("admin", "111111");

System.out.println("*****欢迎使用宠物商店管理系统!!!*****");

while (true) {

System.out.println("请选择要进行的操作:1、注册 2、登录");//菜单

int num3 = input.nextInt();

if (num3 == 1) {//注册

while (true) {

System.out.print("请输入用户名:");

userName = input.next();

System.out.print("请输入密码:");

password = input.next();

System.out.print("请再次输入密码:");

String password1 = input.next();

boolean flag = false;//标志位

//执行分支 判断用户名和密码长度是否满足

if (userName.length() > 3 && password1.length() >= 6) {//判断信息长度是否满足设置的要求

//判断用户名是否已存在 用map集合中的键和用户名对比,用户名不存在,将其加入到集合中,存在给出提示

// Set keySet = map.keySet();//key的set集合,即map集合中所有的userName

//只需要对比用户名即可,如果用户名存在,修改标志位,不存在继续执行下一步操作

String[] str = map.keySet().toArray(new String[map.keySet().size()]);

for (int i = 0; i < str.length; i++) {

if (str[i].equals(userName)) {//用户名与map集合中的键相同

flag = true;//修改标志位

break;

}

}

if (flag) {//flag==true 对比标志位,如果存在,即执行了上述循环中的if语句

System.out.println("用户已存在!!");//输出提示信息后继续执行循环

} else {//flag为false,即集合中不存在对应的用户名,可以注册

if (password.equals(password1)) {//对比两次输入的密码是否一致 如果一致,将其存入集合

map.put(userName, password);//键值对,键为用户名,值为密码

System.out.println("注册成功,请牢记用户名和密码!!");

break;

} else {//前后密码不一致,不用跳出循环

System.out.println("两次密码不相同!!");

//用户名与map集合中的元素不相同,判断密码是否相同

}

}

} else {//最开始执行的判断密码和用户名长度是否满足需求中的不满足需求,不满足跳出循环,执行外层循环,继续询问

System.out.println("用户名长度不能小于3,密码长度不能小于6!!");

break;

}

}

} else if (num3 == 2) {//登录

Date date = new Date();//时间类

System.out.println("请输入用户名和密码进行登录!!");

System.out.print("请输入用户名:");//输入登录账户

String userName2 = input.next();

System.out.print("请输入密码:");

String password2 = input.next();//输入密码

SimpleDateFormat sd = new SimpleDateFormat("HH");//时间格式化后输出获取时间的小时,根据小时数来判断时间段

String str = sd.format(date);//将格式化后的时间(小时)转为字符串

int a = Integer.parseInt(str);//parseInt() 方法用于将字符串参数作为有符号的十进制整数进行解析,返回用十进制参数表示的整数值

String time = "";

if (a >= 0 && a <= 6) {

time = "凌晨";

} else if (a >= 7 && a < 12) {

time = "上午";

} else if (a >= 13 && a < 19) {

time = "下午";

} else if (a >= 20) {

time = "晚上";

}

if (map.get(userName2) == null) {//map集合中获取输入的用户名返回值为null,用户不存在

System.out.println("用户不存在");

} else if (map.get(userName2).equals(password2)) {//返回值非空,用户存在,对比输入的密码和集合中获取的密码

//System.out.println(map.get(userName2)+"***"+password2);

System.out.println("登录成功!!");

System.out.println(userName2 + time + "好 欢迎登录宠物商店管理系统!!!");

break;

} else {//用户不存在 用户存在但是密码不匹配 用户存在且密码匹配

System.out.println("登录失败,密码错误!!!");

}

} else {

System.out.println("您的输入有误!!!");

continue;

}

}

}

}

测试类:

import java.util.ArrayList;

import java.util.Scanner;

/**

public class TestPet {

public static void main(String[] args) {

Scanner input = new Scanner(System.in);

//注册和登录

Tool1 tool1 = new Tool1();//新建对象

tool1.register();//调用方法

PetBiz petBiz = new PetBiz();

ArrayList<Pet> pets = new ArrayList<>();

ArrayList<Pet> pets1 = new ArrayList<>();

System.out.println("********宠物商店管理系统********");

//初始化数据

pets.add(new Pet("小白", 1, "F", "狗", 100, 200));

pets.add(new Pet("张三", 2, "M", "猫", 200, 400));

pets.add(new Pet("小小", 3, "F", "狗", 900, 876));

while (true) {

System.out.println("请选择要执行的操作:1.查看所有宠物 2.按名字查找宠物 3.删除宠物 4.添加宠物 " +

"5.修改宠物信息 6.按购入价格排序 7.按出售价格排序 8.按利润排序 9.查看删除记录 0.退出");

try {

int num = input.nextInt();

switch (num) {//分支选择要进行的操作

case 1:

petBiz.showAllPets(pets);//查看所有宠物信息

break;

case 2:

System.out.print("请输入要查找的宠物名字:");

String name = input.next();

petBiz.findPetByName(name, pets);//按名字查找宠物

break;

case 3:

System.out.print("请输入要删除的宠物的名字:");

String name1 = input.next();

petBiz.deletePetByName(name1, pets, pets1);//按名字删除宠物

break;

case 4:

Pet pet = petBiz.petInformation();//添加宠物信息

pets.add(pet);//将传递的宠物信息添加到集合中

System.out.println("添加成功!!");//输出提示信息

break;

case 5:

System.out.print("请输入要修改的宠物名字:");

String name2 = input.next();//录入需要修改的宠物信息

petBiz.updatePets(name2, pets);//调用修改宠物信息的方法,传递参数为录入的宠物姓名

break;

case 6:

petBiz.sortByInprice(pets);//调用按进价排序的方法

petBiz.showAllPets(pets);//将排序后的集合输出

break;

case 7:

petBiz.sortByOutPrice(pets);

petBiz.showAllPets(pets);

break;

case 8:

petBiz.sortByProfit(pets);

petBiz.showAllPets(pets);

break;

case 9:

petBiz.findDeletePets(pets1);//查看已经删除的数据信息

break;

case 0:

System.out.println("再见,欢迎再次使用宠物管理系统!!!");

System.exit(1);

default:

System.out.println("您的选择有误!!!请重新选择!!!");

}

} catch (Exception e) {

System.out.println("输入错误!!!");

break;

}

}

}

}

实现注册登录功能后进行宠物管理,有一些异常因为没有重写异常类,只能抛出异常,没有进行处理

相关知识

[附源码]java毕业设计宠物商店管理系统
java宠物商店管理系统
java宠物商店项目
jsp宠物商店管理系统0ueh8
springboot+vue宠物商店管理系统【开题+程序+论文】
宠物商店管理系统功能详解与操作指南
jsp宠物商店管理系统3apmj
Java实现简单的宠物商店管理系统
java基于springboot+vue的宠物商店领养挂失管理系统 element 前后端分离
Java宠物商店项目案例分析与实践

网址: java宠物商店管理系统 https://m.mcbbbk.com/newsview551483.html

所属分类:萌宠日常
上一篇: 耐养便宜的宠物排行榜(最适合懒人
下一篇: 宠物商店管理系统