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项目 即可!


相关文章
|
14天前
|
IDE 安全 Java
Lombok 在企业级 Java 项目中的隐性成本:便利背后的取舍之道
Lombok虽能简化Java代码,但其“魔法”特性易破坏封装、影响可维护性,隐藏调试难题,且与JPA等框架存在兼容风险。企业级项目应优先考虑IDE生成、Java Records或MapStruct等更透明、稳健的替代方案,平衡开发效率与系统长期稳定性。
107 1
|
16天前
|
存储 小程序 Java
热门小程序源码合集:微信抖音小程序源码支持PHP/Java/uni-app完整项目实践指南
小程序已成为企业获客与开发者创业的重要载体。本文详解PHP、Java、uni-app三大技术栈在电商、工具、服务类小程序中的源码应用,提供从开发到部署的全流程指南,并分享选型避坑与商业化落地策略,助力开发者高效构建稳定可扩展项目。
|
16天前
|
安全 Java API
Java Web 在线商城项目最新技术实操指南帮助开发者高效完成商城项目开发
本项目基于Spring Boot 3.2与Vue 3构建现代化在线商城,涵盖技术选型、核心功能实现、安全控制与容器化部署,助开发者掌握最新Java Web全栈开发实践。
192 1
|
16天前
|
安全 Cloud Native Java
Java 模块化系统(JPMS)技术详解与实践指南
本文档全面介绍 Java 平台模块系统(JPMS)的核心概念、架构设计和实践应用。作为 Java 9 引入的最重要特性之一,JPMS 为 Java 应用程序提供了强大的模块化支持,解决了长期存在的 JAR 地狱问题,并改善了应用的安全性和可维护性。本文将深入探讨模块声明、模块路径、访问控制、服务绑定等核心机制,帮助开发者构建更加健壮和可维护的 Java 应用。
93 0
|
22天前
|
NoSQL Java 关系型数据库
超全 Java 学习路线,帮你系统掌握编程的超详细 Java 学习路线
本文为超全Java学习路线,涵盖基础语法、面向对象编程、数据结构与算法、多线程、JVM原理、主流框架(如Spring Boot)、数据库(MySQL、Redis)及项目实战等内容,助力从零基础到企业级开发高手的进阶之路。
120 1
|
2月前
|
前端开发 Java API
2025 年 Java 全栈从环境搭建到项目上线实操全流程指南:Java 全栈最新实操指南(2025 版)
本指南涵盖2025年Java全栈开发核心技术,从JDK 21环境搭建、Spring Boot 3.3实战、React前端集成到Docker容器化部署,结合最新特性与实操流程,助力构建高效企业级应用。
502 1
|
16天前
|
数据采集 存储 弹性计算
高并发Java爬虫的瓶颈分析与动态线程优化方案
高并发Java爬虫的瓶颈分析与动态线程优化方案
Java 数据库 Spring
49 0
|
28天前
|
算法 Java
Java多线程编程:实现线程间数据共享机制
以上就是Java中几种主要处理多线程序列化资源以及协调各自独立运行但需相互配合以完成任务threads 的技术手段与策略。正确应用上述技术将大大增强你程序稳定性与效率同时也降低bug出现率因此深刻理解每项技术背后理论至关重要.
63 16
|
2月前
|
缓存 并行计算 安全
关于Java多线程详解
本文深入讲解Java多线程编程,涵盖基础概念、线程创建与管理、同步机制、并发工具类、线程池、线程安全集合、实战案例及常见问题解决方案,助你掌握高性能并发编程技巧,应对多线程开发中的挑战。

热门文章

最新文章