ActionListener > Variable ... u.v.m.

Status
Nicht offen für weitere Antworten.
L

luca schwarzer

Gast
hallo.

verzweifle.
ich soll ein programm schreiben, das ein geldautomat simuliert. dabei soll der user den betrag eingeben und schliesslich soll dieser betrag ausschliesslich in münzen ausgezahlt werden. dabei sollen sowenig münzen wie möglich ausgegeben werden.

nach der ausgabe auf konsole und fenster (mittels paint() ) soll der user gefragt werden, ob er eine weitere auszahlung vornehmen möchte (j/n).
der user sollte sowohl € als auch Cent eingeben können (2 €, als auch 200Cent).

die münzen sollen in einem array abgespeichert werden.

problem1:
wie kann ich die benutzereingabe in eine variable umwandeln, um damit rechnen zu können?

problem2:
wie kann ich dem programm beibringen, die nachkommazahl zu ignorieren und mir bloss die ganze zahl zu speichern?
hintergrund-> algorithmus:

Input (also der wert,der vom benutzer eingegeben wird) = 107,74 (z.B.)

münzen2brutto = Input / 2 (die 2€ münze) = 53,87
(d.h. es können 53 münzen á 2€ augegeben werden. aber! es sollen nur die 53 als variable namens münzen2brutto übergeben werden, da die nachkommazahl nicht gebraucht wird. anschliessend könnte man von den 107,74 die 53x2 abziehen, sprich es würden 1,74€ übrig bleiben. mit diesem wert könnte man die gleiche berechnung mit der 1€-münze starten, usw.)

problem3:
kann man den algorithmus in einer schleife durchlaufen lassen, und das array mit den münzen einbinden?

problem4:
wie kann ich feststellen, ob Cents oder € eingegeben werden und kann ich beide werde in einem algorithmus einbinden?

puh.
hab in drei bücher (handbuch der java-programmierung, java2 und java in 21 tagen) als hilfe zu rate gezogen. leider erfolgslos.
vielleicht finde jemand von euch, dies seien keine probleme. für jeden hint wäre ich euch dankbar.
ich hänge leider fest :(

lg
luca
 
B

Beni

Gast
Antwort 1:
Du hast die Eingabe als String "text". Dann kannst du mit double value = Double.parseDouble( text ) eine Zahl herstellen.

Antwort 2:
Du hast einen double value, dann kannst du ihn in einen Integer casten: int money = (int)value;

Antwort 3:
Wieviele Münzen gibt es? Sagen wir mal 5er, 2er und 1er.
Code:
static final int[] coin = {5, 2, 1};  // Die Münzen die existieren.


int[] count = new int[ coin.length ] // 5er, 2er, 1er,  Die Anzahl Münzen, die der User erhalten wird

int value = ... // Der Wert, den der User haben will
for( int i = 0, n = coin.length; i<n; i++ ){
  int current = coin[i];  // Der Wert der Münze, die man gerade betrachtet.

  int currentCount = ... // Die maximale Anzahl Münzen berechnen
  value -= current * currentCount;  // Die Münzen vom Gesammtbetrag abzählen
  count[i] = currentCount; // Die Anzahl Münzen abspeichern.
}

Antwort 4:
Das einbinden ist ganz einfach: alles in Cents berechnen.
Wie du das bemerkst: Du könntest z.B. zwei Buttons machen. Einer für Euro, der andere für Cents. Oder eine JCheckBox... Phantasie ist gefragt :wink:

mfg Beni
 

Anubis

Bekanntes Mitglied
Ich will dir jetzt kein Komplettes Porogramm geben, sondern nur ein parr hilfen:

1. Wenn du aus Fließkommazahlen ganze Zahlen willst kannst du folgendes machen:
Code:
 int i = int(1.234);

2. Als Benutzereingabe kannst du die Parameter gebrauchen:
zB.: kannst du dein Programm mit 'java Automat 12345' starten.
Die Konventierung geht so:
Code:
  Integer wrapper = new Integer(args[0]);
  int geld = wrapper.intValue();

3. Du kannst als Ausgabe ein Array mit 8 Feldern benutzen:
muenzen[0] steht dann für die 1cent Münzen
muenzen[1] steht dann für die 2cent Münzen
muenzen[2] steht dann für die 5cent Münzen
.
-
-
muenzen[7] steht dann für die 2EUR Münzen
Am besten ist 'int' als Datentyp geeignet.
Im jeden Feld merkst du dir die Anzahl der Jeweiligen Münzen

4. In diesen Fall rate ich von einer Schleife ab. Grund:
Zu aufwendig. Du kannst die Maximale Anzahl der Jeweiligen Münze direkt bestimmen

Viel spass noch
 
B

Beni

Gast
Zwei Antworten. Irgendwie dieselben und doch verschieden :D
Du darfst dir eine aussuchen :wink:
 
L

luca

Gast
muss ich sacken lassen...aber vielen dank.
und wie fange ich die benutzereingabe ein?

nach

System.out.println("Betrag:");

sollte der cursor die benutzereigabe abwarten und nach dem enter-druck der wert als variable übergeben werden.
 
B

bygones

Gast
oh gott - so irgendwie:
Code:
BufferedReader in = new BufferedReader(new StreamInputReader(System.in));
System.out.print("Betrag: ");
String = in.readLine();

Richtig oder - ich glaube sowas habe ich noch nie gemacht :)
 
