java超市进销存_Java Day15-超市进销存项目开发流程

package com.soft863;

import java.util.Scanner;

public class GoodsService {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

int num = 0;//下标记录添加了多少个商品

while (true) {

System.out.println("欢迎使用超市进销存系统1.0 ");

System.out.print("1.增加商品 ");

System.out.print("2.删除商品 ");

System.out.print("3.修改商品 ");

System.out.print("4.根据商品名称查询商品 ");

System.out.print("5.查询所有商品 ");

System.out.println("0.退出系统");

System.out.print("请选择:");

int choose = sc.nextInt();

switch (choose) {

//实现添加商品功能

case 1:

if (num >= 5) { //判断商品数量是否超过模拟数据库给的最大数量

System.out.println("商品已满无法继续添加");

}

System.out.println("请输入商品名称:");

DateBase.names[num] = sc.next();

System.out.println("请输入商品数量:");

DateBase.numbers[num] = sc.nextInt();

System.out.println("请输入商品价格:");

DateBase.moneys[num] = sc.nextDouble();

num++; //每输入一次商品数量+1

break;

case 2:

System.out.println("请输入需要删除的商品名称:");

String deleteName = sc.next();

boolean deleteFlag = false;

// 找到商品

for (int i = 0; i < DateBase.names.length; i++) {

if (deleteName.equals(DateBase.names[i])) {

deleteFlag = true;

//嵌套for循环 从外层找到对应下标第i位的商品 使j=i 循环使j后的数据往前覆盖 j需要小于数组长度减一 如果不减一推到最后一位就会下标越界

for (int j = i; j < DateBase.names.length - 1; j++) {

DateBase.names[j] = DateBase.names[j + 1];

DateBase.numbers[j] = DateBase.numbers[j + 1];

DateBase.moneys[j] = DateBase.moneys[j + 1];

}

//使数组最后一位的信息赋值为空

DateBase.names[DateBase.names.length - 1] = null;

DateBase.numbers[DateBase.numbers.length - 1] = 0;

DateBase.moneys[DateBase.moneys.length - 1] = 0.0;

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

num--;//每删除一次商品数量-1

break;

}

}

if (!deleteFlag) {

System.out.println("查无此商品");

}

break;

case 3:

System.out.println("请输入需要修改的商品名称:");

String updateName = sc.next();

boolean updateFlag = false;

int updateNum = 0; //重新定义修改商品的模拟数据库数组下标 从而覆盖原商品信息

//根据商品名称修改 首先通过查询功能查是否存在此商品

for (int i = 0; i < DateBase.names.length; i++) {

if (updateName.equals(DateBase.names[i])) {

updateFlag = true;

updateNum = i;

System.out.println("商品名称\t\t商品数量\t\t商品价格");

System.out.println(DateBase.names[i] + "\t" + DateBase.numbers[i] + "\t" + DateBase.moneys[i]);

break;

}

}

if (!updateFlag) {

System.out.println("查无此商品");

}

// 根据重新定义的修改商品的模拟数据库数组下标 输入覆盖原模拟数据库商品信息

System.out.println("请输入商品名称:");

DateBase.names[updateNum] = sc.next();

System.out.println("请输入商品数量:");

DateBase.numbers[updateNum] = sc.nextInt();

System.out.println("请输入商品价格:");

DateBase.moneys[updateNum] = sc.nextDouble();

break;

case 4:

System.out.println("请输入需要查询的商品名称:");

String findName = sc.next();

boolean findFlag = false;

//根据下标循环对比商品名和输入的商品名

for (int i = 0; i < DateBase.names.length; i++) {

if (findName.equals(DateBase.names[i])) {

findFlag = true; // 如果相等把布尔值等于真

System.out.println("商品名称\t\t商品数量\t\t商品价格");

System.out.println(DateBase.names[i] + "\t" + DateBase.numbers[i] + "\t" + DateBase.moneys[i]);

break;

}

}

if (!findFlag) { //如果不相等布尔值等于假 判断不相等

System.out.println("查无此商品");

}

break;

case 5:

//实现查询/显示全部商品

System.out.println("商品名称\t\t商品数量\t\t商品价格");

//根据下标循环输出模拟数据库中所有商品信息

for (int i = 0; i < DateBase.names.length && i < DateBase.numbers.length && i < DateBase.moneys.length; i++) {

if (DateBase.names[i] != null) //判断 只输出商品名称不为空的商品信息

System.out.println(DateBase.names[i] + "\t" + DateBase.numbers[i] + "\t" + DateBase.moneys[i]);

}

break;

case 0:

return;

}

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值