第七章 循环结构综合练习
一、本章任务
完成青鸟迷你游戏平台的开发
二、目标
会定义变量
会使用数据类型和运算符
会使用选择结构
会使用循环结构
三、内容
1 上机练习一
需求:
用户进入游戏平台后,可以选择遠的游戏,程序运行结果如下
思路
获得用户的输入:Scan
输出:System.out.println()
选择结构:if 、switch
实现
第一种方法
public class SelectGame{
public static void main(String[] args) {
System.out.println("欢迎进入青鸟游迷你戏平台\n");
System.out.println("请选择您喜爱的游戏:\n");
System.out.println("*******************************");
System.out.println("\t1.斗地主");
System.out.println("\t2.斗牛");
System.out.println("\t3.泡泡龙");
System.out.println("\t4.连连看");
System.out.println("*******************************\n");
int choice; //用户选择
boolean isRight; //输入是否正确
System.out.print("请选择,输入数字:");
Scanner input = new Scanner(System.in);
do{
isRight = true;
choice = input.nextInt();
switch (choice) {
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:
System.out.print("输入错误,请重新输入数字:");
isRight = false;
break;
}
}while(!isRight);
}
}
第二种方法
public class SelectGame2 {
public static void main(String[] args) {
System.out.println("欢迎进入青鸟游迷你戏平台\n");
System.out.println("请选择您喜爱的游戏\n");
System.out.println("*******************************");
System.out.println("1.斗地主");
System.out.println("2.斗牛");
System.out.println("3.泡泡龙");
System.out.println("4.连连看");
System.out.println("*******************************\n");
System.out.print("请选择,输入数字:");
Scanner input = new Scanner(System.in);
int selectInt = input.nextInt();
while (selectInt>=5||selectInt<=0) {
System.out.print("选择错误,请重新选择");
selectInt = input.nextInt();
}
switch (selectInt) {
case 1:
System.out.println("你已进入斗地主房间!");
break;
case 2:
System.out.println("你已进入斗牛房间!");
break;
case 3:
System.out.println("你已进入泡泡龙房间!");
break;
case 4:
System.out.println("你已进入连连看房间!");
break;
}
}
}
2 上机练习二:玩游戏并晋级
需求
用户玩游戏,每次玩5局
不足5局则不能晋级。
在5局游戏中,如果80%达到80分以上,为一级,如果60%达到80分以上为二级,否则不能晋级
思路
使用循环实现玩5局游戏,使用break语句实现中途退出游戏
使用多重if,根据游戏得分判断是否晋级
实现
public class RiseGame {
public static void main(String[] args) {
System.out.println("青鸟迷你游戏平台>游戏晋级\n");
Scanner input = new Scanner(System.in);
int n = 1;
int count=0;
while (n<=5) {
System.out.print("您正在玩第"+n+"局,成绩为:");
int scroe = input.nextInt();
if(scroe>80){
count++;
}
if(n!=5){
System.out.println("继续玩下一局吗?(yes/no)");
String answer = input.next();
if(answer.equals("no")){
System.out.println("你已经退出游戏");
break;
}
System.out.println("你进入一下局");
}
n++;
}
System.out.println("n的值:"+n);
if(n>5){
if(n>=4){
System.out.println("\n恭喜,通过一级!");
}else if(n>=3&&n<4){
System.out.println("\n恭喜,通过二级!");
}else {
System.out.println("\n对不起,你未能晋级!");
}
}
}
}
3 上机练习三:玩游戏并支付游戏币
需求:
根据游戏类型和游戏时长计算应支付的游戏币
游戏类型分为两大类:牌类和休闲竞技类
游戏的收费标准
牌类:10元/小时
休闲竞技类:20元/小时
游戏的收费规则:游戏时间超过10小时,可以打5折10小时及以下,打8折
实现
public class PayGame {
public static void main(String[] args) {
System.out.println("青鸟迷你游戏平台 > 游戏币支付\n");
System.out.println("请选择您玩的游戏类型:");
System.out.println("\t1.牌类");
System.out.println("\t2.休闲竞技类");
Scanner input = new Scanner(System.in);
int choice = input.nextInt();
System.out.println("请您输入游戏时长:");
int time = input.nextInt(); //游戏时间
int qm = 0; //游戏币
switch (choice) {
case 1:
if (time > 10) {
System.out.println("您玩的是牌类游戏,时长是:" + time + "小时,可以享受5折优惠");
qm = (int) (10 * time * 0.5);
System.out.println("您需要支付" + qm + "个游戏币");
} else {
System.out.println("您玩的是牌类游戏,时长是:" + time + "小时,可以享受8折优惠");
qm = (int) (10 * time * 0.8);
System.out.println("您需要支付" + qm + "个游戏币");
}
break;
case 2:
if (time > 10) {
System.out.println("您玩的是休闲竞技类游戏,时长是:" + time + "小时,可以享受5折优惠");
qm = (int) (20 * time * 0.5);
System.out.println("您需要支付" + qm + "个游戏币");
} else {
System.out.println("您玩的是休闲竞技类游戏,时长是:" + time + "小时,可以享受8折优惠");
qm = (int) (20 * time * 0.8);
System.out.println("您需要支付" + qm + "个游戏币");
}
break;
default:
System.out.print("无效选择");
}
}
}
4 上机练习四:统计游戏点击率
需求
录入游戏的点击率,统计点击率超过100的游戏所占的比例
思路:
使用if结构、continue语句统计点击率100以上的游戏数量
实现
public class GameDot {
public static void main(String[] args) {
int score; // 点击率
int total; // 游戏总数量
int num = 0; //点击率大于100的游戏数量
Scanner input = new Scanner(System.in);
System.out.println("青鸟迷你游戏平台 > 游戏点击率\n");
for (int i = 0; i < 4; i++) {
System.out.print("请输入第" + (i + 1) + "个游戏的点击率: ");
score = input.nextInt();
if (score <= 100) {
continue;
}
num++;
}
System.out.println("点击率大于100的游戏数是: " + num);
double rate = (double)num / 4 * 100;
System.out.println("点击率大于100的游戏所占的比例为:" + rate + "%");
}
}
4 上机练习五:添加用户信息
需求
为了维护用户信息,需要将其信息录入系统
用户的信息包括:用户编号、年龄、积分
要求年龄10岁以上
若年龄合法,则显示录入的信息,否则显示录入失败
实现
public class AddUser {
public static void main(String[] args) {
System.out.println("青鸟迷你游戏平台 > 添加用户信息\n");
int custNo = 0; //用户编号
int age; //年龄
int points = 0; //积分
System.out.println("请输入要录入用户的数量:");
Scanner input = new Scanner(System.in);
int count=input.nextInt();
//循环录入用户信息
for(int i=0;i<count;i++){
System.out.print("请输入用户编号(<4位整数>):");
custNo = input.nextInt();
System.out.print("请输入用户年龄:");
age = input.nextInt();
if(age<10 || age>100){ //年龄不合适则跳出
System.out.println("很抱歉,您的年龄不适宜玩游戏");
System.out.println("录入信息失败\n");
continue;
}
System.out.print("请输入会员积分:");
points = input.nextInt();
System.out.println("您录入的会员信息是:");
System.out.println("用户编号:"+custNo+ "\t年龄:" +age+ "\t积分:" +points+ "\n");
}
}
}
四、本章总结
分支结构、循环结构、跳转语句的综合运用
五、作业
1 编写JAVA程序,实现接收用户输入的正整数,输出该数的阶乘
要求:限制输入的数据在1-10之间,无效数据进行提示,结束程序
输出结果如:4!=1*2*3*4=24
实现
public class FactDemo {
/*** @param args
*/
public static void main(String[] args) {
//定义变量接收用户输入,计算阶乘,累计表达式
int number,fact=1;
String msg="";
Scanner input=new Scanner(System.in);
//提醒输入
System.out.println("请输入一个10以内的正整数:");
number=input.nextInt();
//验证有效性
if(number>10 || number<1){
System.out.println("数据无效");
return;
}
System.out.print(number+"!=");
//计算阶乘
for(int i=1;i<number;i++){
msg+=i+"*";
fact*=i;
}
//组合结果,并显示
fact*=number;
msg+=number+"="+fact;
System.out.println(msg);
}
}
2 写JAVA程序,实现输出1--100之间所有不能被7整除的数,并求和
要求:每输出4个数据换行显示
实现
public class NumDemo {
/**
* @param args
*/
public static void main(String[] args) {
//定义变量,累计求和,统计个数
int sum=0,count=1;
System.out.println("1-100之间不能被7整除的数据为:");
for(int i=1;i<=100;i++){
//判断是否能被7整除,如果能被7整除,结束本次循环
if(i%7==0)
continue;
//输出不能被7整除的数据
System.out.print(i+"\t");
//每4个数换行显示
if(count%4==0)
System.out.println();
//累计求和,个数增加
sum+=i;
count++;
}
System.out.println();
//输出累计和
System.out.println("数据之和为:"+sum);
}
}
转载于:https://www.cnblogs.com/imentors/p/4672586.html
第七章 循环结构综合练习相关推荐
- 测试 第七章 循环结构进阶 1205 草稿
第一题 第二题
- c语言第四章循环程序设计,C语言程序设计教程第4章-循环结构程序设计
<C语言程序设计教程第4章-循环结构程序设计>由会员分享,可在线阅读,更多相关<C语言程序设计教程第4章-循环结构程序设计(42页珍藏版)>请在人人文库网上搜索. 1.C语言程 ...
- c语言菜单程序循环结构举例,C语言程序设计课件 第4章 循环结构.ppt
C语言程序设计课件 第4章 循环结构.ppt 循环嵌套应用举例 [例4.8]从键盘上输入n的值为5,编程打印具有如下规律的对称图形. @ @ @ @ @ @ @ @ @ @ @ @ @ 行号(i)空格 ...
- c语言设计第六章答案,c语言第六章 循环结构程序设计(习题册答案)
第六章 循环结构程序设计 基础练习(A) 一.选择题 1.C语言中while和do-while循环的主要区别是(A). A) do-while的循环体至少无条件执行一次 B) while的循环控制条件 ...
- c语言第六章条件型循环结构,C语言课件(第六章 循环结构)
C语言课件 第六章 循环结构 在许多复杂的问题中,常常需要做大量的类似的计算处理,这些类似的相同的处理过程存在重复性过程,即在某种条件成立的情况下需要处理相同的操作时,就要使用循环结构来完成. 类似于 ...
- 第6章 循环结构程序设计
第6章 循环结构程序设计 声明:文中观点仅代表个人,其中文字.图片未经本人许可,不得部分或全部转载,违者所造成影响后后果自负!联系本人方式:80368704@qq.com QQ:8036870 ...
- c语言利用循环结构解决密码转换,C语言课件第六章循环结构.ppt
C语言课件第六章循环结构 第6章 循环结构程序设计 6.1循环结构的组成 循环结构:描述有规律的重复操作问题. 组成:要重复执行的操作,重复执行所需的条件. 例6.1:求10! . 分析:计算1*2* ...
- c语言如何实现一只蜗牛爬的循环,[工程科技]第五章 循环结构程序设计c语言程序设计.ppt...
[工程科技]第五章 循环结构程序设计c语言程序设计 第5章 循环结构程序设计 while语句 while语句 do while语句 do while语句 do while语句 do while语句 d ...
- c语言程序设计李丽娟pdf,C语言程序设计教程 教学课件 李丽娟 第5章循环结构.pdf...
第五章 循环结构 第五章 循环结构 第五章 循环结构 §5.1 for语句 §5.2 while语句 §5.3 do~while语句 §5.4 用于循环中的break和continue语句 §5.5 ...
最新文章
- 年薪100万和10万程序员的差距
- Python 计算机视觉(十七)—— 基于KNN的图像分类
- 硬件工程师面试经历2015---面试篇
- Python网络编程(1.利用socket(udp)+网络调试助手,发送数据)
- 北京沙龙报名 | 关于Dubbo开源的那些事儿
- Android NDK-helloJNI
- 【今晚9点】:对话袁荣喜——一名C程序员的打怪之路
- suse leap_Ruby程序检查leap年
- 【OSGI】Error osgi xx Invalid value for DynamicImport-Package dynamic.import.pack
- 【Java】synchronized与lock的区别
- Nerd的套现ATM机
- iOS开发之字符串(NSString)的拼接
- 细嚼浏览器兼容----条件注释判断浏览器版本
- 纯前端播放文件流视频并预览并截取视频第一帧
- 把hive sql的关键字小写转大写的小程序
- 曲线运动与万有引力公式_考试中有关曲线运动及万有引力部分ALevel物理考点及公式总结...
- 《UnityAPI.Color颜色》(Yanlz+Unity+SteamVR+云技术+5G+AI+VR云游戏+Color+Lerp+RGBToHSV+gamma+linear+立钻哥哥++OK++)
- 【C++---16】常指针和常引用
- 微信小程序base64图片转换临时链接
- 关于tink的碰撞检测类【2】
热门文章
- 注意:qq邮箱不要开通CardDAV/CalDAV服务
- mysql超售_MySQL OOM 系列三 摆脱MySQL被Kill的厄运
- linux 命令spawn,linux expect, spawn用法小记
- android 流量统计换算,什么是流量?如何计算流量?流量的单位如何换算
- 2020年中国互联网之大事件(一)
- 果断MARK Flex的那些资源
- 带你轻松搞懂JDK动态代理机制(ssm框架先行必备)
- ajax提示500,AJAX 成功返回json数据,但是提示500错误。
- 目前人工智能企业的主要应用领域是什么,各企业都有什么经典产品?
- 【转载】 程序员找工作那点事儿