案例介绍:

模拟真实的库存管理逻辑,完成超市管理系统的日常功能实现,见下图

案例需求分析:

根据案例介绍,我们进行分析,首先需要一个功能菜单,然后输入功能序号后,调用序号对应的功能方法,实现想要的操作。分析步骤如下

1.完成超市商品初始化。创建商品,将商品添加到集合

2.显示来到超市能做的操作,也就是显示主菜单

3.根据接收到的功能选项,执行对应的功能

3.1.库存货物查询

3.2.添加新货物

3.3.删除货物

3.4.修改货物

3.5.退出系统,结束main方法的运行

4.循环,回到 2.显示主菜单

实现代码步骤:

每种库存商品都拥有多项商品信息,为了方便管理每种商品的信息,我们对商品信息进行封装,编写FruitItem.java文件

public classFruitItem {int ID; //商品编号

String name;//商品名称

double price; //商品单价

}

上述代码中,对商品信息(编号、名称、单价、数量、金额)进行了封装。这样做的好处在于以后只要找到这个商品,就能够知道该商品的每项信息了。

编写FruitStore.java,完成如下功能:

//编写main主方法

public static voidmain(String[] args) {//定义数组,记录每个商品信息

ArrayList list = new ArrayList();/** 1.超市商品初始化*/init(list);while(true){/** 2.显示主菜单*/mainMenu();/** 3.根据接收到的功能选项,执行对应的功能*/chooseFunction(list);

}

}

上述代码中,通过while(true)循环,完成用户调用不同功能。实现重复功能选择操作。

1.超市商品初始化,创建商品,将商品添加到集合

public static void init(ArrayListlist) {

FruitItem item= newFruitItem();

item.name= "少林寺酥饼核桃";

item.ID= 9001;

item.price= 120.0;

FruitItem item2= newFruitItem();

item2.name= "尚康杂粮牡丹饼";

item2.ID= 9002;

item2.price= 20.0;

FruitItem item3= newFruitItem();

item3.name= "新疆原产哈密瓜";

item3.ID= 9003;

item3.price= 7.0;

list.add(item);

list.add(item2);

list.add(item3);

}

上述代码中,完成商品集合的初始化操作,添加了3件商品。

2.显示来到超市能做的操作,也就是显示主菜单

public static voidmainMenu() {

System.out.println("=========================欢迎光临itcast超市=========================");

System.out.println("1:查询货物 2:添加新货物 3:删除货物 4:修改货物");

System.out.println("5:退出系统");

}

上述代码,用来完成用户操作界面的显示。

3.根据接收到的功能选项,执行对应的功能

public static void chooseFunction(ArrayListlist) {

System.out.println("请您输入要操作的功能序号:");

Scanner sc= new Scanner(System.in);//键盘输入对象

String choose=sc.next();//根据接收到的选择,执行对应的功能

switch(choose) {case "1": //3.1.库存货物查询

showFruitList(list);break;case "2": //3.2.添加新货物

addFruitItem(list);break;case "3": //3.3.删除货物

delFruitItem(list);break;case "4": //3.4.修改货物

updateFruitItem(list);break;case "5": //3.5.退出系统,退出JVM

System.out.println("退出系统");return;default:

System.out.println("对不起,没有您输入的功能,请重新选择");break;

}

}

上述代码中,参数list为库存商品集合。当键盘输入功能序号后,通过switch语句匹配后,调用对应的方法完成对应功能的实现。

3.1.库存货物查询

public static void showFruitList(ArrayListlist) {

System.out.println("=======================商品库存清单=======================");

System.out.println("商品编号\t商品名称\t\t商品单价");//查询每种库存商品信息

for (int i = 0; i < list.size(); i++) {

FruitItem item=list.get(i);

System.out.println(item.ID+ "\t" + item.name + "\t" +item.price);

}

}

上述代码中,用来查询所有库存商品信息。

3.2.添加新货物

public static void addFruitItem(ArrayListlist) {//创建新获取对象

FruitItem newItem= newFruitItem();

Scanner sc= new Scanner(System.in);//键盘输入对象//提示输入信息

System.out.print("请输入新水果的名称:");

newItem.name=sc.next();

System.out.print("请输入新水果的编号:");

newItem.ID=sc.nextInt();

System.out.print("请输入新水果单价:");

newItem.price=sc.nextDouble();//向货物集合中添加新的物品项

list.add(newItem);

}

上述代码中,通过键盘录入,将录入的商品信息存储到库存商品集合中。

3.3.删除货物

public static void delFruitItem(ArrayListlist) {

System.out.print("请输入您要删除的水果编号:");

Scanner sc= new Scanner(System.in);//键盘输入对象

int fruitID =sc.nextInt();//删除集合元素

for (int i = 0; i < list.size(); i++) {

FruitItem thisItem=list.get(i);if(thisItem.ID ==fruitID) {

list.remove(thisItem);

System.out.println("水果信息删除完毕!");return;

}

}

System.out.println("对不起,没有这个编号的水果!");

}

上述代码中,通过键盘录入,在库存集合中查找对应的商品编号,如果找到该商品,将该商品删除,否则,提示没有这个编号的商品。

3.4.修改货物

public static void updateFruitItem(ArrayListlist) {

System.out.println();

System.out.print("请输入您要修改信息的水果编号:");

Scanner sc= new Scanner(System.in);//键盘输入对象

int fruitID =sc.nextInt();//更新集合元素

for (int i = 0; i < list.size(); i++) {

FruitItem thisItem=list.get(i);if(thisItem.ID ==fruitID) {

System.out.print("请输入新的水果ID:");

thisItem.ID=sc.nextInt();

System.out.print("请输入新的水果名称:");

thisItem.name=sc.next();

System.out.print("请输入新的水果单价:");

thisItem.price=sc.nextDouble();

System.out.println("水果信息更新完毕!");return;

}

}

System.out.println("对不起,没有这个编号的水果!");

}

上述代码中,通过键盘录入,在库存集合中查找对应的商品编号,如果找到该商品,则键盘录入修改商品信息,否则,提示没有这个编号的商品。

超市库存java管理系统_Java案例:超市库存管理系统相关推荐

  1. java中交通灯管理系统_java案例--交通灯管理系统学习

    一.需求分析 刚接到一个项目或者面试题(总之是一个相对比较复杂的问题时),应该对认真阅读问题的 要求和描述,并通过对这些的分析进行抽象,通过一个个对象的方式来考虑自己的程序该 怎么写.所以,首先来看看 ...

  2. java人事管理系统_Java课程设计——人事管理系统

    1 packagePersonSystem;2 3 import java.awt.*;4 import java.awt.event.*;5 import javax.swing.*;6 impor ...

  3. java书店库存系统论文_JAVA论文网上书店管理系统优秀毕业论文

    JAVA论文网上书店管理系统优秀毕业论文 沈阳航空工业学院毕业设计(论文)I网上书店系统院 系专 业班 级学 号姓 名指导教师负责教师沈阳航空工业学院毕业设计(论文)II摘 要20 世纪末,随着计算机 ...

  4. 把超市系统连接到java数据库_Java项目 超市管理系统(二)数据库的分析与建立...

    项目是在网上找的,后面我会附上项目的链接. 需求:建立一个简易的超市管理系统数据库 分析:超市数据库中肯定有一个商品表,有一个管理员表,还有一个销售表.这样一个基本的超市数据库雏形就有了.下面开始构建 ...

  5. java 打折_Java 为超市打折水果编写一个购物程序

    (1)抽象父类Fruit,包含以下属性和方法: a)一个int类型的成员变量unitPrice,存放单价,单位为元/千克; b)一个int类型的成员变量amount,存放重量,单位为千克. c)一个d ...

  6. java宠物商店管理系统_Java实现宠物商店管理系统

    Java实现宠物商店管理系统,宠物,宠物商店,数组,您的,还需要 Java实现宠物商店管理系统 易采站长站,站长之家为您整理了Java实现宠物商店管理系统的相关内容. 本文实例为大家分享了Java实现 ...

  7. java 人事_java版简易人事管理系统

    [实例简介] 通过对java的学习.用开发工具开发的一款简易人事管理系统 [实例截图] [核心代码] 386393HMSs └── HMSs ├── bin │   ├── com │   │   └ ...

  8. java中的JDBC用户管理系统_Java+JDBC学生信息管理系统

    base包下: package base; import java.sql.ResultSet; import java.sql.SQLException; import dao.AdminDAO; ...

  9. java web信息管理系统_Java web学生信息管理系统

    [实例简介] 基于Jsp&servlet;+JavaBean的学生信息管理系统,实现了学生成绩.课程.教师的管理 [实例截图] [核心代码] Javaweb学生信息管理系统 └── Java ...

  10. swing java管理系统_Java swing实现酒店管理系统

    packagecom.sunshine.setup;import javax.swing.*;import javax.swing.border.*;import javax.swing.table. ...

最新文章

  1. C#远程访问linux(ubuntu)或windows的mysql数据库
  2. 【数据库系统概论】考研第六部分重点分析【6.1】
  3. Failed to import pydot
  4. linux .run文件_Linux快捷键及目录结构
  5. shell脚本 猜数字游戏并计数比较次数
  6. 普惠AI,将是开发者下一个风口吗?看看他们怎么说
  7. 初中生学计算机应用有什么好方面,计算机有哪些专业 初中毕业学习相关专业有发展吗...
  8. linux 同步数据scp与rsync
  9. 秒针国家统计局项目:我的一些感想和8点安全措施
  10. Cloudera Manager 环境搭建
  11. Linux Ubuntu 初学命令
  12. 【困难】数字迷宫,找到迷宫中的单词。
  13. 如何减少城市拥堵?——虹科利用激光雷达技术实现智能交通
  14. 锂电池电量百分比计算_锂电池充放电理论及电量计算方法详解
  15. 瘟神的尾行 -- Rootkit技术发展史 (转载)
  16. 抽象、封装、继承、多态--基本理解
  17. vue日历,阳历, 阴历,周,年,月,下拉选择,引用element组件,
  18. 网易集团补贴百万,游戏开发者扶持计划!仅限30名!!
  19. 汽车资讯APP软件开发与后期维护
  20. 《程序猿和攻城狮》 --南京大学软件学院导学课 测试一答案

热门文章

  1. 点击reset按钮失效,不能清空输入框。
  2. Java工程师进阶,Java全栈知识体系
  3. Linux日文教程,【图片】#教程#修正配置 Noto Sans CJK 避免中文显示为异体(日文)字形【linux吧】_百度贴吧...
  4. 彻底关闭 wps 热点广告
  5. Codeforces蓝名紫名黄名纪念贴
  6. vue 倒计时 插件_vue2.0实现倒计时的插件(时间戳 刷新 跳转 都不影响)
  7. java 数据内地地址_我国大陆居民×××Java验证
  8. mac nginx php-fpm,Mac OS nginx 502 解决记录(php-fpm 启动失败)
  9. 美团前端面试题(附答案)
  10. 【数据仓库与OLAP技术】期末复习+考题