Aufgabe mit Arrays, Schleifen & Switch/Case

Status
Nicht offen für weitere Antworten.

Jayman

Bekanntes Mitglied
Hallo,
ich hoffe ihr könnt mir ein wenig helfen und Denkanstöße geben. Die Aufgabe lautet:


Nehmen Sie an Sie sind Lehrer und möchten ein Programm (Klassenname: GradesDistribution) schreiben, in dem Sie für jeden Ihrer Schüler die Note für ein Schulfach eingeben können. Hierzu wollen Sie nach dem Programmstart zunächst die Anzahl der Schüler eingeben können und anschließend für jeden Schüler die Schulnote (1-6). Die Noten sollen intern in einem Array abgelegt werden. Die Größe des Arrays ist vor dem Programmstart nicht bekannt und muss daher im Verlaufe des Programms nach der Eingabe der Schülerzahl definiert werden. Nach-dem die letzte Note eingegeben wurde, soll sowohl die Anzahl der eingegebenen Schüler als auch die Notenver-teilung ausgegeben werden. Unter die Notenverteilung soll dann abschließend nochmal der Inhalt des Arrays wie in der Abbildung dargestellt ausgegeben werden. Beispielausgabe des Programms:

Sie können annehmen, dass der Anwender ausschließlich Noten als Zahlen von 1-6 eingibt.

Gut, ich habe so begonnen:

import javax.swing.*;
/**
* @author x
*
*/
public class GradesDistribution {

/**
* @param args
*/
public static void main(String[] args) {
String s = JOptionPane.showInputDialog( "Bitte geben Sie die Anzahl der Schueler ein: " );
int i = Integer.parseInt( s );
System.out.println("Anzahl erfasster Schueler: " + i);

int[] Noten = new int ;

String t = JOptionPane.showInputDialog( "Bitte geben Sie fuer jeden Schueler eine Note zwischen 1-6 ein: " );
int j = Integer.parseInt( t );



}

}


So, also Anfrage habe ich gemacht und auch ein Array mit Schüleranzahl angelegt.
Mit dem 'String t ....' wollte ich ebenso vorgehen,nur das Problem ist, dass zwischen den Noten ein Space sein muss.
Kann mir jemand weiterhelfen, wie ich vorgehen müsste & vielleicht auch die restlichen Ideen?
Bitte bedenkt, dass ich nur Arrays, Schleifen und Switch/Case hatte...
Danke im Vorraus.
 
so in etwa:

Code:
.....
String[] t = new String[i];
for(int a=0;a<i;a++)
{
	t[a] = JOptionPane.showInputDialog( "Bitte geben Sie fuer jeden Schueler eine Note zwischen 1-6 ein: " );
	System.out.println((a+1) + ".te Note: " + t[a]);
	int j = Integer.parseInt( t[a] );
}
 
also wenn dir eine showMessage reicht, dann sollte dir dies weiterhelfen:

Code:
import javax.swing.*;

public class Test {

	public static void main(String[] args) {
		String s = JOptionPane.showInputDialog( "Bitte geben Sie die Anzahl der Schueler ein: " );
		int i = Integer.parseInt( s );
		System.out.println("Anzahl erfasster Schueler: " + i);

		//Einlesen der Noten und speichern in einem Array
		String t = JOptionPane.showInputDialog( "Bitte geben Sie fuer jeden Schueler eine Note zwischen 1-6 ein [jeweils durch Leerzeichen trennen: " );
		t.trim();
		String[] notenString=t.split(" ");
		int noten[] = new int[notenString.length];
		for(int a=0; a<notenString.length; a++){
			noten[a]=Integer.parseInt( notenString[a] );
		}
		
		// Schauen wie oft es welche Note gibt
		for(int d=1; d<7; d++){
			int anzahl=0;
			for(int e=0; e<noten.length; e++){
				if(noten[e]==d){anzahl++;}
			}
			System.out.println(d+": "+ anzahl+"x");
		}
		
		//Ausgabe (letzte)
		System.out.println("");
		for(int k=0; k<noten.length; k++){
			System.out.print(noten[k]+" ");
		}
		
	}
}
 
Danke für die Hilfe!
Aber alles was du verwendet hast, das hatte ich bislangnoch nicht.
Zb beim Einlesen und speichern in einem Array:
" t.trim();
String[] notenString=t.split(" ");
"
->was bedeutet das t.trim?
-> weshalb ist im t.split(" ") nichts in der Klammer?
 
kurze Erläuterung:

1) t.trim(): schneidet die "Leerfelder" des Strings t ab.(vorne und hinten)
2) String[] notenString=t.split(" "); : Beispiel(t=5 8 9 7), dann wird immer da wo ein " " ist, also ein Leerzeichen, der
String getrennt und die einzelnen Elemente in ein String Array gespeichert, so hat man dann die Werte der Noten einzeln.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben