Hilfe bei Studiumsaufgabe

Status
Nicht offen für weitere Antworten.

mics123

Mitglied
Hilfe! Ich habe ein völliges Brett vor dem Kopf und keine Ahnung, wie das Grundgerüst dieses Programmes aussehen soll:

Der Eurorechner soll mehr Währungen lernen. DM (wie man hört, rechnen noch viele im Kopf mit DM) und Euro sollen auf jeden Fall dabei sein. Wählen Sie dazu drei weitere Währungen nach Ihrem Belieben.
Die Umrechnungskurse für die fünf Währungen sollen in dem zu schreibenden Programm eingegeben und auch geändert werden können. Umrechnungen sollen von allen Währungen in alle Währungen möglich sein. Die Kurse sollen in einer Datei gespeichert werden.
Ferner soll es möglich sein, mit den Kursen gezielte Umrechnungen durchzuführen: Eingabe eines Betrages z.B. in Euro und Ausgabe der Umrechnung z.B. in Dänischen Kronen. Eine Rundung der Ausgabe wäre nicht schlecht. Es sollen beliebig viele Umrechnungen durchgeführt werden. Der Benutzer entscheidet, wann Schluss sein soll.
Wenn bei der Umrechnung festgestellt wird, dass die Datei mit den Kursen noch nicht existiert, soll der Benuzter aufgefordert werden, die Datei anzulegen.
Wenn für eine Umrechnung der entsprechende Kurs noch nicht gepflegt worden ist, soll der Benutzer aufgefordert werden, den Kurs zu pflegen.

Kann mir vielleicht jemand eine Anleitung geben, ein Grundgerüst erstellen, eine Homepage nennen oder mir sonst Hilfestellung geben? Ich bin echt am Verzweifeln!

Vor allem die Sache mit "Die Umrechnungskurse für die fünf Währungen sollen in dem zu schreibenden Programm eingegeben und auch geändert werden können. Umrechnungen sollen von allen Währungen in alle Währungen möglich sein. Die Kurse sollen in einer Datei gespeichert werden." bereitet mir Kopfzerbrechen!!!

Vielen Dank schonmal,

Mics
 

mics123

Mitglied
Diese Seiten kenne ich alle ... die helfen mir aber keineswegs weiter.

Mein Problem ist, dass ich die Grundstruktur des Programmes brauche ...

MfG
Mics
 

abollm

Top Contributor
Hast du denn noch gar keinen Ansatz für das Programm?

Wenn nein, dann ersteinmal die Aufgabenstellung in sinnvolle Einzelteile zerlegen. Was brauchst du alles für Objekte zur Verarbeitung welcher Daten?

Du brauchst auf jeden Fall eine Eingabe deiner Währungen. Hast du schon überlegt, wie man das machen könnte?

Dann benötigst du eine Methode zum Speichern deiner Daten. Welche Art der Oberfläche hast du dir überlegt? Du siehst, es sind einige (wenige) Dinge auf jeden Fall zu klären, bevor du loshacken kannst.

Ansonsten, einfach gezielter nachfragen.
 

Grizzly

Top Contributor
mics123 hat gesagt.:
Diese Seiten kenne ich alle ... die helfen mir aber keineswegs weiter.

Mein Problem ist, dass ich die Grundstruktur des Programmes brauche ...

MfG
Mics

Ich verstehe nicht ganz das Problem. Was meinst Du bspw. mit der Grundstruktur?
 

0xdeadbeef

Top Contributor
Klingt doch echt nicht so kompliziert. Sie Umrechungen kann man als Properties speichern und laden, dann eine kleine GUI mit 5 Textfeldern (jTextField), in denen man jeweils den Betrag in einer anderen Währung eingeben kann. Beim Drücken von Return hängt man einen Listener ein und berechnet die anderen 4 Beträge in den restlichen Währungen. Die gibt man dann in den entsprechenden Textfeldern aus.
Für die Umrechungsfaktoren kann man ja ebenfalls 5 Textfelder benutzen. Wobei man ja eine Bezugswährung braucht, im Zweifelsfall den Euro: für den Euro selber ist ein Umrechungskurs allerdings nicht wirklich sinnvoll.
 

Bleiglanz

Gesperrter Benutzer
nimm zum speichern einfach eine txt Datei, die du immer komplett liest und wieder komplett rausschreibst...

was soll das überhaupt für ein programm sein? console? dann musst du eine altertümliche menüsteuerung schreiben

print ( 1 = neue Währung eingeben )
print ( 2 = Umrechnen )
print ( 3 = Exit )
print ( geben sie ihre wahl ein)
endlosschleife bis 1,2 oder 3 eingegeben
wenn 1
print geben sie den namen der neuen währung ein
string name = lies name von der konsole
print geben sie den umrechnungskurs zu EUR ein
double kurs = lies kurs von der konsole
speichere das in eine text-datei (append!)
print 1 = noch eine währung
print 2 = zurück zum hauptmenu

wenn 2
usw. usw.
 

mics123

Mitglied
Bleiglanz hat gesagt.:
nimm zum speichern einfach eine txt Datei, die du immer komplett liest und wieder komplett rausschreibst...

was soll das überhaupt für ein programm sein? console? dann musst du eine altertümliche menüsteuerung schreiben

print ( 1 = neue Währung eingeben )
print ( 2 = Umrechnen )
print ( 3 = Exit )
print ( geben sie ihre wahl ein)
endlosschleife bis 1,2 oder 3 eingegeben
wenn 1
print geben sie den namen der neuen währung ein
string name = lies name von der konsole
print geben sie den umrechnungskurs zu EUR ein
double kurs = lies kurs von der konsole
speichere das in eine text-datei (append!)
print 1 = noch eine währung
print 2 = zurück zum hauptmenu

wenn 2
usw. usw.

Genau sowas habe ich gesucht ... vielen Dank!

Ja, es soll ein Konsolenprogramm sein, kein Windows-Applet.
Meine erste Frage wäre: Wo müssen die ganzen Kurse denn eingepflegt werden?
 

Sky

Top Contributor
mics123 hat gesagt.:
Ja, es soll ein Konsolenprogramm sein, kein Windows-Applet.

Also "Windows-Applet" gibt es so einfach mal nicht. Applets sind 'kleine' Programme, die im Browser laufen ergo auf mehr als nur der Windows-Plattform. Es gibt natürlich die Möglichkeit die OS-Version abzufragen und dem Benutzer dann die Ausführung des Programms verweigern, wenn es halt kein Windows ist.
Ansonsten muss ich sagen, dass sich JAVA dadurch auszeichnet, dass es nicht plattformabhängig ist ( bzw. sein will :) ). Das heißt man sollte alles, was mal in JAVA geschrieben wurde auch 'überall' zum Laufen bringen.
 

mics123

Mitglied
Okay, vielen Dank für die Belehrung ;-)

Trotzdem:
Meine erste Frage wäre: Wo müssen die ganzen Kurse denn eingepflegt werden?
 

mics123

Mitglied
Also ... so weit bin ich schonmal gekommen. Leider weiß ich nicht, was genau ich in die in.dat schreiben muss, vielleicht kann mir da jemand helfen ...


Code:
import java.io.*;
import java.math.BigDecimal;

class EuroRechner

{
	final static double EURONACHDM = 1.95583;
    public static void main( String[] args )
    
    {
    	// Variablendeklaration
    	String eingabezeile;
		double dm_betrag, euro_betrag, dollar_betrag, pfund_betrag, franken_betrag;
		BufferedReader in = null;
		BufferedWriter out = null;
    	
    	// Reader erzeugen, öffnet gleichzeitig Datei
		try {
	  		in = new BufferedReader (
	    	new InputStreamReader (
	    	new FileInputStream( "in.dat" ) ) );
		
			} catch( FileNotFoundException e ) 
	{
	    	System.out.println( "Die Datei in.dat konnte nicht gefunden und zum Lesen g&ffnet werden." );
	    	System.exit( 1 );
	}
	
		// Writer erzeugen, öffnet gleichzeitig Datei
		try {
	   		out = new BufferedWriter (
		 	new OutputStreamWriter (
		 	new FileOutputStream( "out.dat" ) ) ); 
		 	
			} catch( IOException e ) 
	{
	    	System.out.println( "Die Datei out.dat konnte nicht zum Schreiben ge&ffnet werden." );
	
		try {
			in.close();
	    	} 	catch( IOException e1 ) 
	    {
			
			System.out.println( "Nicht einmal mehr Aufr&umen ist hier erlaubt!" );
	    }
	    	System.exit( 2 );
	}
	
		// ZEILENWEISE einlesen, konvertieren und herausschreiben
		try {
	    	eingabezeile = in.readLine();
	    	while( eingabezeile != null ) 
	  {
			dm_betrag = Double.valueOf( eingabezeile ).doubleValue(); 
			euro_betrag = dm_betrag / EURONACHDM;
			BigDecimal euro = new BigDecimal( euro_betrag );
			BigDecimal euro_gerundet = euro.setScale( 2, BigDecimal.ROUND_HALF_UP );
		
			out.write( euro_gerundet.toString() );
			out.newLine();
			eingabezeile = in.readLine();
	  }
			} catch( IOException e ) 
		{
	    	System.out.println( "Fehler beim Lesen oder Schreiben." );
		}
    
    	// Dateien schließen
		try {
	    	in.close();
	    	out.close();
			} catch( IOException e ) 
		{
		
			System.out.println( "Selbst beim Schliessen kann noch etwas schief gehen" );
		}    
    
    }
}
 

abollm

Top Contributor
In die Datei "in.dat" schreibst du zeilenweise deine umzuwandelnden Werte, also z.B.

  • 10
    12
    15
    20

Dann sollte dein Programm bis hierhin funktionieren.
 

mics123

Mitglied
Ja, das läuft, danke.
Jetzt rechnet er mir die sich in der in.dat befindlichen Zahlen immer geteilt durch 1.95583 ... das ist ja schonmal ein Anfang.

Aber ich glaube, dass ich da irgendeinen dicken Denkfehler gemacht habe, denn das ist doch eigentlich nicht die Lösung für die Aufgabenstellung.

