商品录入系统:通过简单的java知识对商品增删改查,并且通过终端与用户交互。

文章目录

  • 一、题目
  • 二、分析
    • 1、抽象出一个商品的类 goods
    • 2、调用有参的构造函数对类中属性赋值
    • 3、定义商品信息展示的方法
    • 4、定义商品信息录入的方法
    • 5、定义商品信息查询的方法
    • 6、定义修改商品信息功能的方法
    • 7、定义删除商品功能的方法
  • 三、商品类 goods
  • 四、商品测试类 goodsTest

一、题目

通过面向对象的思想,设计并完成一个简单的商品录入系统,可以实现:
菜单显示、商品信息展示、商品信息录入、商品信息查询、修改商品信息的功能、删除商品的功能、退出系统的功能
商品的信息包含:id、姓名、价格、库存、厂商

二、分析

1、抽象出一个商品的类 goods

类中方法:菜单显示、商品信息展示、商品信息录入、商品信息查询、修改商品信息的功能、删除商品的功能
类中属性:id、姓名、价格、库存、厂商

2、调用有参的构造函数对类中属性赋值

public goods(String name, double price, int id, int all, String addr) {this.name = name;this.price = price;this.id = id;this.all = all;this.addr = addr;}

3、定义商品信息展示的方法

需要进行非空判断,如果遇到空的值则不进行打印,没有遇到空值则正常输出,这样可以防止程序报空指针异常的错。

public void show(goods arr[]) {for (int i = 0; i < arr.length; i++) {if (arr[i] != null) {System.out.println("id:" + arr[i].id + ",名称:" + arr[i].name + ",价格:" + arr[i].price + ",库存:" + arr[i].all + ",厂商:" + arr[i].addr);}}}

4、定义商品信息录入的方法

该方法就是添加功能,需要往原有的数组中添加新的对象,同样:在进行添加之前需要进行非空判断,以防空指针异常,这里定义了一个新的数组,将旧数组中的内容一 一给到新数组后再将新加的内容加进去,最后将新数组返回。

