基础宠物商店管理系统(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.mzph.cn/news/213263.shtml

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

相关文章

【Spring】Spring统一功能处理

Spring统一功能处理 拦截器拦截器什么是拦截器拦截器的基本使用定义拦截器注册配置拦截器 拦截器详解拦截器的拦截路径配置拦截器实现原理初始化处理请求 适配器模式 统一数据返回格式统一数据返回格式快速入门 统一异常处理 拦截器 场景: 我们要对一个网站实现强制登陆的功能…

ChibiOS简介2/5

ChibiOS简介2/5 1. 源由2. ChibiOS基础知识2/52.4 Chapter 4 - ChibiOS General Architecture2.4.1 The Big Picture&#xff08;总体框图&#xff09;2.4.2 Embedded Components&#xff08;嵌入式组件&#xff09;2.4.3 Application Model&#xff08;应用模型&#xff09;2.…

爬虫解析——Xpath的安装及使用(五)

目录 一、Xpath插件的安装 二、安装 lxml 三、Xpath解析文件 1.解析本地文件 &#xff08;1&#xff09;导入本地文件 &#xff08;2&#xff09;解析本地文件 2.服务器文件解析 &#xff08;1&#xff09;获取网页源码 &#xff08;2&#xff09;解析服务器响应文件 …

力扣373. 查找和最小的 K 对数字

优先队列 思路&#xff1a; 使用下标 (x, y) 标识数值对&#xff0c;x 为第一个数组的下标&#xff0c;y 为第二个数组的下标&#xff1b;所以 k 个数值对 x 的范围属于 [0, min(k, m)]&#xff0c;m 为第一个数组的 size&#xff1b;数值对 (x, y) &#xff0c;那么下一个比其…

TailwindCSS 如何处理RTL布局模式

背景 TikTok作为目前全世界最受欢迎的APP&#xff0c;需要考虑兼容全世界各个地区的本地化语言和阅读习惯。其中对于阿拉伯语、波斯语等语言的阅读书写习惯是从右向左的&#xff0c;在前端有一个专有名字RTL模式&#xff0c;即Right-to-Left。 其中以阿拉伯语作为第一语言的人…

C# 获取windows 系统开关机时间

关机时间&#xff0c;引用&#xff1a;https://www.coder.work/article/1589448 public static DateTime GetLastSystemShutdown() { string sKey "System\CurrentControlSet\Control\Windows"; Microsoft.Win32.RegistryKey key …

建立个人学习观|地铁上的自习室

作者&#xff1a;向知 如果大家有机会来北京&#xff0c;可以来看看工作日早上八九点钟&#xff0c;15 号线从那座叫“顺义”的城市通向“望京”的地铁&#xff0c;你在那上面&#xff0c;能看到明明白白的&#xff0c;人们奔向梦想的模样。 一、地铁上的自习室 我在来北京之前…

华为数据之道学习笔记】3-5 规则数据治理

在业务规则管理方面&#xff0c;华为经常面对“各种业务场景业务规则不同&#xff0c;记不住&#xff0c;找不到”“大量规则在政策、流程等文件中承载&#xff0c;难以遵守”“各国规则均不同&#xff0c;IT能否一国一策、快速上线”等问题。 规则数据是结构化描述业务规则变量…

【算法集训】基础数据结构:三、链表

链表就是将所有数据都用一个链子串起来&#xff0c;其中链表也有多种形式&#xff0c;包含单向链表、双向链表等&#xff1b; 现在毕竟还是基础阶段&#xff0c;就先学习单链表吧&#xff1b; 链表用头结点head表示一整个链表&#xff0c;每个链表的节点包含当前节点的值val和下…

2024 年顶级的 Android 系统修复软件与方法

您是否正在寻找可以修复 PC 上 Android 操作系统的工具&#xff1f;这是我们精选的最好的 Android 系统修复软件&#xff01; Android 是世界著名的智能手机操作系统。全世界有数百万人使用这个操作系统&#xff0c;这使得它安全可靠。然而&#xff0c;这仍然不能使它完美无缺…

048:利用vue-video-player播放m3u8

第048个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下&#xff0c;本专栏提供行之有效的源代码示例和信息点介绍&#xff0c;做到灵活运用。 &#xff08;1&#xff09;提供vue2的一些基本操作&#xff1a;安装、引用&#xff0c;模板使…

普冉(PUYA)单片机开发笔记(6): 呼吸灯

概述 上一篇的实验中&#xff0c;分别正确地配置了 TIM16 和 TIM1&#xff0c;TIM16 的中断服务程序中每隔 500ms 翻转板载 LED 一次&#xff1b;TIM1 的 CHANNEL_1 用于输出一个固定占空比的 PWM 信号。这一次我们进一小步&#xff1a;使用 TIM16 的中断设置 TIM1 CHANNEL_1 …

MyBatis进阶之分页和延迟加载

文章目录 分页1. RowBounds 分页2. PageHelper 分页3. PageInfo 对象属性描述 延迟加载立即加载激进式延迟加载真-延迟加载 分页 Mybatis 中实现分页功能有 3 种途径&#xff1a; RowBounds 分页&#xff08;不建议使用&#xff09;Example 分页&#xff08;简单情况可用)Pag…

关于对向量检索研究的一些学习资料整理

官方学习资料 主要是的学习资料是&#xff0c; 官方文档 和官方博客。相关文章还是挺多 挺不错的 他们更新也比较及时。有最新的东西 都会更新出来。es scdn官方博客 这里简单列一些&#xff0c;还有一些其他的&#xff0c;大家自己感兴趣去看。 什么是向量数据库 Elasticse…

文件加密软件哪个最好用 好用的文件加密软件推荐

一说到文件加密软件&#xff0c;可能大家都会去搜一些不知名的软件来&#xff0c;但是选择这种加密软件&#xff0c;最好还是要看一些资质的。 资质不好的&#xff0c;可能加密过后你自己也打不开文件&#xff0c;&#xff08;ps&#xff1a;我自己就遇到过这种情况&#xff09…

【华为OD机试python】分苹果【2023 B卷|100分】

【华为OD机试】-真题 !!点这里!! 【华为OD机试】真题考点分类 !!点这里 !! 题目描述 A、B两个人把苹果分为两堆,A希望按照他的计算规则等分苹果, 他的计算规则是按照二进制加法计算,并且不计算进位 12+5=9(1100 + 0101 = 9), B的计算规则是十进制加法,包括正常进位,…

基于Java SSM框架高校校园点餐订餐系统项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架高校校园点餐订餐系统演示 摘要 21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐渐被人们所认识&a…

(一)Java 基础语法

目录 一. 前言 二. Hello World 三. Java 语法 3.1. 基本语法 3.2. Java 标识符 3.3. Java 修饰符 3.4. Java 变量 3.5. Java 数组 3.6. Java 枚举 3.7. Java 关键字 3.8. Java 注释 3.9. Java 空行 3.10. Java 继承 3.11. Java 接口&#xff08;interface&#…

Oracle(2-14)User-Managed Incomplete Recovery

文章目录 一、基础知识1、Incomplete Recovery Overview 不完全恢复概述2、Situations Requiring IR 需要不完全恢复的情况3、Types of IR 不完全恢复的类型4、IR Guidelines 不完全恢复指南5、User-Managed Procedures 用户管理程序6、RECOVER Command Overview 恢复命令概述7…

算法训练营Day8(字符串)

344.反转字符串 344. 反转字符串 - 力扣&#xff08;LeetCode&#xff09; class Solution {public void reverseString(char[] s) {for(int i 0,j s.length-1;i< s.length/2 ; i,j--){swap(s,i,j);}}public void swap(char[] s,int i,int j ){char temp s[i];s[i] s[j]…