模拟场景:商场经常有促销活动( Promotion ),比如618,双11等,活动通常包括两个要点,一是折扣( discount ),二是满减( reduce )。不同活动的折扣、满减会不相同。假定顾客只能同时参加一个活动(比如参加618活动就不会再参加双11活动)。 请你设计一个 POS 机程序,根据总价,计算出参加某个活动后的最终的费用。规则永不变:先计算折扣,然后在此基础上进行满减。 618:8折,满500减50 双11:7折,满1000减100Java
时间: 2024-02-19 07:03:19 浏览: 17
好的,我可以为您设计这样一个 POS 机程序。
首先,我们需要定义两个活动的折扣和满减规则:
- 618活动:8折,满500减50
- 双11活动:7折,满1000减100
然后,我们可以按照以下步骤来计算最终费用:
1. 输入商品总价 total_price。
2. 询问顾客参加哪个活动(输入 1 表示参加618活动,输入 2 表示参加双11活动)。
3. 根据顾客的选择,计算折扣和满减。如果选择参加618活动,则应用8折折扣;如果选择参加双11活动,则应用7折折扣。然后,根据总价和满减规则计算满减金额。如果总价满足满减条件,则减去相应的金额。
4. 输出最终费用 final_price。
下面是这个程序的 Java 代码实现:
```java
import java.util.Scanner;
public class POSMachine {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 定义活动规则
final double DISCOUNT_618 = 0.8;
final double DISCOUNT_11 = 0.7;
final double REDUCE_618 = 50;
final double REDUCE_11 = 100;
final double MIN_TOTAL_618 = 500;
final double MIN_TOTAL_11 = 1000;
// 输入商品总价
System.out.print("请输入商品总价:");
double total_price = scanner.nextDouble();
// 询问参加哪个活动
System.out.println("请选择参加哪个活动:");
System.out.println("1. 618活动(8折,满500减50)");
System.out.println("2. 双11活动(7折,满1000减100)");
int choice = scanner.nextInt();
// 根据选择计算折扣和满减
double discount = 1.0;
double reduce = 0.0;
if (choice == 1) {
discount = DISCOUNT_618;
reduce = total_price >= MIN_TOTAL_618 ? REDUCE_618 : 0;
} else if (choice == 2) {
discount = DISCOUNT_11;
reduce = total_price >= MIN_TOTAL_11 ? REDUCE_11 : 0;
}
// 计算最终费用
double final_price = total_price * discount - reduce;
// 输出最终费用
System.out.println("参加活动后的最终费用为:" + final_price);
}
}
```
您可以将这段代码保存为 POSMachine.java,然后在命令行中编译和运行它。希望这个程序能满足您的需求!