2016-02-13 4 views
3

Эта программа спросит у пользователя имя и класс учащихся, а затем отобразит их оба. Значения, которые пользовательские входы хранятся в массив наименования & массив класс. Я использую счетчик, управляемый для цикла, для сбора пользовательского ввода в массивы. Что делать, если я хотел бы ввести несколько оценок для каждого ученика? достаточно новый для программирования, любой вход или мысли был бы весьма признателен, о том, как сделать это ...Хранение нескольких пользовательских входных данных в массивах

public class Five { 

public static void main(String[] args) { 
    int students; 

    Scanner input = new Scanner(System.in); //created input scanner 


System.out.println("How many students are on your roster? If you wish to exit please type 00: ");// Initializing statement for program************ 
students = input.nextInt(); 

     if(students == 00) { //Exit program**************** 
     System.out.println("Maybe Next Time!!"); 
      System.exit(0); 
     } 

String[] names = new String[students];// Array names******* 
String[]grade = new String[students]; //Array grade******** 

// Use Counter to go through Array************************** 
     for(int counter =0; counter < students; counter++){ 
     System.out.println("Enter the name of a student: " + (counter +1)); 
     names [counter] = input.next(); 
     System.out.println("Now enter that students grade A, B, C, D OR F: "); 
     grade [counter] = input.next(); 
     } 

input.close();// End Scanner object 
//Use For loop for Printing names and grades entered by the user************** 
System.out.println("Your students names and grades are as follows: "); 
     for(int counter =0; counter < students; counter++){ 
     System.out.println("Name: " + names[counter]); 
     System.out.println("Grade: " + grade[counter]); 
     } 
    } 
} 
+0

для нескольких классов, вы должны знать, сколько из них заранее, так как вы используете массивы, и они могут быть инициализированы только тогда, когда вы знаете размер в advance –

+1

Вы уже узнали об объектах (POJO)? Класс, где вы найдете методы получения и установки (getters и seters)? Или скажите мне, сколько оценок вы выберете для каждого ученика? Как для каждого ученика, будет класс X. Один для английского, один для физики и один для Chemisty и т. Д. –

+1

Было бы гораздо лучше использовать Классы и объекты или по крайней мере HashMaps. – anaxin

ответ

3

Вы можете использовать рваный массив для классов, чтобы ввести более одного Вы должны были бы объявить его так вот вот как это сделать.

String[] names = new String[students];// Array names******* 
    String[][]grade = new String[names][]; //Array grade******** 

     for(int i=0; i<names[i];i++) 
    {System.out.println("How many grades will you enter for "+names[i]+"?") 
    int temp=input.nextInt(); 
    for(int j=0; j<names[i][temp-1];j++){ 
    grad[i][j]=input.next();   
      }} 
+0

Позволяет ли это более 2-х классов? Что делать, если вы не знали, сколько баллов будет иметь каждый студент. Я пытаюсь думать о реальном мире. – mar

2

Возможно, вы должны сделать класс ученика и класс градаций и сохранить их как объекты. Используя структуру данных, ваш лучший выбор - .

HashMap<String, List<String>> grades = new HashMap<>(); 
grades.put("Jack", new ArrayList<>()); 
grades.get("Jack").add("A"); 

Вы можете узнать больше о HashMap here