java实战项目超市管理系统控制台版

简介: java实战项目超市管理系统控制台版

:开发目标

通过简单的控制台版本的超市管理系统对javase基础知识回顾,熟悉面向对象(java)的开发思想

:开发过程

商品信息类

/*
 * 商品信息类
 */
public class FruitItem {
   int ID;//商品编号
   String name;//商品名称
   double price;//商品价格
   int num;//商品数量
   double money;//商品zonge
}
主类
import java.util.ArrayList;
import java.util.Scanner;
/*
 * 超市管理系统的启动类
 * 实现基本功能
 *    增加商品
 *    删除商品
 *    修改商品
 *  查询商品
 */
public class Shop {
   public static void main(String[] args) {
      /*因为数组长度不可变 所以采用集合方式  ArrayList中放的是引用类型的数据
       * 创建arraylist集合 存储FruitItem类型的数据
       */
      ArrayList<FruitItem> arry = new ArrayList<FruitItem>();
      init(arry);
      //死循环操作
      while(true){
        mainMenu();
        Scanner s = new Scanner(System.in);
        int in =s.nextInt();
        switch(in){
           case 1:
              show(arry);
              break;
           case 2:
              add(arry);
              break;
           case 3:
              del(arry);
              break;
           case 4:
              update(arry);
              break;
           case 5:
              return;
           default:
                 System.err.println("输入的序号不存在");
              break;                                   
        }
      }
   }
   /*
    * 定义商品初始化方法  创建几个商品并添加到集合array中
    */
   public static void  init(ArrayList<FruitItem> arry){
      //创建第1个商品
      FruitItem f1 = new FruitItem();
      f1.ID=1000;
      f1.name="笔记本";
      f1.price=10.0;
      //创建第2个商品
      FruitItem f2 = new FruitItem();
      f2.ID=1001;
      f2.name="西红柿";
      f2.price=2.0;
      //创建第3个商品
      FruitItem f3 = new FruitItem();
      f3.ID=1002;
      f3.name="辣条";
      f3.price=5.0;
      arry.add(f1);
      arry.add(f2);
      arry.add(f3);
     
   }
   /*
    * 主方法
    */
   public static void mainMenu(){
      System.out.println();
      System.out.println("==========超市管理系统===========");
      System.out.println("1: 货物清单 2: 增加货物 3: 删除货物 4: 修改货物  5 退出");
      System.out.println("输出你要操作的编号");
   }
   /*
    * 查看方法
    */
   public static void show(ArrayList<FruitItem> arry){
      System.out.println();
      System.out.println("==========商品清单===============");
      System.out.println("商品编号         商品单价           商品名称");
      //遍历集合
      for(int i=0;i<arry.size();i++){
        FruitItem f = arry.get(i);
        System.out.println(f.ID+"    "+f.price+"     "+f.name);
      }
     
   }
   /*
    * 添加功能
    */
   public static void add(ArrayList<FruitItem> arry){
      System.out.println("选择的是添加商品功能");
      Scanner in =new Scanner(System.in);
      System.out.println("输出商品编号ID");
      int ID = in.nextInt();
      System.out.println("输入商品单价");
      double price  = in.nextDouble();
      System.out.println("输入商品名称");
      String name  =in.next();
      //创建商品对象
      FruitItem f = new FruitItem();
      f.ID=ID;
      f.price=price;
      f.name=name;
      //添加到集合
      arry.add(f);
      System.out.println("添加成功");
   }
   /*
    *
    */
   public static void del(ArrayList<FruitItem> arry){
      System.out.println();
      System.err.println("选择的是删除功能");
      System.out.println("输出要删除的商品编号ID");
      Scanner in  = new Scanner(System.in);
      int id = in.nextInt();
      //遍历集合
      for(int i=0;i<arry.size();i++){
        FruitItem f = arry.get(i);
        //比对输入的与已经存在的
        if(f.ID==id){
           arry.remove(f);
           System.out.println("删除成功");
           //当遍历相等的时候直接结束方法
           return;
           //break;
        }
        //如果if不执行则  for循环结束打印
        System.out.println("不存在此商品");    
      }         
   }
   /*
    * 修改功能
    */
   public static void update(ArrayList<FruitItem> arry){
      System.out.println();
      System.out.println("选的是修改功能");
      System.out.println("输入你要修改的商品编号ID");
      Scanner in =new Scanner(System.in);
      int id = in.nextInt();
      //遍历集合
      for(int i=0;i<arry.size();i++){
        FruitItem f =arry.get(i);
        if(f.ID==id){
           System.out.println("输入新的商品编号");
           f.ID=in.nextInt();
           System.out.println("输入商品单价");
           f.price=in.nextDouble();
           System.out.println("输入商品名称");
           f.name=in.next();
           System.out.println("修改成功");
           return;
        }
      }
      System.out.println("不存该商品");
   }
}

 

