Hallo zusammen,
ich hoffe ihr hattet schöne Feiertage und ihr könnt mir bei einem kleinen Problem helfen. Ich mache eine Ausbildung zur Fachinformatikerin im 1. Lehrjahr, allerdings stehe ich auf Kriegsfuß mit der Programmierung.
Und da wäre ich auch schon bei meinem Problem, dies ist nur eine Teilaufgabe … bzw. nicht mal das. Sagen wir so es ist ein Freiwilliger Teil, den ich noch etwas verkomplizieren musste. Ich bin mir sicher, die Lösung ist super einfach und ich komme nicht drauf.
Dieser Programmteil soll das eingegebene Geld mit den „Kosten“ verrechnen und dann das bestmögliche Wechselgeld ausgeben. Soweit so gut. Das tut mein Programm. Als nächstes Schmankerl, sollten wir dann (wenn wir wollten … Freiwillig) das mögliche Wechselgeld in einer Datei Speichern und bei Aufruf des Programms abfragen … durch den eingeworfenen/ausgegebenen Betrag verändert sich die Anzahl der Scheine/Münzen und wird wieder zurück geschrieben. Gut, nicht berücksichtigt wird nun jedoch was geschieht, wenn z.B. laut Programm 20 Cent ausgegeben werden sollen, diese Münze aber nicht mehr vorhanden ist. Bisher habe ich dafür keine Lösung gefunden.
Mein Code sieht schrecklich aus ... das weiß ich, wirklich vielen Dank für jeden der sich durch meine Qualen quält
Ich steht grad wirklich auf dem Schlauch, also helft mir bitte, aber dreht das Wasser bitte nur langsam auf sonst werd ich nass.
Nochmals Danke
ich hoffe ihr hattet schöne Feiertage und ihr könnt mir bei einem kleinen Problem helfen. Ich mache eine Ausbildung zur Fachinformatikerin im 1. Lehrjahr, allerdings stehe ich auf Kriegsfuß mit der Programmierung.
Und da wäre ich auch schon bei meinem Problem, dies ist nur eine Teilaufgabe … bzw. nicht mal das. Sagen wir so es ist ein Freiwilliger Teil, den ich noch etwas verkomplizieren musste. Ich bin mir sicher, die Lösung ist super einfach und ich komme nicht drauf.
Dieser Programmteil soll das eingegebene Geld mit den „Kosten“ verrechnen und dann das bestmögliche Wechselgeld ausgeben. Soweit so gut. Das tut mein Programm. Als nächstes Schmankerl, sollten wir dann (wenn wir wollten … Freiwillig) das mögliche Wechselgeld in einer Datei Speichern und bei Aufruf des Programms abfragen … durch den eingeworfenen/ausgegebenen Betrag verändert sich die Anzahl der Scheine/Münzen und wird wieder zurück geschrieben. Gut, nicht berücksichtigt wird nun jedoch was geschieht, wenn z.B. laut Programm 20 Cent ausgegeben werden sollen, diese Münze aber nicht mehr vorhanden ist. Bisher habe ich dafür keine Lösung gefunden.
Mein Code sieht schrecklich aus ... das weiß ich, wirklich vielen Dank für jeden der sich durch meine Qualen quält
Java:
import java.io.*;
import java.util.Scanner;
public class wechsel{
private static Scanner scanner = new Scanner(System.in);
private static final double kosten = 7.1;
public static void einlesen(double[][]geld) throws IOException{
java.lang.String temp;
int x = 0;
int y = 0;
java.io.BufferedReader oReader = new java.io.BufferedReader(new java.io.InputStreamReader(new java.io.FileInputStream(new java.io.File("wechsel.txt"))));
x=0;
while ((temp = oReader.readLine()) != null) {
java.util.StringTokenizer stWerte = new java.util.StringTokenizer(temp,",");
x=0;
while(stWerte.hasMoreTokens()) {
geld[y][x] = java.lang.Double.parseDouble(stWerte.nextToken());
x++;
if (x%2==0) {
System.out.println("Anzahl "+geld[y][0]+" EURO Scheine/Muenzen: \t"+(int)geld[y][1]);
}
}
y++;
}
}
public static void einwurf(double[][]geld)throws IOException{
System.out.print("Wieviel Geld wurde eingeworfen?: ");
String g = scanner.nextLine();
double einwurf = Double.parseDouble(g.replace(',', '.'));
double rest = einwurf - kosten;
for (int j=0;j<geld.length;j++){
geld[j][1] += einwurf / geld[j][0];
einwurf = einwurf % geld[j][0];
einwurf = Math.round(einwurf*100)/100.00;
System.out.println("Menge an "+geld[j][0]+" EURO Scheine/Muenzen: \t"+(int)geld[j][1]);
}
System.out.println();
wechselGeld(geld, rest);
}
public static void wechselGeld(double[][]geld, double rest)throws IOException{
double[][] wechselGeld = new double [9][2];
wechselGeld[0][1] = 50.00;
wechselGeld[1][1] = 20.00;
wechselGeld[2][1] = 10.00;
wechselGeld[3][1] = 5.00;
wechselGeld[4][1] = 2.00;
wechselGeld[5][1] = 1.00;
wechselGeld[6][1] = 0.50;
wechselGeld[7][1] = 0.20;
wechselGeld[8][1] = 0.10;
System.out.println();
System.out.println("Dies ist die neue Ausgabe der Textfile:");
for (int i=0;i<wechselGeld.length;i++){
wechselGeld[i][0] = rest / wechselGeld[i][1];
rest = rest % wechselGeld[i][1];
rest = Math.round(rest*100)/100.00;
geld[i][1] -= (int) wechselGeld[i][0];
System.out.println("Menge an "+geld[i][0]+" EURO Scheine/Muenzen: \t"+(int)geld[i][1]);
}
System.out.println();
ausgabe(geld);
}
public static void ausgabe(double[][] geld)throws IOException{
FileWriter fw = new FileWriter("wechsel.txt");
BufferedWriter bw = new BufferedWriter(fw);
for (int i = 0; i<geld.length; i++) {
bw.write(geld[i][0] + "," + (int)geld[i][1]);
bw.newLine();
}
bw.close();
}
public static void main(String[] args) throws IOException{
double[][] geld= new double [9][2];
System.out.println("Aus der Textfile ausgelesen:");
einlesen(geld);
System.out.println();
einwurf(geld);
}
}
Ich steht grad wirklich auf dem Schlauch, also helft mir bitte, aber dreht das Wasser bitte nur langsam auf sonst werd ich nass.
Nochmals Danke