java案例20:库存管理系统

news2024/9/23 3:21:39

思路:

像商场、超市这样的地方,都需要有自己的库房,并且库房商品的库存变化有专人记录,这样才能保证商城和超市正常运转

编写程序,模拟库存管理系统
该系统主要包括系统首页、商品入库、商品显示和删除商品功能
每个功能的具体要求如下:
系统首页:
用于显示系统所有的操作,并且可以选择使用某一功能

商品入库:
首先提示是否需要录入商品
根据用户输入的信息判断是否需要录入商品
如果需要,则需要用户输入商品的颜色、价格、数量等信息
录入完成后,提示商品录入成功并打印所有商品。
如果不需要录入商品,则返回系统首页。

商品显示:
用户选择商品显示功能后,在控制台打印仓库所有商品信息

删除商品:
用户选择删除商品功能后,根据用户输入的商品编号删除商品信息,
并在控制台打印删除该商品后的所有商品

使用Collection机和储存自定义的对象,并用迭代器、增强for循环遍历集合

代码:

代码结构:

Phone类:
package base.base020;

public class Phone {
    private String name;
    private String color;
    private int price;
    private int num;

    public Phone() {
    }

    public Phone(String name, String color, int price, int num) {
        this.name = name;
        this.color = color;
        this.price = price;
        this.num = num;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public int getPrice() {
        return price;
    }

    public void setPrice(int price) {
        this.price = price;
    }

    public int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }

    @Override
    public String toString() {
        return "Phone{" +
                "name='" + name + '\'' +
                ", color='" + color + '\'' +
                ", price=" + price +
                ", num=" + num +
                '}';
    }
}

测试类:

package base.base020;

import java.util.ArrayList;
import java.util.Scanner;

/*
库存管理系统

像商场、超市这样的地方,都需要有自己的库房,并且库房商品的库存变化有专人记录,这样才能保证商城和超市正常运转

编写程序,模拟库存管理系统
该系统主要包括系统首页、商品入库、商品显示和删除商品功能
每个功能的具体要求如下:
系统首页:
用于显示系统所有的操作,并且可以选择使用某一功能

商品入库:
首先提示是否需要录入商品
根据用户输入的信息判断是否需要录入商品
如果需要,则需要用户输入商品的颜色、价格、数量等信息
录入完成后,提示商品录入成功并打印所有商品。
如果不需要录入商品,则返回系统首页。

商品显示:
用户选择商品显示功能后,在控制台打印仓库所有商品信息

删除商品:
用户选择删除商品功能后,根据用户输入的商品编号删除商品信息,
并在控制台打印删除该商品后的所有商品

使用Collection机和储存自定义的对象,并用迭代器、增强for循环遍历集合

 */
public class Test20 {
    static ArrayList<Phone> list = new ArrayList<>();
    static Scanner sc = new Scanner(System.in);

    public static void main(String[] args) {

        list.add(new Phone("iphone","pink",5555,50));
        list.add(new Phone("华为","blue",3333,50));

        System.out.println("欢迎来到库存管理系统,请输入您需要的选择:");

        while(true){
            System.out.println("1.商品入库");
            System.out.println("2.商品显示");
            System.out.println("3.删除商品");
            System.out.println("4.退出系统");
            int choice = sc.nextInt();
            if(choice == 1){
                //商品入库
                add();
                show();

            }else if(choice == 2){
                //商品显示
                show();

            }else if(choice == 3){
                //删除商品
                delete();
                show();

            }else if(choice == 4){
                //退出系统
                break;
            }else{
                System.out.println("您输入的数据有误,请重新输入");
            }


        }

    }

    private static void delete() {
        System.out.println("请输入要删除的商品序号:");
        int i = sc.nextInt();
        list.remove(i-1);
        System.out.println("删除成功!");
    }

    private static void show() {
        if(list.size() == 0){
            System.out.println("暂无商品");
        }else{
            System.out.println("目前现有商品为:");
            for(Phone phone:list){
                System.out.println(phone);
            }
        }

    }

