2 oder mehrere zahlen hintereinander eingeben in einem edit feld
-
Oh sry,werde es mir merken,danke nochmals,aber eine frage hab ich noch
Also da ich ja ein fahrkartenautomaten mache und jetzt an der Zielnr bin,möchte wenn man 777 eingibt (Heilbron) und auf Einzelfahrkarte drückt soll da 3.60€ stehen und wenn ich dann 44(Gießen) eingebe und auf Einzelfahrkarte drücke soll da z.b 4,00€ stehen.
Wie machte ich das bzw wie ist der Code dafür??dankeee
-
Hallo
Zunächst einmal gehe ich davon aus das du ein Programm schreiben willst das nicht von einem Punkt aus berechnen kann sondern das sowohl freie Wahl des Start- als auch des Zielpunktes zuläßt. Am einfachsten wäre da eine n*n-Matrix der Preise. Nehmen wir mal an du hast 3 verschiedene Stationen die untereinander verbunden sind. Dann kannst du ein zweidimensionales Array anlegen in dem die Fahrpreise hinterlegt sind :
const int AnzahlStationen = 3; // Array für die Preise. Der einfachheit halbe verwende ich nicht float, sondern int. // Die Werte geben also Cents an! 0 bedeutet nicht vorhanden const int Preise[AnzahlStationen][AnzahlStationen] = {{0, 220, 320}, {220, 0 ,100}, {320, 100, 0}}; // Bestimme Preis von Station 1 zu 3 int Preis = Preise[0][2];Weitergehende Konzepte wären Netze und Graphen, aber das dürfte noch zu schwer für dich sein.
bis bald
akari
-
Bennez schrieb:
Also da ich ja ein fahrkartenautomaten mache und jetzt an der Zielnr bin,möchte wenn man 777 eingibt (Heilbron) und auf Einzelfahrkarte drückt soll da 3.60€ stehen und wenn ich dann 44(Gießen) eingebe und auf Einzelfahrkarte drücke soll da z.b 4,00€ stehen.
Wie machte ich das bzw wie ist der Code dafür??dankeee
Wie würde dann der Code aussehen,wenn ich das so machen möchte,wie ich es Oben erwähnt hab

-
Bennez schrieb:
Also da ich ja ein fahrkartenautomaten mache und jetzt an der Zielnr bin,möchte wenn man 777 eingibt (Heilbron) und auf Einzelfahrkarte drückt soll da 3.60€ stehen und wenn ich dann 44(Gießen) eingebe und auf Einzelfahrkarte drücke soll da z.b 4,00€ stehen.
so zum Beispiel:
Mach noch einen Knopf für "Fahrpreis ausgeben". Dazu eine Klick-Methode, in der die Start(A)- und Ziel(B)nummer eingelesen werden. Außerdem brauchst du eine Tabelle, wo hinterlegt ist wieviel die Fahrt von A nach B kostet:
A0 A1 A2 .. usw -------------------------------- B0 | --- 1,2 1,6 ... usw | B1 | 1,4 --- 1,8 ... uswWenn A von 0 bis 9 geht und B von 0 bis 9 geht, kannst du ja ein Feld nehmen, in das du die cent-Fahrpreise schreibst:
const int FahrpreiseEinzel[10][10]= {{0,120,160,...,usw},{140,0,180,...,usw},{...}};Wenn jetzt Start (A) = 2 ist und Ziel (B) = 1, dann ist der Fahrpreis:
LabelFahrpreis->Caption= IntToStr(FahrpreiseEinzel[A][B]) + " cent";Dann steht auf dem Label: 180 cent

Edit: da war ich wohl zu spät... @Bennez: täusche ich mich oder sollen wir deine Hausaufgaben machen? Wir geben dir hier gute Hinweise, einen Programmcode musst du aber selbst daraus machen.
-
Hallo
Auch nicht anders. Du must nur noch eine Umsetzung von Zielnummer zu Arrayindex einbauen. Das geht am einfachsten mit einen assoziativen Container
#include <map> ... // Definition der möglichen Zielnummern. Sollte als Member des Forms deklariert werden std::map<AnsiString, int> Zielnummern; Zielnummern.insert("777", 0); Zielnummern.insert("55", 1); Zielnummern.insert("954", 2); ... try { int Start = Zielnummern[EditStart->Text]; int Ziel = Zielnummern[EditZiel->Text]; int Preis = Preise[Start][Ziel]; } catch(...) { ShowMessage("Gültige Stationen eingeben!"); }bis bald
akari
-
akari schrieb:
Du must nur noch eine Umsetzung von Zielnummer zu Arrayindex einbauen. Das geht am einfachsten mit einen assoziativen Container
Ich glaube das solltest du für Bennez einfacher ausdrücken, wenn du verstehst was ich meine...

-
ja etwas hehe,also so viel ahnung hab ich leider nicht

brauch halt nurnoch das,dann bin ich so gut wie fertig.und weiß halt net WO genau ich den Code hinschreiben soll...

sry..:(
-
Hallo
Den gezeigten Code solltest du verstehen wenn du die notwendigen C++ Grundkenntnisse hast. Wenn nicht arbeite bitte erstmal ein Tutorial durch, insbesondere OOP, und fange mit Konsolenprogrammen an, bevor du dich an GUI-Programmen versuchst.
Und wie schon gesagt machen wir hier keine kompletten Hausaufgaben für dich, ums selber denken, ausprobieren und arbeiten kommst du nicht rum.
bis bald
akari
-
Das vorgeschlagene Feld mit A mal B Elementen (sprich: Fahrpreisen) deklarierst du als globale Variable.
Die Auswertung von Start- und Zielbahnhof (Nummern in den Edit-Feldern) machst du in einer Klick-Methode (wie btn1Click) eines neuen Buttons "Fahrpreisausgabe". Dort kannst du die eingegebenen Start- bzw. Zielnummern benutzen, um einen Fahrpreis aus dem AxB-Feld auf einem Label auszugeben. Dazu brauchst du allerdings sinnvolle Start- und Zielnummern (am Besten 0 bis 9 für 10 Bahnhöfe).
In einem Edit-Feld stehen übrigens AnsiChar-Zeichen... wenn du daraus Integer-Zahlen machen willst, brauchst du die Funktion StrToInt().
Wie du einen Wert aus dem Feld auf einem Label anzeigst, habe ich dir weiter oben schon gepostet.

Wir wollen dir gern helfen, versteh uns nicht falsch, aber seinen Quellcode muss jeder selbst schreiben!

Deswegen lies dir nochmal von oben bis unten diesen Thread durch und was du nicht verstehst solltest du nachschlagen - es ist nicht so schwer wie du denkst!
-
okay danke,ich verushcs ma^^