电影票计算

在多厅影院,宣布了一项折扣计划,当批量预订超过 20 张门票时,可享受门票总价 10% 的折扣,如果有 20 张票,则可享受门票总价的 2% 折扣。提交特殊优惠券。制定一个程序,以根据该计划找到总成本。国王舱票价为 75 卢比,皇后舱票价为 150 卢比。也可以通过支付额外的卢比来选择茶点。每个会员 50 个。

提示:k-king 和 q-queen,您必须同时预订最少 5 张门票,最多 40 张门票。如果失败,则显示“最少 5 张,最多 40 张票”。如果 circle 被赋予除“k”或“q”以外的值,则输出应为“无效输入”。

票价应精确打印到小数点后两位。

  • 示例输入 1:
    输入票号:35
    是否要茶点:y
    是否有优惠券代码:y
    输入圆圈:k

  • 示例输出 1:
    门票成本:4065.25

  • 示例输入 2:
    输入票号:1

  • 样本输出 2:
    最少 5 张,最多 40 张票

这是代码

import java.util.Scanner;

import java.text.DecimalFormat;


public class CinemaTicket {

    public static void main(String[] args) {

        int no, refe, total = 0;

        double cost, sum, sum1, sum2, sum3;

        String ref, co, circle;

        Scanner s = new Scanner(System.in);

        System.out.println("Enter the no of ticket:");

        no = s.nextInt();

        if (no < 5 || no > 40) {

            System.out.println("Minimum of 5 and Maximum of 40 tickets");

        }

        System.out.println("Do you want refreshment:");

        ref = s.next();

        System.out.println("Do you have a coupon code:");

        co = s.next();

        System.out.println("Enter the circle:");

        circle = s.next();

        if (circle == "k") {

            total = no * 75;

        } else if (circle == "q") {

            total = no * 150;

        } else {

            System.out.println("Invalid Input");

        }

        if (no > 20) {

            sum = ((0.1) * total);

            sum1 = total - sum;

            if (co == "y") {

                sum2 = ((0.2) * total);

                sum3 = sum1 - sum2;

                if (ref == "y") {

                    refe = no * 150;

                    cost = sum3 + refe;

                } else {

                    cost = sum3;

                }

            } else {

                cost = sum1;

            }

        } else {

            cost = total;

        }

        DecimalFormat df = new DecimalFormat("#.##");

        System.out.println("Ticket cost:" + df.format(cost));

    }

我试过这段代码,但它没有计算机票的成本。


芜湖不芜
浏览 114回答 2
2回答

慕斯王

使用 String 方法 equals() 或 compareTo()。逻辑运算符不会比较 java 中的字符串,因为它不是原始类型。

慕娘9325324

您需要做的就是:if (circle.equals("k")) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; total = no * 75;&nbsp; &nbsp; &nbsp; &nbsp; } else if (circle.equals("q")) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; total = no * 150;&nbsp; &nbsp; &nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.println("Invalid Input");&nbsp; &nbsp; &nbsp; &nbsp; }不要使用“==”,使用 equals 方法,它会正常工作。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java