Mit dieser Aufgabe üben das Schreiben von Methoden, die Dinge mit Arrays tun.
1.
Design der StudentNoten
-Klasse.
Ein Objekt dieser Klasse repräsentiert die Noten
eines einzelnen Studenten.
Aus Gründen der Einfachheit
nehmen wir an, dass alle Noten gleich zählen
und, dass ein Student bis zu 25 davon haben kann.
Überlegen Sie sich drei Datenelemente, die für
ein StudentNoten
-Objekt benötigt werden.
Überlegen Sie sich jetzt einige Methoden, die nützlich sind, um sie auf eine Liste von Noten anzuwenden. Es ist fast immer eine gute Idee eine Möglichkeit zu haben sich die Daten eines Objekts ausgeben zu lassen, und es wird notwendig sein eine Note zu der Liste hinzuzufügen.
2. Dokumentieren Sie die Klasse. Füllen Sie jetzt die Dokumentation der Klasse aus:
3. Design überprüfen. Um das Design zu überprüfen, schreiben Sie ein kleines Programm, das die Klasse verwendet. Natürlich, das Programm kann nicht kompiliert werden bis die Klasse geschrieben ist, aber Sie bekommen ein Gefühl dafür, ob das Klassendesign vernünftig, in dem Sie das tun.
Sie könnten ein paar Zweifel haben, ob das ein vernünftiges Programm ist.
Vielleicht wäre es eine gute Idee die ausgeben()
Methode eine Mitteilung ausgeben zu lassen, jedes Mal wenn sie verwendet wird.
4. Füllen Sie die Instanzvariablen aus. Füllen Sie den Datentyp für jede Instanzvariable aus. Die Noten werden in einem Integerarray aufbewahrt, das Platz für 25 Zahlen hat. Konstruieren Sie das Array noch nicht. Es wird ebenfalls eine Instanzvariable geben, die zählt wie viele Slots des Arrays Daten enthalten.
Mögliche Unklarheit: Die Länge des Arrays ist die Anzahl seiner Slots. In diesem Programm werden nicht alle Slots mit Noten gefüllt werden, also brauchen wir einen Zahl für die Anzahl der verwendeten Slots. Slots werden in ihrer Reihenfolge verwendet und beginnen mit dem Index 0.
5. Vervollständigen Sie den Konstruktor. Der Konstruktor wird die Instanzvariablen des zu konstruierenden Objekts initialisieren.
6. Vervollständigen Sie die ausgeben()
Methode.
Sie möchten nicht jeden Slot des Arrays ausgeben
(das ist nicht wie in der ausgeben()
Methode dieses Kapitels), sondern nur die tatsächliche Anzahl der Noten.
7. Implementieren Sie die hinzufuegen()
Methode.
Diese Methode wird eine Note (Integer) zur Liste der Noten für den Studenten hinzufügen.
Stellen Sie sicher, dass Sie anzahlNoten
erhöhen.
Studieren Sie sorgfältig wie die Variable anzahlNoten
arbeitet.
Sie enthält sowohl die Anzahl der Arrayslots, die Daten enthalten, als auch den Index des nächsten verfügbaren Slots.
Dies ist ein gebräuchlicher Programmiertrick.
8. Implementieren Sie die durchschnitt()
Methode.
Versichern Sie sich, dass summe
mit 0 initialisiert wird.
Addieren Sie dann die Zahlen der Noten und dividieren Sie sie durch anzahlNoten
, um den Durchschnitt zu bekommen.
9. Implementieren Sie die minimum()
Methode.
Versichern Sie sich, dass Sie nur die tatsächliche Anzahl der Noten berücksichtigen.
10. Implementieren Sie die maximum()
Methode.
Das wird fast die gleiche wie die minimum()
Methode werden.
Das gesamte Programm mit einer Klasse zum Testen: Sie haben vielleicht den Wunsch das Programm nach NotePad zu kopieren, es zu speichern und damit zu experimentieren.
class StudentNoten { final int ARRAYLAENGE = 25; // Instanzvariablen String name; // der Name des Studenten int[] arrNoten; // das Array mit den Noten int anzahlNoten; // wie viele Slots Daten enthalten // Konstruktor StudentNoten( String studentName ) { name = studentName ; arrNoten = new int[ ARRAYLAENGE ] ; anzahlNoten = 0 ; } // Methoden public void ausgeben () { System.out.println ( "Name: " + name ); System.out.println( "Noten:"); for ( int j=0; j < anzahlNoten ; j++ ) System.out.println ( " note " + j + ": " + arrNoten[ j ] ); } public void hinzufuegen ( int note ) { if ( anzahlNoten < ARRAYLAENGE ) arrNoten[anzahlNoten] = note ; anzahlNoten ++ ; } public double durchschnitt ( ) { double summe = 0 ; for ( int j=0; j < anzahlNoten; j++ ) summe += arrNoten[ j ] ; return summe / anzahlNoten ; } public int minimum( ) { int min = arrNoten[ 0 ] ; for ( int j=0; j < anzahlNoten; j++ ) if ( arrNoten[j] < min ) min = arrNoten[j] ; return min ; } public int maximum( ) { int max = arrNoten[ 0 ] ; for ( int j=0; j < anzahlNoten; j++ ) if ( arrNoten[j] > max ) max = arrNoten[j] ; return max ; } } class StudentTester { public static void main ( String[] args ) { // ein Objekt Student erzeugen StudentNoten stud = new StudentNoten( "Laura Lyons" ) ; // ein paar Noten hinzufügen stud.hinzufuegen( 90 ) ; stud.hinzufuegen( 95 ) ; stud.hinzufuegen( 88 ) ; stud.hinzufuegen( 78 ) ; stud.hinzufuegen( 82 ) ; stud.hinzufuegen( 97 ) ; // das Objekt mit den neuen Daten ausgeben stud.ausgeben() ; // Durchschnitt, Minimum und Maximum berechnen und ausgeben System.out.println( "Durchschnittsnote: " + stud.durchschnitt() + " Minimum: " + stud.minimum() + " Maximum: " + stud.maximum() ); } }
Ende der Übung. Wenn Sie sie wiederholen möchten, klicken Sie in Ihrem Browser auf "Aktualisieren".
Zurück zum Inhaltsverzeichnis.