Java黑皮书课后题第8章:**8.37(猜测首府)编写一个程序,重复提示用户输入一个州的首府。当接收到用户输入后,程序报告答案是否正确。假设50个州以及它们的首府保存在一个二维数组中,提示用户回答所
**8.37(猜测首府)编写一个程序,重复提示用户输入一个州的首府
- 题目
- 题目描述与运行示例
- 破题
- 代码
题目
题目描述与运行示例
**8.37(猜测首府)编写一个程序,重复提示用户输入一个州的首府。当接收到用户输入后,程序报告答案是否正确。假设50个州以及它们的首府保存在一个二维数组中,提示用户回答所有州的首府,并且显示所有正确回答的数目(忽略英文字母大小写)
What is the capital of Massachusetts?我不知道
The correct answer should be 波士顿
What is the capital of Michigan?我不知道
The correct answer should be 兰辛
……
The correct count is 0
破题
- 给一个二维String数组赋州和首府的String类值
- 打乱该数组顺序(仅打乱行数顺序)
- 新建String对象、int型计数变量
- 使用for循环进行猜测
- 循环体内:输出提示语句,使用String对象接收用户猜测
- 循环体内:猜测与答案对比,输出结果并自增1
- 结束循环,并输出猜对次数
代码
import java.util.Scanner;public class Test8_37 {public static void main(String[] args) {//1. 给一个二维String数组赋州和首府的String类值String[][] str_input = {{"Alabama", "蒙哥马利"}, {"Alaska", "朱诺"},{"Arizona", "凤凰城"}, {"Arkansas", "小石城"},{"California", "萨克拉门托"}, {"Colorado", "丹佛"},{"Connecticut", "哈特福德"}, {"Delaware", "多佛"},{"Florida", "塔拉哈西"}, {"Georgia", "亚特兰大"},{"Hawaii", "火奴鲁鲁"}, {"Idaho", "博伊西"},{"Illinois", "斯普林菲尔德"}, {"Indiana", "印第安纳波利斯"},{"Iowa", "得梅因"}, {"Kansas", "托皮卡"},{"Kentucky", "法兰克福"}, {"Lousiana", "巴吞鲁日"},{"Maine", "奥古斯塔"}, {"Maryland", "安那波利斯"},{"Massachusetts", "波士顿"}, {"Michigan", "兰辛"},{"Minnesota", "圣保罗"}, {"Mississippi", "杰克逊"},{"Missouri", "杰弗逊城"}, {"Montana", "海伦那"},{"Nebraska", "林肯"}, {"Nevada", "卡森市"},{"New Hampshire", "康科德"}, {"New Jersey", "特伦顿"},{"New Mexico", "圣大非"}, {"New York", "奥尔巴尼"},{"North Carolina", "罗利"}, {"North Dakota", "俾斯麦"},{"Ohio", "哥伦布"}, {"Oklahoma", "俄克拉何马城"},{"Oregon", "塞勒姆"}, {"Pennsylvania", "哈里斯堡"},{"Rhode Island", "普罗维登斯"}, {"South Carolina", "哥伦比亚"},{"South Dakota", "皮尔"}, {"Tennessee", "纳什维尔"},{"Texas", "奥斯汀"}, {"Utah", "盐湖城"},{"Vermont", "蒙比利埃"}, {"Virginia", "里士满"},{"Washington", "奥林匹亚"}, {"West Virginia", "查尔斯顿"},{"Wisconsin", "麦迪逊"}, {"Wyoming", "夏延"}};//2. 打乱该数组顺序(仅打乱行数顺序)String[][] str = new String[50][2];int temp = 0, count = 0;while (!is_fill(str) && count < 20){temp = (int) (Math.random() * 50);if (str[temp][0] == null){str[temp][0] = str_input[count][0];str[temp][1] = str_input[count][1];++count;}}for (int i = 0 ; i < 50 ; i++){if (str[i][0] == null){str[i][0] = str_input[count][0];str[i][1] = str_input[count][1];++count;}}//3. 新建String对象、int型计数变量String str_temp = "";int count_correct = 0;//4. 使用for循环进行猜测Scanner input = new Scanner(System.in);for (int i = 0 ; i < 50 ; i++){//5. 循环体内:输出提示语句,使用String对象接收用户猜测System.out.print("What is the capital of " + str[i][0] + "?");str_temp = input.next();//6. 循环体内:猜测与答案对比,输出结果并自增1if (str_temp.equals(str[i][1])){System.out.println("Your answer is correct");++count_correct;} else {System.out.println("The correct answer should be " + str[i][1]);}}//7. 结束循环,并输出猜对次数System.out.println("The correct count is " + count_correct);}/** 判断传入的String对象是否已经满了 */public static boolean is_fill(String[][] str){for (int i = 0 ; i < str.length ; i++){if (str[i][0] == null){return false;}}return true;}
}
Java黑皮书课后题第8章:**8.37(猜测首府)编写一个程序,重复提示用户输入一个州的首府。当接收到用户输入后,程序报告答案是否正确。假设50个州以及它们的首府保存在一个二维数组中,提示用户回答所相关推荐
- Java黑皮书课后题第9章:*9.10(代数:二次方程式)为二次方程式设计一个名为QuadraticEquation的类
Java黑皮书课后题第9章:*9.10(代数:二次方程式)为二次方程式设计一个名为QuadraticEquation的类 题目 破题 代码 Test10 Test10_QuadraticEquatio ...
- Java黑皮书课后题第4章:*4.18(学生的专业和年级)编程一个程序,提示用户输入两个字符,显示这两个字符代表的专业以及年级,第一个字符表示专业,第二个是一个数字字符1、2、3、4,输出对应结果
*4.18(学生的专业和年级)编程一个程序,提示用户输入两个字符,显示这两个字符代表的专业以及年级,第一个字符表示专业,第二个是一个数字字符1.2.3.4,分别表示大一.大二.大三.大四 题目 题目概 ...
- Java黑皮书课后题第5章:*5.14(计算最大公约数)下面是求两个整数n1和n2的最大公约数的程序清单5-9的另一种解法:...提示用户输入两个正整数,然后显示最大公约数
*5.14(计算最大公约数)下面是求两个整数n1和n2的最大公约数的程序清单5-9的另一种解法:首先找出n1和n2的最小值d,然后一次检验d.d-1.d-2....2.1,是否是n1和n2的公约数.第 ...
- Java黑皮书课后题第8章:*8.33(几何:多边形的子面积)一个具有四个顶点的凸多边形被分为4个三角形,编写一个程序,提示用户输入4个顶点的坐标,然后以升序显示四个三角形的面积
*8.33(几何:多边形的子面积)一个具有四个顶点的凸多边形被分为4个三角形,编写一个程序,提示用户输入4个顶点的坐标,然后以升序显示四个三角形的面积 题目 题目描述与运行示例 破题 代码 题目 题目 ...
- Java黑皮书课后题第3章:*3.32(几何:点的位置)给定一个从点p0(x0,y0)到p1(x1,y1)的有向线段,可以用以下公式判定定点p2(x2, y2)是在线段的左侧、右侧,或者在该线段上
*3.32(几何:点的位置)给定一个从点p0(x0,y0)到p1(x1,y1)的有向线段,可以用以下公式判定定点p2(x2, y2)是在线段的左侧.右侧,或者在该线段上 题目 题目概述 运行示例 代码 ...
- Java黑皮书课后题第10章:**10.25(新的字符串split方法)String类中的split方法会返回一个字符串数组,该数组是由分隔符分隔开的子串构成的
Java黑皮书课后题第10章:**10.25(新的字符串split方法) 题目 代码 运行实例 题目 代码 public class Test25 {public static String[] sp ...
- Java黑皮书课后题第11章:11.2(Person Student Employee Faculty Staff类)设计一个名为Person的类及其两个名为Student和Employee的子类
Java黑皮书课后题第11章:11.2(Person Student Employee Faculty Staff类) 题目 缺陷 UML图 代码 Test02_MyDate.java:用于参考的My ...
- Java黑皮书课后题第10章:10.21(被5或6整除)找出能被5或6整除的大于Long.MAX_VALUE的前10个数字
Java黑皮书课后题第10章:10.21(被5或6整除)找出能被5或6整除的大于Long.MAX_VALUE的前10个数字 题目 代码 结果 题目 都在上面 代码 import java.math.B ...
- Java黑皮书课后题第10章:*10.13(几何:MyRectangle2D类)定义MyRectangle2D类
Java黑皮书课后题第10章:10.3 题目 程序 代码 Test13.java Test13_MyRectangle2D.java 运行 UML 题目 程序 Test13.java:测试程序 Tes ...
最新文章
- tf.GradientTape() 示例
- 北电PBX资料_LD 11數位電話機設定
- pytorch定义神经卷积网络CNN源码
- CSU 1113 Updating a Dictionary(map容器应用)
- linux docker 限制容器可用的 cpu
- 【笔记】css卡片式地展示人物信息和一些展示信息的相关美化记录
- pacemaker+corosync
- 【渝粤题库】国家开放大学2021春2476旅游学概论题目
- 【LeetCode】剑指 Offer 26. 树的子结构
- python中的turtle如何运行_python中turtle库的简单使用教程
- 查询各分类中最大自增ID
- java textarea 自动滚动条_月光软件站 - 编程文档 - Java - 如何实现滚动条的自动滚动到textarea的末尾...
- Gephi教程:使用Graph Streaming 插件实现数据可视化
- 数学建模——SPSS的非参数检验
- HTML5实现在线拍照功能(调取摄像头API)
- 鸟哥Linux第二十四章-Linux内核编译与管理简记
- 机器学习04:利用朴素贝叶斯分类器判别网络评论的情绪好坏(航空公司数据集)
- C语言书籍阅读-读书笔记--《C专家编程》
- 赵小楼《天道》《遥远的救世主》深度解析(51)为什么芮小丹用脱衣这个方式来告白丁元英?
- 后端使用postman进行测试