1. 首先编写一个 Fruitltem 的商品类, 描述 商品的基本信息.

  代码如下:

  保证详细, 运行的起来, 有什么 问题也可以评论留言.

/*
* 自定义类, 描述商品信息
*
* 商品的属性:
*
* 编号, int
*
* 品名, String
*
* 价格, double
*
* 数量, int
*
* 总价, double
*
* 商品类型, 最终是要 存储到 集和 ArrayList 中去用的.
*/
public class FruitItem {

// 商品的编号
int ID;

// 商品的名字
String name;

// 商品的单价
double price;

// 商品的数量
int number;

// 总金额
double money;

}

2. 其次编写一个 超市管理系统的 主类,  用于 用户的菜单选择,, 实现 商品的初始化 功能,  对 商品 进行 增删改查 的 功能.

import java.util.ArrayList;
import java.util.Scanner;

/*
* 超市管理系统主类,
*
* 实现:
*
* 1. 商品数据的初始化.
*
* 2. 用户的菜单选择
*
* 3. 根据选择执行不同的功能
* 3.1 Read 查看商品
* 3.2 Create 添加商品
* 3.3 Delete 删除商品
* 3.4 Update 修改商品
*
*
* 以上所有功能, 必须定义方法实现
*
* 主方法 main 就一个作用, 调用作用.
*
*/
public class Shop {

public static void main(String[] args) {

// 创建 ArrayList 集合, 存储商品类型, 存储数据类型 FruitItem 类型.

ArrayList<FruitItem> array = new ArrayList<FruitItem>();

// 调用商品初始化方法, 传递集合.
init(array); // 输出结果: [ ] , 集合中是空的.

// System.out.println(array); // 输出结果: [FruitItem@9e89d68, FruitItem@3b192d32, FruitItem@16f65612] 对了!

// mainMenu();

while(true) {

// 调用菜单方法
mainMenu();

// 调用用户选择序号方法
int choose = chooseFunction();

switch (choose) {
case 1:
// 调用1: 货物清单
showFruitList(array);
break;
case 2:
// 调用2: 添加货物

addFruit(array);
System.out.println("添加成功!");
break;
case 3:
// 调用3: 删除货物
deleteFruit(array);
break;
case 4:
// 调用4: 修改货物
UpdateFruit(array);
break;
case 5:
return;

default:
System.out.println("您输入的序号没有");
break;
}

}
}

/*
* 定义方法, 实现商品的修改功能
*
* 返回值: 无
*
* 参数: 集合
*
* 提示用户选择的是修改功能
*
* 提示用户输入需要修改的商品编号
*
* 遍历集合, 获取每个 FruitItem 变量
*
* 变量调用 ID 属性, 属性和用户输入的编号比较,
* 如果相同:
* 修改掉 FruitItem 中的属性值,
* 需要用户的键盘输入
*/

public static void UpdateFruit(ArrayList<FruitItem> array) {

System.out.println("您选择的是修改功能!");

System.out.println("请您输入需要修改的商品编号: ");

Scanner sc = new Scanner(System.in);

int ID = sc.nextInt();

// 遍历集合, 获取每个 FruitItem 变量

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

FruitItem item = array.get(i);

// 获取 FruitItem 的属性 ID, 和用户输入的 ID 作比较。

if( item.ID == ID) {

System.out.println("请您输入新的商品编号:");
item.ID = sc.nextInt();

System.out.println("请您输入新的商品名称: ");
item.name = sc.next();

System.out.println("请您输入新的商品单价: ");
item.price = sc.nextDouble();

System.out.println("商品修改成功!");

return;
}
}

System.out.println("您输入的编号不存在!");

}

/*
* 定义方法, 实现商品的删除功能
*
* 返回值: 无
*
* 参数: 集合
*
*
* 删除依靠的是商品的编号
*
* 提示用户选择的是删除功能
*
* 键盘输入商品的编号
*
* 遍历集合, 获取集合中的每个 FruitItem 变量
*
* 变量调用属性 ID, 和用户的输入的编号, 对比, 相同就删除
*
*
*/

