fork download
  1. /* Getraenke Automat Version 0.4 */
  2.  
  3. #include<stdio.h>
  4.  
  5. // --- Funktions-Prototypen ---------------------------
  6. int auswahlGetraenkeSorte();
  7. int eingabeMenge();
  8. float ermittlePreis(int sorte);
  9. int bezahlen(float zuZahlen);
  10. void ausgabeGetraenke(int sorte, int menge);
  11.  
  12. // --- Hauptprogramm ----------------------------------
  13. int main() {
  14. printf("Getraenke Automat v0.4\n\n");
  15.  
  16. int sorte, menge, bezahlt;
  17. float preis, zuZahlen;
  18.  
  19. sorte = auswahlGetraenkeSorte();
  20. preis = ermittlePreis(sorte);
  21. menge = eingabeMenge();
  22. zuZahlen = preis * menge;
  23. bezahlen(zuZahlen);
  24. ausgabeGetraenke(sorte, menge);
  25. printf("\n\nVielen Dank, bitte entnehmen sie ihre Getraenke.\n");
  26.  
  27. return 0;
  28. }
  29.  
  30. // --- Funktionen -------------------------------------
  31. int auswahlGetraenkeSorte() {
  32. int sorte;
  33. printf("Waehlen sie ihr Getraenk aus:\n");
  34. printf("1) Wasser (0,50 Euro)\n");
  35. printf("2) Limonade (1,00 Euro)\n");
  36. printf("3) Bier (2,00 Euro)\n\n");
  37. printf("Geben sie 1, 2 oder 3 ein: ");
  38. scanf("%d", &sorte);
  39. return sorte;
  40. }
  41.  
  42. int eingabeMenge() {
  43. int menge=1;
  44. printf("\nGeben sie die gewuenschte Menge ein: ");
  45. scanf("%d", &menge);
  46. return menge;
  47. }
  48.  
  49. /* ermittelt den Preis zu einer Sorte
  50. Parameter: sorte, Nummer der Sorte
  51. Return-Value: Preis
  52. */
  53. float ermittlePreis(int sorte) {
  54. float preis=0;
  55. switch(sorte) {
  56. case 1: preis = 0.5; break;
  57. case 2: preis = 1.0; break;
  58. case 3: preis = 2.0; break;
  59. }
  60. return preis;
  61. }
  62.  
  63. int bezahlen(float zuZahlen) {
  64. printf("\n--- Bezahlvorgang ---\n");
  65. printf("\nBezahlvorgang abbrechen mit 0\n");
  66. float einwurf;
  67. do {
  68. printf("\nEs fehlen noch %.2f Euro.", zuZahlen);
  69. printf("\nBitte werfen sie ein Geldstueck ein: ");
  70. scanf("%f", &einwurf);
  71. // eingeworfenen Betrag anrechnen
  72. zuZahlen -= einwurf;
  73. } while(zuZahlen > 0.0);
  74. return 1;
  75. }
  76.  
  77. void ausgabeGetraenke(int sorte, int menge) {
  78. printf("\n--- Getraenkeausgabe ---\n");
  79. int i;
  80. for(i=0; i < menge; i++) {
  81. printf("\nFlasche %d von %d der Sorte %d wurde ausgegeben.",
  82. i+1, menge, sorte);
  83. }
  84. }
Success #stdin #stdout 0s 2296KB
stdin
Standard input is empty
stdout
Getraenke Automat v0.4

Waehlen sie ihr Getraenk aus:
1) Wasser (0,50 Euro)
2) Limonade (1,00 Euro)
3) Bier (2,00 Euro)

Geben sie 1, 2 oder 3 ein: 
Geben sie die gewuenschte Menge ein: 
--- Bezahlvorgang ---

Bezahlvorgang abbrechen mit 0

Es fehlen noch 0.00 Euro.
Bitte werfen sie ein Geldstueck ein: 
--- Getraenkeausgabe ---

Flasche 1 von 1 der Sorte -1217703948 wurde ausgegeben.

Vielen Dank, bitte entnehmen sie ihre Getraenke.