Mein erstes Programm

Status
Nicht offen für weitere Antworten.

aKuJii

Mitglied
Hallo liebe Community!

Ich fange gerade erst an mir JAVA bei zubringen also seid bitte net so hart zu mir ^^.
Wollte mal fragen was ihr zu meinem Programm sagt?
Es ist noch auf Consolen ebene also ihr müsste es mit JCreator oder sonst was öffnen.

Code:
import java.io.*;
 public class Lernprogramm
 {
 static BufferedReader input= new BufferedReader(new InputStreamReader(System.in));
 static int richtig=0;
 static int falsch=0;
 static int wahl=0;
 static int zufallsZahl1=0;
 static int zufallsZahl2=0;
 public static void main (String argv[])throws IOException
 {
 int auswahl=-6;
 while (auswahl !=0)
 {
 System.out.println("\t Grundrechenarten Lernprogramm");
 System.out.println("\n\n ");
 System.out.println("\t 1 - Addition von zwei Zahlen");
 System.out.println("\t 2 - Subtraktion von zwei Zahlen");
 System.out.println("\t 3 - Multiplikation von zwei Zahlen");
 System.out.println("\t 4 - Division von zwei Zahlen");
 System.out.println("\t 5 - Hilfe");
 System.out.println("\t 0 - ENDE");
 System.out.println("\n");
 System.out.print("\t Ihre Wahl: ");
 
 try
 {
 auswahl=Integer.parseInt(input.readLine());
 System.out.println();
 switch(auswahl)
 {
 case 1: add(); break;
 case 2: sub(); break;
 case 3: multi(); break;
 case 4: div(); break;
 case 5: hilfe(); break;
 }
 if(auswahl >0 && auswahl <=5)
 {
 System.out.println("\n\n\t Sie haben "+richtig+" von "+(richtig+falsch)+" Aufgabe(n) richtig geloest!");
 }
 else if(auswahl!=0)System.out.println("\t Bitte die Ziffern 0 bis 5 verwenden!");
 }
 catch(NumberFormatException e){ System.out.println("\n\t Bitte die Ziffern 0 bis 5 verwenden!");
                                 System.out.println("");
                                 System.out.println("\n\t *********************************"); }
 }
 
 }
 
 /*
  *Static void add()
  */
 static void add()throws IOException
 {
 	int erg=0,ergR=0;
 	boolean ok=true;
 	
  	do{
  	zufallsZahl1=zufallsZahl(10,1);
 	zufallsZahl2=zufallsZahl(20,1);
 	ergR=zufallsZahl1+zufallsZahl2;
  	do{
  	try{
 	ok=false;	
    System.out.print(""+zufallsZahl1+"+"+zufallsZahl2+"= ");
    erg=Integer.parseInt(input.readLine());
    if(erg==ergR){
    	System.out.println("Sie haben das korrekte Ergebnis eingegeben!");
    	richtig++;
    	System.out.print("Moechten Sie aufhoeren?ja(-0)nein(1)");
    	System.out.print("Ihre Wahl: ");
    	wahl=Integer.parseInt(input.readLine());
    }    
    else
    {
    	System.out.println("Sie haben das falsche Ergebnis eingegeben, Das richtige ergebnis lautet: "+ergR);
    	falsch++;
    }
    } catch (NumberFormatException e) {
    	System.out.println("Bitte nur Zahlen eingeben");
    	ok=true;}
    }while(ok);
   } while(wahl!=-0); 
   }
  /*
  *Static void sub()
  */
 static void sub()throws IOException
 {
 	int erg=0,ergR=0;
 	boolean ok=true;
 	
  	do{
  	zufallsZahl1=zufallsZahl(10,20);
 	zufallsZahl2=zufallsZahl(20,1);
 	ergR=zufallsZahl1-zufallsZahl2;
  	do{
  	try{
 	ok=false;	
    System.out.print(""+zufallsZahl1+"-"+zufallsZahl2+"= ");
    erg=Integer.parseInt(input.readLine());
    if(erg==ergR){
    	System.out.println("Sie haben das korrekte Ergebnis eingegeben!");
    	richtig++;
    }    
    else
    {
    	System.out.println("Sie haben das falsche Ergebnis eingegeben, Das richtige ergebnis lautet: "+ergR);
    	falsch++;
    }
    } catch (NumberFormatException e) {
    	System.out.println("Bitte nur Zahlen eingeben");
    	ok=true;}
    }while(ok);
   } while(erg!=-0); 
 }
  /*
  *Static void multi()
  */
 static void multi()throws IOException
 {
 	 	int erg=0,ergR=0;
 	boolean ok=true;
 	
  	do{
  	zufallsZahl1=zufallsZahl(10,1);
 	zufallsZahl2=zufallsZahl(20,1);
 	ergR=zufallsZahl1*zufallsZahl2;
  	do{
  	try{
 	ok=false;	
    System.out.print(""+zufallsZahl1+"*"+zufallsZahl2+"= ");
    erg=Integer.parseInt(input.readLine());
    if(erg==ergR){
    	System.out.println("Sie haben das korrekte Ergebnis eingegeben!");
    	richtig++;
    }    
    else
    {
    	System.out.println("Sie haben das falsche Ergebnis eingegeben, Das richtige ergebnis lautet: "+ergR);
    	falsch++;
    }
    } catch (NumberFormatException e) {
    	System.out.println("Bitte nur Zahlen eingeben");
    	ok=true;}
    }while(ok);
   } while(erg!=-0); 
 }
  /*
  *Static void div()
  */
 static void div()throws IOException
 {
 	int erg=0,ergR=0;
 	boolean ok=true;
 	
  	do{
  	zufallsZahl1=zufallsZahl(10,20);
 	zufallsZahl2=zufallsZahl(20,1);
 	ergR=zufallsZahl1/zufallsZahl2;
  	do{
  	try{
 	ok=false;	
    System.out.print(""+zufallsZahl1+"/"+zufallsZahl2+"= ");
    erg=Integer.parseInt(input.readLine());
    if(erg==ergR){
    	System.out.println("Sie haben das korrekte Ergebnis eingegeben!");
    	richtig++;
    }    
    else
    {
    	System.out.println("Sie haben das falsche Ergebnis eingegeben, Das richtige ergebnis lautet: "+ergR);
    	falsch++;
    }
    } catch (NumberFormatException e) {
    	System.out.println("Bitte nur Zahlen eingeben");
    	ok=true;}
    }while(ok);
   } while(erg!=-0); 
 }
  /*
  *Static void hilfe()
  */
 static void hilfe()
 {
 	System.out.print("Um in ein Menue zu wechseln druecken sie bitte im Hauptmenue eine Zahl von 1-5");
 	System.out.print("Die Zahl fuer das Menue in das sie wollen befindet sich vor der Beschreibeung ");
 	System.out.print("des Programmes");
 }
 /*
  *Static void zufallZahl()
  */
 static int zufallsZahl(int z,int anf)
 {
 int zahl=(int)(anf+Math.random()*z);
 return zahl;
 }
 }
