Java学习 Day2_2

这篇博客介绍了如何使用Java编程实现一个小型超市的商品管理功能,包括添加、删除、修改、查询和购买商品的操作。通过创建Store类和Test类,利用静态数组存储商品信息,并提供了相应的功能方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**
 * 需求:
 * 创建一个小型超市的商品展示与购买
 * 功能:
 * 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);
    }
    
    

}
 

电动汽车数据集:2025年3K+记录 真实电动汽车数据:特斯拉、宝马、日产车型,含2025年电池规格和销售数据 关于数据集 电动汽车数据集 这个合成数据集包含许多品牌和年份的电动汽车和插电式车型的记录,捕捉技术规格、性能、定价、制造来源、销售和安全相关属性。每一行代表由vehicle_ID识的唯一车辆列表。 关键特性 覆盖范围:全球制造商和车型组合,包括纯电动汽车和插电式混合动力汽车。 范围:电池化学成分、容量、续航里程、充电准和速度、价格、产地、自主水平、排放、安全等级、销售和保修。 时间跨度:模型跨度多年(包括传统和即将推出的)。 数据质量说明: 某些行可能缺少某些字段(空白)。 几个分字段包含不同的、特定于供应商的值(例如,Charging_Type、Battery_Type)。 各列中的单位混合在一起;注意kWh、km、hr、USD、g/km和额定值。 列 列型描述示例 Vehicle_ID整数每个车辆记录的唯一识符。1 制造商分汽车品牌或OEM。特斯拉 型号别特定型号名称/变体。型号Y 与记录关联的年份整数模型。2024 电池_型分使用的电池化学/技术。磷酸铁锂 Battery_Capacity_kWh浮充电池称容量,单位为千瓦时。75.0 Range_km整数表示充满电后的行驶里程(公里)。505 充电型主要充电接口或功能。CCS、NACS、CHAdeMO、DCFC、V2G、V2H、V2L Charge_Time_hr浮动充电的大致时间(小时),上下文因充电方法而异。7.5 价格_USD浮动参考车辆价格(美元).85000.00 颜色别主要外观颜色或饰面。午夜黑 制造国_制造别车辆制造/组装的国家。美国 Autonomous_Level浮点自动化能力级别(例如0-5),可能包括子级别的小
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值