You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java销售结算代码查询总销售额显示为0,如何实现数据保存与多输入

问题修复与优化方案

1. 总销售额返回0的修复

根因

你在密码校验通过后重新实例化了一个Main对象c,而用户选购商品的数据都存在之前创建的store实例中,新实例的购物车所有商品购买数量均为0,调用getTotal()自然返回0。

修复代码

把main方法中密码校验通过后的逻辑修改为直接调用原有store实例的totalSales():

if(check) {
    System.out.println("Correct password.Here is the access");
    // 删掉Main c=new Main();这行无效代码
    store.totalSales();
}

2. 累计总销售额实现

当前代码没有跨订单的销售额累计逻辑,新增静态累计变量即可实现,静态变量属于类全局共享,不会随实例销毁丢失:

新增代码

在Main类中添加静态累计变量:

// 新增全局累计销售额变量
private static double totalSalesAmount = 0.0;

修改结算方法,每次订单结算时将当前订单金额累加:

public void finnishPurchase() {
    double currentTotal = getTotal();
    System.out.println("---------------------");
    System.out.println("Subtotal: " + getSubtotal());
    System.out.println("Vat: " + vat);
    System.out.println("Total: " + currentTotal);
    // 累加当前订单到总销售额
    totalSalesAmount += currentTotal;
}

修改totalSales方法直接输出累计值:

public void totalSales(){
    System.out.println("Total sales is "+ totalSalesAmount);
}

3. 菜单多输入功能实现

可以修改交互逻辑,新增主菜单循环,支持用户多次选择操作:

public void showMenu() {
    System.out.println("\n===== 销售结算系统 =====");
    System.out.println("1. 选择商品添加到购物车");
    System.out.println("2. 查看购物车");
    System.out.println("3. 结算当前订单");
    System.out.println("4. 退出系统");
    System.out.print("请输入操作序号:");
}

将main方法的循环逻辑修改为根据菜单选择执行对应操作,直到用户选择退出为止,同时新增异常处理避免输入非法值导致程序崩溃。

4. 其他代码优化点

  • 修正Product类的select方法逻辑:原有逻辑是直接覆盖购买数量,改为累加更符合使用习惯:
    public void select(int quantity) {
        quantitySelected += quantity;
    }
    
  • 修正拼写错误:finnishPurchase改为finishPurchase
  • 把VAT税率定义为常量:private static final double VAT = 0.13;,你代码中0.5的税率不符合实际业务逻辑
  • 删除无用变量:类中定义的static double a从未使用,直接删除
  • 不要重复创建Scanner实例:main方法中无需再new新的Scanner,直接复用类中的scanner属性即可
  • 给类成员添加访问修饰符,符合Java封装规范:比如把cart、vat等属性改为private,必要的方法提供public访问入口
  • 新增商品序号越界异常处理:当用户输入的商品序号超过购物车范围时,捕获IndexOutOfBoundsException给出友好提示,避免程序直接崩溃

内容的提问来源于stack exchange,提问作者shad A

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 19:54:03