Auf Thema antworten

Ich soll ein Notizzettelprogramm erstellen, dass folgende Eigenschaften haben soll:

Aufgabenstellung

In dieser Aufgabe soll ein Teil eines Notizzettel-Programms gestaltet werden. Konkret sollen Sie eine Klasse entwerfen, die die Verwaltung der Liste der Notizenbeinhaltet.


Spezifikation

Ihre Klasse soll dabei die Liste der Notizen speichern, und verschiedene Informationen darüber ermitteln. Gehen Sie dazu wie folgt vor:


  • Erstellen Sie in der gegebenen Datei eine neue öffentliche Klasse NotizAnzeige.
  • Ergänzen Sie die Klasse um ein privates Feld, dass ein Array der Größe 10 mit Strings speichert. Dieses Feld soll die Liste der Notizen (jeder Stringrepräsentiert eine Notiz) repräsentieren.
  • Fügen Sie weiterhin ein Feld hinzu, dass speichert, wieviele Einträge des Arrays bereits befüllt sind.
  • Implementieren Sie die Methode speichereNotiz in der Klasse NotizAnzeige, die einen String als Argument erhält.
    • Sind bereits 10 oder mehr Notizen vorhanden, soll die neue Notiz nicht gespeichert werden.
    • Ansonsten soll sie in die erste, freie Position des Arrays eingefügt werden. Achten Sie darauf, sowohl das Array als auch das Feld, das die Anzahl Einträge speichert, zu verändern!
  • Implementieren Sie die Methode zeigeNotizen in der Klasse NotizAnzeige, die die Liste der Notizen anzeigt. Sie soll die Notizen in der gespeicherten Reihenfolge, mit je einem Zeilenumbruch nach jeder Notiz, auf der Console ausgeben. Nutzen Sie dafür System.out.println().

  • Implementieren Sie die Methode loescheAlle in der Klasse NotizAnzeige, die alle Notizen löscht. Setzen Sie dazu z.B. den Anzahlzähler auf 0 zurück.

  • Ergänzen Sie die Klasse NotizAnzeige um die folgenen Methoden, die die Anzeige der Notizen vereinfachen:
    • int getAnzahl()ermittelt die Anzahl der gespeicherten Notizen und gibt sie zurück.
    • int getLaenge(int i)ermittelt die Länge der Notiz an Stelle i (bei 0 beginnend), also die Anzahl Zeichen der Notiz. Nutzen Sie dafür die Methode lengthder Klasse String.
    • boolean istSortiert(int i)prüft, ob die Notiz an Stelle iweniger Zeichen als die Notiz an Stelle i+1 hat. Es kann sinnvoll sein, dafür die vorige Methode getLaenge zu nutzen.
    • boolean alleSortiert()prüft für alle Notizen außer der letzten, ob sie weniger Zeichen als die folgende Notiz hat. Sie gibt also genau dann truezurück, wenn istSortiert()für die Notizen an Stellen 0 bis getAnzahl() - 1true ist.

Hinweise zur Bearbeitung

  • Ihr Programm brauch keine main-Methode enthalten! Die VPL-Aufgabe ruft direkt Ihre neu definierte Klasse auf.
  • Um das Element eines Arrays mit dem Namen arr an Stelle n zu erhalten, schreiben Sie arr[n].
  • Verwenden Sie für Ausgaben die Anweisung System.out.println(...);.
  • Speichern () Sie Ihre Lösung, und reichen Sie sie zur Bewertung ein ( 0).

Leider kommt es bei mir zu einer Null-Pointer Exception, die ich nicht beheben kann. Vielen Dank


[code=Java]

  public class NotizAnzeige {

   

     private String[] ListeNotizen = new String[10];

   

     public int AnzahlEintraege ; //evt array

   

   

   

      public String speichereNotiz(String a){

       

       

          if ( AnzahlEintraege == 10){ //evt .elnth

              return null;

           

          } else{

              boolean saved = false;

              for (int i=0; i<ListeNotizen.length; i++) {

     

                  if (ListeNotizen[I] == "0"){ // evt auch null

                

                      ListeNotizen[I]=a;

                      saved = true;

                     break;

                  }

              }return a;

            

            

            

            }

       }

        

          public String[] zeigeNotizen(){

          for(int i=0; i<= ListeNotizen.length-1;++i){

              System.out.println(ListeNotizen[I]);

          }return null;

          }

        

          public String[] loescheAlle(){

             AnzahlEintraege=0;

            

            

          return null;

          }

         public int getLaenge(int i){

           if(ListeNotizen[I].length() !=0){

             return ListeNotizen[I].length();

           } else return 0;

         }

        

         public int getAnzahl(){

            return AnzahlEintraege;  //evt .length

         }

        

        

        

          public boolean istSortiert(int i){

            

                  if(ListeNotizen[I].length()<ListeNotizen[i+1].length()){

          

                

                     return true;

                  }else {

                     return false;

                  }

         } 

        

          public boolean alleSortiert() {

              for(int i=0; i< ListeNotizen.length-1; ++i){

                  // for (int j = i+1; j < ListeNotizen.length; j++){

                      if(ListeNotizen[I].length()<ListeNotizen[i+1].length()){

                      return true;

                      }     else {

                            return false;

                            }

                //  }

              }return true;

          }

    

    

    

 

    

    

    

    

  }

[/code][/I][/I][/I][/I][/I][/I][/I]



Oben