【问题标题】:Need to add a summary of results to java program需要在java程序中添加结果摘要
【发布时间】: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,带有字段namebirdflower(或任何这些字段的实际含义——这是重点的一部分——state[5][2] 的含义并不明显)。
  • 同意,但是作业特别告诉他要存储在一个多维数组中。
  • 然后,在创建了 Andy 推荐的类之后,看看像 HashMap 这样的东西,它可以让你按状态名称存储和查找那些 StateInfos...
  • 摘要到底应该是什么?您只是想将整个状态数组转储到控制台吗?
  • @Araymer 看起来教授提供的是提示而不是限制。学习地图和课程会更好地为杰服务,即使它比课程表提前

标签: java summary


【解决方案1】:

如果您仍然不相信上面的 cmets,您可以简单地将用户进入状态时获得的索引存储在另一个集合数组/列表中,并最终遍历它们并打印。如果您使用 HashaMap,则同样适用,存储键而不是索引。或者,如果您使用对象将它们存储在列表中并在最后打印。

【讨论】:

    猜你喜欢
    • 2011-09-22
    • 1970-01-01
    • 2021-07-17
    • 2012-04-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-27
    • 1970-01-01
    • 2023-01-29
    相关资源
    最近更新 更多