was sagt ihr dazu`? Soll ein Lernprogramm für die Grundschule sein. (Natürlich nicht, aber der einfachhalts halber sag ichs mal so =) ) Mein Problem ist nur bei der Division das ich da immer die Falschen zahlen bekommen so das Komma Zahlen rauskommen. Ist das der Begriff Float mit komma zahlen?

mfG Chris
 

MPW

Top Contributor
Ich bin gerade ein bisschen blind, wo ist denn ergR deklariert, ist das ein float?(Ich find das irgendwie nicht in deinem Code)
 

aKuJii

Mitglied
ergR ist das was der Computer rechnet um es später bei der IF schleife zu vergleichen.

erg = Was der USer tippt
ergR = was der Computer ausrechnet

ergR wird immer in der Methode deklariert wenn du das meinst (int ergR)

bitte net so fach ausdrücke ^^ bin noch net so der profi
 
B

Beni

Gast
Für ein Erstlingswerk, gar nicht übel :toll:

Zur Division: int / int gibt int. Also z.B. 7 / 2 ergibt 3. Um das zu umgehen, verwendest du mit Vorteil "float" oder "double" (einfache bzw. doppelte Präzision Flieskommazahlen).

Zu deinem Program, da habe ich folgende Kritiken:
- Codeeinrückung ist misserabel. In der zweiten Hälfte wird es zwar besser, aber sauber ist das noch nicht. Gewöhn dir unbedingt an, die richtige Anzahl Tabulatoren/Leerzeichen vor einer Linie Code zu machen. Die Codeeinrückung erleichtert die Suche nach Fehlern, oder ganz allgemein das Lesen des Codes, ungemein.
- Nimm etwas aussagekräftigere Namen für Variablen und Methoden.
- Du hast ein bisschen gar oft denselben Code in den verschiedenen Methoden. Überleg dir mal, wie du diesen doppelten Code in eigene Methoden auslagen könntest.
- Objektorientierte Programmierung sagt dir offensichtlich noch nicht viel. Das würde ich unbedingt anschauen. Mit OOP wäre dein Programm total anders aufgebaut (und ich kann dir garantieren, es wäre noch übersichtlicher :wink:)
- Und gewöhn dir das "static" nicht zusehr an. Das Ding ist einfach "böse", man kann damit herrlich unflexiblen, fehlerbehafteten Code schreiben (sobald du OOP benutzt, solltes du versuchen, auf static zu verzichten).
- Es gibt keine If-Schleife! Es gibt If-Verzweigungen, Bedingungen, Abschnitte, von mir aus Kreuzungen, aber keine Schleifen!
 

aKuJii

Mitglied
Ja das mit der einrückung mache ich noch nicht so stimmt =)
OOP sagt mir rein gar nix. ist das jframe zeugs??

was ist an static so schlimm?
wo muss ich dann das float oder double setzten? vor ergR rechnung? kannnst du mir vllt den abschnitt mal posten?


ALLES KLAR^^
 
B

Beni

Gast
Über OOP wurden (und werden) ganze Bücher geschrieben... JFrame ist ein Teil davon, ebenso der String. Es geht dabei um die Darstellung von Strukturen im Code und während der Laufzeit. OOP erlaubt mehrere Werte als "logische Einheit" aufzufassen, und als Ganzes in einem Programm hin und her zu schicken (inklusive Methoden die zu dem Objekt passen). Z.B. ist ein String eine Sammlung von Buchstaben, mit passenden Methoden wie "length()"...

Wenn du sagst "static Haus xyz" kann es im gesammten Programm nur ein einziges Haus xyz geben. Wie soll man damit eine Stadt darstellen können? Static ist sozusagen das Gegnerparadigma zu OOP, in der es um die unabhängige Darstellung von Daten geht.
"static" ist extrem bequem in der Anwendung (deshalb wird es auch von vielen Leuten benutzt), Programme mit vielen "statics" sind jedoch meist sehr unflexibel, wenn es darum geht, mal etwas abzuändern (z.B. eine Stadt und nicht nur ein einzelnes Haus darstellen).

Das float: dort wo jetzt noch int steht :wink: (in der Division nur). Um Benutzereingaben als floats einzulesen, kannst du Float.parseFloat benutzen.
 

Illuvatar

Top Contributor
Beni hat gesagt.:
Über OOP wurden (und werden) ganze Bücher geschrieben... JFrame ist ein Teil davon, ebenso der String. Es geht dabei um die Darstellung von Strukturen im Code und während der Laufzeit. OOP erlaubt mehrere Werte als "logische Einheit" aufzufassen, und als Ganzes in einem Programm hin und her zu schicken (inklusive Methoden die zu dem Objekt passen). Z.B. ist ein String eine Sammlung von Buchstaben, mit passenden Methoden wie "length()"...

Das Zitat muss ich mir für meine GFS dieses Jahr merken ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Mein erstes Programm Java Basics - Anfänger-Themen 3
M Mein erstes Java Programm Java Basics - Anfänger-Themen 5
1 Mein erstes Programm, HELP!! Java Basics - Anfänger-Themen 2
D Mein erstes Programm flackert Java Basics - Anfänger-Themen 5
B Methoden Mein erstes Programm - und gleich Probleme Java Basics - Anfänger-Themen 6
M Sammlung von Anfängerfragen für mein erstes Programm Java Basics - Anfänger-Themen 15
L Suche Verbesserungsvorschläge für mein erstes Programm Java Basics - Anfänger-Themen 34
Bierhumpen mein erstes großes Programm. Was ändern? verbessern? Java Basics - Anfänger-Themen 12
S Mein erstes eigenes Projekt - Aufbau und Strukturierung Java Basics - Anfänger-Themen 6
M OOP Mein erstes Textadventure... Java Basics - Anfänger-Themen 3
T mein erstes Java projekt Java Basics - Anfänger-Themen 8
T OOP Mein erstes Java-Spiel - Schiffe versenken! Java Basics - Anfänger-Themen 2
E Mein erstes Java Projekt - Sauberer code? Java Basics - Anfänger-Themen 28
P Mein erstes JAR-File Java Basics - Anfänger-Themen 8
A Warum wird mein jdk nicht gefunden? Java Basics - Anfänger-Themen 3
J Layout Manager, welcher ist der Richtige für mein Program? Java Basics - Anfänger-Themen 1
dennis_lnz Klassen Wie kann ich mein Java Textadventure verbessern, um ein Klassendiagramm zu erstellen? Java Basics - Anfänger-Themen 9
J Größter gemeinsamer Teiler: mein Code Java Basics - Anfänger-Themen 6
J Mein Programm läuft bei der ersten Eingabe nicht mehr weiter, woran liegt das? Java Basics - Anfänger-Themen 6
J Mein Java Programm lässt sich nicht mehr bearbeiten Java Basics - Anfänger-Themen 2
I Methoden Wieso wird mein Array "a" verändert und meine Variable "a" nicht? Java Basics - Anfänger-Themen 4
Alen123 Warum funktioniert mein Code nicht? Java Basics - Anfänger-Themen 64
sserio Wieso funktioniert mein Programm nicht Java Basics - Anfänger-Themen 2
sserio Wieso funktioniert mein TableView nicht /JavaFX. Java Basics - Anfänger-Themen 4
M Mein quellcode wird nicht in der Konsole ausgegeben Java Basics - Anfänger-Themen 3
J Nach dem Exportieren funktioniert mein Programm nicht mehr Java Basics - Anfänger-Themen 8
P Mein Programm wird zwar erfolgreich Compiliert, öffnet sich aber nicht Java Basics - Anfänger-Themen 6
W Wie ziehe ich von einer bestimmten Zahl, Zahlen ab, bis mein Ergebnis null beträgt? Java Basics - Anfänger-Themen 10
J Kann ich mein Programm so schreiben? Java Basics - Anfänger-Themen 4
A Java die richtige Programmiersprache für mein Projekt? Java Basics - Anfänger-Themen 1
T Mein Programm hat Fehler Java Basics - Anfänger-Themen 4
S Brauche hilfe in Java [Fehler in mein Code]? Java Basics - Anfänger-Themen 2
S Wie ende ich mein Pogrammierung? [Hilfe] Java Basics - Anfänger-Themen 1
R Mein Plugin funktioniert nicht? Java Basics - Anfänger-Themen 10
J Mein Programm beendet sich ohne mein Zutun Java Basics - Anfänger-Themen 9
A Eine Krone in der Textausgabe - Mein Code Java Basics - Anfänger-Themen 11
M Warum berechnet mein Primzahlenprog zu hohe Zahlen nicht? Java Basics - Anfänger-Themen 20
G Mein Java Projekt funktioniert nicht Java Basics - Anfänger-Themen 5
W Wieso funktioniert mein Switch Case nicht ?! Java Basics - Anfänger-Themen 9
L Mein Taschenrechner lässt sich plötzlich nicht mehr öffnen Java Basics - Anfänger-Themen 5
x-tshainge Mein Programm lässt sich nicht Starten Java Basics - Anfänger-Themen 8
W Warum läuft mein Programm nicht? Java Basics - Anfänger-Themen 14
W Warum funktioniert mein Programm nicht ? Java Basics - Anfänger-Themen 12
W Warum funktioniert mein Programm nicht ? Java Basics - Anfänger-Themen 6
W Ist mein Struktogram richtig erstellt worden? Java Basics - Anfänger-Themen 4
W Erste Schritte Warum funktioniert mein Programm nicht ? ~if Anweisung~ Java Basics - Anfänger-Themen 4
A Erste Schritte Mein Programm erkennt die variable EinAus.readInt nicht Java Basics - Anfänger-Themen 15
N Warum terminiert mein Programm nicht? Java Basics - Anfänger-Themen 13
G Wie kann ich mein Quellcode als Programm vom desktop starten? Java Basics - Anfänger-Themen 1
P Wie kann ich mein Programm zu einer App umwandeln? Java Basics - Anfänger-Themen 4
A Mein 1x1 Programm funktioniert nicht? Java Basics - Anfänger-Themen 2
G Input/Output Wo liegt mein Fehler? Java Basics - Anfänger-Themen 4
G Variablen Was ist mein Fehler? Java Basics - Anfänger-Themen 2
C Warum funktioniert mein If Statement nicht richtig? Java Basics - Anfänger-Themen 18
B Drucken: Default Paper von Drucker? Mein Drucker druckt falsch Java Basics - Anfänger-Themen 3
W Compiler-Fehler Fehler - <identifier> expected, wo liegt mein Fehler? Java Basics - Anfänger-Themen 4
stylegangsta Input/Output Hat eclipse eine Macke oder mein Code Array Datei einlesen Java Basics - Anfänger-Themen 5
S Wieso wird mein JFrame transparent dargestellt? Java Basics - Anfänger-Themen 5
N mein RegEx Java Basics - Anfänger-Themen 2
N Mein Bubblesort sortiert mein Array nicht Java Basics - Anfänger-Themen 2
W Wie hat mein Lehrer das gemacht. Java Basics - Anfänger-Themen 2
Z Klassen Warum wird mein Objekt nicht erkannt? Java Basics - Anfänger-Themen 2
J Erste Schritte Zweithöchster Wert eines Arrays herausfinden - warum klappt mein Code nicht? Java Basics - Anfänger-Themen 3
A Wie kann ich mein Programm noch effizienter machen? Java Basics - Anfänger-Themen 1
C Mein Video zu Java Grundlagen Java Basics - Anfänger-Themen 8
T Eclipse kennt mein Button nicht... Java Basics - Anfänger-Themen 5
J Wo liegt nur an dieser einfachen Bedingung mein Fehler? Java Basics - Anfänger-Themen 8
E Mein eigener Listener (Hilfe gesucht) Java Basics - Anfänger-Themen 2
D Brauche Hilfe für mein übungsprogramm Java Basics - Anfänger-Themen 16
T Mein String in ein JLabel stecken Java Basics - Anfänger-Themen 2
H Kann ich mein Programm vereinfachen? Java Basics - Anfänger-Themen 3
J Methoden Wo ist mein Fehler ?! Java Basics - Anfänger-Themen 9
R .txt in mein Javaprogramm hineinschmelzen Java Basics - Anfänger-Themen 6
S Mein Code is unübersichtlich - besseren Stil Java Basics - Anfänger-Themen 6
H Ich kann mein Java Programm Test.class nicht ausführen Java Basics - Anfänger-Themen 6
H Probleme mein Ausführen der .class (Ubuntu JDK6) Java Basics - Anfänger-Themen 2
M Mein TableEvent problem Java Basics - Anfänger-Themen 3
C Boolsche Ausdrücke - Wo ist mein Fehler? Java Basics - Anfänger-Themen 14
propra Wie mache ich einem JPanel mein bereits instanziertes Model bekannt Java Basics - Anfänger-Themen 9
M Warum wird mein Icon bei den JTree Nodes nicht angezeigt? Java Basics - Anfänger-Themen 7
K Mein Programm... Heute: Settings-Datei in .jar speichern und auslesen Java Basics - Anfänger-Themen 9
M Kann mein Java Programm nicht starten Java Basics - Anfänger-Themen 6
V Mein erster Konstruktor Java Basics - Anfänger-Themen 3
S GaussJordan in Java, wo liegt mein Fehler? Java Basics - Anfänger-Themen 4
O Warum terminiert mein Programm nicht!? Java Basics - Anfänger-Themen 15
U2nt Mein Chat Java Basics - Anfänger-Themen 10
S Wo ist mein Fehler? Java Basics - Anfänger-Themen 2
I OOP This-Referenzs > wo liegt mein Denkfehler? Java Basics - Anfänger-Themen 24
L Hashtable nicht wirklich geeignet für mein Vorhaben? Java Basics - Anfänger-Themen 3
W ArrayListe , Wo ist mein Fehler? Java Basics - Anfänger-Themen 6
H wie bekomm ich ein Foto in mein Programm rein? Java Basics - Anfänger-Themen 8
M Mein Externes Programm startet nicht Java Basics - Anfänger-Themen 13
M Timer unterbrechen? Wo ist mein Thread? Java Basics - Anfänger-Themen 2
S wieso ist mein Code falsch? Java Basics - Anfänger-Themen 2
S Mein Computer kennt "javac" und "java" nicht mehr! Java Basics - Anfänger-Themen 6
B XML? Für Uhrzeit und Datum für mein HP? Java Basics - Anfänger-Themen 6
JeromeM90 Mein Java Applet zeitverzögern ? Java Basics - Anfänger-Themen 2
Developer_X Mein erster Internet Explorer Java Basics - Anfänger-Themen 14
B könnte nochmal jemand über mein Projekt schauen? Java Basics - Anfänger-Themen 4
J Mein Objekt will nicht! Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben