**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

破题

  1. 给一个二维String数组赋州和首府的String类值
  2. 打乱该数组顺序(仅打乱行数顺序)
  3. 新建String对象、int型计数变量
  4. 使用for循环进行猜测
  5. 循环体内:输出提示语句,使用String对象接收用户猜测
  6. 循环体内:猜测与答案对比,输出结果并自增1
  7. 结束循环,并输出猜对次数

代码

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个州以及它们的首府保存在一个二维数组中,提示用户回答所相关推荐

  1. Java黑皮书课后题第9章:*9.10(代数:二次方程式)为二次方程式设计一个名为QuadraticEquation的类

    Java黑皮书课后题第9章:*9.10(代数:二次方程式)为二次方程式设计一个名为QuadraticEquation的类 题目 破题 代码 Test10 Test10_QuadraticEquatio ...

  2. Java黑皮书课后题第4章:*4.18(学生的专业和年级)编程一个程序,提示用户输入两个字符,显示这两个字符代表的专业以及年级,第一个字符表示专业,第二个是一个数字字符1、2、3、4,输出对应结果

    *4.18(学生的专业和年级)编程一个程序,提示用户输入两个字符,显示这两个字符代表的专业以及年级,第一个字符表示专业,第二个是一个数字字符1.2.3.4,分别表示大一.大二.大三.大四 题目 题目概 ...

  3. 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的公约数.第 ...

  4. Java黑皮书课后题第8章:*8.33(几何:多边形的子面积)一个具有四个顶点的凸多边形被分为4个三角形,编写一个程序,提示用户输入4个顶点的坐标,然后以升序显示四个三角形的面积

    *8.33(几何:多边形的子面积)一个具有四个顶点的凸多边形被分为4个三角形,编写一个程序,提示用户输入4个顶点的坐标,然后以升序显示四个三角形的面积 题目 题目描述与运行示例 破题 代码 题目 题目 ...

  5. Java黑皮书课后题第3章:*3.32(几何:点的位置)给定一个从点p0(x0,y0)到p1(x1,y1)的有向线段,可以用以下公式判定定点p2(x2, y2)是在线段的左侧、右侧,或者在该线段上

    *3.32(几何:点的位置)给定一个从点p0(x0,y0)到p1(x1,y1)的有向线段,可以用以下公式判定定点p2(x2, y2)是在线段的左侧.右侧,或者在该线段上 题目 题目概述 运行示例 代码 ...

  6. Java黑皮书课后题第10章:**10.25(新的字符串split方法)String类中的split方法会返回一个字符串数组,该数组是由分隔符分隔开的子串构成的

    Java黑皮书课后题第10章:**10.25(新的字符串split方法) 题目 代码 运行实例 题目 代码 public class Test25 {public static String[] sp ...

  7. 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 ...

  8. 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 ...

  9. Java黑皮书课后题第10章:*10.13(几何:MyRectangle2D类)定义MyRectangle2D类

    Java黑皮书课后题第10章:10.3 题目 程序 代码 Test13.java Test13_MyRectangle2D.java 运行 UML 题目 程序 Test13.java:测试程序 Tes ...

最新文章

  1. tf.GradientTape() 示例
  2. 北电PBX资料_LD 11數位電話機設定
  3. pytorch定义神经卷积网络CNN源码
  4. CSU 1113 Updating a Dictionary(map容器应用)
  5. linux docker 限制容器可用的 cpu
  6. 【笔记】css卡片式地展示人物信息和一些展示信息的相关美化记录
  7. pacemaker+corosync
  8. 【渝粤题库】国家开放大学2021春2476旅游学概论题目
  9. 【LeetCode】剑指 Offer 26. 树的子结构
  10. python中的turtle如何运行_python中turtle库的简单使用教程
  11. 查询各分类中最大自增ID
  12. java textarea 自动滚动条_月光软件站 - 编程文档 - Java - 如何实现滚动条的自动滚动到textarea的末尾...
  13. Gephi教程:使用Graph Streaming 插件实现数据可视化
  14. 数学建模——SPSS的非参数检验
  15. HTML5实现在线拍照功能(调取摄像头API)
  16. 鸟哥Linux第二十四章-Linux内核编译与管理简记
  17. 机器学习04:利用朴素贝叶斯分类器判别网络评论的情绪好坏(航空公司数据集)
  18. C语言书籍阅读-读书笔记--《C专家编程》
  19. 赵小楼《天道》《遥远的救世主》深度解析(51)为什么芮小丹用脱衣这个方式来告白丁元英?
  20. 后端使用postman进行测试

热门文章

  1. 让小程序在自有App中启动的技术来了:mPaaS小程序架构深度解析
  2. Flink 实战:如何解决应用中的技术难题?
  3. 从技术角度聊聊,短视频为何让人停不下来?
  4. plsqlfor循环输出三角形_glium指南-03-移动我们的三角形
  5. 一个用理性设计的搞笑游戏
  6. 浅谈游戏单位属性模块设计:属性组成、分级、计算与同步
  7. 游戏运营期间我的项目开发经验总结——纪律性和卡顿处理
  8. 剑与远征种族刻印让玩家期待,绿裔刻印真有那么好看
  9. rman backup database force 功能
  10. 使用Oracle的审计功能监控数据库中的可疑操作