sp0x Geschrieben 22. Juni 2010 Geschrieben 22. Juni 2010 (bearbeitet) Hallo Fachinformatiker aller art, mein zukünftiger ausbilder (ich bin noch im Praktikum) hat mir die Aufgabe bis nächste woche gestellt, in eclipse ein flächeninhaltsberechner zu erstellen. Dieser rechner soll so sein das der User (Kunde) nur die breite und die höhe eingeben soll und das als ergebniss dann eine summe rauskommt. Da ich allerdings erst seit gestern an eclipse zum ersten mal am programmieren allgemein bin habe ich absolut kein plan ich hab hier mal rumgebastelt. Könnts euch ja mal anschauen und ich hoffe ihr könnt mir helfen. Gruß Spox package New; public class Aufgabe { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println ("New!"); System.out.println ("============"); int ergebniss_c, eingabe_b,eingabe_h; eingabe_b=???; eingabe_h=???; ergebniss_c =eingabe_b*eingabe_h; System.out.println(eingabe_c); Bearbeitet 22. Juni 2010 von flashpixx Code-Tags eingefügt Zitieren
Dragon8 Geschrieben 22. Juni 2010 Geschrieben 22. Juni 2010 Zum einen, wenn du Quellcode hier im Forum postest, sind die Codes-Tags hervorrangend dafür geeignet, da sie den Quellcode um einiges übersichtlicher darstellen als einfach reinkopierter Text. Des weiteren, wo besteht denn nun dein Problem? Dein Quelltext an sich wird schonmal nicht laufen, weil am Ende zwei geschweifte Klammern fehlen, aber ich denke mal die sind dir beim kopieren abhanden gekommen. Aber weißt du überhaupt wie man in Java programmiert? Bzw. hast du allgemein Programmiererfahrung? Zitieren
sp0x Geschrieben 22. Juni 2010 Autor Geschrieben 22. Juni 2010 Nein absolut nicht gestern das erste mal so ein prog. überhaupt gesehen usw. der ausbilder ist bis nächste woche in hamburg (komme aus nähe stuttgart) und hat gesagt probier mal rum wird schon klappen hab dann paar basics gelesen und halt mal angefangen ja das mit den klammern da hast recht und das es extra so nen quelltext gibt sry nicht gewusst. wollte halt einfach nur wissen wie ich das hinbekomme das der user einfach nur was eingeben muss wie also die zeile heissen soll im editor. Vlt. bekomm ichs dann selbst hin Zitieren
Ulfmann Geschrieben 22. Juni 2010 Geschrieben 22. Juni 2010 Vorweg: Bitte bemühe dich, deine Fragen konkret zu formulieren und achte etwas mehr auf Orthografie und Zeichensetzung. Posts ohne Punkt und Komma sind etwas nervig zu lesen. Zu deinem Anliegen: hab dann paar basics gelesen Ist doch schonmal ein Anfang. Damit wirst du auch fortfahren müssen. Ich glaube kaum, dass dir hier jemand die Programmiergrundlagen zusammenfasst, zumal du schon selbst Initiative ergreifen musst. wollte halt einfach nur wissen wie ich das hinbekomme das der user einfach nur was eingeben muss Da gibt es schöne Werkzeuge in Java. Sieh dir dieses Beispiel mal an und versuche nachzuvollziehen, wie der eingetippte Text nun in dein Programm gelangt und wie man dort damit weiter machen kann. Vielleicht kannst du es dann schon in deine Anwendung einbauen und dir zusätzlich noch dieses Openbook zu Gemüte führen, um zu verstehen, was du da eigentlich tust. Zitieren
sp0x Geschrieben 22. Juni 2010 Autor Geschrieben 22. Juni 2010 Ja, okay. Tut mir leid das ich so schreibe, habs eben aus freier Hand und zu schnell geschrieben. Ja danke für die Hilfe ich schaus mir mal an. Zitieren
sp0x Geschrieben 22. Juni 2010 Autor Geschrieben 22. Juni 2010 So also weiter komme ich jetzt wirklich nicht. Habe überall gelesen bin völlig überfordert ich checks einfach nicht mehr . Wie kann ich denn diesen Text jetzt in ein wirkliches prog. umwandeln.? Zitieren
sp0x Geschrieben 22. Juni 2010 Autor Geschrieben 22. Juni 2010 (bearbeitet) So also weiter komme ich jetzt wirklich nicht. Habe überall gelesen bin völlig überfordert ich checks einfach nicht mehr . Wie kann ich denn diesen Text jetzt in ein wirkliches prog. umwandeln.? package New; public class Aufgabe { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println ("***Umrechenprogramm made by .!***"); System.out.println ("Bitte geben Sie die Breite ein:"); System.out.println ("Breite (in cm) ="); int Breite=9; System.out.println ("Bitte geben Sie die Höhe ein:"); System.out.println ("Höhe (in cm) =");int Höhe = 10 ; System.out.println ("Rechteck: " + Breite * Höhe + "cm²"); //Beispiel Breite = 9 cm und Höhe 10 cm // Bekomm es einfach nicht hin das der User es später selbst eingeben soll bzw. ich weiss nicht wie der Compiler lautet // Hab noch eine Frage: // Wie kann ich dieses Prog. bzw. das was ich da geschrieben hab öffnen das es später in einem Java Fenster erscheint? System.out.println("Schöne Grüße :P"); } } Bearbeitet 22. Juni 2010 von flashpixx Code-Tags eingefügt Zitieren
flashpixx Geschrieben 22. Juni 2010 Geschrieben 22. Juni 2010 Wie kann ich denn diesen Text jetzt in ein wirkliches prog. umwandeln.? Bitte verwende die Code-Tags, ich habe sie nachträglich eingefügt. Benutze am Anfang die Tools "java" und "javac" auf der Konsole. Javac kompiliert die Deine Sources, sofern sie syntaktisch korrekt sind. Ulfmann hatte Dir schon den Link zu "Java ist eine Insel" gegeben, ich würde wirklich empfehlen, diese vom Grund her durchzuarbeiten Zitieren
Ulfmann Geschrieben 22. Juni 2010 Geschrieben 22. Juni 2010 Ergänzend noch: Die Sache ist auch die, dass du ja (vermutlich) das Programmieren lernen möchtest. Und das passiert nicht, in dem dir hier der fertige Quelltext serviert wird (obwohl ich das in dem verlinkten Beispiel in meinem letzten Post eigentlich schon getan hab). Schau es dir mal genau an oder kopiere es in deine Anwendung und führ es aus. Im Grunde genommen ist das schon, was du suchst. Die beiden Klassen, die dort maßgeblich beteiligt sind, heißen BufferedReader und InputStreamReader. Davon erzeugst du dir jeweils ein Objekt, montierst diese entsprechend zusammen und speicherst die Eingabe (die dann vom Benutzer kommt) mit der Methode readLine() in einem String. Fertig. Steht alles da, habs nur verbalisiert. Und was es mit dem try/catch auf sich hat, darfst du nun selbst rausfinden Im Übrigen findest du unter oben genanntem Beispiel auch ein Vorschlag, wie das Ganze grafisch dargestellt werden kann. Zitieren
sp0x Geschrieben 23. Juni 2010 Autor Geschrieben 23. Juni 2010 Also mein Kopf ist grad total durcheinder. Ich bekomm gar nix mehr hin ich bin total der Neuling das wisst Ihr ja, allerdings geht es mir auch um das implementieren das nennt sich ja so oder nicht? Ich weiss nicht wie ich jetzt weiter machen soll ich häng einfach an der einen Sache ich brauch nur ein Beispiel einmal muss ich wissen wie das geht dann kann ich´s selbst versuchen aber die ganze Zeit lesen, lesen, lesen ich kann das schonn gar nicht mehr überall steht was anderes. Naja aber trotzdem danke das ihr mir helfen wolltet. Ich warte jetzt einfach bis mein Ausbilder kommt und mach das mit dem und lass mir alles erklären, bevor ich von morgens bis Abends an einer Sache sitz und absolut gar nicht weiter komm. (Immer wieder das löschen-->neu probieren --> geht nicht bzw. kein plan von nix ---> löschen ---> neu probieren ) Gruß Sp0x Zitieren
Ulfmann Geschrieben 23. Juni 2010 Geschrieben 23. Juni 2010 (bearbeitet) ich brauch nur ein Beispiel einmal muss ich wissen wie das geht dann kann ich´s selbst versuchen Meine Posts hast du aber schon gelesen? Ich hatte dir ein Beispiel gezeigt und es dir kurz erklärt. Dann nochmal: public static void main( String[] args ) { System.out.println( "Text eingeben und mit Return abschliessen:" ); [COLOR="Red"][B](1)[/B][/COLOR] try { BufferedReader in = new BufferedReader( new InputStreamReader( System.in ) ); [COLOR="Red"][B](2)[/B][/COLOR] String s = in.readLine(); [COLOR="Red"][B](3)[/B][/COLOR] System.out.println( "Der eingelesene Text lautet: " + s ); [B][COLOR="Red"](4)[/COLOR][/B] } catch( IOException ex ) { System.out.println( ex.getMessage() ); [COLOR="Red"][B](5)[/B][/COLOR] } } 1. Du forderst den Benutzer zu einer Eingabe auf. 2. Du erzeugst dir innerhalb eines try/catch Konstrukts ein Objekt vom Typ BufferedReader mit einer Referenz auf einen InputStreamReader, der wiederum mittels System.in die Datenquelle bekommt (für theoretische Details siehe Verweise in meinem letzten Beitrag). 3. Du lässt dein BufferedReader-Objekt über die entsprechende Methode die Eingabe einlesen und speicherst dies als String. 4. Du gibst den Text auf der Konsole aus. 5. Falls etwas schief geht, fängst du hier den Fehler ab und gibst die Fehlermeldung aus (Details zu IOExceptions siehe hier) Bearbeitet 23. Juni 2010 von Ulfmann Zitieren
sp0x Geschrieben 23. Juni 2010 Autor Geschrieben 23. Juni 2010 Danke ich hab auch nochmal mit meinem Ausbilder gesprochen der hat mir ebensfalls eine Seite über I/O Ein und Ausgaben gegeben. Dieses Beispiel hab ich in meins eingefügt. Es bringt mir ja allerdings nicht viel wenn ich nur reinschreiben: "Bitte geben Sie die Breite ein:" Und ich dann mach "Das Ergebniss lautet :" Ich muss ja eine berechnung durchführen lassen. Ich hab die gleichen Einstellungen wie bei der Breite auch bei der Höhe gemacht nur es wird mir nur die Breite angezeigt. Also das "Bitte geben Sie die Breite ein:" wenn ich dann drunter die gleichen einstellungen mach dann funkt. das nicht. Naja ich werde mal wieder meine Augen (die schon brennen) auspacken müssen und weiter lesen. Danke für eure Hilfe. Zitieren
flashpixx Geschrieben 23. Juni 2010 Geschrieben 23. Juni 2010 Es bringt Dir nichts einfach Beispiele zusammen zu kopieren, Du musst (!) verstehen, was jede Zeile macht. D.h. einmal Verständnis für Variablen (was sind das und wie benutzt man sie), dann was sind Streams und wie arbeitet man mit diesen Ich würde Dir dazu raten, erst einmal das ganze ohne Benutzereingaben zu programmieren, d.h. Deine Berechnung nur mit Variablen durchzuführen Zitieren
sp0x Geschrieben 23. Juni 2010 Autor Geschrieben 23. Juni 2010 package New; public class onlyvariabeln { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System. out.println ("***Umrechenprogramm made by .....!***"); System. out.println ("============================================"); System. out.println ("Bitte geben Sie die Breite ein:"); System. out.println ("Breite (in cm) ="); int Breite=9; System. out.println ("Bitte geben Sie die Höhe ein:"); System. out.println ("Höhe (in cm) =");int Höhe = 10 ; System. out.println ("Rechteck: " + Breite * Höhe + "cm²"); } } Schon passiert das ist ja einfach das versteh ich ja auch. Aber naja keine Ahnung ich mach mich da nicht verrückt. Zitieren
Ulfmann Geschrieben 23. Juni 2010 Geschrieben 23. Juni 2010 Es bringt mir ja allerdings nicht viel wenn ich nur reinschreiben: "Bitte geben Sie die Breite ein:" Und ich dann mach "Das Ergebniss lautet :" Ich muss ja eine berechnung durchführen lassen. Ganz genau. Und für eine Berechnung lässt du zuerst die Höhe eingeben und danach die Breite. Dann hast du alles was du brauchst. Also in etwa so: - Ausgabe: Geben sie die Breite an # User tippt Breite ein, Progamm speichert Eingabe in einer Variablen - Ausgabe: Geben sie die Höhe ein # User gibt Höhe ein, Programm speichert Eingabe - Ausgabe: Ihr Ergebnis lautet: (Breite * Höhe) Jetzt klar? Zitieren
sp0x Geschrieben 24. Juni 2010 Autor Geschrieben 24. Juni 2010 Klar ist mir das schon. Nur ich hab ja versucht das bufferReader und das Inputstreamreader einzufügen aber es kam nie was bei raus. Zitieren
flashpixx Geschrieben 24. Juni 2010 Geschrieben 24. Juni 2010 Nur ich hab ja versucht das bufferReader und das Inputstreamreader einzufügen aber es kam nie was bei raus. Du hast sicherlich dieses Beispiel durchgearbeitet, das Ulfmann gepostet hatte: Einfache Java-Beispiele und Du hast auch wenn Du numerische Daten brauchst eine entsprechende Typenumwandelung durchgeführt Zitieren
sp0x Geschrieben 24. Juni 2010 Autor Geschrieben 24. Juni 2010 Hm das müsste ich noch im Internet nachschauen was es da für eine umwandlung brauch. Ich weiss nur soweit das int dazu geeignet ist, aber muss schauen wie ich das genau umwandle. Hab gestern den ganzen Tag rumgespielt aber naja. Ich werds weiter versuchen sind ja noch paar tage bis zur nächsten Woche. Und danke für schnelle Antworten Zitieren
sp0x Geschrieben 24. Juni 2010 Autor Geschrieben 24. Juni 2010 Ich haaaabs mit etwas hilfe vom Ausbilder Danke an alle Hier der Codepackage New; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class HalloWelt { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int ergebnis; System. out.println ("***Flächeninhalt eines Rechteckes berechnen***"); System. out.println ("================================================="); System. out.println ("Bitte geben Sie die Breite in cm ein:"); try { BufferedReader in = new BufferedReader( new InputStreamReader( System.in ) ); int eingabe_breite = Integer.parseInt(in.readLine()); System. out.println ("Bitte geben Sie die Höhe in cm ein:"); int eingabe_höhe = Integer.parseInt(in.readLine()); if(eingabe_breite==eingabe_höhe) System. out.println("Es handelt sich um ein Quadrat!."); System. out.println ("Das Ergebniss lautet:" + eingabe_höhe * eingabe_breite+("cm²")); } catch( IOException ex ) { System. out.println( ex.getMessage() ); } } } Zitieren
sp0x Geschrieben 24. Juni 2010 Autor Geschrieben 24. Juni 2010 So jetzt die Frage: Wie bekomm ich das als Grafik hin ? Hat das jetzt was mit GUI zu tun? Zitieren
flashpixx Geschrieben 24. Juni 2010 Geschrieben 24. Juni 2010 Noch folgende Anmerkungen: Variablen mit Umlauten sind meines Wissens unzulässig (auch wenn solltest Du Darauf verzichten). Überlege Dir, ob Deine Exception sinnvoll ist, was passiert, wenn man als Benutzer einmal keinen numerischen Wert eingibt. Packagenamen werden eigentlich klein geschrieben. Zwischen den Objekt- / Methoden- / Eigenschaftsnamen macht man keinen Zeilenumbruch. Deine Variable "ergebnis" wird nicht benutzt, Du solltest sie auch dann entfernen. Was passiert, wenn ich eine negative Zahl für Deine Eingabe setze (z.B. Höhe negativ), dann wird Deine Fläche auch negativ. Flächen sind immer positiv. Überlege Dir, ob Deine Datentypen für die Eingabe sinnvoll sind, denn eine Einageb für 2,3cm * 2,7cm liefert bei Dir nicht 6,21cm --------- Zu Deiner Frage: Schau Dir diverse Swing Dialoge an (JOptionPane (Java 2 Platform SE v1.4.2)) Zitieren
speedi Geschrieben 25. Juni 2010 Geschrieben 25. Juni 2010 Als Startwert deiner variablen könntest du einfach einen negativen Wert nehmen und die Dateneingabe in eine while-Schleife packen. Solang der Variablen-Wert negativ ist wiederholst du das Prozedere. Exceptions werden geworfen wenn Fehler auftreten. Eine IOException tritt auf, wenn beim lesen eines Streams irgendwas schief geht. Beim lesen von der Konsole kenn ich jetzt keinen Fall wo sowas passiert, von daher nicht so schlimm wenn du da einfach nur die Error-Message ausgiebst im catch-Teil (ich würde aber besser e.printStackTrace() verwenden, dann bekommst du nämlich genaue Infos welche methoden-Aufrufe dazu geführt haben. Wenn beim parsen eines Strings zu einem einfachen Datentyp (short, int, boolean, double, long, float) etwas schief geht wird eine NumberFormatException geworfen. Wenn du diese Abfängst kannst du angemessen drauf reagieren. Wenn du sie nicht abfängst würgst du damit den Prozess ab: dein Programm knackt weg. try{ Integer.parseInt(...) }catch(IOException e){ System.out.println("Dussl du! gib eine Zahl ein! Außerdem hab ich hier Integer verwendet" +" und das kann keine Kommas! Außerdem müsste man bei Double . anstatt , verwenden, weil sich " +"Programmiersprachen leider an der englischen Schreibweise orientieren! Das könnte man allerdings " +"umgehen indem man vor dem parsen des Strings alle kommas im String durch einen Punkt ersetzt. Die " +"replace-Methode der Klasse String hilft hier weiter."); } Zitieren
sp0x Geschrieben 5. Juli 2010 Autor Geschrieben 5. Juli 2010 Also ich hab das Prog. schon vor 1 1/2 wochen fertig geschrieben. Hab eine neue Aufgabe, die ich zum größten Teil schon fertig habe. Allerdings liegt mir noch eins am Herzen. Wie kann ich den Rechenweg anzeigen. Also das er zuerst anzeigt wie das ergebniss berechnet wurde und dann das ergebniss. Hat jemand ein Tipp import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Taschenrechner { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println ("Taschenrechner Denis Suppes"); System.out.println ("Bitte wählen Sie die Rechenart:"); // System.out.println ("1 für Subtraktion"); System.out.println ("2 für Addition"); System.out.println ("3 für Multiplikation"); System.out.println ("4 für Division"); try { BufferedReader in = new BufferedReader( new InputStreamReader( System.in ) ); int Auswahl = Integer.parseInt(in.readLine()); switch (Auswahl) { case 1 : System.out.println ("Sie haben sich für die Subtraktion entschieden."); System.out.println ("Bitte geben Sie 2 Zahlen ein:"); float eingabe_a = Integer.parseInt(in.readLine()); float eingabe_b = Integer.parseInt(in.readLine()); System.out.println ("Das Ergebniss lautet:" + (eingabe_a - eingabe_); break; case 2 : System.out.println ("Sie haben sich für die Addition entschieden."); System.out.println ("Bitte geben Sie 2 Zahlen ein:"); float eingabe_x = Integer.parseInt(in.readLine()); float eingabe_y = Integer.parseInt(in.readLine()); System.out.println ("Das Ergebniss lautet:" + (eingabe_x + eingabe_y)); break; case 3 : System.out.println ("Sie haben sich für die Multiplikation entschieden"); System.out.println ("Bitte geben Sie 2 Zahlen ein:"); float eingabe_z = Integer.parseInt(in.readLine()); float eingabe_c = Integer.parseInt(in.readLine()); System.out.println ("Das Ergebniss lautet:" + (eingabe_z * eingabe_c)); break; case 4: System.out.println ("Sie haben sich für die Division entschieden"); System.out.println ("Bitte geben Sie 2 Zahlen ein:"); float eingabe_i = Integer.parseInt(in.readLine()); float eingabe_e = Integer.parseInt(in.readLine()); System.out.println ("Das Ergebniss lautet:" + (eingabe_i / eingabe_e)); break; default : System.out.println ("Konnte nicht gefunden werden"); } } catch( IOException ex ) { System.out.println (ex.getMessage() ); } } }[/code] Zitieren
sp0x Geschrieben 5. Juli 2010 Autor Geschrieben 5. Juli 2010 Hat sich erledigt habs geschafft Danke euch allen für die Hilfe hiermit ist dieser Thread geschlossen wenn was sein sollte mach ich einen neuen auf. Danke nochmal. Ihr habt mir echt geholfen. Zitieren
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.