2016-10-09 3 views
-2

Bitte helfen Sie mir..Ich habe an diesem nonstop gearbeitet und ich kann immer noch nicht so laufen, wie ich es will.Ich bin neu in der Programmierung. Ich bin nicht sehr gut darin, Methoden anzuwenden. Ich habe hier eine Probe meiner Arbeit und mein Problem ist, wie bekomme ich den Durchschnitt der Noten und wie drucke ich es auf der Konsole. Wenn ich diesen Code ausführe, sind die letzten Werte innerhalb der Variablenklasse die einzigen Werte, die auf der Konsole angezeigt werden. Ich muss auch die Anwesenheit überprüfen ... wie mache ich das? Ich brauche diesen Code für mein Finale.Wie berechnet man die Durchschnittsnote der Werte von einem Array?

Paket studentmonitoring;

importieren java.util. *; public class StudentMonitoring {

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

Date date=new Date(); 
    int[] attend1={},attend2,attend3,grade={}; 
String line="-------------------------------------------------------------------"; 
String[] idNum1={},idNum2={},gender={}, name1={},name2={},name3={},name4={},address={},sub={}; 

Scanner Eingang = new Scanner (System.in); int check = 0, num = 0;

System.out.println(line); 
System.out.println("\t\t****STUDENT MONITORING****"); 
System.out.println(line); 

    System.out.println("\nGood day teacher, to start using this program input the following information first.\n"); 
    System.out.println(line); 
    System.out.print("NAME OF SCHOOL: "); 
    String sName=in.nextLine(); 
    System.out.print("ADDRESS OF SCHOOL: "); 
    String sAdd=in.nextLine(); 
    System.out.print("SCHOOL IDENTIFICATION NUMBER: "); 
    String sId=in.nextLine(); 
    System.out.println(line); 

    System.out.println("STUDENTS INFORMATION"); 
    System.out.println("Enter the year and section of this class"); 
    String yearSec=in.nextLine(); 
    System.out.println("How many student information do you want to input? "); 
    int numberStudents=in.nextInt(); 


    idNum1=new String[numberStudents]; 
    name1=new String[numberStudents]; 
    name2=new String[numberStudents]; 
    name3=new String[numberStudents]; 
    name4=new String[numberStudents]; 
    attend1=new int[200]; 
    attend2=new int[200]; 
    attend3=new int[200]; 
    address=new String[numberStudents]; 
    grade=new int[100]; 
    gender=new String[numberStudents]; 
     idNum2=new String[numberStudents]; 


    System.out.println("Enter the number of subjects you have: "); 
    int numSub=in.nextInt(); 

    sub=new String[numSub]; 
    in.nextLine(); 

    for(int x=0;x<numSub;x++) { 
    System.out.print("SubjeC#"+(x+1)+": "); 
    sub[x]=in.nextLine(); 
    } 
    for(int x=0;x<numberStudents;x++) { 
     in.nextLine(); 
     System.out.println(line); 
     System.out.println("Student #"+(x+1)); 
     System.out.print("LAST NAME: "); 
     name1[x]=in.nextLine(); 
     System.out.print("FIRST NAME: "); 
     name2[x]=in.nextLine(); 
     System.out.print("MIDDLE INITIAL: "); 
     name3[x]=in.nextLine(); 

     System.out.print("GENDER: "); 
     gender[x]=in.nextLine(); 

     System.out.print("ADDRESS: "); 
     address[x]=in.nextLine(); 

     System.out.print("ID NUMBER: "); 
     idNum1[x]=in.nextLine(); 


     System.out.println(line); 
     System.out.println("Enter the grades here."); 
     System.out.println(line); 
     for (int a=0;a<numSub;a++) { 
      System.out.print(sub[a]+": "); 
     grade[a]=in.nextInt(); 
     } 
     } 



    System.out.println("This is the list of the students info you've inputted."); 
     System.out.println("ID Number\t Name\t\t GENDER\t\t ADDRESS"); 


     for(int x=0;x<numberStudents;x++) { 

     System.out.println(idNum1[x]+"\t\t"+name1[x]+" "+name2[x]+","+name3[x]+".\t\t"+gender[x]+"\t\t"+address[x]); 
     } 

    System.out.println("Subject\t\tGrades"); 
    for(int x=0;x<numSub;x++) { 
     System.out.println(sub[x]+"\t\t"+grade[x]); 
    } 
    System.out.println(line); 

    System.out.println(); 
} 

}

+0

Dieses parallele Array-Design ist nicht gut. – Enzokie

+0

bitte helfen Sie mir, ein besseres zu machen. – JohnHERE

+0

Wenn Sie bereits in OOP tauchen, sollten Sie diese Dinge als ein Array von Student-Objekten entwerfen, anstatt ein einzelnes Array für jedes Attribut zu erstellen. – Enzokie

Antwort

1

Hier ist ein Beispiel:

double[] values = { 2.2, 3.6, 6.3, 3.6, 2.8, 8.5, 8.3, 8.3, 1.2, 10, 2.2, 5.6 }; 
double sum = 0; 
for (int i = 0; i < values.length; i++) 
    sum += values[i]; 
System.out.println("Average: " + sum/values.length); 

Das Ihre erste Frage beantwortet.

Aber wenn Sie auch Probleme mit dem Array zu füllen, können Sie es tun:

int MAX = 3; 
double[] values = new double[MAX]; 
Scanner scanner = new Scanner(System.in); 
for (int i = 0; i < MAX; i++) { 
    System.out.print("Type the grade: "); 
    values[i] = scanner.nextDouble(); 
} 
scanner.close(); 
+0

Ich benutzte eine einzelne Array-Variable, um die Noten der verschiedenen Schüler zu speichern..ist es nicht das Richtige zu tun? – JohnHERE

+0

Sicher. Sie können ein variables Array verwenden. Keine Probleme damit. Ich gebe nur ein Beispiel. Aber Sie können ein leeres Array perfekt deklarieren und danach die Werte hinzufügen. –

+0

Ich weiß immer noch nicht, was ich tun soll ... Ich bin verzweifelt, diesen Code für mein Finale zu haben ... und es ist in 6 Tagen ... – JohnHERE

1
public static void main(String[] args) { 
    System.out.println("Enter the number of students you want: "); 
    Scanner scanner = new Scanner(System.in); 

    int numOfStudents = scanner.nextInt(); 

    double[] grades = new double[numOfStudents]; 

    double total = 0; 
    double currentGrade = 0; 

    for(int i=0; i<grades.length; i++) { 
     System.out.println("Grade achieved: "); 
     currentGrade = scanner.nextDouble(); 
     grades[i] = currentGrade; 
     total += currentGrade; 
    } 

    scanner.close(); 
    System.out.println(Arrays.toString(grades)); 
    System.out.println("Average grade " + (total/numOfStudents)); 
} 

Hier setzen wir zunächst die Größe des Doppel Array (die die Qualitäten bevölkern). Dann füllen wir das double-Array mit einer for-Schleife aus und erhalten eine Benutzereingabe über scanner.nextDouble().

+0

Wie kann ich dies mit Array-Variablen tun? – JohnHERE

+0

Ich habe die Antwort auf Ihren Kommentar aktualisiert. – Brunaldo

+0

Ich habe dies auf meinem Code versucht, aber das Problem ist, ich muss die Noten von mehreren Studenten berechnen, wenn ich mein Programm läuft es wegen scanner.close(); stoppt, wenn ich es herausnehmen die Noten des ersten Studenten summiert zu den Noten des nächsten Schülers ... Was soll ich tun? – JohnHERE

Verwandte Themen