    private static void add() {
        System.out.println("确定要录入数据吗?");
        String choice = sc.next();
        if("yes".equals(choice)){

            System.out.println("请输入商品名称:");
            String name = sc.next();
            System.out.println("请输入商品颜色:");
            String color = sc.next();
            System.out.println("请输入商品价格:");
            int price = sc.nextInt();
            System.out.println("请输入商品数量:");
            int num = sc.nextInt();
            System.out.println("添加成功!");

            Phone p1 = new Phone(name,color,price,num);//封装对象,将名称、颜色、价格、数量进行传递。
            list.add(p1);

        }else{
            return;//结束当前方法
        }
    }
}

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

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

相关文章

spark-03

RDD是抽象概念&#xff0c;分区是物理概念

区分 关系代数中的笛卡尔积、等值连接、自然连接(图文界面)

目录 前言1. 笛卡尔积2. 等值连接3. 自然连接 前言 深度卷积的笛卡尔积、软考高级等常出现类似这种知识点 归根到底是关系代数的数学知识 今天就专门区分一下 概念定义笛卡尔积两个关系R和S进行操作&#xff0c;产生的关系中元组个数为两个关系中元组个数之积等值联接&#…

C++QT-day3

#include <iostream> /*设计一个Per类&#xff0c;类中包含私有成员:姓名、年龄、* 指针成员身高、体重&#xff0c;再设计一个Stu类&#xff0c;* 类中包含私有成员:成绩、Per类对象p1&#xff0c;* 设计这两个类的构造函数、析构函数和拷贝构造函数。*/ using namespac…

机器学习1:k 近邻算法

k近邻算法&#xff08;k-Nearest Neighbors, k-NN&#xff09;是一种常用的分类和回归算法。它基于一个简单的假设&#xff1a;如果一个样本的k个最近邻居中大多数属于某一类别&#xff0c;那么该样本也很可能属于这个类别。 k近邻算法的步骤如下&#xff1a; 输入&#xff1a…

设计模式 - 行为型模式考点篇:模板方法模式(概念 | 案例实现 | 优缺点 | 使用场景)

目录 一、行为型模式 1.1、模板方法模式 1.1.1、概念 1.1.2、案例实现 1.1.3、优缺点 1.1.4、使用场景 一、行为型模式 一句话概括行为型模式 行为型模式&#xff1a;类或对象间如何交互、如何划分职责&#xff0c;从而更好的完成任务. 1.1、模板方法模式 1.1.1、概念 …

COCI 2021-2022 #1 - Volontiranje 题解

题目大意 让你求最多有多少个不相交的最长上升子序列。 思路 我们可以将数 a i a_i ai​ 看成一个点 ( i , a [ i ] ) (i,a[i]) (i,a[i])&#xff0c;于是我们可以按照 x x x 递增 y y y 递减考虑分层。 分层的方法就是从 1 1 1 到当前点的 LIS 即为其所在层数。 此时…

Spring源码解析——IOC之bean 的初始化

正文 一个 bean 经历了 createBeanInstance() 被创建出来&#xff0c;然后又经过一番属性注入&#xff0c;依赖处理&#xff0c;历经千辛万苦&#xff0c;千锤百炼&#xff0c;终于有点儿 bean 实例的样子&#xff0c;能堪大任了&#xff0c;只需要经历最后一步就破茧成蝶了。…

Git 学习笔记 | Git 分支

Git 学习笔记 | Git 分支 Git 学习笔记 | Git 分支分支的概念为什么要使用分支&#xff1f;常用指令 Git 学习笔记 | Git 分支 分支的概念 几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离开来&#xff0c;避免影响开发主线。…

小白网络安全学习手册(黑客技术)

一、网络安全应该怎么学&#xff1f; 1.计算机基础需要过关 这一步跟网安关系暂时不大&#xff0c;是进入it行业每个人都必须掌握的基础能力。 计算机网络计算机操作系统算法与数据架构数据库 Tips:不用非要钻研至非常精通&#xff0c;可以与学习其他课程同步进行。 2.渗透技…

[idekCTF 2022]Paywall - LFI+伪协议+filter_chain

