Zum Inhalt springen

Eclipse Eingaben / Flächeninhaltsberechner


sp0x

Empfohlene Beiträge

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 von flashpixx
Code-Tags eingefügt
Link zu diesem Kommentar
Auf anderen Seiten teilen

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 von flashpixx
Code-Tags eingefügt
Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 von Ulfmann
Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich haaaabs :) mit etwas hilfe vom Ausbilder :)

Danke an alle :)

Hier der Code

package 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() );


	}


	}


	}

Link zu diesem Kommentar
Auf anderen Seiten teilen

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))

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.");

}

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

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]

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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...