public goods[] add(goods[] arr, goods obj) {goods newarr[] = new goods[arr.length * 2];for (int i = 0; i < arr.length; i++) {//将旧的数组赋值给新的数组newarr[i] = arr[i];}newarr[arr.length + 1] = obj;return newarr;}

5、定义商品信息查询的方法

返回值为Boolean类型,即存在返回值为true,不存在返回false,拿到传过来的数组后遍历数组,进行判断是否非空以及判断传过来的值跟数组中的值是否有相等,如果相等则代表仓库中存在该元素再将flag设置为true即可。

public boolean select(goods[] arr, String name) {boolean flag = false;for (int i = 0; i < arr.length; i++) {if ((arr[i] != null) && (arr[i].name.equals(name))) {flag = true;break;}}return flag;}

6、定义修改商品信息功能的方法

对已有的数据进行修改,但是需要注意的一点是:这里是根据id更改的数据,所以id应该是固定的,其余的数据是用户输入的。

public goods[] update(goods[] arr, int reId, goods obj) {for (int i = 0; i < arr.length; i++) {if ((arr[i] != null) && (arr[i].id) == reId) {arr[i] = obj;break;}}return arr;}

7、定义删除商品功能的方法

删除商品方法需要返回一个修改完后的数组,获取用户想要删除的id后进行判断,如果仓库中有该id,则将该id所在的对象设置为null

public goods[] delete(goods[] arr, int reId) {goods newarr[] = new goods[arr.length * 2];for (int i = 0; i < arr.length; i++) {if ((arr[i] != null) && (arr[i].id == reId)) {arr[i] = null;System.out.println("删除成功");break;}else {System.out.println("删除失败");break;}}return arr;}

三、商品类 goods

public class goods {String name; // 商品名称double price; // 商品价格int id; // 商品idint all; // 库存String addr; // 厂商//    TODO 商品信息展示public void show(goods arr[]) {for (int i = 0; i < arr.length; i++) {if (arr[i] != null) {System.out.println("id:" + arr[i].id + ",名称:" + arr[i].name + ",价格:" + arr[i].price + ",库存:" + arr[i].all + ",厂商:" + arr[i].addr);}}}//    TODO 商品信息录入public goods[] add(goods[] arr, goods obj) {goods newarr[] = new goods[arr.length * 2];for (int i = 0; i < arr.length; i++) {//将旧的数组赋值给新的数组newarr[i] = arr[i];}newarr[arr.length + 1] = obj;return newarr;}//    TODO 商品信息查询public boolean select(goods[] arr, String name) {boolean flag = false;for (int i = 0; i < arr.length; i++) {if ((arr[i] != null) && (arr[i].name.equals(name))) {flag = true;break;}}return flag;}//    TODO 修改商品信息public goods[] update(goods[] arr, int reId, goods obj) {for (int i = 0; i < arr.length; i++) {if ((arr[i] != null) && (arr[i].id) == reId) {arr[i] = obj;break;}}return arr;}//    TODO 删除商品信息public goods[] delete(goods[] arr, int reId) {goods newarr[] = new goods[arr.length * 2];for (int i = 0; i < arr.length; i++) {if ((arr[i] != null) && (arr[i].id == reId)) {arr[i] = null;System.out.println("删除成功");break;}else {System.out.println("删除失败");break;}}return arr;}public goods(String name, double price, int id, int all, String addr) {this.name = name;this.price = price;this.id = id;this.all = all;this.addr = addr;}
}

四、商品测试类 goodsTest

import java.util.Scanner;public class goodsTest {public static void main(String[] args) {Scanner input = new Scanner(System.in);goods goods1 = new goods("苹果", 12.2, 1, 1000, "湖南");goods goods2 = new goods("香蕉", 13.2, 2, 1100, "湖南");goods array[] = {goods1, goods2};System.out.println("-----------------------");System.out.println("请选择下面的操作编号:");System.out.println("1-查询所有信息   2-添加信息  3-查询信息  4-修改信息  5-删除信息  6-退出系统");System.out.println("-----------------------");int i=1;while(i>0){int number = input.nextInt();switch (number) {// todo 信息展示case 1:goods1.show(array);System.out.println("请选择操作编号:");break;// todo 信息录入case 2:goods goods3 = new goods("李子", 13.2, 3, 1300, "湖南");array = goods3.add(array, goods3);goods1.show(array);System.out.println("请选择操作编号:");break;// todo 信息查询case 3:System.out.print("请输入查询的名称:");String res = input.next();boolean flag = goods2.select(array, res);if (flag) {System.out.println("仓库存在该商品");} else {System.out.println("仓库没有该商品");}System.out.println("请选择操作编号:");break;// todo 修改信息case 4:System.out.print("请输入需要修改的商品的Id:");int reId = input.nextInt();System.out.println("请依次输入修改后的商品信息:");System.out.print("商品名称:");String name = input.next();System.out.print("商品价格:");double price = input.nextDouble();System.out.print("商品库存:");int all = input.nextInt();System.out.print("厂商地址:");String addr = input.next();goods goods4 = new goods(name, price, reId, all, addr);goods array4[] = goods4.update(array, reId, goods4);goods4.show(array4);System.out.println("请选择操作编号:");break;case 5:System.out.print("请输入删除的商品的id:");int reId2 = input.nextInt();goods array5[] = goods2.delete(array, reId2);goods2.show(array5);System.out.println("请选择操作编号:");break;default:i=-1;}}}
}

Java-商品录入系统相关推荐

  1. java成绩录入系统健壮性_Java第三季第一章异常,作业,借书系统。能通过,但是健壮性和可读性不强...

    一个借书系统,主要是使用异常来对借书时的情况进行把控. 基本可以跑.写的还是有点乱. 不足的地方还是很多的,希望大家指教,代码如下: package com.Library; import java. ...

  2. java商品详情页设计_java高并发秒杀系统3-2节商品详情页上.mp4

    本Java商城秒杀系统视频教程目录如下:    java高并发秒杀系统1-1节java高并发商城秒杀优化学习指引.mp4 java高并发秒杀系统1-2节项目环境搭建(Eclipse)-节.mp4 ja ...

  3. java录入学生信息_java实现学生成绩录入系统

    本文为大家分享了java实现学生成绩录入系统,供大家参考,具体内容如下 1.学生类,包括学生的姓名和各科成绩 public class Score { public String name; publ ...

  4. 品优购电商系统开发 第5章 商品录入【1】

    课程目标 目标1:完成商品分类功能 目标2:了解电商概念SPU 和SKU 目标3:掌握富文本编辑器的使用 目标4:掌握上传服务器FastDFS 目标5:掌握angularJS图片上传 1.商品分类 1 ...

  5. 品优购电商系统开发----商品录入《一》(5)

    课程目标 目标1:完成商品分类功能 目标2:了解电商概念SPU 和SKU 目标3:掌握富文本编辑器的使用 目标4:掌握上传服务器FastDFS 目标5:掌握angularJS图片上传 1.商品分类 1 ...

  6. 题目:身份证录入系统 一、语言和环境 a)实现语言Java, 使用Android开发环境实现《身份证录入系统》APP。具体要求如下: 打开应用后,显示效果如图-1所示:

    题目:身份证录入系统 (有需要指导的私信我) 一.语言和环境 a)实现语言 Java b)环境要求 JDK6以上.Eclipse.ADT 二.功能要求 使用Android开发环境实现<身份证录入 ...

  7. 学生信息录入系统java代码

    学生信息录入系统可以实现学生本身账号密码登陆,然后录入自己关键信息(其中,带*的为必填)最后 会在电脑f盘生成一个自己信息录入完成的文件,并且可以提交信息,进而将文件中的信息展示出来.我觉得这部分的难 ...

  8. java商品销售_商品销售系统(Java).doc

    淮海工学院计算机工程学院 实验报告书 课程名:<面向对象程序设计> 实验名称: Java深入面向对象编程 商品销售系统 班 级: 软件081 组 长: 组 员: 李宏志. 谢超 一.实验目 ...

  9. 基于Java微服务方案的商品秒杀系统

    前言 项目是基于Java微服务方案的商品秒杀系统.是前后端分离的项目,前端用React,后端为Java的微服务架构.项目本身用于学习,在一些地方还不够成熟,欢迎各位多多交流. 客户端前端服务器 后台系 ...

最新文章

  1. 在IIS上安装 thinkphp的方法
  2. 马斯克要复活恐龙?乌龙还差不多
  3. 输出200-299之间的所有素数
  4. python.集合转列表_Python基础数据类型:元组、列表、字典、集合
  5. json数据格式化展示出来
  6. 命令模式应用_命令设计模式的应用
  7. subline3插件html,Sublime Text3与html的插件
  8. 国开电大 古代诗歌散文专题 形考任务
  9. mcrpg职业系统服务器,我的世界MC-梦想大陆RPG服务器1.7.10
  10. cloudera 卸载
  11. win10禁用计算机属性,Win10可以禁用哪些服务优化技巧?
  12. 使用int存储ip地址
  13. 北京中医药大学计算机应用基础作业1,北京中医药大学远程教育“计算机应用基础”第5次作业.doc...
  14. 360度全景效果图制作步骤是什么?
  15. vlog用什么来剪辑?分享1个剪辑生活vlog的技巧
  16. Linux网络容灾,一个简单的两个Linux之间的容灾备份的Demo
  17. JAVAWEB开发之——Linux命令实战、虚拟机和centos的安装以及联网、常用命令、vi编辑以及软件的安装、sftp的使用
  18. 求职必备||程序员的优秀简历都是这样来的
  19. Win10 升级安装全攻略
  20. matlab中xpcapi库的调用,关于MATLAB中xpc实时控制平台搭建的心得

热门文章

  1. 修复el-amap高德地图加载空白的bug
  2. 06JVM运行时内存分析
  3. python 爬取豆瓣短评
  4. 为富士康招工 服务重点企业是政府职责所在
  5. flink-cdc 基础教程 完结 附报错解决(二)
  6. 简化视频去隔行和格式重定处理
  7. 构建 3D 网页新世界
  8. 测试-自动化接口测试
  9. 时序数据库TDengine基本概念和建模思路
  10. 【很早之前的作品】2DRPG小游戏