mics123 hat gesagt.:
Der Eurorechner soll mehr Währungen lernen. DM (wie man hört, rechnen noch viele im Kopf mit DM) und Euro sollen auf jeden Fall dabei sein. Wählen Sie dazu drei weitere Währungen nach Ihrem Belieben.
Die Umrechnungskurse für die fünf Währungen sollen in dem zu schreibenden Programm eingegeben und auch geändert werden können. Umrechnungen sollen von allen Währungen in alle Währungen möglich sein. Die Kurse sollen in einer Datei gespeichert werden.
Ferner soll es möglich sein, mit den Kursen gezielte Umrechnungen durchzuführen: Eingabe eines Betrages z.B. in Euro und Ausgabe der Umrechnung z.B. in Dänischen Kronen. Eine Rundung der Ausgabe wäre nicht schlecht. Es sollen beliebig viele Umrechnungen durchgeführt werden. Der Benutzer entscheidet, wann Schluss sein soll.
Wenn bei der Umrechnung festgestellt wird, dass die Datei mit den Kursen noch nicht existiert, soll der Benuzter aufgefordert werden, die Datei anzulegen.
Wenn für eine Umrechnung der entsprechende Kurs noch nicht gepflegt worden ist, soll der Benutzer aufgefordert werden, den Kurs zu pflegen.
 

abollm

Top Contributor
Mein Vorschlag:

1. Datei für Umrechnungskurse EURO-Landeswährung anlegen, z.B folgender Aufbau:

  • EUR-DM: 1,95583
    EUR-FF: 6,55957
    EUR-ATS: 13,7603
    ...
2. Diese Datei in geeigneter Form einlesen, um die Umrechnungswerte im Programm zuweisen zu können.
3. Entsprechende Methoden zur Dateneingabe (Schleife), zum Umrechnen, zur Kursänderung (ist ja eigentlich Blödsinn, weil die Kurse von der EZB festgeschrieben wurden), zum Abspeichern geänderter Kurse etc. schreiben
4. ...

Die Reihenfolge ist natürlich nicht durchgängig zwingend.
 

mics123

Mitglied
abollm hat gesagt.:
Mein Vorschlag:

1. Datei für Umrechnungskurse EURO-Landeswährung anlegen, z.B folgender Aufbau:

  • EUR-DM: 1,95583
    EUR-FF: 6,55957
    EUR-ATS: 13,7603
    ...
2. Diese Datei in geeigneter Form einlesen, um die Umrechnungswerte im Programm zuweisen zu können.
3. Entsprechende Methoden zur Dateneingabe (Schleife), zum Umrechnen, zur Kursänderung (ist ja eigentlich Blödsinn, weil die Kurse von der EZB festgeschrieben wurden), zum Abspeichern geänderter Kurse etc. schreiben
4. ...

Die Reihenfolge ist natürlich nicht durchgängig zwingend.

1. habe ich mittlerweile begriffen ... habe
1::Euro
0.5106::DM
0.7813::USD
0.6525::CHF
1.4397::GBP

in der in.dat stehen.

2. DAS ist ja das erste Problem: Wie kann ich meinem Programm mitteilen, dass es auf Wunsch, meinetwegen wenn ich (2) auswähle, die Umrechung DM-EUR ausführen soll, wenn ich z.B. (3) auswähle, die Umrechung EUR-USD ausführen soll, ... ???

3. später
4. später
 
G

Guest

Gast
Ich habe dir deinen Code einmal auf die Schnelle umgefrickelt (also bitte keine strengen Maßstäbe anlegen), damit du den Teil zu 2. (siehe mein obiges Posting) angehen und umsetzen kannst. In dem geänderten Code und insbesondere im eingefügten Teil wird die Eingabedatei (umbenannt!) zeilenweise gelesen. In der Eingabedatei wird als Trennzeichen ein ":" verwandt, also bei der Anlage beachten, weil ich diesbezüglich von deinem Standard abgewichen bin.
Es werden pro Zeile zwei Werte (1. Umrechnungswert; 2. Währung) gelesen und auf der Konsole ausgegeben. Die Wertezuweisung etc. dürfte dir damit dann nicht mehr schwerfallen.

BTW: Ich habe die Anzahl der einzulesenden Währungen auf MAX (s. Code) geändert.

Code:
import java.io.*;
import java.math.*;

public class MeinEuroRechner

{
	final static double EURONACHDM = 1.95583;

	final static int MAX = 20;

	public static void main(String[] args)

	{

		// Variablendeklaration
		String eingabezeile;
		double dm_betrag, euro_betrag, dollar_betrag, pfund_betrag, franken_betrag;
		BufferedReader in = null;
		BufferedWriter out = null;

		// Reader erzeugen, öffnet gleichzeitig Datei
		try {
			in = new BufferedReader(new InputStreamReader(new FileInputStream(
					"eurokurse.dat")));
		} catch (FileNotFoundException e) {
			System.out
					.println("Die Datei eurokurse.dat konnte nicht gefunden und zum Lesen geoeffnet werden.");
			System.exit(1);
		}

		// Writer erzeugen, öffnet gleichzeitig Datei
		try {
			out = new BufferedWriter(new OutputStreamWriter(
					new FileOutputStream("out.dat")));

		} catch (IOException e) {
			System.out
					.println("Die Datei out.dat konnte nicht zum Schreiben geoeffnet werden.");

			try {
				in.close();
			} catch (IOException e1) {

				System.out
						.println("Nicht einmal mehr Aufraeumen ist hier erlaubt!");
			}
			System.exit(2);
		}

		// ZEILENWEISE einlesen, konvertieren und herausschreiben
		try {
			eingabezeile = in.readLine();
			while (eingabezeile != null) {
				eingabezeile = in.readLine();
				if (eingabezeile != null) {
					int feldNummer = 0;
					String[] kursTokens = new String[MAX];
					String[] waehrungTokens = new String[MAX];

					String rest = eingabezeile.toString();
					int idx;

					while (feldNummer < kursTokens.length -1
							&& (idx = rest.indexOf(':')) >= 0) {
						kursTokens[feldNummer++] = rest.substring(0, idx);
						waehrungTokens[feldNummer] = rest.substring(idx+1);
						rest = rest.substring(idx + 1);
					}
					System.out.println("Zeileninhalt      : " + eingabezeile);
					System.out.println("   Umrechnungskurs: " + kursTokens[0]);
					System.out.println("      Währung     : " + waehrungTokens[1]);

				}

				/*
				 dm_betrag = Double.valueOf(eingabezeile).doubleValue();
				 euro_betrag = dm_betrag / EURONACHDM;
				 BigDecimal euro = new BigDecimal(euro_betrag);
				 BigDecimal euro_gerundet = euro.setScale(2,
				 BigDecimal.ROUND_HALF_UP);

				 out.write(euro_gerundet.toString());
				 out.newLine();
				 */

			}
		} catch (IOException e) {
			System.out.println("Fehler beim Lesen oder Schreiben.");
		}

		// Dateien schließen
		try {
			in.close();
			out.close();
		} catch (IOException e) {

			System.out
					.println("Selbst beim Schliessen kann noch etwas schief gehen");
		}

	}
}
 

0xdeadbeef

Top Contributor
Keiner ist so irre wie ich:

JCurrency.java (Hauptklasse, Swing-Frame, mit VE hingesaut):
Code:
import java.awt.GridLayout;
import java.awt.Point;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
/**
 * @author 0xdeadbeef
 */
public class JCurrency extends JFrame {

	private javax.swing.JPanel jContentPane = null;
	private JLabel jLabel1 = null;
	private JLabel jLabel5 = null;
	private JLabel jLabel2 = null;
	private JLabel jLabel3 = null;
	private JLabel jLabel4 = null;
	private JTextField jTextField5 = null;
	private JTextField jTextField1 = null;
	private JTextField jTextField2 = null;
	private JTextField jTextField3 = null;  //  @jve:decl-index=0:visual-constraint="252,103"
	private JTextField jTextField4 = null;
	
	static final int numCurrency = 5;
	Props props;
	double factor[];
	double value;
	String name[];
	int posX, posY;
	
	private void init() {
	    factor = new double[numCurrency];
	    name   = new String[numCurrency];
        // load properties
	    props = new Props();
	    props.setHeader("JCurrency v1.0");
	    props.load("JCurrency.ini");
	    // read props
	    for (int i=0; i<numCurrency; i++) {
	        factor[i] = props.get("factor"+i, 1.0);
	        name[i]   = props.get("name"+i, "Euro");
	    }
	}
	
	private void exit() {
	    // store width and height
		Point p = this.getLocation();
		props.set("framePosX", p.x);
		props.set("framePosY", p.y);
		//
	    for (int i=0; i<numCurrency; i++) {
	        props.set("factor"+i, factor[i]);
	        props.set("name"+i, name[i]);
	    }
	    props.save("JCurrency.ini");
            System.exit(0);
	}
	
	private void update() {
	    jTextField1.setText(Double.toString(value*factor[0]));
	    jTextField2.setText(Double.toString(value*factor[1]));
	    jTextField3.setText(Double.toString(value*factor[2]));
	    jTextField4.setText(Double.toString(value*factor[3]));
	    jTextField5.setText(Double.toString(value*factor[4]));
	}
	
