基础宠物商店管理系统(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;
    }
    //通过名字来修改销售表中的宠物sellprice
    public 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的对象是否为dog
                Dog 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);
                }
            }
        }
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

hdlbits系列verilog解答(mt2015_q4a)-52

文章目录 一、问题描述二、verilog源码三、仿真结果 一、问题描述 本次我们实现一个简单的组合逻辑输出。 z (x^y) & x 模块声明&#xff1a; module top_module (input x, input y, output z); 二、verilog源码 module top_module (input x, input y, output z);assig…

CRM系统是怎样帮助团队处理业务的?

客户关系管理的核心思想是将企业的客户作为最重要的资源&#xff0c;提供优质的客户服务&#xff0c;满足客户的需求&#xff0c;保证实现客户的终生价值&#xff0c;这也是众多企业使用CRM系统的原因。那么&#xff0c;CRM如何帮助中小企业解决业务与团队之间的问题&#xff1…

如何通过IDM进行统一权限

IDM身份管理平台在当今企业信息化建设中扮演着至关重要的角色&#xff0c;它不仅仅关乎用户身份的管理&#xff0c;更牵涉到对企业内部各种资源的合理分配和访问控制。其中&#xff0c;统一权限是 IDM 的一个核心概念&#xff0c;它通过集中管理用户的身份和访问权限&#xff0…

【Spring】Spring统一功能处理

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

mysql:通过INFORMATION_SCHEMA数据库查询表的元信息

使用SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA database_name AND TABLE_NAME table_name;查询某个表的元信息。其中database_name替换为数据库名称&#xff0c;table_name替换为表的名称。 例如&#xff0c;下面语句&#xff0c;查询development数据库中…

二、如何保证架构的质量、架构前期准备、技术填补与崩溃预防、系统重构

1、如何保证架构的质量 -- 稳定性和健壮性 2、正确的选择是良好的开端 -- 架构前期准备 ① 架构师分类&#xff1a;系统架构师、应用架构师、业务架构师 3、技术填补与崩溃预防 4、系统重构

时间序列预测实战(二十四)PyTorch实现RNN进行多元和单元预测(附代码+数据集+完整解析)

一、本文介绍 本篇文章给大家带来的是利用我个人编写的架构进行RNN时间序列卷积进行时间序列建模&#xff08;专门为了时间序列领域新人编写的架构&#xff0c;简单且不同于市面上大家用GPT写的代码&#xff09;&#xff0c;包括结果可视化、支持单元预测、多元预测、模型拟合…

【Python必做100题】之第四题(判断素数)

素数&#xff1a;约数只有1和本身的数叫素数 代码如下&#xff1a; a int(input("请随机输入一个数字&#xff1a;")) #键盘随机输入一个数字进行判断 flag False for i in range(2,a):if a % i 0: #在(2&#xff0c;a-1)之间但凡有一个可以整除就不是素数break…

MyBatis进阶之分页和延迟加载

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

一个适用于搭建企业内部培训平台的开源系统

大家好&#xff0c;我是 Java陈序员。 问君能有几多愁&#xff0c;唯有开源项目解千愁&#xff01; 最近领导给了个任务&#xff0c;搭建一个企业内部培训平台&#xff01;好不容易刚完成上个任务&#xff0c;又来一个活&#xff0c;这不又得加班了&#xff01; 还好&#x…

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…

基于Java的高校教学业绩信息管理系统论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本高校教学业绩信息管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的…

使用Git进行版本控制

参考&#xff1a;《Python编程从入门到实践》 前言1、安装、配置 Git1.1 在Linux系统中安装Git1.2 在OS X系统中安装Git1.3 在Windows系统中安装Git1.4 配置Git 2、创建项目3、忽略文件4、初始化仓库5、检查状态6、将文件加入到仓库中7、执行提交8、查看提交历史 前言 版本控制…

GridBagLayout GridBagConstraints 笔记231130

实例化使用模板 GridBagLayout gbl new GridBagLayout(); // gbl.columnWidths new int[]{200,200,200}; // 用数组设置列 // gbl.rowHeights new int[]{100,100,100,100,100}; // 用数组设置行GridBagConstraints gbc new GridBagConstraints();/*** gridBagConstrain…

2023,还不知道什么是iPaaS的企业要亏大了!

iPaaS是一种基于云的工具&#xff0c;用于将现有的应用程序和数据流链接到新的服务当中。本文就来介绍关于iPaaS的诞生历程和优势。 2023年&#xff0c;还不知道iPaaS是什么的企业亏大了&#xff01; iPaaS是什么 iPaaS是Intergration Platform as a Service&#xff08;集成平…

经典目标检测YOLO系列(一)引言_目标检测架构

经典目标检测YOLO系列(一)引言_目标检测架构 一个常见的目标检测网络&#xff0c;其本身往往可以分为一下三大块&#xff1a; Backbone network&#xff0c;即主干网络&#xff0c;是目标检测网络最为核心的部分&#xff0c;backbone选择的好坏&#xff0c;对检测性能影响是十…

阿里云服务器租用价格分享,阿里云服务器热门配置最新活动价格汇总

在我们购买阿里云服务器的时候&#xff0c;1核2G、2核2G、2核4G、2核8G、4核8G、8核16G、8核32G等配置属于用户购买最多的热门配置&#xff0c;1核2G、2核2G、2核4G这些配置低一点的云服务器基本上能够满足绝大部分个人建站和普通企业用户建站需求&#xff0c;而4核8G、8核16G、…

html通过CDN引入Vue使用Vuex以及Computed、Watch监听

html通过CDN引入Vue使用Vuex以及Computed、Watch监听 近期遇到个需求&#xff0c;就是需要在.net MVC的项目中&#xff0c;对已有的项目的首页进行优化&#xff0c;也就是写原生html和js。但是咱是一个写前端的&#xff0c;写html还可以&#xff0c;.net的话&#xff0c;开发也…

【小白专用】php执行sql脚本 更新23.12.10

可以使用 PHP 的 mysqli 扩展来执行 SQL 脚本。具体步骤如下&#xff1a; 连接到数据库&#xff1b;打开 SQL 脚本文件并读取其中的 SQL 语句&#xff1b;逐条执行 SQL 语句&#xff1b;关闭 SQL 脚本文件&#xff1b;关闭数据库连接。 以下是通过 mysqli 执行 SQL 脚本的示例…

nginx中Include使用

1.include介绍 自己的理解&#xff1a;如果学过C语言的话&#xff0c;感觉和C语言中的Include引入是一样的&#xff0c;引入的文件中可以写任何东西&#xff0c;比如server相关信息&#xff0c;相当于替换的作用&#xff0c;一般情况下server是写在nginx.conf配置文件中的&…