三运行结果

四缺点

以上只是简单的对java 的基础知识复习,系统本身还有许多的问题!!

更多java干货  关注微信公众号  java一号  回复 java项目 即可!


相关文章
|
10天前
|
NoSQL Java 关系型数据库
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
69 26
|
22天前
|
XML Java 测试技术
从零开始学 Maven:简化 Java 项目的构建与管理
Maven 是一个由 Apache 软件基金会开发的项目管理和构建自动化工具。它主要用在 Java 项目中,但也可以用于其他类型的项目。
36 1
从零开始学 Maven:简化 Java 项目的构建与管理
|
21天前
|
Java
Java项目中高精度数值计算:为何BigDecimal优于Double
在Java项目开发中,涉及金额计算、面积计算等高精度数值操作时,应选择 `BigDecimal` 而非 `Double`。`BigDecimal` 提供任意精度的小数运算、多种舍入模式和良好的可读性,确保计算结果的准确性和可靠性。例如,在金额计算中,`BigDecimal` 可以精确到小数点后两位,而 `Double` 可能因精度问题导致结果不准确。
|
1月前
|
Java Android开发
Eclipse 创建 Java 项目
Eclipse 创建 Java 项目
39 4
java中获取当前系统日期
java中获取当前系统日期
JAVA 获取系统日期时间
JAVA 获取系统日期时间
306 0
|
Java 应用服务中间件
JAVA 取系统当前日期 少8个小时
        Date now = new Date();          DateFormat data = newjava.text.
826 0
|
5天前
|
安全 Java API
java如何请求接口然后终止某个线程
通过本文的介绍,您应该能够理解如何在Java中请求接口并根据返回结果终止某个线程。合理使用标志位或 `interrupt`方法可以确保线程的安全终止,而处理好网络请求中的各种异常情况,可以提高程序的稳定性和可靠性。
35 6
|
20天前
|
设计模式 Java 开发者
Java多线程编程的陷阱与解决方案####
本文深入探讨了Java多线程编程中常见的问题及其解决策略。通过分析竞态条件、死锁、活锁等典型场景,并结合代码示例和实用技巧,帮助开发者有效避免这些陷阱,提升并发程序的稳定性和性能。 ####
|
18天前
|
存储 监控 小程序
Java中的线程池优化实践####
本文深入探讨了Java中线程池的工作原理,分析了常见的线程池类型及其适用场景,并通过实际案例展示了如何根据应用需求进行线程池的优化配置。文章首先介绍了线程池的基本概念和核心参数,随后详细阐述了几种常见的线程池实现(如FixedThreadPool、CachedThreadPool、ScheduledThreadPool等)的特点及使用场景。接着,通过一个电商系统订单处理的实际案例,分析了线程池参数设置不当导致的性能问题,并提出了相应的优化策略。最终,总结了线程池优化的最佳实践,旨在帮助开发者更好地利用Java线程池提升应用性能和稳定性。 ####

热门文章

最新文章