【发布时间】:2017-07-09 21:56:01
【问题描述】:
一旦用户输入“无”退出程序,我需要知道如何编写结果摘要。下面是完整的作业和我到目前为止的代码。
任务: 编写一个显示州鸟和花的 Java 程序。您应该使用 IDE 进行此练习。您还应该充分利用 Java 类,以包括多个方法和至少两个类。该程序应提示用户输入一个州并打印州鸟和花卉。用户应该能够输入状态而不用担心大小写。 (例如,用户可以输入 Maryland、maryland、MARYLAND 或任何其他可能的大小写字符组合。状态也可能包含前导和尾随空格。提示:将状态信息存储在多维数组中。程序应继续提示用户输入状态,直到输入“无”。用户输入所有状态后,程序应显示结果摘要。您需要做一些研究才能找到状态鸟和花。这里是一个示例运行:
Enter a State or None to exit:
Maryland
Bird: Baltimore Oriole
Flower: Black-eyed Susan
Enter a State or None to exit:
Delaware
Bird: Blue Hen Chicken
Flower: Peach Blossom
Enter a State or None to exit:
None
**** Thank you *****
A summary report for each State, Bird, and Flower is: Maryland, Baltimore Oriole, Black-eyed Susan Delaware, Blue Hen Chicken, Peach Blossom
Please visit our site again!
//代码:
public class StatesDataEntry {
private String state [][] = {
{"ALABAMA","Nothern Flicker","Camellia"},
{"ALASKA","Willow Ptarmigan","Forget-me-not"},
{"ARIZONA","Cactus Wren","Saguaro Cactus Blossom"},
{"ARKANSAS","Mockingbird","Apple Blossom"},
{"CALIFORNIA","California Quail","California Poppy"},
{"COLORADO","Lark Bunting","Rocky Mountain Columbine"},
{"CONNECTICUT","American Robin","Mountain Laurel"},
{"DELAWARE","Blue Hen","Peach Blossom"},
{"FLORIDA","Northern Mockingbird","Orange Blossom"},
{"GEORGIA","Brown Thrasher","Azalea"},
{"HAWAII","Hawaiian Goose","Hawaiian Hibiscus"},
{"IDAHO","Mountain Bluebird","Mock Oragnge"},
{"ILLINOIS","Northern Cardinal","Violet"},
{"INDIANA","Cardinal","Peony"},
{"IOWA","Eastern Goldfinch","Iowa"},
{"KANSAS","Western Meadowlark","Sunflower"},
{"KENTUCKY","Northern Cardinal","Goldenrod"},
{"LOUISIANA","Brown Pelican","Magnolia"},
{"MAINE","Black-capped Chickadee","White Pine Cone and Tassel"},
{"MARYLAND","Baltimore Oriole","Black-eyed Susan"},
{"MASSACHUSETTS","Black-capped Chickadee","Mayflower"},
{"MICHIGAN","American Robin","Apple Blossom"},
{"MISSISSIPPI","Northern Mockingbird","Magnolia"},
{"MISSOURI","Eastern Bluebird","Hawthorn (flower)"},
{"MONTANA","Western Meadowlark","Bitterroot"},
{"NEBRASKA","Western Meadowlark","Goldenrod"},
{"NEVADA","Mountain Bluebird","Sagebrush"},
{"NEW HAMPSHIRE","Purple Finch","Purple Lilac"},
{"NEW JERSEY","Eastern Goldfinch","Violet"},
{"NEW MEXICO","Roadruner","Yucca Flower"},
{"NEW YORK","Eastern Bluebird","Rose"},
{"NORTH CAROLINA","Northern Cardinal","Flowering Dogwood"},
{"NORTH DAKOTA","Western Meadowlark","Wild Prairie Rose"},
{"OHIO","Northern Cardinal","Scarlet Carnation"},
{"OKLAHOMA","Scissor-tailed Flycatcher","Oklahoma Rose"},
{"OREGON","Western Meadowlark","Oregon Grape"},
{"RHODE ISLAND","Rhode Island Red","Violet"},
{"SOUTH CAROLINA","Carolina Wren","Yellow Jessamine"},
{"SOUTH DAKOTA","Ring-necked Pheasant","Pasque Flower"},
{"TENNESSEE","Nothern Mockingbird","Iris"},
{"TEXAS","Northern Mockingbird","Bluebonnet"},
{"UTAH","California Gull","Sego Lily"},
{"VERMONT","Hermit Thrush","Red Clover"},
{"VIRGINIA","Northern Cardinal","American Dogwood"},
{"WASHINGTON","Willow Goldfinch","Coast Rhodedendron"},
{"WEST VIRGINIA","Northern Cardinal","Rhodedendrom"},
{"WISCONSIN","American Robin","Wood Violet"},
{"WYONMING","Western Meadolark","Indian Paintbrush"},
};
public StatesDataEntry(){
}
public String[][] getState() {
return state;
}
public void setState(String[][] state) {
this.state = state;
}
}
//second class
import java.util.Scanner;
public class TestStatesDataEntry {
public static void main(String[] args) {
StatesDataEntry inform = new StatesDataEntry();
String states[][] = inform.getState();
Scanner input = new Scanner(System.in);
while (true) {
System.out.println("Enter a State or 'None' to exit:");
String state = input.nextLine();
if (state.trim().equalsIgnoreCase("None")) {
break;
}
else {
int index = getStateIndex(state, states);
if (index != -1) {
System.out.printf("Bird: %s \nFlower: %s \n",
getBird(index, states), getFlower(index, states));
}
else {
System.out
.println("Please try again, an invalid State was entered.");
}
}
}
input.close();
}
private static int getStateIndex(String state, String[][] states) {
for (int i = 0; i < states.length; i++) {
if (state.trim().equalsIgnoreCase(states[i][0])) {
return i;
}
}
return -1;
}
private static String getBird(int index, String[][] states) {
return states[index][1];
}
private static String getFlower(int index, String[][] states) {
return states[index][2];
}
}
【问题讨论】:
-
将您的状态信息存储在
String[][]中是相当麻烦的。创建一个类,例如StateInfo,带有字段name、bird、flower(或任何这些字段的实际含义——这是重点的一部分——state[5][2]的含义并不明显)。 -
同意,但是作业特别告诉他要存储在一个多维数组中。
-
然后,在创建了 Andy 推荐的类之后,看看像 HashMap 这样的东西,它可以让你按状态名称存储和查找那些 StateInfos...
-
摘要到底应该是什么?您只是想将整个状态数组转储到控制台吗?
-
@Araymer 看起来教授提供的是提示而不是限制。学习地图和课程会更好地为杰服务,即使它比课程表提前