R

Roar

Gast
ein gelernter BIO Informatiker aber noch nie text von der konsole eingelesen?? tzz nagut hab ich auch noch nie gemacht.
:oops:
jedenfalls musst du noch nen try- catch block rumbauen. also
Code:
try {
// einlesen
// wie auch immer :D
} catch( IOException ioex) {
ioex.printStackTrace();
}
 
G

Guest

Gast
nun...mein code sieht folgendermasse aus:

<code>
import java.awt.*;
import java.awt.event.*;

public class Start {
public static void main (String[] args){

try {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Bitte den Betrag eingeben: ");
String = in.readLine();
}
catch( IOException ioex) {
ioex.printStackTrace();
}


}



}
<code>

und es werden folgende fehlermeldungen ausgegeben...

cannot resolve symbol class BufferedReader
cannot resolve symbol class InputStreamReader
cannot resolve symbol variable String
cannot resolve symbol class IOException

oh, oh...ich glaub da hab ich mir was eingebrockt ;)
 
G

Guest

Gast
nun...mein code sieht folgendermasse aus:

Code:
import java.awt.*;
import java.awt.event.*;

public class Start {
	public static void main (String[] args){
		
	try {
	BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); 
	System.out.print("Bitte den Betrag eingeben: "); 
	String = in.readLine();
	} 
	catch( IOException ioex) { 
	ioex.printStackTrace(); 
	}
		
    }
}

und es werden folgende fehlermeldungen ausgegeben...

cannot resolve symbol class BufferedReader
cannot resolve symbol class InputStreamReader
cannot resolve symbol variable String
cannot resolve symbol class IOException

oh, oh...ich glaub da hab ich mir was eingebrockt ;)
 
B

bygones

Gast
Code:
import java.io.*

Merke: Alles was mit Files / Streams usw. zu tun hat liegt im java package io !!

Achja und nicht:
Code:
String = in.readLine();
Sondern
Code:
String line = in.readLine();
Dein Objekt braucht ja n Namen !
 
B

bygones

Gast
Richtig - wobei die Kombination nicht nur das package io importiert, sondern alles was gebraucht wird :!:
 
B

Beni

Gast
Möchte mich ja nicht aufspielen (doch, eigentlich schon), aber ihr seit alle zu spät :D Schaut mal den Post vor dem letzten grossen Codestück an (zugegeben, ist nicht so ausführlich).

Hihi Gruss Beni (der gerade nicht ernst zu nehmen ist)
 

lupinuslupus

Mitglied
wieso bekomme ich eine fehlermeldung?

Code:
import java.awt.*;
import java.awt.event.*;
import java.io.*;


public class Start {
	public static void main (String[] args){
		
	try {
	BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); 
	System.out.print("Bitte den Betrag eingeben: "); 
	String line = in.readLine();

	} 
	catch( IOException ioex) { 
	ioex.printStackTrace(); 
	}
	
	
	System.out.print(line); 
	
		
	}
	
	
	
}

verstehe ich richtig, dass "line" meine variable ist, mit der "usereingabe". diese eingabe gilt ja konvertiert zu werden, damit ich mit dem wert arbeiten kann. es müsste ein double-wert sein, da der user auch kommawerte eingeben darf.

da kommata zu probleme führen können, kann ich mit
Code:
line.Replace(",", ".");
dieses problem umgehen? und wenn ja, was ist, wenn der benutzer punkte statt komma benutzt? gibt es probleme?
 
B

bygones

Gast
Du hast die Variable line innerhalb eines Blocks definiert, also ist sie nur in diesem Block sichtbar, außerhalb nicht.

Code:
String line;
try {
   BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
   System.out.print("Bitte den Betrag eingeben: ");
   line = in.readLine();

   }
   catch( IOException ioex) {
   ioex.printStackTrace();
   }

   System.out.print(line);

du liest eine String ein (richtig über readLine()), wenn du den in einen double Wert parsen willst musst du zB
Code:
double d = Double.parseDouble(line);
Dabei kann eine NumberFormatException geworfen werden, wenn es sich nicht um eine double Zahl handelt

Wg Komma, genau anders rum, du wirst Probleme bekommen, wenn du Komma als Trenner nimmst. Java ist englisch anlehnend und hat daher 3.5 nicht 3,5 als Zahl !!

Aber mit replace kannst du ein Zeichen ändern, das stimmt !
 

lupinuslupus

Mitglied
Code:
String line; 
	
	try { 
    BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); 
    System.out.print("Bitte den Betrag eingeben: "); 
    line = in.readLine(); 

   	} 
   	catch( IOException ioex) { 
   	ioex.printStackTrace(); 
   	} 

	System.out.print(line); 
	}

gibt : "variable line might not have been initialized" zurück. aber wurde line nicht mittels "String line;" bereits initialisiert?

desweiteren:

kann ich mit:

Code:
try { 
double x = Double.parseDouble(String y) 
} catch (NumberFormatException e) { 
System.out.println("Bitte auch ganze Beträge mit Cents eingeben (Bsp.: 12.00€)");
}

das problem eines NumberFormatException-fehlers beheben, falls der benutzer kein double, sondern int eingibt?
 
B

Beni

Gast
String line; deklariert die Variable nur.

Code:
String line = "abc"; // initialisieren
String line = null; // explizites nicht-initialisieren
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Variablen Variable von void im ActionListener verwenden Allgemeine Java-Themen 3
F JButton und ActionListener Allgemeine Java-Themen 3
F System Tray Menubutton ActionListener Allgemeine Java-Themen 5
V Event Handling ActionListener nur bei "checked" CheckBoxMenuItem Allgemeine Java-Themen 2
K Best Practice Auf die Klasse zugreifen im erzeugten ActionListener Allgemeine Java-Themen 2
S Methode funktioniert nicht als ActionListener Allgemeine Java-Themen 4
C ActionListener - ToggleButton als von KI geklickt "markieren" Allgemeine Java-Themen 2
A ActionListener blockiert Bedienung des ganzen Systems Allgemeine Java-Themen 8
Z Swing Problem mit ActionListener Allgemeine Java-Themen 6
X getText undefiniert in ActionListener Allgemeine Java-Themen 5
D ActionListener wird mit jedem Mal öfter aufgerufen Allgemeine Java-Themen 2
F Swing NetBeans nimmt ActionListener nicht an. Allgemeine Java-Themen 2
C Event Handling ActionListener manuell auslösen Allgemeine Java-Themen 8
G Button-Registrierung beim ActionListener erst NACH Tastendruck Allgemeine Java-Themen 2
P ActionListener / Label Name auslesen Allgemeine Java-Themen 2
C ActionListener zwei Buttons zuweisen Allgemeine Java-Themen 11
T ActionListener und Singleton Allgemeine Java-Themen 15
J ActionListener-Klasse will Methode nicht annehmen Allgemeine Java-Themen 6
G Übergabeparameter an ActionListener Allgemeine Java-Themen 9
Z Mit ActionListener in anderem Frame lauschen? Allgemeine Java-Themen 3
W 2 Klassen + ActionListener Allgemeine Java-Themen 2
G Anonymen Buttons in for schleife ActionListener hinzufügen Allgemeine Java-Themen 5
C JTree: ActionListener auf die Nodes Allgemeine Java-Themen 3
C ActionListener reagiert zu oft Allgemeine Java-Themen 5
MQue ActionListener und GUI trennen Allgemeine Java-Themen 3
L ActionListener / Buttons Allgemeine Java-Themen 8
E ActionListener Allgemeine Java-Themen 8
TheJavaKid Programmablauf anhalten bis actionlistener ausgeführt wurde Allgemeine Java-Themen 6
minzel ActionListener aus Package Allgemeine Java-Themen 24
F AbstractAction und ActionListener Allgemeine Java-Themen 2
J variablen wert ändernung mit einer art actionlistener? Allgemeine Java-Themen 4
K ActionListener ohne implements? Allgemeine Java-Themen 2
W ActionListener + Klasse einbinden Allgemeine Java-Themen 2
W Variable Initialisierung mit dem Ergebnis einer Regex Allgemeine Java-Themen 1
A Clean Code: Variable vs. Methode Allgemeine Java-Themen 8
J Wo kommt der Wert der Variable her ? Allgemeine Java-Themen 6
E Variablen Nach Übergabe einer Variable den Constructor aufrufen Allgemeine Java-Themen 16
H lokale Variable bei Optional verwenden Allgemeine Java-Themen 11
A Variable in if initialisieren Allgemeine Java-Themen 23
S Variable als Objekt Name Allgemeine Java-Themen 3
D "Automatisierte", variable verschachtele for-Schleife Allgemeine Java-Themen 9
T statische Variable und nicht-statische Methode Allgemeine Java-Themen 2
P Variable wird in for - loop nicht richtig hochgezählt Allgemeine Java-Themen 11
A Variablen non-static variable cannot be referenced from a static content Allgemeine Java-Themen 4
A Variable, welche Exeption wirft als "Global" deklarieren Allgemeine Java-Themen 13
A Scanner Variable Klassenimtern deklarieren Allgemeine Java-Themen 12
L Variablen Variable nicht aktualisiert Allgemeine Java-Themen 3
denny86 NetBeans Ordnernamen rekursiv auslesen und in Variable verarbeiten Allgemeine Java-Themen 38
R Variable durch mehrere Methoden ändern und nutzen Allgemeine Java-Themen 17
P Static Variable -> unterschiedliche Werte? Allgemeine Java-Themen 1
C Abstrakte Klasse, lokale Variable-Problem Allgemeine Java-Themen 1
T AWT AWT-EventQueue-0 Null_Pointer_Exception durch Variable Allgemeine Java-Themen 12
M Variable ändern bei jedem Schleifendurchlauf Allgemeine Java-Themen 32
F Wert in Variable schreiben, wenn diese gerade genutzt wird Allgemeine Java-Themen 10
P Prüfen ob es Variable mit Namen gibt der als String übergeben wird Allgemeine Java-Themen 7
S JFrame Variable mitgeben Allgemeine Java-Themen 5
M Variable außerhalb Klasse definierbar? Allgemeine Java-Themen 2
X Bild -> lokale Variable -> DB -> lokale Variable Allgemeine Java-Themen 3
F Aktuelle Variable Allgemeine Java-Themen 2
J String Variable verändert sich plötzlich Allgemeine Java-Themen 8
J private static final String variable Allgemeine Java-Themen 8
A Long variable wird negativ??? Allgemeine Java-Themen 1
reibi Classpath Classpath Variable beim Tomcat Allgemeine Java-Themen 2
M Zeiger auf statische Variable Allgemeine Java-Themen 1
H Klassennamen zum Aufruf eines statischen Feldes aus Variable holen Allgemeine Java-Themen 4
F Variable übergeben?! Allgemeine Java-Themen 2
L Variable auch in der function verfügbar machen? Allgemeine Java-Themen 4
M Collections Typ Variable einer generischen Collection ? Allgemeine Java-Themen 4
M Parallele Programmierung: volatile Variable nimmt ungewöhnlichen Wert an Allgemeine Java-Themen 3
iB0T Variable Wert ausrauchen Allgemeine Java-Themen 3
T Variablen Variable wird als nicht genutzt angezeigt Allgemeine Java-Themen 8
S Datentypen Eine Variable von String zu Int ändern Allgemeine Java-Themen 5
Hoppelmann "Variable" in String erkennen Allgemeine Java-Themen 2
B Variable class in java.lang.Object Allgemeine Java-Themen 11
O Variablen Originalname einer übergebenen Variable prüfen Allgemeine Java-Themen 9
X Windows-Environment-Variable per jRegistryKey anpassen Allgemeine Java-Themen 6
P Variable in Array stellen Allgemeine Java-Themen 11
M Arraynamen durch Variable festlegen lassen Allgemeine Java-Themen 5
J Anderem Thread Variable mitgeben Allgemeine Java-Themen 2
nrg Auszulagernder Part, der aber variable Methode/Klasse aufruft Allgemeine Java-Themen 7
I %AppData% Variable für einen Prozess setzen Allgemeine Java-Themen 23
G Variablen Variable extern speichern - wie? Allgemeine Java-Themen 9
M Variablen Wie Variable verfügbar machen? Allgemeine Java-Themen 16
A variable aus einer anderen klasse verändern Allgemeine Java-Themen 5
G Variable Methodenwahl Allgemeine Java-Themen 11
C JFormattedTextField Inhalt einer Variable zuweisen Allgemeine Java-Themen 11
C Variablen Variable einer Klasse in einer anderen Klasse Nutzen Allgemeine Java-Themen 8
B Umgebungsvariable Variable wird nicht übernommen Allgemeine Java-Themen 4
N variable Anzahl von Objektinstanzen zur Laufzeit erstellen Allgemeine Java-Themen 4
C Environment Variable in Pfad -> Datei öffnen Allgemeine Java-Themen 5
Q Variable aus Schleife/Switch benutzen Allgemeine Java-Themen 7
algorismi int-variable Value Change event Allgemeine Java-Themen 3
E Variable dynamisch ausgeben Allgemeine Java-Themen 5
trash super() mit Variable bestücken Allgemeine Java-Themen 3
X Cannot refer to a non-final variable settings inside an inner class defined in a different method Allgemeine Java-Themen 4
A Variable Parameterinhalte an einen Query übergeben? Allgemeine Java-Themen 3
B static Variable / Unterklasse Allgemeine Java-Themen 2
J Was ist schneller? Neue Variable oder neuer Wert speziell int Allgemeine Java-Themen 3
S Innere Klasse: Zugriff auf äußere Variable Allgemeine Java-Themen 5
Semox Fehler - Zuweisung aus BufferedReader an Variable Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben