Mittwoch, 2. Dezember 2009

 

Währungsumrechner

Schreiben Sie ein Programm, welches eine Währungsumrechnungstabelle ausgibt. Dazu sind eine Währung (z.B. USD), der Kurs (z.B. 1.4), eine Untergrenze (z.B. 0), eine obergrenze (z.B. 10) und eine Schrittweite (z.B. 0.5) einzugeben. Weiters muss noch angegeben werden, ob die Tabelle von EUR -> Währung oder Währung -> EUR ausgegeben werden soll.

Beispiel:

Währung> USD
Kurs> 1,4
Untergrenze> 1
Obergrenze> 10
Schrittweite> 0,5
USD -> EUR (1) oder EUR -> USD (2)> 1
USD EUR
1,00 0,71
1,50 1,07
2,00 1,43
2,50 1,79
3,00 2,14
3,50 2,50
4,00 2,86
4,50 3,21
5,00 3,57
5,50 3,93
6,00 4,29
6,50 4,64
7,00 5,00
7,50 5,36
8,00 5,71
8,50 6,07
9,00 6,43
9,50 6,79
10,00 7,14

Mit diesem Beispiel soll auch ObjektOrientiertes Programmieren (OOP) geübt werden. Daher verwenden Sie bitte folgende Klassen:



Die Klasse Euro kennt den Umrechnungsfaktor und die Währung und kann Umrechnen (toEuro() bzw. toForeign()).

Die Klasse Tabelle erzeugt mit Hilfe von Euro die entsprechende Tabelle. In der main() Methode von Tabelle sollen dann die Eingaben gemacht werden, die Objekte erzeugt werden sowie die entsprechenden Aufufe der Methoden durchgeführt werden.

Etwa so:


// Eingaben bereits vorhanden...
Euro waehrung = new Euro(kurs, symbol);
Tabelle tabelle = new Tabelle(waehrung, untergrenze, obergrenze, schrittweite);
if (toEuro) {
tabelle.printEuro();
} else {
tabelle.printForeign();
}

Beachten Sie, dass sich diese Euro-Klasse von jener in den letzten Beispielen unterscheidet.


Mögliche Lösung in Python


#!/usr/bin/python
# -"- coding: utf-8 -*-
# waehrungstabelle.py
def frange(start, stop=None, step=None):
if stop is None:
stop = float(start)
start = 0.0
if step is None:
step = 1.0
cur = float(start)
while cur < stop:
yield cur
cur += step

class Euro:
def __init__(self, faktor, symbol):
self.faktor = float(faktor)
self.symbol = symbol
def toEuro(self, betrag):
return betrag / self.faktor
def toForeign(self, betrag):
return betrag * self.faktor

class Tabelle:
def __init__(self, waehrung, start, end, schrittweite):
self.waehrung = waehrung
self.start = start
self.end = end
self.schrittweite = schrittweite
def printEuro(self):
print "%10s %10s" % (self.waehrung.symbol, "EUR")
for wert in frange(self.start, self.end, self.schrittweite):
print "%10.2f %10.2f" % (wert, self.waehrung.toEuro(wert))
def printForeign(self):
print "%10s %10s" % ("EUR", self.waehrung.symbol)
for wert in frange(self.start, self.end, self.schrittweite):
print "%10.2f %10.2f" % (wert, self.waehrung.toForeign(wert))

if __name__ == '__main__':
symbol = raw_input("Währung> ")
kurs = float(raw_input("Kurs> "))
waehrung = Euro(kurs, symbol)
start = float(raw_input("Untergrenze> "))
end = float(raw_input("Obergrenze> "))
step = float(raw_input("Schrittweite> "))
tabelle = Tabelle(waehrung, start, end, step)
if "1" == raw_input("%s -> EUR (1) oder EUR -> %s (2)> " % (symbol,symbol)):
tabelle.printEuro()
else:
tabelle.printForeign()

Labels: , ,


Kommentare:

Kommentar veröffentlichen

Abonnieren Kommentare zum Post [Atom]





<< Startseite

This page is powered by Blogger. Isn't yours?

Abonnieren Posts [Atom]