一、本章任务
完成青鸟迷你游戏平台的开发
二、目标
会定义变量
会使用数据类型和运算符
会使用选择结构
会使用循环结构
三、内容
1 上机练习一
需求:
用户进入游戏平台后,可以选择遠的游戏,程序运行结果如下
思路
获得用户的输入:Scan
输出:System.out.println()
选择结构:if 、switch
实现
第一种方法
public class SelectGame{
public static void main(String[] args) {
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("******************************* ");
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("欢迎进入青鸟游迷你戏平台 ");
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("请选择,输入数字:");
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("青鸟迷你游戏平台>游戏晋级 ");
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(" 恭喜,通过一级!");
}else if(n>=3&&n<4){
System.out.println(" 恭喜,通过二级!");
}else {
System.out.println(" 对不起,你未能晋级!");
}
}
}
}
3 上机练习三:玩游戏并支付游戏币
需求:
根据游戏类型和游戏时长计算应支付的游戏币
游戏类型分为两大类:牌类和休闲竞技类
游戏的收费标准
牌类:10元/小时
休闲竞技类:20元/小时
游戏的收费规则:游戏时间超过10小时,可以打5折10小时及以下,打8折
实现
public class PayGame {
public static void main(String[] args) {
System.out.println("青鸟迷你游戏平台 > 游戏币支付 ");
System.out.println("请选择您玩的游戏类型:");
System.out.println(" 1.牌类");
System.out.println(" 2.休闲竞技类");
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("青鸟迷你游戏平台 > 游戏点击率 ");
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("青鸟迷你游戏平台 > 添加用户信息 ");
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("录入信息失败 ");
continue;
}
System.out.print("请输入会员积分:");
points = input.nextInt();
System.out.println("您录入的会员信息是:");
System.out.println("用户编号:"+custNo+ " 年龄:" +age+ " 积分:" +points+ " ");
}
}
}
四、本章总结
分支结构、循环结构、跳转语句的综合运用
五、作业
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+" ");
//每4个数换行显示
if(count%4==0)
System.out.println();
//累计求和,个数增加
sum+=i;
count++;
}
System.out.println();
//输出累计和
System.out.println("数据之和为:"+sum);
}
}