	private JTextField getJTextField1() {
		if (jTextField1 == null) {
			jTextField1 = new JTextField("0.0");
			jTextField1.addActionListener(new java.awt.event.ActionListener() { 
				public void actionPerformed(java.awt.event.ActionEvent e) {    
					value = Double.parseDouble(e.getActionCommand())/factor[0];
					update();
				}
			});
		}
		return jTextField1;
	}
	private JTextField getJTextField2() {
		if (jTextField2 == null) {
			jTextField2 = new JTextField("0.0");
			jTextField2.addActionListener(new java.awt.event.ActionListener() { 
				public void actionPerformed(java.awt.event.ActionEvent e) {    
					value = Double.parseDouble(e.getActionCommand())/factor[1];
					update();
				}
			});

		}
		return jTextField2;
	}
	private JTextField getJTextField3() {
		if (jTextField3 == null) {
			jTextField3 = new JTextField("0.0");
			jTextField3.addActionListener(new java.awt.event.ActionListener() { 
				public void actionPerformed(java.awt.event.ActionEvent e) {    
					value = Double.parseDouble(e.getActionCommand())/factor[2];
					update();
				}
			});
		}
		return jTextField3;
	}
	private JTextField getJTextField4() {
		if (jTextField4 == null) {
			jTextField4 = new JTextField("0.0");
			jTextField4.addActionListener(new java.awt.event.ActionListener() { 
				public void actionPerformed(java.awt.event.ActionEvent e) {    
					value = Double.parseDouble(e.getActionCommand())/factor[3];
					update();
				}
			});
		}
		return jTextField4;
	}
	private JTextField getJTextField5() {
		if (jTextField5 == null) {
			jTextField5 = new JTextField("0.0");
			jTextField5.addActionListener(new java.awt.event.ActionListener() { 
				public void actionPerformed(java.awt.event.ActionEvent e) {    
					value = Double.parseDouble(e.getActionCommand())/factor[4];
					update();
				}
			});
		}
		return jTextField5;
	}
	
	public static void main(String[] args) {
	    // create Instance of this static class and call init function
	    new JCurrency();
    }

	/**
	 * This is the default constructor
	 */
	public JCurrency() {
		super();
		init();
		initialize();
	}

	private void initialize() {
		this.setSize(300,200);
		this.setContentPane(getJContentPane());
		this.setTitle("JCurrency");
	    posX   = props.get("framePosX", 0);
	    posY   = props.get("framePosY", 0);    	
	    this.setLocation(posX, posY);
		this.setVisible(true);
		this.addWindowListener(new java.awt.event.WindowAdapter() { 
			public void windowClosing(java.awt.event.WindowEvent e) {    
				exit();
			}
		});
	}

	private javax.swing.JPanel getJContentPane() {
		if(jContentPane == null) {
			jLabel1 = new JLabel(name[0]);
			jLabel2 = new JLabel(name[1]);
			jLabel3 = new JLabel(name[2]);
			jLabel4 = new JLabel(name[3]);
			jLabel5 = new JLabel(name[4]);
			GridLayout gridLayout1 = new GridLayout();
			jContentPane = new javax.swing.JPanel();
			jContentPane.setLayout(gridLayout1);
			gridLayout1.setColumns(2);
			gridLayout1.setRows(5);
			jContentPane.add(jLabel1, null);
			jContentPane.add(getJTextField1(), null);
			jContentPane.add(jLabel2, null);
			jContentPane.add(getJTextField2(), null);
			jContentPane.add(jLabel3, null);
			jContentPane.add(getJTextField3(), null);
			jContentPane.add(jLabel4, null);
			jContentPane.add(getJTextField4(), null);
			jContentPane.add(jLabel5, null);
			jContentPane.add(getJTextField5(), null);
		}
		return jContentPane;
	}
}  //  @jve:decl-index=0:visual-constraint="132,39"

Props.java (Klasse zum Speichern/Laden von Properties):

Code:
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;

/*
 * Created on 29.09.2004
 *
 * Property class tp set/set save/load properties
 * Based on class Properties
 */

/**
 * @author Volker Oth 
 */
public class Props {
    private Properties hash;
    private String header;
    
    /**
     * Constructor
     */
    public Props() {
        hash = new Properties();
        header = new String();
    }
    
    /**
     * Set the property file header
     * @param h
     */
    public void setHeader(String h) {
        header = h;
    }
    
    /**
     * Set string property
     * @param key Name of the Key to set value for 
     * @param value value to set
     */
    public void set(String key, String value) {
        hash.setProperty(key, value);
    }

    /**
     * Set integer property
     * @param key Name of the Key to set value for 
     * @param value value to set
     */
    public void set(String key, int value) {
        hash.setProperty(key, String.valueOf(value));
    }

    /**
     * Set boolean property
     * @param key Name of the Key to set value for 
     * @param value value to set
     */
    public void set(String key, boolean value) {
        hash.setProperty(key, String.valueOf(value));
    }
    
    /**
     * Set double property
     * @param key Name of the Key to set value for 
     * @param value value to set
     */
    public void set(String key, double value) {
        hash.setProperty(key, String.valueOf(value));
    }
    
    /**
     * Get string property
     * @param key Name of the Key to get value for 
     * @param def default value in case key is not found
     */
    public String get(String key, String def) {
        return hash.getProperty(key, def);
    }
    
    /**
     * Get integer property
     * @param key Name of the Key to get value for 
     * @param def default value in case key is not found
     */
    public int get(String key, int def) {
        String s = hash.getProperty(key);
        if (s == null)
            return def;
        return Integer.parseInt(s);
    }
    
    /**
     * Get boolean property
     * @param key Name of the Key to get value for 
     * @param def default value in case key is not found
     */
    public boolean get(String key, boolean def) {
        String s = hash.getProperty(key);
        if (s == null)
            return def;
        return Boolean.valueOf(s).booleanValue();
    }

