基础宠物商店管理系统(Java)大一程序设计

一.开发环境

Windows 11 -- JDK 21 -- IDEA 2021.3.3


二.需求


 三.代码部分  

//创建一个宠物类,被另外两类继承public class Pet {private String name;private int age;private String gender;private double cost=0;//买进价格private double sellprice=0;//卖出价格public double getCost() {return cost;}public void setCost(double cost) {this.cost = cost;}public double getSellprice() {return sellprice;}public void setSellprice(int sellprice) {this.sellprice = sellprice;}public Pet(String name, int age, String gender) {this.name = name;this.age = age;this.gender = gender;}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 getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}
}

public class Dog extends Pet{private String breed;//品种public Dog(String name, int age, String gender,String breed) {super(name, age, gender);this.breed=breed;}public String getBreed() {return breed;}public void setBreed(String breed) {this.breed = breed;}
}

public class Cat extends Pet{private String isIndoor;//猫类的一个关键属性是否习惯在家里待着public Cat(String name, int age, String gender,String isIndoor) {super(name, age, gender);this.isIndoor=isIndoor;}public String getIsIndoor() {return isIndoor;}public void setIsIndoor(String isIndoor) {this.isIndoor = isIndoor;}
}

import java.util.ArrayList;
import java.util.Scanner;class  petshop{private String name;private ArrayList<Pet>stocks;//宠物的库存private ArrayList<Pet>sales;//记录销售的信息private double revenue;//商店的流动资金public petshop(String name){this.name=name;this.stocks=new ArrayList<>();this.sales=new ArrayList<>();this.revenue=30000;}public void buy(Pet pet,double cost){pet.setCost(cost);stocks.add(pet);this.revenue-=cost;}public void BuyRecord(Pet pet,double cost){pet.setCost(cost);sales.add(pet);}//实现检查库存-猫的基本信息public void chekStocks_Cat(){System.out.println("店内库存-猫的基本信息");System.out.println("----------------------------------------");System.out.println("姓名:\t年龄:\t性别:\t备注:\t成本:\t");for(Pet pet:stocks){if(pet instanceof Cat){Cat cat =(Cat) pet;System.out.println(cat.getName()+"\t"+cat.getAge()+"\t"+cat.getGender()+"\t"+cat.getIsIndoor()+"\t"+cat.getCost());}}}//实现检查库存-狗的基本信息public void chekStocks_Dog(){System.out.println("店内库存-狗的基本信息");System.out.println("----------------------------------------");System.out.println("姓名:\t年龄:\t性别:\t品种:\t成本:\t");for(Pet pet:stocks){if(pet instanceof Dog){Dog dog =(Dog) pet;System.out.println(dog.getName()+"\t"+dog.getAge()+"\t"+dog.getGender()+"\t"+dog.getBreed()+"\t"+dog.getCost());}}}//通过输入名字卖出库存中的宠物同时记录这个信息public boolean removePetByName(String name,int sellprice){for(Pet pet:stocks){if(pet.getName().equals(name)){stocks.remove(pet);recordSellpriceByName(name,sellprice);revenue+=sellprice;return true;}}return  false;}//通过名字来修改销售表中的宠物sellpricepublic void recordSellpriceByName(String name,int sellprice){for(Pet pet:sales){if(pet.getName().equals(name)){pet.setSellprice(sellprice);}}}public void printSaleReport(){  //实现统计销售和盈利double totalProfit=0;for(Pet pet:sales){if(pet instanceof Dog){ //检查一个pet的对象是否为dogDog dog =(Dog) pet;//Pet 对象强制转换为 Dog 类型,并将结果存储在名为 dog 的变量中。现在,你就可以调用 Dog 类的方法或访问其属性totalProfit+=(dog.getSellprice()-dog.getCost());System.out.println("Dog "+"名字: "+dog.getName()+" 进价:"+dog.getCost()+" ¥ "+" 售出:"+dog.getSellprice()+" ¥ "+" 净利润:"+(dog.getSellprice()-dog.getCost())+" ¥ ");}else if(pet instanceof Cat){Cat cat=(Cat)pet;totalProfit+=(cat.getSellprice()-cat.getCost());System.out.println("Cat "+"名字: "+cat.getName()+" 进价:"+cat.getCost()+" ¥ "+" 售出:"+cat.getSellprice()+" ¥ "+" 净利润:"+(cat.getSellprice()-cat.getCost())+" ¥ ");}}System.out.println("总利润:"+totalProfit+" ¥");System.out.println("商店流动资金:"+revenue);}public void addPet(Pet pet){stocks.add(pet);}
}public class Pet_Manager    {public static void printmenu(){System.out.println("---------------------------------------");System.out.println("欢迎宠物商店管理系统");System.out.println("---------------------------------------");System.out.println("1. 买进宠物");System.out.println("2. 卖出宠物");System.out.println("3. 清点宠物库存");System.out.println("4. 统计销售和盈利情况");System.out.println("0. 退出系统");System.out.println("---------------------------------------");System.out.print("请输入操作序号:");}public static void prinemenu2(){//System.out.println("----------------------------------------");System.out.println("选择一:买进宠物狗");System.out.println("选择二:买进宠物猫");System.out.println("----------------------------------------");}public static void prinemenu3(){//System.out.println("----------------------------------------");System.out.println("选择一:卖出宠物狗");System.out.println("选择二:卖出宠物猫");System.out.println("----------------------------------------");}//-----------------主函数public static void main(String[] args) {Scanner scanner = new Scanner(System.in);petshop petmanager = new petshop("爪印乐园");while (true){printmenu();int opeartion = scanner.nextInt();if (opeartion < 0 || opeartion > 4) {System.out.println("没有这个选项,请重新选择!");scanner.nextLine();continue;}scanner.nextLine();switch (opeartion){case 1:{System.out.println("您正在使用功能一:买进宠物");System.out.println("---------------------------------------");prinemenu2();System.out.print("请输入操作序号:");int opertation2=scanner.nextInt();System.out.println("---------------------------------------");scanner.nextLine();switch (opertation2){case 1:{System.out.print("请输入狗的名字:");String name = scanner.nextLine();System.out.println("---------------------------------------");System.out.print("请输入狗的年龄:");int age = scanner.nextInt();System.out.println("---------------------------------------");scanner.nextLine();System.out.print("请输入狗的性别:");String gender =scanner.nextLine();System.out.println("---------------------------------------");System.out.print("请输入狗的品种:");String breed =scanner.nextLine();System.out.println("---------------------------------------");System.out.print("请输入买进宠物价格:");int cost= scanner.nextInt();Dog newDog = new Dog(name,age,gender,breed);petmanager.buy(newDog,cost);//买入存入库存//同时要记录这个销售信息petmanager.BuyRecord(newDog,cost);break;}case 2:{System.out.print("请输入猫的名字:");String name = scanner.nextLine();System.out.println("---------------------------------------");System.out.print("请输入猫的年龄:");int age = scanner.nextInt();System.out.println("---------------------------------------");scanner.nextLine();System.out.print("请输入猫的性别:");String gender =scanner.nextLine();System.out.println("---------------------------------------");System.out.print("请输入猫是否喜欢呆在家里|| 喜欢/不喜欢 :");String isIndoor = scanner.nextLine()+"呆在家里";System.out.println("---------------------------------------");System.out.print("请输入买进宠物价格:");int cost= scanner.nextInt();Cat newCat = new Cat(name,age,gender,isIndoor);petmanager.buy(newCat,cost);//买入存入库存//同时要记录这个销售的信息;petmanager.BuyRecord(newCat,cost);break;}default:break;}break;}case 2:{System.out.println("您正在使用功能二:卖出宠物");System.out.println("---------------------------------------");prinemenu3();System.out.print("请输入操作序号:");int opertation2=scanner.nextInt();System.out.println("---------------------------------------");scanner.nextLine();switch (opertation2) {case 1:{petmanager.chekStocks_Dog();System.out.println("---------------------------------------");System.out.print("请输入卖出的宠物狗的名字:");String name =scanner.nextLine();System.out.println("---------------------------------------");System.out.print("请输入卖出的宠物狗的价格:");int sellprice = scanner.nextInt();//同时移除库存中宠物的数据和记录销售记录boolean isRemoved = petmanager.removePetByName(name,sellprice);if(isRemoved){System.out.println("---------------------------------------");System.out.println("成功卖出名为 " + name + " 的宠物");}else {System.out.println("---------------------------------------");System.out.println("没有找到改宠物");}scanner.nextLine();break;}case 2:{petmanager.chekStocks_Cat();System.out.println("---------------------------------------");System.out.print("请输入卖出的宠物猫的名字:");String name =scanner.nextLine();System.out.println("---------------------------------------");System.out.print("请输入卖出的宠物猫的价格:");int sellprice = scanner.nextInt();//同时移除库存中宠物的数据和记录销售记录boolean isRemoved = petmanager.removePetByName(name,sellprice);if(isRemoved){System.out.println("---------------------------------------");System.out.println("成功卖出名为 " + name + " 的宠物");}else {System.out.println("---------------------------------------");System.out.println("没有找到改宠物");}scanner.nextLine();break;}default:break;}break;}case 3:{System.out.println("您正在使用功能三:清点宠物库存");System.out.println("---------------------------------------");petmanager.chekStocks_Dog();System.out.println("---------------------------------------");petmanager.chekStocks_Cat();scanner.nextLine();break;}case 4:{System.out.println("您正在使用功能四:统计销售情况");System.out.println("---------------------------------------");petmanager.printSaleReport();scanner.nextLine();break;}case 0:{System.exit(0);}}}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/264576.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序制作-背单词的小程序制作

微信小程序–背单词的 好久没有发过文章了&#xff0c;但是不代表着我不去学习了喽&#xff0c;以下是我最近做的东西&#xff0c;前端的UI由朋友设计的&#xff0c;目前这个是前端使用的是微信小程序后端是Python的一个轻量型框架&#xff0c;FastApi&#xff0c;嗯&#xff…

Vue之模板语法

模板语法有两大类&#xff1a; 1.插值语法 2.指令语法 让我为大家介绍一下吧&#xff01; 一、插值语法 功能:用于解析标签体内容。 写法: {{xxx}}&#xff0c;xxx是js表达式&#xff0c;且可以直接读取到data中的所有属性。 举个例子&#xff1a; <!DOCTYPE html> &l…

Faster Transformer

Faster Transformer FasterTransformer包含transformer块的高度优化版本的实现&#xff0c;该块包含编码器和解码器部分。基于高效率的开发语言和工具&#xff1a; C, CUDA, cuBLAS and cuBLASlt支持的模型数据格式&#xff1a;FP32, FP16, BF16, INT8 (limited models) and F…

C现代方法(第27章)笔记——C99对数学计算的新增支持

文章目录 第27章 C99对数学计算的新增支持27.1 <stdint.h>: 整数类型(C99)27.1.1 <stdint.h>类型27.1.2 对指定宽度整数类型的限制27.1.3 对其他整数类型的限制27.1.4 用于整型常量的宏 27.2 <inttype.h>: 整数类型的格式转换(C99)27.2.1 用于格式指定符的宏…

体系化学习运筹学基础算法的实践和总结

文章目录 引言目标设计目标实践文章汇总经验总结一则预告 引言 眨眼间已经12月了&#xff0c;眼看着2023年马上要过完了。 女朋友最近总说&#xff0c;工作以后感觉时间过的好快。事实上&#xff0c;我也是这么认为的。年纪越大&#xff0c;越会担心35岁危机的降临。所以&…

kafka中消息key作用与分区规则关系

在 kafka 2.0.0 的 java sdk 中 <dependency><groupId>org.apache.kafka</groupId><artifactId>kafka_2.12</artifactId><version>2.0.0</version> </dependency> ProducerRecord 中类注释如下 A key/value pair to be sen…

智能优化算法应用:基于郊狼算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于郊狼算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于郊狼算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.郊狼算法4.实验参数设定5.算法结果6.参考文献7.MA…

2023/12/10总结

学习 WebSocket 一共四种方法&#xff0c;传递数据是要通过JSON格式传递 前端 onopen 在连接时 onmessage 收到消息时 通常携带参数 event &#xff0c;event.data 是消息 onerror 发生错误时 onclose 关闭连接时 发送消息 需要安装 vue-native-websocket 包 pnpm i vue-n…

stu06-VSCode里的常用快捷键

Alt Z&#xff1a;文字自动换行。当一行的文字太长时&#xff0c;可以使用。或者查看→自动换行Alt Shift ↓ &#xff1a;快速复制当前行到下一行Alt Shift ↑ &#xff1a;快速复制当前行到上一行Alt B&#xff1a;在默认浏览器中打开当前.html文件Ctrl Enter&#xf…

【Unity动画】什么是任意状态(Any state)

&#xff08;Any state&#xff09;可以从某个状态A直接切换到另一个状态 B\C\D\E\F 比如A到C的过渡&#xff0c;直接设置从Any state 到C的过渡线触发参数即可。而不需要让A到C直接在连接&#xff0c;同样&#xff0c;B到C之间也无需直接链接。 这样设计是在每一个动画之间都…

Jmeter 请求签名api接口-BeanShell

Jmeter 请求签名api接口-BeanShell 项目签名说明编译扩展jar包jmeter 使用 BeanShell 调用jar包中的签名方法 项目签名说明 有签名算法的api接口本地不好测试&#xff0c;使用BeanShell 扩展jar 包对参数进行签名&#xff0c;接口签名算法使用 sha512Hex 算法。签名的说明如下…

6.4 U-boot 移植

一、ST 官方 U-boot 编译测试 1. ST 官方 uboot 源码打补丁 1.1 获得 ST 官方的 uboot 源码 https://www.cnblogs.com/toutiegongzhu/p/17578847.html 这里可以看如何下载uboot源码。解压完后输入以下命令&#xff1a; cd stm32mp1-openstlinux-5.4-dunfell-mp1-20-06-24/s…