zoukankan      html  css  js  c++  java
  • 第七章 循环结构综合练习

    一、本章任务

        完成青鸟迷你游戏平台的开发

    二、目标

    •     会定义变量

    •     会使用数据类型和运算符

    •     会使用选择结构

    •     会使用循环结构

    三、内容

    1 上机练习一

    需求:

        用户进入游戏平台后,可以选择遠的游戏,程序运行结果如下    

            

    思路

    • 获得用户的输入:Scan

    • 输出:System.out.println()

    • 选择结构:if 、switch

    实现

    • 第一种方法

    1. public class SelectGame{

    2. public static void main(String[] args) {

    3. System.out.println("欢迎进入青鸟游迷你戏平台 ");

    4. System.out.println("请选择您喜爱的游戏: ");

    5. System.out.println("*******************************");

    6. System.out.println(" 1.斗地主");

    7. System.out.println(" 2.斗牛");

    8. System.out.println(" 3.泡泡龙");

    9. System.out.println(" 4.连连看");

    10. System.out.println("******************************* ");

    11. int choice; //用户选择

    12. boolean isRight; //输入是否正确

    13. System.out.print("请选择,输入数字:");

    14. Scanner input = new Scanner(System.in);

    15. do{

    16. isRight = true;

    17. choice = input.nextInt();

    18. switch (choice) {

    19. case 1:

    20. System.out.println("您已进入斗地主房间!");

    21. break;

    22. case 2:

    23. System.out.println("您已进入斗牛房间!");

    24. break;

    25. case 3:

    26. System.out.println("您已进入泡泡龙房间!");

    27. break;

    28. case 4:

    29. System.out.println("您已进入连连看房间!");

    30. break;

    31. default:

    32. System.out.print("输入错误,请重新输入数字:");

    33. isRight = false;

    34. break;

    35. }

    36. }while(!isRight);

    37. }

    38. }

    • 第二种方法

    1. public class SelectGame2 {

    2. public static void main(String[] args) {

    3. System.out.println("欢迎进入青鸟游迷你戏平台 ");

    4. System.out.println("请选择您喜爱的游戏 ");

    5. System.out.println("*******************************");

    6. System.out.println("1.斗地主");

    7. System.out.println("2.斗牛");

    8. System.out.println("3.泡泡龙");

    9. System.out.println("4.连连看");

    10. System.out.println("******************************* ");

    11. System.out.print("请选择,输入数字:");

    12. Scanner input = new Scanner(System.in);

    13. int selectInt = input.nextInt();

    14. while (selectInt>=5||selectInt<=0) {

    15. System.out.print("选择错误,请重新选择");

    16. selectInt = input.nextInt();

    17. }

    18. switch (selectInt) {

    19. case 1:

    20. System.out.println("你已进入斗地主房间!");

    21. break;

    22. case 2:

    23. System.out.println("你已进入斗牛房间!");

    24. break;

    25. case 3:

    26. System.out.println("你已进入泡泡龙房间!");

    27. break;

    28. case 4:

    29. System.out.println("你已进入连连看房间!");

    30. break;

    31. }

    32. }

    33. }

    2 上机练习二:玩游戏并晋级

    需求    

    • 用户玩游戏,每次玩5局

    • 不足5局则不能晋级。

    • 在5局游戏中,如果80%达到80分以上,为一级,如果60%达到80分以上为二级,否则不能晋级    

                                

     

    思路

    • 使用循环实现玩5局游戏,使用break语句实现中途退出游戏

    • 使用多重if,根据游戏得分判断是否晋级

    实现

    1. public class RiseGame {

    2. public static void main(String[] args) {

    3. System.out.println("青鸟迷你游戏平台>游戏晋级 ");

    4. Scanner input = new Scanner(System.in);

    5. int n = 1;

    6. int count=0;

    7. while (n<=5) {

    8. System.out.print("您正在玩第"+n+"局,成绩为:");

    9. int scroe = input.nextInt();

    10. if(scroe>80){

    11. count++;

    12. }

    13. if(n!=5){

    14. System.out.println("继续玩下一局吗?(yes/no)");

    15. String answer = input.next();

    16. if(answer.equals("no")){

    17. System.out.println("你已经退出游戏");

    18. break;

    19. }

    20. System.out.println("你进入一下局");

    21. }

    22. n++;

    23. }

    24. System.out.println("n的值:"+n);

    25. if(n>5){

    26. if(n>=4){

    27. System.out.println(" 恭喜,通过一级!");

    28. }else if(n>=3&&n<4){

    29. System.out.println(" 恭喜,通过二级!");

    30. }else {

    31. System.out.println(" 对不起,你未能晋级!");

    32. }

    33. }

    34. }

    35. }

    3 上机练习三:玩游戏并支付游戏币

    需求:

    • 根据游戏类型和游戏时长计算应支付的游戏币

    • 游戏类型分为两大类:牌类和休闲竞技类

    • 游戏的收费标准

      • 牌类:10元/小时

      • 休闲竞技类:20元/小时

    • 游戏的收费规则:游戏时间超过10小时,可以打5折10小时及以下,打8折

    实现

    1. public class PayGame {

    2. public static void main(String[] args) {

    3. System.out.println("青鸟迷你游戏平台 > 游戏币支付 ");

    4. System.out.println("请选择您玩的游戏类型:");

    5. System.out.println(" 1.牌类");

    6. System.out.println(" 2.休闲竞技类");

    7. Scanner input = new Scanner(System.in);

    8. int choice = input.nextInt();

    9. System.out.println("请您输入游戏时长:");

    10. int time = input.nextInt();  //游戏时间

    11. int qm = 0;  //游戏币

    12. switch (choice) {

    13. case 1:

    14. if (time > 10) {

    15. System.out.println("您玩的是牌类游戏,时长是:" + time + "小时,可以享受5折优惠");

    16. qm = (int) (10 * time * 0.5);

    17. System.out.println("您需要支付" + qm + "个游戏币");

    18. } else {

    19. System.out.println("您玩的是牌类游戏,时长是:" + time + "小时,可以享受8折优惠");

    20. qm = (int) (10 * time * 0.8);

    21. System.out.println("您需要支付" + qm + "个游戏币");

    22. }

    23. break;

    24. case 2:

    25. if (time > 10) {

    26. System.out.println("您玩的是休闲竞技类游戏,时长是:" + time + "小时,可以享受5折优惠");

    27. qm = (int) (20 * time * 0.5);

    28. System.out.println("您需要支付" + qm + "个游戏币");

    29. } else {

    30. System.out.println("您玩的是休闲竞技类游戏,时长是:" + time + "小时,可以享受8折优惠");

    31. qm = (int) (20 * time * 0.8);

    32. System.out.println("您需要支付" + qm + "个游戏币");

    33. }

    34. break;

    35. default:

    36. System.out.print("无效选择");

    37. }

    38. }

    39. }

    4 上机练习四:统计游戏点击率

    需求    

    • 录入游戏的点击率,统计点击率超过100的游戏所占的比例

    思路:

    • 使用if结构、continue语句统计点击率100以上的游戏数量

    实现

    1. public class GameDot {

    2. public static void main(String[] args) {

    3. int score; // 点击率

    4.        int total; // 游戏总数量

    5.        int num = 0; //点击率大于100的游戏数量

    6.        Scanner input = new Scanner(System.in);

    7.        System.out.println("青鸟迷你游戏平台 > 游戏点击率 ");

    8.        for (int i = 0; i < 4; i++) {

    9.            System.out.print("请输入第" + (i + 1) + "个游戏的点击率: ");

    10.            score = input.nextInt();

    11.            if (score <= 100) {

    12.                continue;

    13.            }

    14.            num++;

    15.        }        

    16.        System.out.println("点击率大于100的游戏数是: " + num);

    17.        double rate =  (double)num / 4 * 100;

    18.        System.out.println("点击率大于100的游戏所占的比例为:" + rate + "%");        

    19. }

    20. }

    4 上机练习五:添加用户信息

    需求

    • 为了维护用户信息,需要将其信息录入系统

      • 用户的信息包括:用户编号、年龄、积分

      • 要求年龄10岁以上

      • 若年龄合法,则显示录入的信息,否则显示录入失败

            

    实现

    1. public class AddUser {
    2. public static void main(String[] args) {
    3. System.out.println("青鸟迷你游戏平台 > 添加用户信息 ");
    4. int custNo = 0;    //用户编号
    5. int age; //年龄
    6. int points = 0; //积分
    7. System.out.println("请输入要录入用户的数量:");
    8. Scanner input = new Scanner(System.in);
    9. int count=input.nextInt();
    10. //循环录入用户信息
    11. for(int i=0;i<count;i++){
    12. System.out.print("请输入用户编号(<4位整数>):");
    13. custNo = input.nextInt();
    14. System.out.print("请输入用户年龄:");
    15. age = input.nextInt();
    16. if(age<10 || age>100){ //年龄不合适则跳出
    17. System.out.println("很抱歉,您的年龄不适宜玩游戏");
    18. System.out.println("录入信息失败 ");
    19. continue;
    20. }
    21. System.out.print("请输入会员积分:");
    22. points = input.nextInt();
    23. System.out.println("您录入的会员信息是:");
    24. System.out.println("用户编号:"+custNo+ " 年龄:" +age+ " 积分:" +points+ " ");
    25. }
    26. }
    27. }

    四、本章总结

    • 分支结构、循环结构、跳转语句的综合运用 

    五、作业

    1 编写JAVA程序,实现接收用户输入的正整数,输出该数的阶乘

    • 要求:限制输入的数据在1-10之间,无效数据进行提示,结束程序

    • 输出结果如:4!=1*2*3*4=24

    • 实现

    1. public class FactDemo {


    2. /**

    3. * @param args
    4. */
    5. public static void main(String[] args) {
    6. //定义变量接收用户输入,计算阶乘,累计表达式
    7. int number,fact=1;
    8. String msg="";
    9. Scanner input=new Scanner(System.in);
    10. //提醒输入
    11. System.out.println("请输入一个10以内的正整数:");
    12. number=input.nextInt();
    13. //验证有效性
    14. if(number>10 || number<1){
    15. System.out.println("数据无效");
    16. return;
    17. }
    18. System.out.print(number+"!=");
    19. //计算阶乘
    20. for(int i=1;i<number;i++){
    21. msg+=i+"*";
    22. fact*=i;
    23. }
    24. //组合结果,并显示
    25. fact*=number;
    26. msg+=number+"="+fact;
    27. System.out.println(msg);
    28. }
    29. }

    2 写JAVA程序,实现输出1--100之间所有不能被7整除的数,并求和

    • 要求:每输出4个数据换行显示

    • 实现

    1. public class NumDemo {
    2. /**
    3. * @param args
    4. */
    5. public static void main(String[] args) {
    6. //定义变量,累计求和,统计个数
    7. int sum=0,count=1;
    8. System.out.println("1-100之间不能被7整除的数据为:");
    9. for(int i=1;i<=100;i++){
    10. //判断是否能被7整除,如果能被7整除,结束本次循环
    11. if(i%7==0)
    12. continue;
    13. //输出不能被7整除的数据
    14. System.out.print(i+" ");
    15. //每4个数换行显示
    16. if(count%4==0)
    17. System.out.println();
    18. //累计求和,个数增加
    19. sum+=i;
    20. count++;
    21. }
    22. System.out.println();
    23. //输出累计和
    24. System.out.println("数据之和为:"+sum);
    25. }
    26. }










  • 相关阅读:
    python笔记-13 mysql与sqlalchemy
    python笔记-12 redis缓存
    python笔记-11 rabbitmq
    python笔记-10(socket提升、paramiko、线程、进程、协程、同步IO、异步IO)
    python笔记-9(subprocess模块、面向对象、socket入门)
    python笔记-7(shutil/json/pickle/shelve/xml/configparser/hashlib模块)
    leetcode98
    leetcode543
    leetcode85
    leetcode84
  • 原文地址:https://www.cnblogs.com/imentors/p/4672586.html
Copyright © 2011-2022 走看看