编写一个猜数程序。命令行显示菜单:1.开始;2.退出。 用户选择1,则程序生成一个0~99之间的随机整数,命令行显示“请输入你猜的数:”让用户猜。用户输入猜测的数据,猜对了命令行显示“你猜对了”,并且出现菜单:1.再来一次;2.退出。没有猜对程序给出提示(如:太大了,太小了),并要求在命令行继续输入猜测的值;三次没猜对则程序公布正确的数字,并且出现菜单:1.再来一次;2.退出。猜数时任何一个环节,命令行上总会显示用户的总得分情况。得分规则如下:一次猜中得3分,第二次猜中得2分,其三次得1分,三次没有猜中扣2分。
时间: 2024-03-20 11:43:00 浏览: 99
好的,下面是我的回答:
```java
import java.util.Random;
import java.util.Scanner;
public class GuessNumber {
public static void main(String[] args) {
int score = 0; // 总得分
int totalTimes = 0; // 总猜测次数
int correctTimes = 0; // 猜对的次数
boolean exit = false;
Scanner scanner = new Scanner(System.in);
Random random = new Random();
while (!exit) {
System.out.println("菜单:");
System.out.println("1.开始;");
System.out.println("2.退出。");
System.out.print("请输入菜单编号:");
int menuId = scanner.nextInt();
switch (menuId) {
case 1:
int number = random.nextInt(100); // 生成0~99的随机数
int guessTimes = 0; // 当前猜测次数
boolean correct = false; // 是否猜对
while (!correct && guessTimes < 3) {
System.out.print("请输入你猜的数:");
int guess = scanner.nextInt();
guessTimes++;
if (guess == number) {
System.out.println("你猜对了!");
correct = true;
correctTimes++;
int currentScore;
switch (guessTimes) {
case 1:
currentScore = 3;
break;
case 2:
currentScore = 2;
break;
case 3:
currentScore = 1;
break;
default:
currentScore = 0;
break;
}
score += currentScore;
totalTimes++;
System.out.println("本次猜测得分:" + currentScore);
} else {
if (guess > number) {
System.out.println("太大了!");
} else {
System.out.println("太小了!");
}
}
}
if (!correct) {
System.out.println("三次猜测机会已用完,正确答案是:" + number);
score -= 2;
totalTimes++;
System.out.println("本次猜测得分:-2");
}
System.out.println("猜数得分总计:" + score + ",猜测次数:" + totalTimes + ",猜对次数:" + correctTimes);
System.out.println("菜单:");
System.out.println("1.再来一次;");
System.out.println("2.退出。");
System.out.print("请输入菜单编号:");
int subMenuId = scanner.nextInt();
if (subMenuId != 1) {
exit = true;
}
break;
case 2:
exit = true;
break;
default:
System.out.println("无效的菜单编号!");
break;
}
}
System.out.println("谢谢使用!");
}
}
```
在上面的代码中,我们使用了随机数生成器Random和输入工具Scanner。程序的大体思路是:首先显示菜单,用户选择开始或退出;如果选择开始,则生成随机数,提示用户输入猜测的数,根据猜测的结果给出提示,如果猜对了则根据猜测次数计算得分;如果猜错了,则显示正确答案并扣除得分。然后显示菜单,用户选择再来一次或退出。在程序的运行过程中,我们使用了一些变量来保存得分、总猜测次数和猜对的次数等信息,以便在程序结束时输出总的得分情况。
阅读全文