/**
* 需求:
* 创建一个小型超市的商品展示与购买
* 功能:
* 1.显示所有的商品信息(名称,价格,库存)
* 2.添加商品信息
* 3.删除商品
* 4.修改商品
* 5.查询商品
* 6.购买商品
* */
一、实现流程
1>在一个包内创建两个类:
1.Store.java ==> 实现需求功能
2.Test.java ==> 实例化需求功能
2>在Store.java中创建商品信息的多个数组
nameArr priceArr storeArr
**这里要将定义一个数组的下标,用来对数组进行功能操作。
public static int index=0;
**java中的static区别于c语言中的static,它没有全局变量的概念,而是被static修饰的成员变量和成员方法独立于该类的任何对象。
3>创建add()函数来添加商品,在Test.java中添加
Store.add("鸡蛋",3.5,50);
**这里利用index来定位数组的位置,再每添加完一个商品,使得index下标自动后移一个单位;
4>删除商品==> delete(int num)
1.判断下标是否越界
**2.在删除一个数组位置后,该商品后面的商品需要往前移动一个数组单位,最后使得下标自动减1
5>更新商品信息==> update(int num)
更新的商品信息实例覆盖原数组位置信息
6>查找商品 ==> search()
1.利用遍历数组,判断搜索的信息是否于数组里的信息相等
完整搜索:nameArr[i].equals(name)
模糊搜索:nameArr[i].contains(name)
7>购买商品 ==> buy()
1.设置参数 商品名称String name,购买数量int quantity,金钱余额double money
2.搜索到商品名称后,进行购买
3.其他状况:搜索名称为空 ***其中的trim():去除字符串开头以及结尾的空白部分,若调用的参数为空,则trim()返回Null。
库存为0或余额为0
购买数量>库存量
余额<总消费
4.购买成功后要将库存量减掉。
二、源码
1.Store.java
package day2_store;
/**
* 需求:
* 创建一个小型超市的商品展示与购买
* 功能:
* 1.显示所有的商品信息
* 2.添加商品信息
* 3.删除商品
* 4.修改商品
* 5.查询商品
* 6.购买商品
* **/
import java.util.Scanner;
public class Store {
//创建商品信息
public static String[] nameArr=new String[20];
public static double[] priceArr=new double[20];
public static int[] storeArr=new int[20];
//下一个商品的下标
public static int index=0;
//添加商品信息
public static void add(String name,double price,int store) {
//防止数组超出,抛出异常,提高程序健壮性
if(index>=nameArr.length) {
throw new RuntimeException("仓库已满");
}
//添加商品
nameArr[index]=name;
priceArr[index]=price;
storeArr[index]=store;
//下标自动后移
index++;
}
//遍历显示所有商品信息
public static void display() {
for(int i=0;i<index;i++) {
System.out.println("商品名称:"+nameArr[i] +"商品价格:"+priceArr[i] +"商品数量:"+storeArr[i]);
}
}
//删除商品信息
public static void delete(int number) {
//判断下标是否越界
if(number<0||number>=index ) {
System.out.println("下标越界");
return;
}
//向前移动要删除的商品之后的商品
for(int i=number;i<index;i++) {
nameArr[i]=nameArr[i+1];
priceArr[i]=priceArr[i+1];
storeArr[i]=storeArr[i+1];
}
//下标递减
index--;
}
//更新商品信息
public static void update(int number,String name,double price,int store) {
if(number<0||number>=index) {
System.out.println("下标越界");
return;
}
//赋值到指定位置
nameArr[number]=name;
priceArr[number]=price;
storeArr[number]=store;
}
//设置查询显示
public static void nowstore(int i) {
System.out.println("商品名称:"+nameArr[i] +"商品价格:"+priceArr[i] +"商品数量:"+storeArr[i]);
}
//查找商品
public static void search(String name) {
//输入不合法 trim:去除字符串开头以及结尾的空白部分,若调用的参数为空,则trim()返回Null。
if(name==null||name.trim().length()==0) {
System.out.println("请输入合法的商品名称");
return;
}
boolean found=false;
//遍历数组,匹配关键字
for(int i=0;i<index;i++) {
//商品名称完整搜索
if(nameArr[i].equals(name))
//商品名称模糊搜索
//if(nameArr[i].contain(name))
{
Store.nowstore(i);
found=true;
}
}
if(!found) {
System.out.println("没有搜索到指定商品");
}
}
//购买商品
public static void buy(String name,int quantity,double money) {
//输入不合法 trim:去除字符串开头以及结尾的空白部分,若调用的参数为空,则trim()返回Null。
if(name==null||name.trim().length()==0) {
System.out.println("请输入合法的商品名称");
return;
}
if(quantity<=0||money<=0.0) {
System.out.pr intln("请提供合法的数目和金额");
return;
}
boolean found=false;
//查询商品名称以及购买判断
for(int i=0;i<index;i++) {
if(nameArr[i].equals(name)) {
if(quantity>storeArr[i]) {
System.out.println("库存不足");
return;
}
double total=quantity*priceArr[i];
if(money<total) {
System.out.println("抱歉,您的余额不足");
return;
}
//库存减少
storeArr[i]-=quantity;
//输出信息
System.out.println("购买成功,你购买了"+quantity+"个价格为"+priceArr[i]+"的"+nameArr[i]+"总计消费:"+total+"元"+"找零"+(money-total)+"元"+"库存剩余"+
storeArr[i]);
found=true;
break;
}
}
if(!found) {
System.out.println("没有查询到该商品信息");
return;
}
}
}
2.Test.java
package day2_store;
public class Test {
public static void main(String[] args) {
//添加商品
Store.add("eggs",4.5,10);
Store.add("apple",3.5,10);
Store.add("cup",20.0,5);
Store.add("juice",6,6);
//显示商品
System.out.println("显示所有商品信息:"+"\n");
Store.display();
//删除商品
System.out.println("-----------------------------");
Store.delete(1);
Store.display();
//更新商品
System.out.println("-----------------------------");
Store.update(2, "鲍鱼", 200.00, 100);
Store.display();
//查询商品
System.out.println("-----------------------------");
Store.search("eggs");
//购买商品
System.out.println("-----------------------------");
Store.buy("eggs", 5, 100);
System.out.println("-----------------------------");
Store.display();
System.out.println("-----------------------------");
Store.buy("西瓜", 7, 100);
System.out.println("-----------------------------");
Store.buy("eggs", 5, 10);
}
}
这篇博客介绍了如何使用Java编程实现一个小型超市的商品管理功能,包括添加、删除、修改、查询和购买商品的操作。通过创建Store类和Test类,利用静态数组存储商品信息,并提供了相应的功能方法。
1606

被折叠的 条评论
为什么被折叠?