public static void deleteFruit(ArrayList<FruitItem> array) {

System.out.println("您选择的是删除功能");

System.out.println("请输入商品的编号");

Scanner sc = new Scanner(System.in);

int ID = sc.nextInt();

// 遍历集合
for(int i = 0; i < array.size(); i++) {
// 获取到每个 FruitItem 的变量

FruitItem item = array.get(i);

// 变量, 调用属性 ID, 和用户输入的编号比较

if( item.ID == ID) {

// 如果相等, 移出集合中的元素

// 集合的方法 remove 实现

array.remove(i);

System.out.println("删除成功!");

return;

}
}
System.out.println("您输入的编号不存在!");

}

/*
*
* 定义方法, 实现商品的添加功能
*
* 返回值: 无
*
* 参数: 集合
*
* 1. 提示用户选择的是添加商品的功能
*
* 2. 提示用户输入的是什么?
*
* 创建 FruitItem 变量, 变量调用的属性
* 3. 将输入的每个商品属性进行赋值.
*/

public static void addFruit(ArrayList<FruitItem> array) {

System.out.println("您选择的是添加商品功能");

// 创建 Scanner 变量
Scanner sc = new Scanner(System.in);

System.out.println("请输入商品的编号");
// 输入的是商品的编号

int ID = sc.nextInt();

System.out.println("请输入商品的名称");
// 输入的是商品的名称

String name = sc.next();

System.out.println("请输入商品的单价");
// 输入的是商品的单价

double price = sc.nextDouble();

// 创建 FruitItem 类型的变量

FruitItem item = new FruitItem();

// item.属性赋值

item.ID = ID;

item.name = name;

item.price = price;

array.add(item);
}

/*
* 定义方法: 实现显示货物清单的功能.
* 返回值: 无
* 参数: 集合
* 遍历集合, 获取集合中的每个 FruitItem 变量, 再用这个变量调用属性
*/

public static void showFruitList(ArrayList<FruitItem> array) {

System.out.println();

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

System.out.println("商品编号 商品名称 商品单价");

// 遍历集合

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

// 通过集合的 get 方法, 获取出每个 FruitItem 变量, 可以使用 FruitItem 接收 get 结果.

FruitItem item = array.get(i);

// 变量 item 调用类中属性

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

}

/*
* 定义方法, 实现接收用户的键盘输入
*
* 返回编号
*/

public static int chooseFunction() {

Scanner sc = new Scanner(System.in);

return sc.nextInt();
}

/*
* 定义方法, 实现主菜单
*
* 提示用户哪些选择 让用户选择序号
*
* 方法名: mainMenu
*
* 方法返回值: 无
*
* 参数: 无
*/

public static void mainMenu() {

System.out.println();

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

System.out.println("1: 货物清单 2: 添加货物 3: 删除货物 4: 修改货物 5: 退出");

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

/*
* 定义方法, 实现商品数据的初始化
*
* 先将一部分数据, 存储到集合中.
*
* 返回值: 无
*
* 参数: 集合
*
* 方法名: init
*/

public static void init(ArrayList<FruitItem> array) {

// 创建出 FruitItem 类型, 并且属性赋值.

FruitItem f1 = new FruitItem();

f1.ID = 9527; // 9527 是谁? 唐伯虎啊?? 哈哈~

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

f1.price = 12.7;

FruitItem f2 = new FruitItem();

f2.ID = 9008; // 9527 是谁? 唐伯虎啊?? 哈哈~

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

f2.price = 5.6;

FruitItem f3 = new FruitItem();

f3.ID = 9879; // 9527 是谁? 唐伯虎啊?? 哈哈~

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

f3.price = 599.6;

// 将创建的 3个 FruitItem 类型变量, 存储到集合中.

array.add(f1);

array.add(f2);

array.add(f3);

}

}