    /**
     * Get double property
     * @param key Name of the Key to get value for 
     * @param def default value in case key is not found
     */
    public double get(String key, double def) {
        String s = hash.getProperty(key);
        if (s == null)
            return def;
        return Double.valueOf(s).doubleValue();
    }
    
    /**
     * Save property file
     * @param fname file name of property file
     * @return true if ok, false if exception occured
     */
    public boolean save(String fname) {
        try {
            FileOutputStream f = new FileOutputStream(fname);
            hash.store(f, header);
            return true;
        } catch(FileNotFoundException e) {
            return false;
        }
        catch(IOException e) {
            return false;
        }        
    }

    /**
     * Load property file
     * @param fname file name of property file
     * @return true if ok, false if exception occured
     */
    public boolean load(String fname) {
        try {
            FileInputStream f = new FileInputStream(fname);
            hash.load(f);
            return true;
        } catch(FileNotFoundException e) {
            return false;
        }
        catch(IOException e) {
            return false;
        }      
    }
}

JCurrency.ini (ins gleiche Verzcihnis wie die kompilierte Klasse packen, wird ansonsten neu erstellt)
Code:
#JCurrency v1.0
#Wed Oct 27 17:21:31 CEST 2004
framePosY=287
framePosX=491
name4=Lire
factor4=1936.27
name3=Schilling
factor3=13.7603
factor2=6.55957
name2=Francs
factor1=1.95583
name1=Deutsche Mark
factor0=1.0
name0=Euro
 

mics123

Mitglied
Erstmal BIGTHANKS an alle!

Aber soll ich ganz ehrlich sein? Ich verstehe wirklich nur Bahnhof, bin wahrscheinlich zu doof für Java.
Mache diese Aufgabe ja auch nicht, weil ich möchte, sondern weil ich muss ... ;-(((
 

0xdeadbeef

Top Contributor
Viel mehr, als Dir eine komplette Lösung mit grafischer Oberfläche zu präsentieren, kann ich aber nun echt nicht mehr machen ;)
 

abollm

Top Contributor
mics123 hat gesagt.:
Erstmal BIGTHANKS an alle!

Aber soll ich ganz ehrlich sein? Ich verstehe wirklich nur Bahnhof, bin wahrscheinlich zu doof für Java.
Mache diese Aufgabe ja auch nicht, weil ich möchte, sondern weil ich muss ... ;-(((

Ja, da musst du nun durch und d.h, den geposteten Code auch verstehen.
 

mics123

Mitglied
Das alles weiß ich sehr zu schätzen, vielen Dank nochmal.

Ich brauche gar keine grafische Oberfläche, denn soweit kann ich noch gar nicht denken, ich verstehe ja noch nicht mal die Konsolen-Teile wirklich ... wenn ich eine funktionierende Konsolen-Version hätte, könnte ich sie vielleicht mit Hilfe der Java-Referenz Zeile für Zeile lernen, aber eine Grafische Version ist mir momentan echt noch zu heavy.
 
G

Guest

Gast
Anonymous hat gesagt.:
Ich habe dir deinen Code einmal auf die Schnelle umgefrickelt (also bitte keine strengen Maßstäbe anlegen), damit du den Teil zu 2. (siehe mein obiges Posting) angehen und umsetzen kannst. In dem geänderten Code und insbesondere im eingefügten Teil wird die Eingabedatei (umbenannt!) zeilenweise gelesen. In der Eingabedatei wird als Trennzeichen ein ":" verwandt, also bei der Anlage beachten, weil ich diesbezüglich von deinem Standard abgewichen bin.
Es werden pro Zeile zwei Werte (1. Umrechnungswert; 2. Währung) gelesen und auf der Konsole ausgegeben. Die Wertezuweisung etc. dürfte dir damit dann nicht mehr schwerfallen.

BTW: Ich habe die Anzahl der einzulesenden Währungen auf MAX (s. Code) geändert.

Code:
ganz viel code....

Da taucht bei mir jetzt aber ein Problem auf.
Wie sage ich dem Skript. Nimm Inhalt von Zeile eins nach dem Doppelpunkt u. berechne da mal was mit.

Wie lese ich diese eurokurse.dat zum bearbeiten aus u. speichere sie dann wieder ab...?


Fragen über Fragen....
 

abollm

Top Contributor
Anonymous hat gesagt.:
...
Da taucht bei mir jetzt aber ein Problem auf.
Wie sage ich dem Skript. Nimm Inhalt von Zeile eins nach dem Doppelpunkt u. berechne da mal was mit.

Wie lese ich diese eurokurse.dat zum bearbeiten aus u. speichere sie dann wieder ab...?


Fragen über Fragen....

Wenn du dir das folgende Stück Code einmal näher anschaust, dann müsste es dir gleichsam ins Auge springen, wie du die Werte vor und nach dem Doppelpunkt weiterverarbeiten musst.

Code:
               while (feldNummer < kursTokens.length -1
                     && (idx = rest.indexOf(':')) >= 0) {
                  kursTokens[feldNummer++] = rest.substring(0, idx);
                  waehrungTokens[feldNummer] = rest.substring(idx+1);
                  rest = rest.substring(idx + 1);
               }
               System.out.println("Zeileninhalt      : " + eingabezeile);
               System.out.println("   Umrechnungskurs: " + kursTokens[0]);
               System.out.println("      Währung     : " + waehrungTokens[1]);

Die Werte werden zeilenweise in die betreffenden Array-Werte kursTokens[0] und waehrungTokens[1] geschrieben.

Damit hast du für jede eingelesene Zeile die Währung und den betreffenden Kurs dazu. Das mit dem Abspeichern kommt ggf. später. Hab' jetzt nicht so viel Zeit.

Hth
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
hennskand Brauche Hilfe Zwischenzustände von Objekt aus rekursiver Methode speichern Java Basics - Anfänger-Themen 6
Kerstininer Vererbung Hilfe beim lernen von Objektorientierung für eine Klausur Java Basics - Anfänger-Themen 10
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
E Hilfe bei rekursiver Funktion Java Basics - Anfänger-Themen 3
H pdf stempel - Hilfe erbeten Java Basics - Anfänger-Themen 6
KogoroMori21 Wann ist der richtige Zeitpunkt, um sich Hilfe zu suchen? (Bin Informatik-Student) Java Basics - Anfänger-Themen 10
A Hilfe beim Lesen von Pfaden und Systemvariablen Java Basics - Anfänger-Themen 3
F RegEx Hilfe Java Basics - Anfänger-Themen 5
S Hilfe bei Endlosschleife Java Basics - Anfänger-Themen 2
S Hilfe bei Praktischen Aufgaben von Arrays Java Basics - Anfänger-Themen 39
U Ich bräuchte Hilfe Java Basics - Anfänger-Themen 1
Say abstract class und Objekt erzeugen - Dringend Hilfe Java Basics - Anfänger-Themen 10
Justin4687 Benötige Hilfe bei folgender Aufgabe Java Basics - Anfänger-Themen 2
aero043 Hilfe bei BlueJ Hausübung Java Basics - Anfänger-Themen 27
S Hilfe zu einer Aufgabe Java Basics - Anfänger-Themen 5
P Hilfe gesucht Java Basics - Anfänger-Themen 11
D Hilfe bei Calculator Test Java Basics - Anfänger-Themen 15
R Hilfe bei Aufgabe Java Basics - Anfänger-Themen 4
Zentriks Hilfe zu Sieb des Eratosthenes ohne boolean Java Basics - Anfänger-Themen 5
R Java Bücher hilfe Java Basics - Anfänger-Themen 9
U HILFE! - per ActionListener Felder enablen....... Java Basics - Anfänger-Themen 5
I Scheduling: "Quartz" verwenden, Hilfe bei Umstellung Java Basics - Anfänger-Themen 3
I Hilfe bei Klausur Frage Java Basics - Anfänger-Themen 8
L Hilfe! Liste mit Items werden ausgegeben aber nicht in zufälliger Reihenfolge Java Basics - Anfänger-Themen 6
Ekooekoo Hilfe spiel Java Basics - Anfänger-Themen 5
SpiritsHuner Hilfe!! Java Basics - Anfänger-Themen 16
Lacotto Java Kurs Aufgaben Hilfe Java Basics - Anfänger-Themen 14
V Hilfe bei Implementierung einer boolean Methode Java Basics - Anfänger-Themen 6
M HILFE JPanel - Graphics Java Basics - Anfänger-Themen 1
D Hilfe bei einer Aufgabe mit for-Schleife Java Basics - Anfänger-Themen 6
X Hilfe beim Übertragen in eine For-Schleife Java Basics - Anfänger-Themen 1
Neuling47 Denkfehler? Hilfe Java Basics - Anfänger-Themen 11
S Hilfe bei Umänderung von Java Code Java Basics - Anfänger-Themen 16
Robert_Klaus Hamster java Simulation Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 5
X Erste Schritte Hilfe bei einem kleinen Spiel. Java Basics - Anfänger-Themen 19
D Bitte um Hilfe muss es schnellstmöglich erledigen Java Basics - Anfänger-Themen 15
L Hilfe bei RegEx Java Basics - Anfänger-Themen 4
I Bitte um Hilfe zu unterstehenden Code Java Basics - Anfänger-Themen 6
B Brauche Hilfe zu einem Code Java Basics - Anfänger-Themen 5
Neuling47 bräuchte dringend hilfe Java Basics - Anfänger-Themen 6
D Bräuchte Hilfe im Bezug zum printarray() Java Basics - Anfänger-Themen 4
M Bitte um Hilfe bei 2DArrays Java Basics - Anfänger-Themen 8
HeiTim Array hilfe Java Basics - Anfänger-Themen 14
M LCD-Ziffern-Hilfe Java Basics - Anfänger-Themen 6
özkan hilfe!! Java Basics - Anfänger-Themen 4
C Hilfe bei einem Anfängerprojekt Java Basics - Anfänger-Themen 25
D Abrechnung bitte um hilfe Java Basics - Anfänger-Themen 25
J Brauche Hilfe bei for-each Aufgabe Java Basics - Anfänger-Themen 1
D Zahlentabelle Anfänger braucht Hilfe Java Basics - Anfänger-Themen 1
HeiTim Brauche Hilfe soll ein nummeriertes Feld ausgeben lassen Java Basics - Anfänger-Themen 17
S Interaktive Abfrage, Hilfe mit Schleifen! Java Basics - Anfänger-Themen 6
N Hilfe bei der Installation Java Basics - Anfänger-Themen 2
J Brauche Hilfe bei Aufgabe Java Basics - Anfänger-Themen 4
S Hilfe bei Programmierung einer Hotelabrechnung Java Basics - Anfänger-Themen 5
enjoykimii Strukturierte Programmierung Hilfe Java Basics - Anfänger-Themen 29
H Bräuchte hilfe Java Basics - Anfänger-Themen 3
D Snake-Spiel ähnliche Aufgabe Hilfe Java Basics - Anfänger-Themen 3
H Brauche Hilfe Java Basics - Anfänger-Themen 2
D Dijkstra Algorithmus Hilfe!! Java Basics - Anfänger-Themen 9
H Hilfe Java Basics - Anfänger-Themen 6
H Brauche hilfe Java Basics - Anfänger-Themen 3
M Hilfe - Array Aufgabe Java Basics - Anfänger-Themen 8
R Schulaufgabe, Bruache Hilfe mit non-static Methoden Java Basics - Anfänger-Themen 2
kevkev Hilfe bei Schiffe versenken Java Basics - Anfänger-Themen 5
FelixxF Erste Schritte Hilfe bei Fußball Manager Java Basics - Anfänger-Themen 2
C Brauche Hilfe beim Schreiben eines Programmes :/ Java Basics - Anfänger-Themen 1
C Brauche Hilfe um ein Programm zu schreiben Java Basics - Anfänger-Themen 8
josfe1234 Hilfe access denied ("java.io.FilePermission" " " "read") Java Basics - Anfänger-Themen 12
Vivien Hilfe bei Type Conversion Java Basics - Anfänger-Themen 3
Leo0909 Ich brauche Hilfe bei dieser Aufgabe Java Basics - Anfänger-Themen 2
D Hilfe beim Erzeugen eines Arrays NullPointerException wird ausgelöst Java Basics - Anfänger-Themen 11
J Doppelt verkette Liste ich bitte um Hilfe Java Basics - Anfänger-Themen 4
N Laufzeitberechnung - dringende Hilfe! Java Basics - Anfänger-Themen 1
G Java Hilfe Java Basics - Anfänger-Themen 3
J Java List, Bitte um Hilfe Java Basics - Anfänger-Themen 15
J Java List, bitte um Hilfe Java Basics - Anfänger-Themen 3
U anfänger braucht hilfe . wir konnten die aufgaben nicht beantworten Java Basics - Anfänger-Themen 5
A Schleifen, Hilfe! Java Basics - Anfänger-Themen 6
LeonDerStudent Hilfe bei Uniprojekt Java Basics - Anfänger-Themen 2
H Brauche Hilfe in Java Eclipse Programmieraufgabe Neuling Java Basics - Anfänger-Themen 3
B Hilfe bei Map Liste erstellen Java Basics - Anfänger-Themen 10
Kapfski Was habe ich falsch gemacht? Hilfe! Java Basics - Anfänger-Themen 17
R Java (Eclipse) "Lagerverwaltung" HILFE Java Basics - Anfänger-Themen 13
M Bräuchte Hilfe bei diesen Methoden Java Basics - Anfänger-Themen 4
dieter000 Aufgabe Hilfe Java Basics - Anfänger-Themen 18
Gaudimagspam Dringend Java Hilfe benötigt Java Basics - Anfänger-Themen 19
jonathanpizza Hilfe bei einer Übungsaufgabe Java Basics - Anfänger-Themen 6
dieter000 Hilfe bei dem Beispiel, wie gehe ich sowas am besten an? Java Basics - Anfänger-Themen 32
jonathanpizza Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 5
Q Hilfe auf Aufgabe(Matrixmultiplikation) Java Basics - Anfänger-Themen 1
jonathanpizza Hilfe bei der Aufgabe Java Basics - Anfänger-Themen 19
pry bitte Hilfe beim Kreditrechner objektorientiert Java Basics - Anfänger-Themen 6
R Hilfe bei removeduplicates Java Basics - Anfänger-Themen 5
D Brauche Dringend Hilfe...Prozedur/Funktionsprozedur Ergebnis augeben Java Basics - Anfänger-Themen 11
marcooooo einmal noch schnell hilfe bitte:/ Java Basics - Anfänger-Themen 2
Q Hilfe bei Hausaufgeben Java Basics - Anfänger-Themen 2
J Hilfe beim Label animieren Java Basics - Anfänger-Themen 1
S Hilfe Java Basics - Anfänger-Themen 1
JD_1998 Random Array sortieren mit Hilfe einer Methode Java Basics - Anfänger-Themen 4
Kawastori Hilfe bei Methoden Übung Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben