第七章循环结构综合练习

import java.text.NumberFormat;
import java.util.Scanner;


public class Game {
    public static void main(String[] args) {
        //键入信息
        Scanner scanner = new Scanner(System.in);
        /**
         * 用户进入游戏平台后,可以选择喜爱的游戏
         */
        System.out.println("欢迎进入青鸟游迷你戏平台");
        System.out.println("请选择你喜欢的游戏:");
        System.out.println("****************");
        System.out.println("1.斗地主");
        System.out.println("2.斗牛");
        System.out.println("3.泡泡龙");
        System.out.println("4.连连看");
        System.out.println("****************");
        System.out.print("请选择要进入的游戏:");
        int gamenum = scanner.nextInt();//输入游戏编号
        switch (gamenum) {
            case 1:
                System.out.println("你已进入斗地主房间");
                break;
            case 2:
                System.out.println("你已进入斗牛房间");
                break;
            case 3:
                System.out.println("你已进入泡泡龙房间");
                break;
            case 4:
                System.out.println("你已进入连连看房间");
                break;
            default:
                break;
        }
        /**
         * 用户玩游戏,每次玩5局
         * 不足5局则不能晋级
         * 在5局游戏中,如果80%达
         *     到80分以上,为一级,如果
         *     60%达到80分以上为二级,
         *     否则不能晋级
         */
        int jvshu = 0;//定义局数
        int count = 0;//定义分数大于80的次数
        System.out.println("青鸟游迷你戏平台 >游戏晋级");
        do {
            System.out.println("您正在玩第" + (jvshu + 1) + "局,成绩为:");
            //输出成绩
            double score = scanner.nextDouble();
            //如果成绩大于80,次数累加
            if (score > 80) {
                count++;
            }
            //局数累加
            jvshu++;
            //如果局数大于5,游戏结束
            if (jvshu >= 5) {
                System.out.println("游戏结束");
            } else {//否则游戏继续
                System.out.println("继续玩下一局吗?(yes/no)");
                String exitOrContinue = scanner.next();
                //如果不继续游戏no,将失败
                if (exitOrContinue.equals("no")) {
                    System.out.println("你已中途退出游戏。\n对不起,您未能晋级,继续加油啊!");
                    break;
                } else if (exitOrContinue.equals("yes")) {//如果继续游戏yes,输入
                    System.out.println("进入下一局");
                } else {//输入其他值则程序结束
                    break;
                }

            }
        } while (jvshu < 5);//当局数小于5
        boolean isOk=true;
        double rate = count / (double) jvshu;//计算打到80分以上的比率
        //System.out.println(rate);
        if (jvshu >= 5) {
            if (rate > 0.8) {
                System.out.println("游戏结束!\n恭喜!通过一级");
            } else if (rate > 0.6) {
                System.out.println("通过二级,继续努力!");
            } else {
                isOk=false;
            }
        } else {
            isOk=false;
        }
        if (isOk!=true)
            System.out.println("对不起,您未能晋级,继续加油啊!");

        /**
         * 根据游戏类型和游戏时长计算应支付的游戏币
         * 假设:1元购买1个游戏币
         * 游戏类型分为两大类
         * 牌类和休闲竞技类
         * 游戏的收费标准
         * 牌类:10元/小时
         * 休闲竞技类:20元/小时
         * 游戏的收费规则
         * 游戏时间超过10小时,可以打5折
         * 10小时及以下,打8折
         */
        System.out.println("青鸟游迷你戏平台 >游戏支付");
        System.out.println("请选择您玩的游戏类型:\n1.牌类\n2.休闲竞技类");
        int typenum = scanner.nextInt();
        System.out.println("请您输入游戏时长:");
        double time = scanner.nextDouble();
        double sumMoney = 0;//定义总金额
        String typeName;//游戏类型名称
        double discount = 0;//折扣
        String discount1 = null;//定义打印折扣
        if (typenum == 1) {
            sumMoney = time * 10;
            typeName = "牌类";
        } else {
            sumMoney = time * 20;
            typeName = "休闲竞技类";
        }
        if (time > 10) {
            discount = 0.5;
            discount1 = "5";
        } else {
            discount = 0.8;
            discount1 = "8";
        }
        sumMoney *= discount;//总金额=总金额*折扣
        System.out.println("您玩的是" + typeName + ",时长为:" + time + "小时,可以享受" + discount1
                + "折优惠\n您需要支付" + sumMoney + "个游戏币");


        //录入游戏的点击率,统计点击率超过100的游戏所占的比例
        System.out.println("青鸟游迷你戏平台 >游戏点击率");
        int i = 0;
        int CTRCount = 0;//记录点击率大于100的游戏数
        do {
            System.out.println("请输入第" + (i + 1) + "个游戏的点击率:");
            int CTR = scanner.nextInt();//输入点击率
            if (CTR > 100) {
                CTRCount++;
            } else if (CTR < 0) {
                continue;
            }
            i++;
        } while (i < 4);//循环4次
        System.out.println("点击率大于100的游戏数是:" + CTRCount);
        System.out.println("点击率大于100的游戏所占的比例为:" + (CTRCount / (double) i) * 100 + "%");



        /*
         * 为了维护用户信息,需要将其信息录入系统中
         * 用户的信息包括:用户编号、年龄、积分
         * 要求年龄10岁以上
         */
        System.out.println("青鸟游迷你戏平台 >添加用户信息");
        System.out.println("请输入要录入用户的数量:");
        int custNum = scanner.nextInt();
        int Lucount = 1;
        do {
            System.out.println("请输入用户编号(<4位整数>):");
            int num = scanner.nextInt();
            int length = ("" + num).length();
            if (length != 4) {
                System.out.println("请输入4位数!\n录入信息失败!");
                continue;
            }
            System.out.println("请输入用户年龄:");
            int age = scanner.nextInt();
            if (age < 10) {
                System.out.println("很抱歉,您的年龄不适宜玩游戏\n录入信息失败");
                continue;
            }
            System.out.println("请输入会员积分:");
            double jifen = scanner.nextDouble();
            System.out.println("您录入的会员信息是:\n用户编号:" + num + "\t年龄:" + age + "\t积分" + jifen);
            Lucount++;
            System.out.println(custNum + "\n" + Lucount);

        } while (Lucount <= custNum);
    }

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值