2017-01-14 3 views
0

Ich habe eine ganze Zahl, N, das ist die Anzahl der Testergebnisse, die eingegeben werden. Für jede Zeile, N, gibt es einen Studentennamen, gefolgt von ihrem Testergebnis. Ich muss die Summe ihrer Testergebnisse berechnen & Drucken Sie den Namen des zweitkleinsten Schülers.Sortierung Schüler Testergebnisse in einem Array

+0

Ich sehe H Testergebnis als 4 in Ihrer Eingabe. – Gyanshu

+0

Es gibt Schüler mit doppelten Noten und B hat 6 und E hat 3 (nicht 7). Auch H hat 4 – ucsunil

+0

Sie müssen sie hinzufügen. Es ist die Summe ihrer Punktzahlen (siehe H hat 4 und später H sagt 5). 4 + 5 = 9. –

Antwort

0

Also, was ich tun würde, ist eine Reihe von Klassen für die Schüler zu schaffen. Die Klasse würde zwei Instanzvariablen für den Namen und das Ergebnis haben. Dann, wenn alle Eingaben gemacht sind, müssen Sie sie nur noch holen. Hier ist der Code, den ich für genau diese Sache entwickelt habe.

import java.util.*; 

public class testScores { 

    public static void main(String[] args){ 


     Scanner scan = new Scanner(System.in); 
     int n = scan.nextInt(); 
     Student[] students = new Student[n]; 
     for(int i = 0; i < n; i++){ 
      students[i] = new Student(); 
      System.out.print("Enter the student's name"); 
      students[i].setName(scan.next()); 
      scan.nextLine(); 
      System.out.print("Enter the student's score"); 
      students[i].setScore(scan.nextInt()); 
      scan.nextLine(); 
     } 

     int total = 0; 
     int smallest_name = 0; 
     for(int i = 0; i < n; i++){ 
      total+=students[i].getScore(); 
      if(students[i].getName().length() < students[smallest_name].getName().length()) 
       smallest_name = i; 
     } 

     int second_smallest = 0; 
     for(int i = 0; i < n; i++){ 
      if(students[i].getName().length() > students[smallest_name].getName().length() && students[i].getName().length() < students[second_smallest].getName().length()) 
       second_smallest = i; 
     } 

     System.out.println("The sum of the scores is: " + total); 
     System.out.println("The second smallest name is: " + students[second_smallest].getName()); 

    } 
} 

class Student{ 

    private String name; 
    private int score; 

    public Student(){} 

    public void setScore(int n){ 
     score = n; 
    } 

    public void setName(String n){ 
     name = n; 
    } 

    public int getScore(){ 
     return score; 
    } 

    public String getName(){ 
     return name; 
    } 

} 
+0

Yup, ich arbeite daran, diese herauszuholen, ich werde in einer Sekunde repost. –

+0

Das brachte mir keine Kompilierungsfehler. –

+0

Dies sollte funktionieren –