Java 实现一个 能够 进行简单的增删改查的 超市管理系统的更多相关文章

  1. Java通过JDBC进行简单的增删改查(以MySQL为例)

    Java通过JDBC进行简单的增删改查(以MySQL为例) 目录: 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JD ...

  2. Java web 简单的增删改查程序(超详细)

    就是简单的对数据进行增删改查.代码如下: 1.bean层:用来封装属性及其get set方法 toString方法,有参构造方法,无参构造方法等. public class Bean { privat ...

  3. salesforce 零基础学习(五十一)使用 Salesforce.com SOAP API 实现用户登录以及简单的增删改查(JAVA访问salesforce)

    此篇请参看:https://resources.docs.salesforce.com/202/latest/en-us/sfdc/pdf/salesforce_developer_environme ...

  4. ElasticSearch6(三)-- Java API实现简单的增删改查

    基于ElasticSearch6.2.4, Java API创建索引.查询.修改.删除,pom依赖和获取es连接 可查看此文章. package com.xsjt.learn; import java ...

  5. BitAdminCore框架应用篇:(二)创建一个简单的增删改查模块

    NET Core应用框架之BitAdminCore框架应用篇系列 框架演示:http://bit.bitdao.cn 框架源码:https://github.com/chenyinxin/cookie ...

  6. MyBatis学习--简单的增删改查

    jdbc程序 在学习MyBatis的时候先简单了解下JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: Public static void main(String[] args) ...

  7. 通过JDBC进行简单的增删改查

    通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操 ...

  8. MyBatis简单的增删改查以及简单的分页查询实现

    MyBatis简单的增删改查以及简单的分页查询实现 <? xml version="1.0" encoding="UTF-8"? > <!DO ...

  9. 初试KONCKOUT+WEBAPI简单实现增删改查

    初试KONCKOUT+WEBAPI简单实现增删改查 前言 konckout.js本人也是刚刚接触,也是初学,本文的目的是使用ko和asp.net mvc4 webapi来实现一个简单增删改查操作.Kn ...

随机推荐

  1. Java 学习笔记之 线程Priority

    线程Priority: 线程可以划分优先级,优先级较高的线程得到的CPU资源较多,也就是CPU优先执行优先级较高的线程对象中的任务. 设置线程优先级有助于帮助“线程规划器”确定在下一次选择哪个线程来优 ...

  2. vue图片点击放大预览

    第一种:viewerjs使用介绍(PC.移动端都兼容) 1.先安装依赖 npm install v-viewer --save 2.main.js内引用并注册调用 //main.js import V ...

  3. 你也可以写个服务器 - C# Socket学习2

    前言 这里说的服务器是Web服务器,是类似IIS.Tomcat之类的,用来响应浏览器请求的服务. Socket模拟浏览器的Url Get请求 首先浏览器的请求是HTTP协议.我们上一篇说过,HTTP是 ...

  4. HTTP中get和post

    HTTP中get和post的区别 GET - 从指定的资源请求数据. POST - 向指定的资源提交要被处理的数据 GET POST 后退/刷新 无害的 数据会被重新提交 书签 可收藏为书签 不可收藏 ...

  5. ElasticSearch安装SQL插件

    ElasticSearch安装SQL插件下载地址(中国大佬开发的,膜拜ing):https://github.com/NLPchina/elasticsearch-sql 1.记得选择和自己Elast ...

  6. 零基础:如何快速学习JavaScript,html+css技术

    前端开发要学的知识内容涉及的会很宽泛,虽然说主要是HTML.CSS和JavaScript这些基础知识点,但达妹今天想强调一下,学前端开发除了要学这些基础知识外,学员还要在这之上进行延伸和深入的去学,而 ...

  7. powershell加载EXE进内存运行

    当实战中我们想在目标上运行一些相当复杂的功能,这些功能常是 EXE 文件的一部分.我不想直接在目标上放置一个二进制文件,因为这样可能会触发反病毒机制.一个很好的思路就是将二进制文件嵌入到 Powers ...

  8. 代码审计-phpcms9任意文件读取

    漏洞文件: /phpcms/modules/content/down.php download函数 这个函数开始几行代码的作用和init函数中的几乎一样,都是从parse_str 解析传入的a_k参数 ...

  9. PHP array_reduce

    1.函数的作用:用函数迭代数组的所有元素 2.函数的参数: @params  array  $array   用于迭代的数组 @params  callable  $callback  迭代的函数 @ ...

  10. Python 爬取豆瓣TOP250实战

    学习爬虫之路,必经的一个小项目就是爬取豆瓣的TOP250了,首先我们进入TOP250的界面看看. 可以看到每部电影都有比较全面的简介.其中包括电影名.导演.评分等. 接下来,我们就爬取这些数据,并将这 ...