Registrierkasse...

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Registrierkasse...

    Hi!

    langsam kotzt es mich an, das wir immer Aufgaben bekommen, wo Sachen drin vorkommen, die wir in der Vorlesung nicht schaffen (Arrays, Strings).
    Also ich soll ein Programm schreiben, welches eine Registrierkasse simuliert. Der "Kunde" gibt Produkt + Preis ein, und zwar solange bis er das Wort "ende" eingibt. Das Programm soll dann alles als Kassenzettel (mit vorgegebener Formatierung) als Tabelle mit Endsumme ausgeben. Hab heute viel rumprobiert, immer wieder geändert usw. Debugger meckert auch nicht, aber statt der Ausgabe kommen nur komische Symbole *seufz*

    Quelltext (wäre schön, wenn ihr euch daran orientieren könnt :roll: :wink: :(

    Quellcode

    1. #include <iostream>
    2. #include <string>
    3. using namespace std;
    4. int main ()
    5. {
    6. string s[10];
    7. char ende=0;
    8. double preis[10];
    9. int k=0;
    10. cout << " Registrierkasse, ihre Eingabe bitte, Ende mit mit dem Wort 'ende'!" << endl;
    11. while ((k<10) && (ende='0'))
    12. {
    13. cout << " Produkt: ";
    14. cin >> s[k];
    15. cout << " Preis: ";
    16. cin >> preis[k];
    17. if (s[k]=="ende")
    18. {
    19. ende='1';
    20. while (k<9)
    21. {
    22. k=k+1;
    23. s[k]=="nichts";
    24. preis[k]='0';
    25. }
    26. }
    27. k=k+1;
    28. }
    29. s[10]=="nichts";
    30. preis[10]='0';
    31. k=0;
    32. while (k<11)
    33. {
    34. cout << "Produkte: " << s[k] << " - " << preis[k] << endl;
    35. k=k+1;
    36. }
    37. system("pause");
    38. return 0;
    39. }
    Alles anzeigen


    Das Hauptproblem ist, dass ich nicht weiß, wann das Wort ende eingegeben wird und deshalb die letzten "k" mit 0 belegen muss (soll man wohl nicht so machen...). Naja wenigstens sind keine Gotos drin, (@ void :) )

    danke an alle die mir hier immer so nett helfen ;) Bevor das nicht funktioniert brauch ich mich um die Formatierung gar nicht kümmern...

    cewbie
  • Re: Registrierkasse...

    "cewbie" schrieb:

    Naja wenigstens sind keine Gotos drin, (@ void :) )

    Ja,das sieht schon bedeutend besser aus.
    Aber jetzt erstmal einiges grundlegendes.
    Wenn du nen Array der Größe 10 anlegst,dann sind 0-9 gültige Indexe.
    Deshalb ist das:

    Quellcode

    1. s[10]=="nichts";
    2. preis[10]='0';

    und das

    Quellcode

    1. while (k<11)

    der Tod deines Programms :wink: .

    Und dann das hier:

    Quellcode

    1. preis[k]='0';

    '0' ist ein char und somit ein integraler Datentyp.Den kannst du zwar nem double zuweisen,allerdings entspricht dass dann dem ASCII Wert den das Zeichen 0 hat.
    Somit steht da in etwa preis[k] = 48.
    Richtig wäre preis[k]=0.0;

    Gruß void
    "Probleme kann man niemals mit derselben Denkweise lösen,
    durch die sie entstanden sind." (A. Einstein)
  • Re: Registrierkasse...

    "void" schrieb:



    Und dann das hier:

    Quellcode

    1. preis[k]='0';

    '0' ist ein char und somit ein integraler Datentyp.Den kannst du zwar nem double zuweisen,allerdings entspricht dass dann dem ASCII Wert den das Zeichen 0 hat.
    Somit steht da in etwa preis[k] = 48.
    Richtig wäre preis[k]=0.0;

    Gruß void


    Hast wie immer recht, es funktioniert.