[idekCTF 2022]Paywall 一、解题流程&#xff08;一&#xff09;、分析&#xff08;二&#xff09;、解题 二、思考总结 一、解题流程 &#xff08;一&#xff09;、分析 点击source可以看到源码&#xff0c;其中关键部分&#xff1a;if (isset($_GET[p])) {$article_content…

【C语言】进阶——动态内存管理

一、为什么存在动态内存管理 我们已经掌握的内存开辟方式有&#xff1a; int val 20; //在栈空间开辟四个字节char arr[10] {0}; //在栈空间开辟10个字节的连续空间 但上述开辟空间的方式有两个特点&#xff1a; 空间开辟大小是固定的数组在声明的时候&#xf…

Maven最新版本安装及配置

Maven是一个Java项目管理和构建工具&#xff0c;它可以定义项目结构、项目依赖&#xff0c;并使用统一的方式进行自动化构建&#xff0c;是Java项目不可缺少的工具。 本章我们详细介绍如何使用Maven。 一、Maven是什么&#xff1f; 如果每一个项目都自己搞一套配置&#xf…

【java学习】一维数组(9)

文章目录 1. 一维数组声明2. 一维数组初始化3. 数组元素的引用4. 数组元素的默认初始化 1. 一维数组声明 声明方式&#xff1a; type var[] 或 type[] var 例如&#xff1a; int a[]; int[] a1; double b[]; Mydate[] c; //对象数组2. 一维数组初始化 动态初始化&#xf…

python练习4

前言&#xff1a;相信看到这篇文章的小伙伴都或多或少有一些编程基础&#xff0c;懂得一些linux的基本命令了吧&#xff0c;本篇文章将带领大家服务器如何部署一个使用django框架开发的一个网站进行云服务器端的部署。 文章使用到的的工具 Python&#xff1a;一种编程语言&…

2023年十大顶尖远程控制软件

随着科技的不断进步和时代的发展&#xff0c;远程控制软件已经成为现代工作、教育等领域中必不可少的工具。这些软件可以实现远程桌面连接、远程支持和远程维护等功能&#xff0c;大大提高了工作效率&#xff0c;同时也让用户拥有更加灵活的操作方式。当然&#xff0c;不同的远…

C#:出题并判断

C#:出题并判断 //出题并判断 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;namespace Test_…

【高阶数据结构】图详解第二篇:图的遍历(广度优先+深度优先)

文章目录 图的遍历1. 图的广度优先遍历&#xff08;一石激起千层浪&#xff09;思路分析代码实现测试美团2020校招笔试题&#xff1a;六度人脉 2. 图的深度优先遍历&#xff08;一条道走到黑&#xff09;思路分析代码实现测试 3. 对于非连通图情况的处理4.源码BFSDFS 图的遍历 …

uboot启动流程-run_main_loop 到 cmd_process处理说明一

一. uboot启动 uboot命令模式&#xff1a;uboot 启动以后会进入 3 秒倒计时&#xff0c;如果在 3 秒倒计时结束之前按下按下回车键&#xff0c;那么就会进入 uboot 的命令模式。 如果在 uboot 倒计时结束以后都没有按下回车键&#xff0c;就会自动启动 Linux 内 核 …

C++结构体(struct)、结构体和函数、结构体指针

前言 在本文中&#xff0c;您将学习C 编程中的结构。它是什么&#xff0c;如何定义它并在程序中使用它。结构是一个单一名称下不同数据类型的变量的集合。它与类相似&#xff0c;两者都保存着不同数据类型的数据集合。 问题 例如&#xff1a;您要存储有关某个人的一些…

《向量数据库指南》——向量数据库 大模型的“海马体”

在大模型的高调火热之下,向量数据库也获得了前所未有的关注。 近两个月内,向量数据库迎来融资潮,Qdrant、Chroma、Weaviate先后获得融资,Pinecone宣布1亿美元B轮融资,估值达到7.5亿美元。 东北证券预测,到2030年,全球向量数据库市场规模有望达到500亿美元,国内向量数…