Zum Inhalt springen

musti

Mitglieder
  • Gesamte Inhalte

    27
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von musti

  1. Hallo Informatiker, ich habe ein kleines Problem. Ich habe ein Programm geschrieben, wobei man ein Guthaben- und Darlehenkonto anlegen kann. Und diese Berechnet werden. Man kann auch die Anfangs-Konto-Stände in eine Datei schreiben und auslesen. Mir fehlt aber, das man den Namen des Kontoinhabers eingeben kann. Wie könnte ich dies am besten lösen? Der Name soll in einem eigenen Array vorbesetzt werden und alle Ausgaben aus dem Hauptprogramm, die ein Konto betreffe, sollen auch den Namen des Inhabers haben. #include <stdio.h> #include <stdlib.h> #include <ctype.h> #define KONTANZ 10 #define BANKNR 10000 #define DARLEHENSZINS 0.05 #define GUTHABENZINS 0.03 struct Konto { char *namptr; /*Name des Besitzers */ unsigned int kontoNr; /*Kontonummer*/ char artDktos; /*Art des kontos*/ float kontoStd; /*Kontostand*/ float zinsSz; /*Zinssatz*/ unsigned int laufZt; /*Laufzeit*/ float annuitaet; /*Annuität*/ }; // Globale Variablen // struct Konto Konten[10]; int f=0; char eingabe; FILE *speicher; // Funktions Prototypen // int KontoAnlegen(void); int getKontoByNr(int KontoNr); int BerechneGutKonto(int); int BerechneDaKonto(int); void SchreibeDatei(int Kontonummer); void oeffneDatei(char dateiname[]); //----------------------------------------------------------------------------// int main(int argc, char *argv[]) { int i; int zahl; int anfang = 1; int berechnung; float berechne; int nBerechnung; printf("\n\t Struktur Kontodaten,"); printf("\n\tvon xyz\n"); printf("\tuebersetzt am %s", __DATE__); printf("\tum %s Uhr", __TIME__); printf("\n\n"); /* Führt den Vorgang solange aus bis Exit gedrückt wurde */ while(anfang !=0) { printf("\t(1) Konto anlegen (2) Konto berechnen (3) Exit \n\t " "(4) Konto in Datei schreiben (5) Konto aus Datei auslesen"); scanf("%i",&zahl); if(zahl == 1) { int Ergebnis; do { Ergebnis = KontoAnlegen(); switch(Ergebnis) { case 0: printf("\tGuthabenkonto wurde erfolgreich angelegt.\n\n"); break; case 1: printf("\tDarlehenskonto wurde erfolgreich angelegt.\n\n"); break; case 2: printf("\tFehler beim erstellen des Kontos. \n \t" "Bitte ueberpruefen sie ihre Eingabe\n\n"); break; } } while(Ergebnis == 2); } else if (zahl == 2) { printf("\tBitte kontoNr eingeben: "); scanf("%i",&berechnung); nBerechnung = BerechneGutKonto(berechnung); nBerechnung = BerechneDaKonto(berechnung); switch(nBerechnung) { case 0: printf("\n\t Guthabenkonto erfolgreich berechnet.\n\n"); break; case 1: printf("\n\t Darlehen erfolgreich berechnet.\n\n"); break; case 2: printf("\n\t Unendliche Wiederholzahlen\n\n"); break; default: printf("\n\t Unbekannter Fehler\n\n"); break; } } else if(zahl == 3) { anfang = 0; } else if(zahl ==4) { printf("\tBitte kontoNr eingeben: "); scanf("%i", &berechnung); SchreibeDatei(berechnung); } else if(zahl == 5) { char dateiname[100]; printf("Bitte geben Sie einen Dateinamen an "); scanf("%s",&dateiname); oeffneDatei(dateiname); } else { printf("\tFalsche Eingabe, bitte wiederholen sie die Eingabe richtig.\n"); }//Ende Auswahl Prüfung } //while system("PAUSE"); return 0; } //----------------------------------------------------------------------------// int BerechneGutKonto(int KontoNummer) { // Ermittelt das Konto zur KontoNummer struct Konto AktKonto = Konten[getKontoByNr(KontoNummer)]; printf("\n"); /* Berechnung für Guthabenkonto */ if(AktKonto.artDktos == 'g') { int i; /* Index */ for(i = 1; i <= AktKonto.laufZt; i++) { AktKonto.kontoStd = AktKonto.kontoStd*(1+AktKonto.zinsSz); printf("\t Zwischen-Ergebnis zinsSchl = %f\n", AktKonto.kontoStd); } printf("\n\t Endkontostandt %f",AktKonto.kontoStd); return 0; } }// int BerechneGutKonto(int KontoNummer) //----------------------------------------------------------------------------// int BerechneDaKonto(int KontoNummer) { // Ermittelt das Konto zur KontoNummer struct Konto AktKonto = Konten[getKontoByNr(KontoNummer)]; printf("\n"); // Berechnung für Darlehenskonto // if(AktKonto.artDktos == 'd') { // Fehlerbehandlung von Endlosschleifen // if(AktKonto.kontoStd*(AktKonto.zinsSz + 0.01) >= AktKonto.annuitaet) { return 2; } if(AktKonto.kontoStd*(AktKonto.zinsSz + 0.01) <= AktKonto.annuitaet) { float i; /* zaehlt Jahre */ float zinsBez = 0; /* bis dahin bezahlten Zinsen */ for(i=1;AktKonto.kontoStd >= AktKonto.annuitaet;i++) { zinsBez = zinsBez + AktKonto.kontoStd * AktKonto.zinsSz; AktKonto.kontoStd = AktKonto.kontoStd * (1 + AktKonto.zinsSz) - AktKonto.annuitaet; printf("\n\t ZwischenErg: Restdarlehen = %.2f, bez.Zinsen gesamt = %.2f", AktKonto.kontoStd,zinsBez); } printf("\n\t Tilgung im %.1f ten Jahr\n",i); return 1; } else { return 3; } } } // int BerechneDaKonto(int KontoNummer) // --------------------------------------------------------------------------- // // Ermittelt Konto mithilfe der KontoNummer // int getKontoByNr(int KontoNr) { int i; //Durchläuft alle Konten bis die Kontonummer gefunden wurde // for(i=0; i < sizeof(Konten); i++) { if(KontoNr == Konten[i].kontoNr) { return i; // Gibt dann Konten Index aus // } } } // Ende int getKontoByNr(int KontoNr) // -------------------------------------------------------------------------- // // Funktion zum Anlegen der Konten.Gibt je nach Status eine Prüfziffer wieder // int KontoAnlegen(void) { printf("\n\tKontoart g fuer Guthaben, d fuer Darlehen = "); scanf("%s",&eingabe); int NameIndex; char Name[25]; switch(eingabe) { // Bei Wahl eines Guthabenkontos // case 'g': Konten[f].artDktos ='g'; printf("\n\t\tKontonummer = "); scanf("%i",&Konten[f].kontoNr); printf("\n\t\tKontostand = "); scanf("%f",&Konten[f].kontoStd); Konten[f].zinsSz= GUTHABENZINS; printf("\n\t\tLaufzeit= "); scanf("%i",&Konten[f].laufZt); Konten[f].annuitaet=0; f++; printf("\n\n"); return 0; break; // Bei Wahl eines Darlehenkontos // case 'd': Konten[f].artDktos='d'; printf("\n\t\tKontonummer = "); scanf("%i",&Konten[f].kontoNr); printf("\n\t\tKontostand = "); scanf("%f",&Konten[f].kontoStd); Konten[f].zinsSz=DARLEHENSZINS; Konten[f].laufZt=0; printf("\n\t\tAnnuitaet = "); scanf("%f",&Konten[f].annuitaet); f++; printf("\n\n"); return 1; break; // Bei sonstigen Eingaben // default: return 2; break; } } // Ende int KontoAnlegen(void) //----------------------------------------------------------------------------// //Funktion zum schreiben von Kontaktdaten in eine Datei // void SchreibeDatei(int Kontonummer) { struct Konto AktKonto = Konten[getKontoByNr(Kontonummer)]; speicher = fopen("Kontodaten.txt","a"); system("cls"); if(AktKonto.artDktos == 'g') { fprintf(speicher, "Kontonummer:\t%i\n", AktKonto.kontoNr); fprintf(speicher, "Kontostand:\t%.2f\n", AktKonto.kontoStd); fprintf(speicher, "KontoArt:\t%c\n", AktKonto.artDktos); fprintf(speicher, "Zinsen:\t%.2f\n", AktKonto.zinsSz); fprintf(speicher, "Laufzeit:\t%i\n", AktKonto.laufZt); fclose(speicher); } else if(AktKonto.artDktos == 'd') { fprintf(speicher, "Kontonummer:\t%i\n", AktKonto.kontoNr); fprintf(speicher, "Kontostand:\t%.2f\n", AktKonto.kontoStd); fprintf(speicher, "KontoArt:%c\n", AktKonto.artDktos); fprintf(speicher, "Zinsen:\t%.2f\n", AktKonto.zinsSz); fprintf(speicher, "Annuität:\t%i\n", AktKonto.annuitaet); fclose(speicher); } } //---------------------------------------------------------------------------// //Öffnet eine Datei und gibt sie am Bildschrim wieder// void oeffneDatei(char dateiname[]) { FILE *stream; if((stream = fopen(dateiname,"r")) == NULL) { printf("Fehler beim oeffnen"); exit(1); } int ch; ch = fgetc(stream); while(!feof(stream)) { putchar(ch); ch = fgetc(stream); } fclose(stream); } Ich wäre auf eure Hilfe sehr Dankbar. Mir geht es jetzt nur noch darum, das man den Namen des Kontoinhabers eingeben kann. LG Musti
  2. so hab das mit dem Serialisiern hinbekommen public void serialSpeichern(Spielzeugkiste dieSpielzeugkiste, String dateiname) { OutputStream fos = null; try { fos = new FileOutputStream(dateiname + ".txt"); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(dieSpielzeugkiste); } catch (IOException e) { System.err.println(e); } finally { try { fos.close(); } catch (Exception e) {} } } public Spielzeugkiste deserial(String dateiname) { InputStream fis = null; try { fis = new FileInputStream( dateiname + ".txt"); ObjectInputStream ois = new ObjectInputStream(fis); return (Spielzeugkiste) ois.readObject(); } catch (IOException e) { System.err.println(e); } catch (ClassNotFoundException e) { System.err.println(e); } finally { try { fis.close(); } catch (Exception e) {} } return null; } } Doch die aufgabe mit dem scnner macht mir riesige sorgen danke für die hilfe
  3. Hab hier mal die Aufgabe angehängt, damit ihr wisst um was es geht. ist denk ich mal hilfreicher. Wurde mit BlueJ implementiert danke für die hilfe Bauklötze_emel.rar
  4. Hey Leute, wir haben in Programmieren 2 eine Hausarbeit bis morgen zu machen. Ich quäl mich schon seid wochen mit der aufgabe. hab die ersten aufgaben alle hinbekomme. doch zum ende hin klappt gar nix mehr 1.h) Der Anwender des Projektes soll die Möglichkeit erhalten, einen vorher in einer Textdatei gespeicherten Zustand einzulesen. Stellen Sie sicher, dass dabei die gleiche Information nicht mehrfach im Programm gespeichert wird. Wie mache ich das??? Ich kapier das nicht. und Serialisierung: i) Entwerfen und erstellen Sie eine Methode, welche die gesamte Datenbank bzw. den Inhalt der Spielzeugkiste in binärer Form in eine Datei zu serialisiert. j) Entwerfen und erstellen Sie eine Methode, mit deren Hilfe die serialisierten Inhalte im Programm wieder zur Verfügung gestellt werden können. k) Nutzen die Möglichkeiten aus i) und j) um den Programmzustand beim Verlassen des Programms zu sichern und die Datenstrukturen der Anwendung bei der Erstellung wieder mit diesem Zustand zu initialisieren. Davon habe ich Gar keine ahnung. wäre echt lieb, wenn ihr mir etwas weiterhilft. hier mein Quelltext import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.io.*; import java.util.Scanner; import java.util.*; /** * Beschreiben Sie hier die Klasse DateiManager. * * @author (Ihr Name) * @version (eine Versionsnummer oder ein Datum) */ public class DateiManager implements Serializable { private String[] splitArray; public void schreiben(Spielzeugkiste dieSpielzeugkiste, String dateiname) { ArrayList<Baukloetze> baukloetze; baukloetze = dieSpielzeugkiste.gibBaukloetze(); try { File datei = new File(dateiname + ".txt"); if(datei.exists()) { System.out.println("Datei gibt es schon."); } else { FileWriter writer = new FileWriter(datei); for(Baukloetze bauklotz : baukloetze) { writer.write(bauklotz.toString()); writer.write('\n'); writer.write('\n'); } writer.close(); } } catch (IOException e) { // beim Zugriff auf die Datei ist etwas schief gegangen } } public void lesen(String dateiname) { String name = dateiname; String zeile = null; try { BufferedReader in = new BufferedReader(new FileReader(name + ".txt")); while ((zeile = in.readLine()) != null) { System.out.println(zeile); } } catch (IOException e) { // beim Zugriff auf die Datei ist etwas schief gegangen } } public void Scan(String dateiname) throws FileNotFoundException { BufferedReader reader = new BufferedReader(new FileReader (dateiname + ".txt")); Scanner scanner = new Scanner(reader); while(scanner.hasNextLine()) { String line = scanner.nextLine(); splitArray = line.split(" "); for(int a = 2; a<= splitArray.length-1; a= a+3) { System.out.println(splitArray[a]); } } } } ist ein anfängerprogramm was mit bluej geschrieben worden ist. also wenn fehler entdeckt werden, könnt ihr mir das sagen. wäre echt lieb, wenn ihr mir weiterhelfen könntet danke
  5. danke leute, das hat sich geklärt.
  6. das mim programmieren ist wirklich nicht so einfach und für einen anfäger wie ich erst recht
  7. wie ist es hiermit. klappt auch try { System.out.println("Geben sie bitte die erste Zahl ein"); zahl1 = Double.parseDouble(in.readLine()); } catch (NumberFormatException g) { System.err.println("FEHLER:Bitte geben Sie eine Zahl ein:"); zahl1 = Double.parseDouble(in.readLine()); } try { System.out.println("Geben sie bitte die zweite Zahl ein"); zahl2 = Double.parseDouble(in.readLine()); } catch (NumberFormatException f) { System.err.println("FEHLER:Bitte geben Sie eine Zahl ein:"); zahl2 = Double.parseDouble(in.readLine()); }
  8. also ist die lösung so eigentlich richtig?
  9. so hoffe das ist schon besser... package rechner; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Rechner { double ergebnis = 0; public double plus(double zahl1, double zahl2) { ergebnis = zahl1 + zahl2; return ergebnis; } public double minus(double zahl1, double zahl2) { ergebnis = zahl1 - zahl2; return ergebnis; } public double multiplizieren(double zahl1, double zahl2) { ergebnis = zahl1 * zahl2; return ergebnis; } public double teilen(double zahl1, double zahl2) { ergebnis = zahl1 / zahl2; return ergebnis; } public static void main(String[] args) throws NumberFormatException,IOException { double zahl1 = 0; double zahl2 = 0; String operation = ""; Rechner Calculate = new Rechner(); BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); while (operation != "0") { try { System.out.println("Zum BEENDEN = # eingeben!"); System.out.println("Geben sie bitte die Operation ein (+,-,*,/,#)"); operation = in.readLine(); } catch (NumberFormatException e) { System.err.println("FEHLER: Bitte geben Sie +,-,*, / ein!"); } if (operation.equals("#")) { System.out.println("Beendet"); break; } try { System.out.println("Geben sie bitte die erste Zahl ein"); zahl1 = Double.parseDouble(in.readLine()); } catch (NumberFormatException e) { System.err.println("FEHLER:Bitte geben Sie eine Zahl ein:"); } try { System.out.println("Geben sie bitte die zweite Zahl ein"); zahl2 = Double.parseDouble(in.readLine()); } catch (NumberFormatException e) { System.err.println("FEHLER:Bitte geben Sie eine Zahl ein:"); } System.out.println("Rechnung:"); System.out.println(zahl1 + " " + operation + " " + zahl2); System.out.println("Ergebnis:"); // entsprechende Methode ausführen if (operation.equals("+")) { System.out.println(Calculate.plus(zahl1, zahl2)); } else if (operation.equals("-")) { System.out.println(Calculate.minus(zahl1, zahl2)); } if (operation.equals("*")) { System.out.println(Calculate.multiplizieren(zahl1, zahl2)); } if (operation.equals("/")) { System.out.println(Calculate.teilen(zahl1, zahl2)); } } } } toll wie ich grad merke... wenn ich buchstaben eintippe statt zahlen, werden die buchstaben als 0 genommen und gerechnet. ist das normal?
  10. danke ich werds mir mal ansehen
  11. ihr habt recht leute... exceptions abfangen. hmmm. mit try und catch oder wie mach ich das?
  12. also das ist dann wohl richtig. funktioniert ja auch einwandfrei. danke euch allen bei der hilfe. package rechner; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Rechner{ double ergebnis = 0; public double plus(double zahl1, double zahl2) { ergebnis = zahl1 + zahl2; return ergebnis; } public double minus(double zahl1, double zahl2) { ergebnis = zahl1 - zahl2; return ergebnis; } public double multiplizieren(double zahl1, double zahl2) { ergebnis = zahl1 * zahl2; return ergebnis; } public double teilen(double zahl1, double zahl2) { ergebnis = zahl1 / zahl2; return ergebnis; } public static void main(String[] args) throws NumberFormatException, IOException { double zahl1 = 0; double zahl2 = 0; String operation = ""; // Instanz eines neuen Rechners mit Namen Taschenrechner erstellen Rechner Calculate = new Rechner(); // Instanz des BufferedReader erstellen (einlesen der console) BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); while (operation != "0") { System.out.println("Geben sie bitte die Operation ein (+,-,*,/,0)"); // Einlesen der Operation - 0 bedeudet Beenden operation = in.readLine(); // Wenn operation = 0 dann spring aus while if (operation.equals("0")) { System.out.println("Beendet"); break; } System.out.println("Geben sie bitte die erste Zahl ein"); // Einlesen erste Zahl zahl1 = Double.parseDouble(in.readLine()); System.out.println("Geben sie bitte die zweite Zahl ein"); // Einlesen zweite Zahl zahl2 = Double.parseDouble(in.readLine()); System.out.println("Rechnung:"); System.out.println(zahl1 + " " + operation + " " + zahl2); System.out.println("Ergebnis:"); // entsprechende Methode ausführen if (operation.equals("+")) { System.out.println(Calculate.plus(zahl1, zahl2)); } else if (operation.equals("-")) { System.out.println(Calculate.minus(zahl1, zahl2)); } if (operation.equals("*")) { System.out.println(Calculate.multiplizieren(zahl1, zahl2)); } if (operation.equals("/")) { System.out.println(Calculate.teilen(zahl1, zahl2)); } } } }
  13. oh okay... danke. dann nochmal ran an die arbeit. hatte mich schon gefreut, weil es geklappt hatte
  14. danke erstaml für den quelltext aber ich hab da mal selbst was gemacht, was auch funktioniert. package rechner; import java.io.*; public class Rechner { public static void main ( String[] args ) throws IOException { double zahl1; double zahl2; double ergebnis; String operation; String zeile; BufferedReader x = new BufferedReader (new InputStreamReader( System.in )); System.out.println("Geben Sie die erste Zahl ein:"); zeile = x.readLine(); zahl1 = Double.parseDouble(zeile.trim()); System.out.println("Geben Sie die Rechenoperation ein:"); operation = x.readLine(); System.out.println("Geben Sie die zweite Zahl ein:"); zeile = x.readLine(); zahl2 = Double.parseDouble(zeile.trim()); if (operation.equals("+")) { ergebnis = zahl1 + zahl2; } else if (operation.equals("-")) { ergebnis = zahl1 - zahl2; } else if (operation.equals("*")) { ergebnis = zahl1 * zahl2; } else if (operation.equals(":")) { ergebnis = zahl1 / zahl2; } else { System.err.println("Fehlerhafte Eingabe"); return; } System.out.println( "Ihr Ergebnis lautet: " + ergebnis ); } } ist es eurer meinung nach so akzeptabel?
  15. ist es vllh sowas, was mit dem bufferdreader gemeint ist. ich hab mir mal das kapitel durchgelesen. hab auch etwas verstanden was gemeint ist. aber kann mir das vllh jemand präziser erklären? wie was genau funktionier? BufferedReader x = new BufferedReader (new InputStreamReader( System.in )); System.out.println("Geben Sie die erste Zahl ein:"); zeile = x.readLine(); i = Double.parseDouble(zeile); System.out.println("Geben Sie die Rechenoperation ein:"); j = x.readLine(); System.out.println("Geben Sie die zweite Zahl ein:"); zeile = x.readLine(); k = Double.parseDouble(zeile);
  16. oh mein gottt.... wie soll ich denn das machen???? gibt es da keine andere, einfachere lösung?
  17. ich hab da jetzt was, aber irgendwie komm ich da net weiter. wie mach ich das, das ich die zahlen bzw. die operation eingeben kann??? bei bluej ist das so. das ich methoden habe wo ich parameter vergeben kann und bei der Objekt erzeugung die zahlen die ich zusammen rechnen will, eingeben kann. das war halt so toll an bluej, das ich alles was passiert sehen konnte. irgendsiw check ich das mit eclipse net. ist halt blöd wenn man erst mit so nem anfänger programm anfängt und dann ohne irgendeine richtige einführung in eclipse programmieren soll. package rechner; import java.io.*; public class Rechner { public static void main ( String[] args ) { double zahl1; double zahl2; double ergebnis; String operation; System.out.println("Geben Sie die erste Zahl ein:"); ???? System.out.println("Geben Sie die Rechenoperation ein:"); ????? System.out.println("Geben Sie die zweite Zahl ein:"); ??????? if (operation.equals("+")) { ergebnis = zahl1 + zahl2; } else if (operation.equals("-")) { ergebnis = zahl1 - zahl2; } else if (operation.equals("*")) { ergebnis = zahl1 * zahl2; } else if (operation.equals(":")) { ergebnis = zahl1 / zahl2; } else { System.err.println("Fehlerhafte Eingabe"); return; } System.out.println( "Ihr Ergebnis lautet: " + ergebnis ); } }
  18. danke für die kleinen tipps, bin grad dabei das alles mal so zu bearbeiten. galileo computing kenn ich schon. aber wenn man sowas einfaches wie bluej gemacht hat, fällt einem das verstehen bissl schwer. sobald ich fertig bin, schreib ich wieder dankeee
  19. also du meinst, ich soll sowas wie nen taschenrechner laut aufgabe programmieren. hmmmm tolle bescherung :upps eine frage: kann man bei eclipse genauso parameter anlegen, wo man dann von ausen zahlen vergeben kann?
  20. Hi leute, hier ich hab da mal ein Problem. Bin jetzt im 2. Semester seid 1 Woche und habe bis jetzt nur mit BlueJ gearbeitet. Haben jetzt mit Eclipse angefangen. Nur ich kappier das irgendwie nicht. Das ding zeigt mir dauernt fehler an. Die aufgabe lautet: Implementieren Sie eine Klasse Rechner, welche alle vier Grundrechenarten beherrscht. Testen Sie Ihre Implementierung mittels der Methode main(). Hab mich mal dran gemacht und hab schon so viel ausprobiert. hab aber wirklich keine ahnung, wie ich das anstellen soll. Wie issn der vergleich mit BlueJ. Der Prof hat uns nämlich nur ne anleitung in die hand gedrückt von eclipse und gesagt : macht mal. Ist der ansatz so in ordnung. oder total falsch? kann mir da vllh jmnd helfen. wenigstens kleine tipps geben, in eclipse gut reinzukommen und wie ich das mit dem rechner am besten hin bekommen könnte? danke im vorraus. package testest; public class testest { public static void main(String[] args) { int i; i = 3 + 4; System.out.println(i); } }
  21. Dankeee das war glaub ich die Seite das wird mir weiterhelfen PS: hab probleme mit english
  22. Hey Leute, ich hatte vor kurzem die Java klassenbibliothek auf deutsch gefunden. nun finde ich die seite nicht mehr. such mich grad verrückt nach der seite. kann mir jemand vielleicht behilflich sein. wenn möglich sogar einen link geben. danke im voraus.
  23. nächsten 2 probleme Die Klasse soll ein zusätzliches Datenfeld anzahlZahlen erhalten, mit dessen Hilfe sie über die Anzahl der tatsächlich gespeicherten Zahlen Buch führt. Der Wert soll im Konstruktor gesetzt werden. Alle bisher erstellten Methoden sollen so verändert werden werden, dass auch diese nur die tatsächlich im Array vorhandenen Zahlen benutzen. Doch ich weiss nicht, wie und was ich alles machen soll. 2. Problem: ergänzen Sie eine Methode hinzufügen (int zahl), mit der eine Zahl zu dem ZahlenSpeicher hinzugefügt werden kann. Die Methode soll eine Fehlermeldung ausgeben, sofern das Array bereits voll ist und keine weiteren Zahlen mehr aufgenommen werden können.
  24. also nochmal kurz zu meinem problem. hab das jetzt mal umgeändert: /** * h) Entfernt die Zahl mit dem gegebenen Index und die Array rückt auf */ public int entfernen(int index) { for(int i = 0; i < zahlen.length; i++) { if( index == zahlen) { for (int x = i; x < zahlen.length - 1; x++) { zahlen[x] = zahlen[x+1]; } return zahlen; } } return 404; } Bei Unit Test, den mein Prof. eingefügt hat, besteht kein fehler in dieser methode. aber wenn ich es selbst teste, läuft das programm nicht so wie es in der ausgaben stellung steht. statt des index's soll ich die zahl die ich entfernen will angeben. und wenn ich die zahl entfernt habe, gibt mir das programm nicht die gelöschte zahl zurück, sondern die zahl, die hinter der gelöschten zahl steht. Aufrücken tut es normal. meine array: 1 4 9 16 25 36------> entferne 36 ( müsste ich eigentlich index 5 eingeben, doch das programm verlangt, das ich 36 eingebe) 49------> zurückgeben müsste das programm 36, aber es gibt 49 zurück 64 81 100
  25. /** * h) Entfernt die Zahl mit dem gegebenen Index und die Array rückt auf */ public int entfernen(int index) { for(int i = 0; i < zahlen.length-1; i++) { zahlen = zahlen[i+1]; zahlen[zahlen.length - 1] = 0; } return zahlen[index]; } aber ich bekomm folgenden fehler beim unit text angezeigt: expectet:<4> but was <9> was habe ich falsch gemacht?

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...