musti Geschrieben 2. April 2010 Teilen Geschrieben 2. April 2010 (bearbeitet) 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); } } Bearbeitet 2. April 2010 von musti Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MartinSt Geschrieben 2. April 2010 Teilen Geschrieben 2. April 2010 (bearbeitet) Hallo, das was du gemacht hast, ist eine Klasse, die schlicht nur 3+4 rechnet. Lt. Aufgabe sollst du aber einen allg. Rechner entwerfen, dh. eine Klasse die Methoden für die 4 Grundrechenarten anbietet. Aus der Main-Methode sollst du dann diese Rechenmethode entsprechend anhand einer Instanz verwenden. Bitte benutze hier auch die Code-Tags, formatieren deinen Code. Gruß Martin Bearbeitet 2. April 2010 von MartinSt Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
musti Geschrieben 2. April 2010 Autor Teilen Geschrieben 2. April 2010 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MartinSt Geschrieben 2. April 2010 Teilen Geschrieben 2. April 2010 ja kann man aber das ist erstmal völlig nebensächlich codiere erstmal die Klasse mit den o.g. Methoden Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lilith2k3 Geschrieben 2. April 2010 Teilen Geschrieben 2. April 2010 (bearbeitet) Bin jetzt im 2. Semester seid 1 Woche und habe bis jetzt nur mit BlueJ gearbeitet. Haben jetzt mit Eclipse angefangen. Herzlichen Glückwunsch :] Das ding zeigt mir dauernt fehler an. Daß Eclipse Dir dauernd Fehler Anzeigt, hat bestimmt seinen Grund; meistens ist da auch etwas im Argen. Im Grunde solltest Du a) eine Fehlermeldung erhalten (die Du hier natürlich auch gerne posten darfst) auch entsprechende Vermerke in Deinem Dokument sehen, wo welcher Fehler registriert worden ist. Implementieren Sie eine Klasse Rechner, welche alle vier Grundrechenarten beherrscht. Testen Sie Ihre Implementierung mittels der Methode main(). Ja, denn mal los :] Hab mich mal dran gemacht und hab schon so viel ausprobiert. hab aber wirklich keine ahnung, wie ich das anstellen soll. Das hier könnte hilfreich sein: Galileo Computing :: Java ist auch eine Insel (8. Auflage) Und wenn man nicht ganz faul ist, findet man das 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. Keine Ahnung. Aber Eclipse ist toll :] Ist der ansatz so in ordnung. oder total falsch? Äh, Letzteres? Aber Du hast ja noch ein paar Semester Bearbeitet 2. April 2010 von lilith2k3 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
musti Geschrieben 3. April 2010 Autor Teilen Geschrieben 3. April 2010 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
musti Geschrieben 3. April 2010 Autor Teilen Geschrieben 3. April 2010 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 ); } } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 3. April 2010 Teilen Geschrieben 3. April 2010 ich hab da jetzt was, aber irgendwie komm ich da net weiter. Verwende bitte die Code-Tags !! wie mach ich das, das ich die zahlen bzw. die operation eingeben kann??? Java ist auch eine Insel – 12.3 Stream-Klassen und Reader/Writer 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. Schau Dir das Kapitel über die Methoden und deren Definitionen an. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
musti Geschrieben 3. April 2010 Autor Teilen Geschrieben 3. April 2010 oh mein gottt.... wie soll ich denn das machen???? gibt es da keine andere, einfachere lösung? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
musti Geschrieben 3. April 2010 Autor Teilen Geschrieben 3. April 2010 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); Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lupo49 Geschrieben 4. April 2010 Teilen Geschrieben 4. April 2010 Einfach ausgedrückt, erzeugst du in der ersten Zeile ein Objekt, welches dafür zuständig ist, um Eingaben von der Konsole (System.in) entgegen zu nehmen. Das System.out.println() sollte selbsterklärend sein. In den beiden nachfolgenden Zeilen zeile = x.readLine(); i = Double.parseDouble(zeile); wird die Methode readLine() von dem Objekt 'x' aufgerufen. Beim Ausführen des Programms wird bei Abarbeitung der Zeile eine Eingabe von dir erwartet. Der Wert deiner Eingabe (z.B. 15) wird dann in die Variable "zeile" in Forms eines "Strings" geschrieben. In der nachfolgenden Zeile wird der Wert von "zeile", also die 15, in ein Double-Wert (vgl. Java-Datentypen) umgewandelt und in 'i' geschrieben. Bei den nachfolgenden Zeilen wiederholt sich das dann entsprechend. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
n1ne Geschrieben 6. April 2010 Teilen Geschrieben 6. April 2010 package deinpaket; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Rechner { int result = 0; public int plus(int zahl1, int zahl2) { result = zahl1 + zahl2; return result; } public int minus(int zahl1, int zahl2) { result = zahl1 - zahl2; return result; } public int multiplizieren(int zahl1, int zahl2) { result = zahl1 * zahl2; return result; } public int teilen(int zahl1, int zahl2) { result = zahl1 / zahl2; return result; } public static void main(String[] args) throws NumberFormatException, IOException { int zahl1 = 0; int zahl2 = 0; String operation = ""; // Instanz eines neuen Rechners mit Namen Taschenrechner erstellen Rechner Taschenrechner = 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 = Integer.parseInt(in.readLine()); System.out.println("Geben sie bitte die zweite Zahl ein"); // Einlesen zweite Zahl zahl2 = Integer.parseInt(in.readLine()); System.out.println(zahl1 + " " + operation + " " + zahl2); System.out.println("Ergebnis:"); // entsprechende Methode ausführen if (operation.equals("+")) { System.out.println(Taschenrechner.plus(zahl1, zahl2)); } else if (operation.equals("-")) { System.out.println(Taschenrechner.minus(zahl1, zahl2)); } if (operation.equals("*")) { System.out.println(Taschenrechner.multiplizieren(zahl1, zahl2)); } if (operation.equals("/")) { System.out.println(Taschenrechner.teilen(zahl1, zahl2)); } } } } hau es in eclipse und formatier mit strg+shift+f dann ist es etwas einfacher zu lesen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
musti Geschrieben 6. April 2010 Autor Teilen Geschrieben 6. April 2010 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 6. April 2010 Teilen Geschrieben 6. April 2010 ist es eurer meinung nach so akzeptabel? Nein, weil Du Fehler nicht behandelst. Du bist in der obersten Logik-Schicht so dass _Du_ auch die Fehler behandeln solltest Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
n1ne Geschrieben 6. April 2010 Teilen Geschrieben 6. April 2010 wenn ich die aufgabe richtig verstanden habe, geht es auch darum einige prinzipion der oop zu verstehen, und wenn du alles in der main methode hast ist das schlicht prozedural Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
musti Geschrieben 6. April 2010 Autor Teilen Geschrieben 6. April 2010 oh okay... danke. dann nochmal ran an die arbeit. hatte mich schon gefreut, weil es geklappt hatte Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
musti Geschrieben 6. April 2010 Autor Teilen Geschrieben 6. April 2010 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)); } } } } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
unbenannt Geschrieben 6. April 2010 Teilen Geschrieben 6. April 2010 funktioniert ja auch einwandfrei. Wirklich? Division durch 0? Abfangen von Exceptions? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Ulfmann Geschrieben 6. April 2010 Teilen Geschrieben 6. April 2010 Und damit bist Du zufieden? Was passiert, wenn man kein Operationszeichen eingibt und Enter drückt? Oder einen Buchstaben anstelle eines der vorgegebenen Zeichen? Ich krieg kein Ergebnis und weiß nicht warum. (Natürlich weiß ich warum, aber denk mal einen Schritt weiter, wenn Du Applikationen baust, bei denen für den Benutzer nicht offensichtlich ist, was sie genau tun). Als nächstes solltest Du auch die auftretenden Exceptions abfangen und behandeln. Man könnte den Benutzer vernünftig darauf hinweisen, dass z. B. seine Eingabe falsch war, oder dass eine Division durch 0 nicht möglich ist. Außerdem läuft das Programm dann noch weiter und stürzt nicht unerwartet ab. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
musti Geschrieben 6. April 2010 Autor Teilen Geschrieben 6. April 2010 ihr habt recht leute... exceptions abfangen. hmmm. mit try und catch oder wie mach ich das? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lupo49 Geschrieben 6. April 2010 Teilen Geschrieben 6. April 2010 Bitte mal entsprechende Einfürungen/Howtos lesen, bevor das wieder zu einer monotonen Ratestunde deinerseits wird. Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 8 Exceptions Exceptions in Java - JavaWorld Highscore - Programmieren in Java: Einführung - Exception Handling Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
musti Geschrieben 6. April 2010 Autor Teilen Geschrieben 6. April 2010 (bearbeitet) danke ich werds mir mal ansehen Bearbeitet 6. April 2010 von musti Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
musti Geschrieben 6. April 2010 Autor Teilen Geschrieben 6. April 2010 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Bjarki Geschrieben 7. April 2010 Teilen Geschrieben 7. April 2010 (bearbeitet) Kleiner Tipp: Er erkennt Buchstaben und die Exception wird korrekt abgefangen. Da du die Zahlen oben mit 0 initialisiert hast wird mit diesen Werten gerechnet. Viel Erfolg Bearbeitet 7. April 2010 von Bjarki Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
musti Geschrieben 7. April 2010 Autor Teilen Geschrieben 7. April 2010 also ist die lösung so eigentlich richtig? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.