我将如何处理并行数组以在Java中存储不同类型的信息 [英] How would I approach Parallel Arrays to store different types of information in java

查看:60
本文介绍了我将如何处理并行数组以在Java中存储不同类型的信息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下任务:

最多可能有十支队伍。并行数组用于存储团队名称,并跟踪获胜次数,加班损失和积分。输入最后一个团队的结果后,程序将以与输入相反的顺序输出每个团队的记录摘要。

There may be up to ten teams. Parallel Arrays are used to store the team Names, as well as to keep track of the number of Wins, Overtime Losses, and Points. After the result for the last team is entered, the program outputs a summary of each team's record in the opposite order to which they were entered.

注意: W是值2分, L值0分, O值1分

Note: "W" is worth 2 points, "L" is worth 0 points, "O" is worth 1 point

样本输入:

   3 //Option number 
Toronto //phrase
   W //letters that loop in a while loop
   W
   L
   O
   W
   O
   W
   N //To close the while loop, "N" is entered
Montreal
   L
   L
   O
   L
   L
   W
   L
   L
   N // To close the while loop, "N" is entered
Vancouver
   W
   W
   O
   O
   L
   N //To close the while loop, "N" is entered
Winnipeg
   L
   L
   L
   W
   O
   O
   W
   W
   W
   W
   W
   W
   W
   Q //To close the while loop and get all the results, "Q" is entered

样本输出(它以相反的顺序输出结果)

Team W O L P //States that first, Team and then Wins, Overtime, Losses, and then points. "W" is 2 points, "O" is 1 point, and "L" is 0 point
Winnipeg 8 2 3 18
Vancouver 2 2 1 6
Montreal 1 1 6 3
Toronto 4 2 1 10

我用选项2做过类似的任务,需要不使用数组,现在是选项3,仅需要使用并行数组

选项2代码:

else if (option == 2){
            int pointsW = 0;
            int pointsL = 0;
            int pointsO = 0;
            int counter = 0;
            int totalpoints = 0;
            String phrase = keyboard.next();
            while(go){
                String letter = keyboard.next();
                    if (letter.equals("W")){
                    pointsW+=2;
                    }
                    else if (letter.equals("L")){
                    pointsL+=0;
                    }
                    else if (letter.equals("O")){
                    pointsO+=1;
                    }
                    counter++;
                    if (letter.equals("N")){
                        totalpoints = pointsW + pointsL + pointsO;
                        counter--;
                        go = false;
                }
            }
            int counter2 = 0;
            int totalpoints2 = 0;
            int pointsW2 = 0;
            int pointsL2 = 0;
            int pointsO2 = 0;
            String phrase2 = keyboard.next();
                while (go2){
                    String letter = keyboard.next();
                    if (letter.equals("W")){
                    pointsW2+=2;
                    }
                    else if (letter.equals("L")){
                    pointsL2+=0;
                    }
                    else if (letter.equals("O")){
                    pointsO2+=1;
                    }
                    counter2++;
                    if (letter.equals("Q")){
                        counter2--;
                        totalpoints2 = pointsW2 + pointsL2 + pointsO2;
                        go2 = false;
                        }
                    }
                            System.out.println(phrase + " has played "+counter+" games and has earned "+totalpoints+" points");
                            System.out.println(phrase2 + " has played "+counter2+" games and has earned "+totalpoints2+" points");
                    if (totalpoints > totalpoints2){
                        int wins = totalpoints - totalpoints2;
                            System.out.println(phrase + " is in first place by "+ wins + " points");
                    }else{
                        int wins2 = totalpoints2 - totalpoints;
                            System.out.println(phrase2 + " is in first place by "+ wins2 + " points");
            }
        }

如何将并行数组并入选项3选项2的想法相同?我真的是学习并行数组的新手,无法在网上找到有关它的任何帮助。

How would I incorporate Parallel Arrays into Options 3 with the same idea of options 2? I'm really new to learning about parallel arrays and couldn't get any help finding information online about it.

更新

else if (option == 3){
            int teams = 10;
            String phrase[] = new String[teams];
            int wins[] = new int [teams];
            int overtime[] = new int [teams];
            int loss[] = new int [teams];
            int points[] = new int [teams];
            int x;
                for (x = 0; x < teams; x++){
                    phrase[x] = keyboard.next();
                    while (go3){
                        String letter = keyboard.next();
                        if (letter.equals("W")){
                            wins[x]++;
                        }
                        else if (letter.equals("L")){
                            loss[x]++;
                        }
                        else if (letter.equals("O")){
                            overtime[x]++;
                        }
                        else if (letter.equals("N") || letter.equals("Q")){
                        points[x] = wins[x]*2+overtime[x];
                        go3 = false;
                        if (letter.equals("Q")){
                            break;
                            }
                        }
                    }
                }
                    System.out.println("Team W O L P");
                        for (int i = x; i >= 0; i--){
                            System.out.println(phrase[i] + " " + wins[i] + " " + overtime[i] + " " + loss[i] + " " + points[i]);
         }
       }
    }
 }

错误我得到了:

推荐答案

您需要用于排列名称,获胜,损失,加班和分数的数组。但是,当您了解更多信息时,可以通过创建一个自定义类型,例如 Game 来更好地管理它,该属性将具有 name List 类型属性,用于记录获胜,失败,加班等情况。

You need arrays for names, wins, losses, overtimes and points. However, when you learn more, you will better manage it by creating a custom type say, Game which will have attributes like, name, and a List type attribute for recording wins, losses, overtimes etc.

import java.util.Scanner;

public class Standings {
    public static void main(String[] args) {

        Scanner keyboard = new Scanner(System.in);
        System.out.print("Enter option: ");
        int option = keyboard.nextInt();

        // Number of teams
        int teams = 10;

        // Array for team names
        String[] teamNames = new String[teams];

        // Array to record total wins for each team
        int[] wins = new int[teams];

        // Array to record total overtimes for each team
        int[] overtimes = new int[teams];

        // Array to record total losses for each team
        int[] losses = new int[teams];

        // Array for team points
        int[] points = new int[teams];

        // Variable to be used as a counter for the number of games
        int x;

        // The program will exit when exit = true
        boolean exit = false;

        if (option == 3) {
            System.out.println("[Enter N to end the game for a team or Q to terminate the program]");
            System.out.println("------------------------------------------------------------------");
            // Input and calculation
            for (x = 0; x < teams && !exit; x++) {
                String letter;
                boolean go = true;

                System.out.print("Enter the name of team " + (x + 1) + ": ");
                teamNames[x] = keyboard.next();
                while (go) {
                    System.out.print("Enter W/L/O for match result: ");
                    letter = keyboard.next();

                    if (letter.equals("W")) {
                        wins[x]++;
                    } else if (letter.equals("O")) {
                        overtimes[x]++;
                    } else if (letter.equals("L")) {
                        losses[x]++;
                    } else if (letter.equals("N") || letter.equals("Q")) {
                        points[x] = wins[x] * 2 + overtimes[x];
                        go = false;
                        if (letter.equals("Q")) {
                            exit = true;
                        }
                    }
                }
            }

            // Output
            System.out.println("Team W O L P");
            for (int i = x - 1; i >= 0; i--) {
                System.out
                        .println(teamNames[i] + " " + wins[i] + " " + overtimes[i] + " " + losses[i] + " " + points[i]);
            }
        }
    }
}

示例运行:

Enter option: 3
[Enter N to end the game for a team or Q to terminate the program]
------------------------------------------------------------------
Enter the name of team 1: One
Enter W/L/O for match result: W
Enter W/L/O for match result: W
Enter W/L/O for match result: L
Enter W/L/O for match result: O
Enter W/L/O for match result: N
Enter the name of team 2: Two
Enter W/L/O for match result: L
Enter W/L/O for match result: L
Enter W/L/O for match result: O
Enter W/L/O for match result: W
Enter W/L/O for match result: Q
Team W O L P
Two 1 1 2 3
One 2 1 1 5

这篇关于我将如何处理并行数组以在Java中存储不同类型的信息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