Diese Aufgabe wird Ihnen Übung im Schreiben von Methoden geben, die Dinge mit Arrays tun.
1.
Design der StudentGrades-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 StudentGrades-Objekt benötigt werden.
Überlegen Sie sich jetzt einige Methoden, die nützlich sind um sei 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, indem Sie das tun.
Sie mögen ein paar Zweifel haben, ob dies ein vernünftiges Programm ist.
Vielleicht wäre es eine gute Idee die print() 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, welches 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 wie viele Slots verwendet sind. Slots werden in Reihenfolge verwendet, beginnend mit Index 0.
5. Vervollständigen Sie den Konstruktor. Der Konstruktor wird die Instanzvariablen des zu konstruierenden Objekts initialisieren.
6. Vervollständigen Sie die print() Methode.
Sie möchten nur die erste gradeCount-Zahl der Noten ausgeben.
Sie möchten nicht jeden Slot des Arrays ausgeben
(dies ist nicht wie in der print() Methode des Kapitels).
7. Implementieren Sie die addGrade() Methode.
Diese Methode wird eine Note (Integer) zur Liste der Noten für den Studenten hinzufügen.
Stellen Sie sicher, dass Sie gradeCount erhöhen.
Studieren Sie sorgfältig wie die Variable gradeCount arbeitet.
Sei ist beides, die Zahl wie viele Arrayslots Daten haben und
der Index des nächsten verfügbaren Slots.
Dies ist ein gebräuchlicher Programmiertrick.
8. Implementieren Sie die average() Methode.
Versichern Sie sich, dass sum mit null initialisiert wird.
Addieren Sie dann die gradeCount Zahlen der Noten und dividieren
sie sie durch gradeCount um den Durchschnitt zu bekommen.
9. Implementieren Sie die minimum() Methode.
Versichern Sie sich, dass Sie nur die gradeCount Zahlen der Noten betrachten.
10. Implementieren Sie die maximum() Methode.
Dies wird fast die gleiche wie die minimum() Methode werden.
Das gesamte Programm mit einer Klasse zum Testen: Sie könnten vielleicht den Wunsch haben das Programm nach NotePad zu kopieren, es in eine Datei zu speichern und damit zu spielen.
class StudentGrades
{
final int ARRAYSIZE = 25;
// Instanzvariablen
String name; // der Name des Studenten
int[] grades; // das Array mit den Noten
int gradeCount; // wie viele Slots Daten enthalten
// Konstruktor
StudentGrades( String studentName )
{
name = studentName ;
grades = new int[ ARRAYSIZE ] ;
gradeCount = 0 ;
}
// Methoden
public void print ()
{
System.out.println ( "Name: " + name );
System.out.println( "Noten:");
for ( int j=0; j < gradeCount ; j++ )
System.out.println ( " grade " + j + ": " + grades[ j ] );
}
public void addGrade ( int grade )
{
if ( gradeCount < ARRAYSIZE )
grades[gradeCount] = grade ;
gradeCount ++ ;
}
public double average ( )
{
double sum = 0 ;
for ( int j=0; j < gradeCount; j++ )
sum += grades[ j ] ;
return sum / gradeCount ;
}
public int minimum( )
{
int min = grades[ 0 ] ;
for ( int j=0; j < gradeCount; j++ )
if ( grades[j] < min )
min = grades[j] ;
return min ;
}
public int maximum( )
{
int max = grades[ 0 ] ;
for ( int j=0; j < gradeCount; j++ )
if ( grades[j] > max )
max = grades[j] ;
return max ;
}
}
class StudentTester
{
public static void main ( String[] args )
{
// ein Objekt Student erzeugen
StudentGrades stud = new StudentGrades( "Laura Lyons" ) ;
// ein paar Noten hinzufügen
stud.addGrade( 90 ) ;
stud.addGrade( 95 ) ;
stud.addGrade( 88 ) ;
stud.addGrade( 78 ) ;
stud.addGrade( 82 ) ;
stud.addGrade( 97 ) ;
// das Objekt mit den neuen Daten ausgeben
stud.print() ;
// Durchschnitt, Minimum und Maximum berechnen und ausgeben
System.out.println( "Durchschnittsnote: " + stud.average() + " Minimum: " + stud.minimum() +
" Maximum: " + stud.maximum() );
}
}
Ende der Übung. Wenn Sie sie wiederholen möchten, klicken Sie in Ihrem Browser auf "Aktualisieren". Zurück zur Übersicht.