(JAVA) Как создать базовый c текстовый ввод и вывод для таблицы Футбольной лиги? - PullRequest
0 голосов
/ 09 апреля 2020

У меня есть задание (Java, использующее Netbeans для ввода названия клуба, ввода счета, а затем распечатки таблиц, как в турнирной таблице лиги. Каждая строка отображает результат нашего ввода и отображает турнирную таблицу, как и должно (CLUB Name) с самой большой точкой вверху таблицы: Вот что я имею в виду: (пользовательский ввод в BOLD )

Ввод Количество клубов: 4
Ввод клуб 1: ManUtd
вход клуб 2: Ливерпуль
вход клуб 3: Челси
вход клуб 4: арсенал

Оценка на входе:
ManUtd x Ливерпуль: 1 1
Manutd x Челси: 1 0
ManUtd x Арсенал : 1 0
Ливерпуль х Челси: 1 1
Ливерпуль х Арсенал: 1 0
Челси х Арсенал: 1 1

и отображает вывод командных команд следующим образом:

Командный матч Выиграть вничью Lose Pts
Manutd 3 2 1 0 7
Ливерпуль 3 1 2 0 5
Челси 3 0 2 1 2
Арсенал 3 0 1 2 1

++++++++++++++++++++++++++++++++ +++++++++++++++

Я пытался соединить все знания, которые я когда-либо читал из учебника, но это не работает хорошо. Но не знаю, как использовать массив, циклическую функцию, целое число / данные из этого ввода. Я не могу понять подсказку, которая может привести меня к решению. Кто-нибудь может мне помочь, пожалуйста? Я только что выучил java сам, и COVID-19 затрудняет учебу до моего преподавателя.

Для всех, кто ответит на это, спасибо за помощь:)

мои основы c код застрял здесь:

package standings;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class LeagueStandings {

public static void main(String[] args) {
BufferedReader input = new BufferedReader(new 
InputStreamReader(System.in));
int data = 0;
String[] nama    = new String[30];


System.out.println("CLUB NAME");

System.out.println("+===============INPUTAN============================+");
try{
    System.out.println("How Many Clubs ? = ");
    data = Integer.parseInt(input.readLine());
    for (int a=1;a<=data;a++){
     System.out.println("------Club No."+ a +"------");
     System.out.println("Enter club name        = ");
        nama[a] = input.readLine();

     }
} catch (IOException e ){
  System.out.println("Error");
}

}

Ожидаемый результат, как это (результат, ожидаемый от лектора)

expected result

1 Ответ

0 голосов
/ 13 апреля 2020

Вот решение вашей проблемы. Я пытался написать как можно более наивное решение, чем вы новичок.

package com.standings;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class LeagueStandings {

    public static void main(String[] args) {
        try {
            BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
            int data = 0;
            System.out.print("Input number of clubs:\t");
            data = Integer.parseInt(input.readLine());
            String[] teamList = new String[data];
            for (int i = 0; i < data; i++) {
                System.out.print("Enter club " + (i + 1) + " :\t");
                teamList[i] = input.readLine();
            }

            System.out.println("-------------------------------------------------");

            // representing 2D array of team score board where each scoreBoard is of type
            //     0      1      2      3       4
            // [played] [win] [draw] [loose] [points]
            int[][] scoreBoard = new int[data][5];
            for (int i = 0; i < data - 1; i++) {
                for (int j = i + 1; j < data; j++) {
                    System.out.print(teamList[i] + " X " + teamList[j] + " : ");
                    String score = input.readLine();
                    List<String> scoreList = new ArrayList<String>(Arrays.asList(score.split(" ")));
                    scoreList.removeIf(s -> s.equals(""));
                    int teamAScore = Integer.parseInt(scoreList.get(0));
                    int teamBScore = Integer.parseInt(scoreList.get(1));
                    scoreBoard[i][0]++;
                    scoreBoard[j][0]++;
                    if (teamAScore > teamBScore) {
                        scoreBoard[i][1]++;
                        scoreBoard[j][3]++;
                        scoreBoard[i][4] += 3;
                    } else if (teamAScore == teamBScore) {
                        scoreBoard[i][2]++;
                        scoreBoard[j][2]++;
                        scoreBoard[i][4]++;
                        scoreBoard[j][4]++;
                    } else {
                        scoreBoard[i][3]++;
                        scoreBoard[j][1]++;
                        scoreBoard[j][4] += 3;
                    }
                }
            }

            System.out.format("%15s%15s%15s%15s%15s%15s\n", "TEAMS", "PLAYED", "WIN", "DRAW", "LOOSE", "POINTS");
            for (int i = 0; i < data; i++) {
                System.out.format("%15s", teamList[i]);
                System.out.format("%15d%15d%15d%15d%15d\n", scoreBoard[i][0], scoreBoard[i][1], scoreBoard[i][2], scoreBoard[i][3], scoreBoard[i][4]);
            }
        } catch (IOException e) {
            System.out.println("Error");
        }
    }
}


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...