为了账号安全,请及时绑定邮箱和手机立即绑定

电影票计算

电影票计算

芜湖不芜 2022-11-02 10:04:07
在多厅影院,宣布了一项折扣计划,当批量预订超过 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));    }} 我试过这段代码,但它没有计算机票的成本。
查看完整描述

2 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

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



查看完整回答
反对 回复 2022-11-02
?
慕娘9325324

TA贡献1783条经验 获得超4个赞

您需要做的就是:


if (circle.equals("k")) {

            total = no * 75;

        } else if (circle.equals("q")) {

            total = no * 150;

        } else {

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

        }

不要使用“==”,使用 equals 方法,它会正常工作。


查看完整回答
反对 回复 2022-11-02
  • 2 回答
  • 0 关注
  • 113 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信