当前位置: 首页 > 知识库问答 >
问题:

如何为订单类中的每个职位设置折扣

宣弘新
2023-03-14

我有一个程序,我在position类中为每个职位设定价格和数量。在订单类别中,我计算产品并给予折扣。我有一种计算折扣的方法,我计算所有产品的总折扣。每个职位我都想打折扣,但我不知道怎么打。我问一个朋友一些建议。

 package programming.com.pl;

public class Position  {

    private String name;
    private double price = 0;
    private int quantity = 0;


    public Position(String name, double price, int quantity){
        this.name = name;
        this.price = price;
        this.quantity = quantity;
    }

    public double getPrice() {
        return price;
    }

    public int getQuantity() {
        return quantity;
    }

    public String toString(){
        String str = String.format("%4s,%4s zł,%2s szt.", name,price,quantity);
        return  str;
    }
}

package programming.com.pl;

import java.util.ArrayList;

public class Order {
    final private ArrayList<Position> positions = new ArrayList<>();



    private double calculateProduct() {
        double sum = 0;
        for (Position position : positions) {
            sum = position.getPrice();
        }
        return sum;
    }

    double sumOrder() {
        double sum = 0;
        for (Position x : positions) {
            sum += calculateProduct();
        }
        return sum;
    }


    void addPosition(Position p) {
        positions.add(p);
    }

    void deletePosition(int index) {
        positions.remove(index);
    }




    double calculateDiscount() {
        double salePrice = 0;
        for (Position position : positions) {
            if (position.getQuantity() >= 5 && position.getQuantity() <= 10) {
                salePrice = calculateProduct() - (calculateProduct() * 0.05);
            } else if (position.getQuantity() <= 10 && position.getQuantity() <= 20) {
                salePrice = calculateProduct() - (calculateProduct() * 0.1);
            } else {
                salePrice = calculateProduct() - (calculateProduct() * 0.15);
            }

        }

        return salePrice;
    }
    public String toString() {
        StringBuilder sb = new StringBuilder("Order is: \n");

        for (Position p : positions) {
            sb.append(p).append("\n");
        }
        sb.append("Order sum is: ").append(sumOrder()).append("\n");
        sb.append("Discount is: ").append(calculateDiscount());
        return sb.toString();
    }
}

共有1个答案

田嘉慕
2023-03-14

不太确定你在问什么。您是否试图根据数量更新销售价格?如果是这样,只需在相关的if循环中更新它,例如,如果5到10之间的数量适用5%的折扣,那么:

salePrice = (salePrice = calculateProduct() - (calculateProduct() * 0.05)) * 0.95

如果折扣适用于其他地方,则只需为每个数量案例设置一个var:

if (position.getQuantity() >= 5 && position.getQuantity() <= 10) {
     salePrice = calculateProduct() - (calculateProduct() * 0.05);
     discount = 0.95
}

在必要的情况下,将折扣乘以价格。

 类似资料:
  • 问题内容: 有谁知道在Jenkinsfile中设置作业属性(特别是构建触发器)的正确方法吗? (多分支管道作业中的声明性管道脚本)。 为了清楚起见,我需要为多分支项目中的基础作业设置特定的构建触发器。我可以在GUI中配置总体多分支项目的触发器。 我收到错误消息,说自v0.8起,我应该改用options步骤:https ://jenkins.io/doc/book/pipeline/syntax/#

  • 我正试着玩nginx。我试图提供一个特殊的索引。配置文件中声明的每个位置的html文件,如 其中指定的每个文件夹位置都有自己的索引。html文件。但当我尝试访问mypage和mypage2时,nginx返回404。我希望它能够呈现它各自的索引。html 更新!!!使用别名解决了这个问题,比如:

  • Cosmos存储过程将每个记录的PumperID字段设置为默认值会是什么样子? 我们需要这样做来修复一些数据,因此该过程将访问每个具有PumperID字段的记录(并非所有文档都有此字段),并将其设置为默认值。

  • 如何为PDF表单中的每个字段设置定义值,假设我的PDF表单中有5个字段,例如2个文本框(名字和姓氏)和2个复选框(Check_1,Check_2),2个单选按钮(男,女),然后最后我有另一个文本框(地址),现在我必须定义或设置每个字段的值,比如1代表名字,2代表姓氏,3代表Check_1并继续到7代表地址。下面是一段代码来定义每个字段的值,但我面临一些问题,当设置单选按钮字段的值时,当涉及男和女字

  • 问题内容: 我在詹金斯(Jenkins)有大约10个项目,每个项目针对10个不同的客户。因此,我需要为所有项目创建凭据,以便每个客户端只能访问其项目。 有任何插件可以满足我的要求吗? 请帮忙 !!! 问题答案: 在“全局安全性”下选择“基于项目的矩阵授权策略” 定义普通用户,但不能访问此级别的项目。 然后在每个项目上选择“启用基于项目的安全性”,在这里您可以为单个用户授予其他权限,例如查看和执行作

  • 如何在NGINX配置中为两个位置设置相同的规则? 我尝试了以下方法 但是nginx reload抛出了这个错误: