当前位置:网站首页 > Java基础 > 正文

java基础案例超市



案例介绍:

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

                  

案例需求分析:

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

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

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

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

   3.1.库存货物查询

  3.2.添加新货物

  3.3.删除货物

  3.4.修改货物

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

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

实现代码步骤:

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

public class FruitItem { int ID; //商品编号  String name; //商品名称 double price; //商品单价  }

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

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

    //编写main主方法

  public static void main(String[] args) { //定义数组,记录每个商品信息 ArrayList<FruitItem> list = new ArrayList<FruitItem>(); /* * 1.超市商品初始化 */ init(list); while(true){ /* * 2.显示主菜单 */ mainMenu(); /* * 3.根据接收到的功能选项,执行对应的功能 */ chooseFunction(list); } }

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

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

public static void init(ArrayList<FruitItem> list) { FruitItem item = new FruitItem(); item.name = "少林寺酥饼核桃"; item.ID = 9001; item.price = 120.0; FruitItem item2 = new FruitItem(); item2.name = "尚康杂粮牡丹饼"; item2.ID = 9002; item2.price = 20.0; FruitItem item3 = new FruitItem(); item3.name = "新疆原产哈密瓜"; item3.ID = 9003; item3.price = 7.0; list.add(item); list.add(item2); list.add(item3); }

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

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

 public static void mainMenu() { System.out.println("=========================欢迎光临itcast超市========================="); java基础案例超市 System.out.println("1:查询货物 2:添加新货物 3:删除货物 4:修改货物"); System.out.println("5:退出系统"); }

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

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

 public static void chooseFunction(ArrayList<FruitItem> list) { 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(ArrayList<FruitItem> list) { System.out.println("=======================商品库存清单======================="); System.out.println("商品编号 商品名称 商品单价"); //查询每种库存商品信息 for (int i = 0; i < list.size(); i++) { FruitItem item = list.get(i); System.out.println(item.ID + " " + item.name + " " + item.price); } }

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

  3.2.添加新货物

 public static void addFruitItem(ArrayList<FruitItem> list) { //创建新获取对象  FruitItem newItem = new FruitItem(); 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(ArrayList<FruitItem> list) { 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(ArrayList<FruitItem> list) { 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后台开发基础2025-04-30 19:42:02
  • java基础入门电子书2025-04-30 19:42:02
  • java基础5062025-04-30 19:42:02
  • java开发语法基础2025-04-30 19:42:02
  • java砸实基础2025-04-30 19:42:02
  • java基础结构图解2025-04-30 19:42:02
  • 基础java小游戏2025-04-30 19:42:02
  • java技术基础考试2025-04-30 19:42:02
  • 0基础如何入门java2025-04-30 19:42:02
  • java基础学习经验2025-04-30 19:42:02