web xiaobai 2024-05-05 15:46 采纳率: 50%
浏览 3

(标签-测试用例|关键词-字符串)

按要求设计一个订单统计类Order,实现以下功能:

静态变量:guestCount,统计订单对象的个数;

带参数的构造函数,参数是订单名(字符串)

添加订单金额的函数 add(double price) , 金额必须大于0 ,否则不添加

double getPayment() 成员函数,返回订单金额

toString() 函数,按要求返回字符串,具体请参考测试用例。

提示:toString()方法返回的字符串需要格式化,使用 String.format() 函数,返回一个字符串,小数保留两位。该函数使用方法与 System.printf() 一样,区别在于

import java.util.ArrayList;
import java.util.Scanner;
/**
你的答案
*/
public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        while (scanner.hasNext()) {
            String oneLineString = scanner.nextLine(); // 读取一行
            if (oneLineString.equals("XXX"))
                break;
            String[] fields = oneLineString.split(" "); // 以空格为风格,取得所有数据
            if (fields.length == 1)
                break;

            Order order = new Order(fields[0]);

            for (int i = 1; i < fields.length; i++) {
                order.add(Double.parseDouble(fields[i]));
            }

            System.out.println(order.toString());
            System.out.printf("The payment:%.2f\n", order.getPayment());

        }
        scanner.close();

        System.out.printf("We have %d guests.", Order.guestCount);

    }
}

  • 写回答

5条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-05-05 15:47
    关注

    引自免费微信小程序:皆我百晓生

    为了实现这个订单统计类Order,我们需要定义一个Java类,包含所需的静态变量、构造函数、成员函数和toString()方法。以下是完整的代码实现:

    import java.text.DecimalFormat;
    
    public class Order {
        private static int guestCount = 0;
        
        private String name;
        private double totalPayment;
    
        public Order(String name) {
            this.name = name;
            guestCount++;
        }
    
        public void add(double price) {
            if (price > 0) {
                totalPayment += price;
            }
        }
    
        public double getPayment() {
            return totalPayment;
        }
    
        @Override
        public String toString() {
            DecimalFormat df = new DecimalFormat("#,##0.00");
            return "Order Name: " + name + ", Total Payment: $" + df.format(totalPayment);
        }
    }
    
    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
    
            while (scanner.hasNext()) {
                String oneLineString = scanner.nextLine();
                if (oneLineString.equals("XXX")) {
                    break;
                }
                String[] fields = oneLineString.split(" ");
                if (fields.length == 1) {
                    break;
                }
    
                Order order = new Order(fields[0]);
    
                for (int i = 1; i < fields.length; i++) {
                    order.add(Double.parseDouble(fields[i]));
                }
    
                System.out.println(order.toString());
                System.out.printf("The payment: $%.2f\n", order.getPayment());
            }
            scanner.close();
    
            System.out.printf("We have %d guests.", Order.guestCount);
        }
    }
    

    这段代码首先定义了一个名为Order的类,其中包含了静态变量guestCount,以及构造函数、add方法、getPayment方法和重写后的toString方法。在主类Main中,我们通过Scanner从控制台读取输入,并根据输入创建新的订单实例,调用add方法添加订单金额,然后输出订单信息和支付总额。当读到"XXX"时,程序结束并输出总客人数量。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月5日

悬赏问题

  • ¥15 请问如何从gprmax中导出的merged.out文件获取雷达数据(应该是个二维数组吧),我看到网上很多对雷达数据的操作但是都没有说如何获得这个数据,因为out文件不能直接操作要转成其他格式是吧
  • ¥15 usb相机曝光度expos增加一点,获取图像速度显著变慢。
  • ¥15 如何解决如图问题:我创建的java maven项目中使用了03版本的excel,我先进行了文件读取的操作(可以正常取出,文件还未损坏),文件还未损坏),然后在进行了对同一文件的写入操作
  • ¥100 对接googlepay/googlewallet咨询
  • ¥15 Odoo 17系统中如何配置自动更新生产成本功能
  • ¥15 如何提取京东订单生成QQ支付链接
  • ¥50 游戏中的像素着色器获取到的法线贴图错误怎么解决
  • ¥15 把从欧空局下载的哨兵一号数据导入snap的时候出现这个问题该怎么解决😥
  • ¥15 蓝桥杯stm322016年省赛试题中遇到的问题
  • ¥15 有没有ND4J能用的MAVEN地址