2015-05-12 3 views
-1

Я пытаюсь выяснить, как заставить мой массив работать правильно, я знаю, что мне нужно изменить значение массива на вход, но я не могу заставить программу скомпилировать, если кто-нибудь может помочь в этом будь велика. Я стараюсь, чтобы программа принимала входные данные для оценок и имен студентов и в конце выводила их имя и оценку. Редактировать жаль, что это моя первая его оприходование я есть ошибка Student.java:60: ошибка: класс, интерфейс или перечисление ожидается Я в Java 101, так вот почему он такой низкий уровень Java, мы только знать основыКак исправить мой класс Array

import java.util.Scanner; 

public class students 
{ 
    public static void main(String[] args) 
    { 
     Scanner keyboard = new Scanner(System.in); 

     System.out.println("How many students?: "); 
     int numofstudents = keyboard.nextInt(); 

     Student s = new Student(); 

     s.setMultipleStudents(); 
     s.toString(); 


     System.out.println("Enter the Grade for the student: "); 
     int gradeofstudnets = keyboard.nextInt(); 


    } 
} 

и мой второй класс

import java.util.Scanner; 

public class Student 
    { 

    Scanner scan = new Scanner(System.in); 
    private String name; 
    private int grade; 
    private int[] multiplegradeinputs = new int[10]; 
    private String[] multipleStudent = new String[10]; 

    public Student() 
    { 
    } 

    public Student(String n, int g) 
    { 
     name = n; 
     grade = g; 
    } 

    public String setMultipleStudents() 
    { 
     String n = ""; 
     for(int i = 1; i < multipleStudent.length; i++) 
     { 
     System.out.println("Enter student #" + i +" name: "); 
     n = scan.nextLine(); 
     multipleStudent[i] = n; 

     } 

     return null; 
    } 



    public String multiplegradeinputs() 
    { 
     for(int i = 1; i <multiplegradeinputs.length; i++) 
     { 
     System.out.println("Enter the Grade of the student#" + i +" : "); 
     grade = scan.nextInt(); 
     multiplegradeinputs[i] = grade; 
     } 
    } <--- error here 

    public String toString() 
    { 
     String temp = ""; 
     for(int i = 1; i < multipleStudent.length; i++) 
     { 
     temp += multipleStudent[i] + " "; 
     } 

     return temp; 

    } 
} 
+3

Каковы ошибки при компиляции? – Aify

+1

Здесь вы указали крайне минимальные детали. Если вы хотите получить помощь, вам нужно объяснить больше о том, что должна делать ваша программа и каковы конкретные проблемы, с которыми вы сталкиваетесь. – tnw

+0

Java - объектно-ориентированный язык. Отдельные массивы студентов и классов не кажутся мне хорошим инкапсуляцией. Массивы - это слишком низкий уровень структуры данных. Подумайте о коллекциях Java, таких как List. – duffymo

ответ

0

Вы пропускаете возвращаемое значение в методе multiplegradeinputs().

+0

Это не ответ, это комментарий. –

+0

Я могу удалить вопросительный знак, потому что ему не хватает возвращаемого значения строки, и это вызывает ошибку компиляции :) – nullptrex

2

оператор возврата Добавить в методе multiplegradeinputs():

public String multiplegradeinputs() 
{ 
    for(int i = 1; i <multiplegradeinputs.length; i++) 
    { 
    System.out.println("Enter the Grade of the student#" + i +" : "); 
    grade = scan.nextInt(); 
    multiplegradeinputs[i] = grade; 
    } 
    return null; //Add this line 
} 

Или изменить методы аннулированию тип возвращаемого значения, если они не возвращают ничего.

0

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

1

Имена классов должны быть капитализированы в Java, так что вместо

public class students 

вы должны написать

public class Students 

Кроме того, вместо того, чтобы писать

keyboard.nextInt(); 

Вы должны написать

Integer.parseInt(keyboard.nextLine()); 

Это связано с тем, что в java полно ошибок и технических характеристик, которые вы не найдете легко. Сообщите мне, исправляет ли это это для вас, поскольку вы не опубликовали точное сообщение об ошибке, которое вы получили.

Что касается ошибки, о которой вы указали, это связано с тем, что ваша функция ожидает, что String будет возвращать значение независимо от того, что ничто не изменит, если вы можете или хотите вернуть пустую строку. Для этого просто добавьте следующую строку в самом конце метода.

return null; 
+0

Я видел, что parseInt на линии немного разбирается, мы не перешли это, но в классе я пытался с этим только зная минимальный минимум java – mcginley182

0

Добавление к ответу, предоставленной @hitz

У Вас есть ошибка в для петель:

for(int i = 1; i <multiplegradeinputs.length; i++) 

for(int i = 1; i < multipleStudent.length; i++) 

Вы никогда не заселенных multiplegradeinputs[0] и multipleStudent[0] потому что вы начинаете цикл в index == 1 и таким образом, у вас будет только 9 имен учеников вместо 10.

Изменить на:

for(int i = 0; i <multiplegradeinputs.length; i++) 

for(int i = 0; i < multipleStudent.length; i++) 

Помните, даже если длина в 10, индексы всегда начинаются с 0 в Java и в вашем случае закончится 9.

0
import java.util.Scanner; 

общественного класса Student {

Scanner scan = new Scanner(System.in); 
private String name; 
private int grade; 
private int[] multiplegradeinputs = new int[10]; 
private String[] multipleStudent = new String[10]; 

public Student() 
{ 
} 

public Student(String n, int g) 
{ 
    name = n; 
    grade = g; 
} 

public String setMultipleStudents() 
{ 
    String n = ""; 
    for(int i = 1; i < multipleStudent.length; i++) 
    { 
    System.out.println("Enter student #" + i +" name: "); 
    n = scan.nextLine(); 
    multipleStudent[i] = n; 

    } 

    return null; 
} 



public void multiplegradeinputs() 
{ 
    for(int i = 1; i <multiplegradeinputs.length; i++) 
    { 
    System.out.println("Enter the Grade of the student#" + i +" : "); 
    grade = scan.nextInt(); 
    multiplegradeinputs[i] = grade; 
    } 
} 

public String toString() 
{ 
    String temp = ""; 
    for(int i = 1; i < multipleStudent.length; i++) 
    { 
    temp += multipleStudent[i] + " "; 
    } 

    return temp; 

} 
} 

это второй класс

import java.util.Scanner; 

public class students 
{ 
    public static void main(String[] args) 
    { 
     Scanner keyboard = new Scanner(System.in); 

    System.out.println("How many students?: "); 
    int numofstudents = keyboard.nextInt(); 

    Student s = new Student(); 

    s.setMultipleStudents(); 
    s.toString(); 


    System.out.println("Enter the Grade for the student: "); 
    int gradeofstudnets = keyboard.nextInt(); 


    } 
} 
Смежные вопросы