基础宠物商店管理系统(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;解析服务器响应文件 …

TailwindCSS 如何处理RTL布局模式

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

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

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

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

链表就是将所有数据都用一个链子串起来&#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;模板使…

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…

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

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

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…

Python数据科学视频讲解:Python注释

2.3 Python注释 视频为《Python数据科学应用从入门到精通》张甜 杨维忠 清华大学出版社一书的随书赠送视频讲解2.3节内容。本书已正式出版上市&#xff0c;当当、京东、淘宝等平台热销中&#xff0c;搜索书名即可。内容涵盖数据科学应用的全流程&#xff0c;包括数据科学应用和…

20231210原始编译NanoPC-T4(RK3399)开发板的Android10的SDK

20231210原始编译NanoPC-T4(RK3399)开发板的Android10的SDK 2023/12/10 17:27 rootrootrootroot-X99-Turbo:~$ rootrootrootroot-X99-Turbo:~$ mkdir nanopc-t4 rootrootrootroot-X99-Turbo:~$ rootrootrootroot-X99-Turbo:~$ rootrootrootroot-X99-Turbo:~$ cd nanopc-t4/ …

【AIE】AIE微信合集

AIE微信合集 AIE(1) 对于Versal&#xff0c;我们从系统角度看&#xff0c;可将其分为3个Domain&#xff1a;AIE、PS和PL&#xff0c;如下图所示。如果要运行一个AIE的应用&#xff0c;绝大多数情况下&#xff0c;这3个Domain我们都会用到&#xff0c;使其协同工作。这里我们仅…

《绝地求生》新手怎么玩 游戏基本介绍

随着电竞热潮的兴起&#xff0c;《绝地求生》已经成为了一款备受玩家热爱的游戏。这款游戏在全球范围内拥有庞大的玩家群体&#xff0c;它将你置身于一个荒无人烟的岛屿上&#xff0c;与其他99名玩家展开生死竞争。作为一个新手&#xff0c;下面闲游盒小盒子就为大家详细介绍一…

写实3D游戏模型纹理贴图设置

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 当谈到游戏角色的3D模型风格时&#xff0c;有几种不同的风格&#xff1a; …

Mybatis源码解析5:Mapper执行流程1

Mybatis源码解析5&#xff1a;Mapper执行流程1 1.项目结构2. 源码分析2.1 Mapper代理 MapperProxy#invoke2.2 创建MapperMethod2.2.1 方法名称解析器ParamNameResolve2.2.2 MapperMethod#execute 2.3 DefaultSqlSession2.4 CachingExecutor2.5 SimpleExecutor#doQuery获取连接对…

Nacos源码解读09——配置中心配置信息创建修改怎么处理的

存储配置 从整体上Nacos服务端的配置存储分为三层&#xff1a; 内存&#xff1a;Nacos每个节点都在内存里缓存了配置&#xff0c;但是只包含配置的md5&#xff08;缓存配置文件太多了&#xff09;&#xff0c;所以内存级别的配置只能用于比较配置是否发生了变更&#xff0c;只用…