Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Rätselecke » noob braucht hilfe

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
13.12.2002, 18:32 Uhr
~leviathan
Gast


Hi leute, brauche dringend jemand der mir erkärt nzw. den quellcode postet für folgende aufgabe. sorry hab keine ahnung von c aber brauch die aufgabe dringend.

Schreiben Sie ein Programm zur Umrechnung eines Währungsbetrags von Euro in eine der europäischen Währungen oder umgekehrt. Sie können dabei

Währungsbetrag, die "Richtung" der Umrechnung (von Euro oder in Euro) und die Währung im Programm vom Nutzer erfragen (Bsp. "Betrag? " (Eingabe), "von Währung oder in Währung? " (Eingabe), "Währung? " (Eingabe))
oder (besser)


die Angaben über Kommandozeilenargumente übergeben (Bsp. "konvertiere 100 in DEM" bzw. "konvertiere 100 von DM" für die Umrechnung von Euro in D-Mark bzw. von D-Mark in Euro).
Benutzen Sie die untenstehende Umrechnungstabelle (Quelle). Die Währung soll vom Nutzer wie in der Tabelle mit einem Kürzel angegeben werden (also DEM, FRF, etc.).


Währung 1 EURO
Deutschland (DEM) 1,95583
Frankreich (FRF) 6,55957
Italien (ITL) 1936,27
Spanien(ESP) 166,386
Holland (NLG) 2,20371
Belgien(BEF) 40,3399
Österreich (ATS) 13,7603
Finnland (FIM) 5,94573
Portugal (PTE) 200,482
Irland (IEP) 0,787564
Luxembourg (LUF) 40,3399
Griechenland (GRD) 340,750

Währung in EURO
1 Deutsche Mark (DEM) 0,51129
1 Französicher Franc (FRF) 0,15245
1 Italian Lire(ITL) 0,0005165
1 Spanisch Pesete (ESP) 0,006010
1 Dutch Gulden (NLG) 0,45378
1 Belgan Franc (BEF) 0,024789
1 Österreichischer Schilling (ATS) 0,072673
1 Finnish Mark (FIM) 0,168188
1 Portugese Escudo (PTE) 0,004988
1 Irisches Pfund (IEP) 1,2697
1 Luxembourg Franc (LUF) 0,024789
1 Griechische Drachme (GRD) 0,002935

thx schonmal im vorraus
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
14.12.2002, 16:33 Uhr
~0xdeadbeef
Gast


Bah, ein Parser. Im Grunde simpel, aber nervig zu coden. Als gut. Zunächst die benötigten Header:

C++:
#include <stdio.h>
#include <stdlib.h>


In C würde ich das ganze so machen, dass ich mir zwei Umwandlungsfunktionen schreibe - eine von Euro, eine zu Euro, die den Betrag und die Währung entgegennehmen. Für die Währungen würde ich mir Konstanten zurechtlegen:

C++:
#define DEM (1.95583)
#define FRF (6.55957)
#define ITL (1936.27)


und so weiter. Die Funktionen sähen dann etwa so aus:

C++:
double vonEuro(double betrag, double currency) { return betrag * currency; }
double inEuro(double betrag, double currency) { return betrag / currency; }


Damit bist du sogar ein bißchen genauer als die Aufgabenstellung, die bei den Umrechnungskursen zu Euro auf die sechste Nachkommastelle rundet. Als nächstes das Hauptprogramm. Du kriegst die Kommandozeilenparameter als Strings, willst aber zwei Zahlen, den Betrag und den Währungskurs. Für den Betrag gibt es in der stdlib die Funktion atof, für die Währung schreibst du ne Funktion, etwa so:

C++:
double currencyFromString(char* str) {
  if (!strcmp(str, "DEM")) return DEM;
  if (!strcmp(str, "FRF")) return FRF;
  if (!strcmp(str, "ITL")) return ITL;
}


und so weiter halt. Von der Tastatur liest du in C mit scanf ein. Hier fügt sich die gesamte Aufgabe zusammen:

C++:
int main(int argc, char *argv[]) {
  float betrag, waehrung;
  betrag = atof(argv[1]);
  waehrung = currencyFromString(argv[3]);
  if (!strcmp("argv[2]", "in")) printf("%d EUR", inEuro(betrag, waehrung));
  else printf("%d %s", vonEuro(betrag, waehrung), argv[3]);
}


Dann müsste das gehen. Ich habs nicht getestet, aber das Prinzip wird, denke ich, klar.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Rätselecke ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: