]> git.sur5r.net Git - c128-kasse/blob - kasse.c
fix: parsing of entities
[c128-kasse] / kasse.c
1 #include <stdio.h>
2 #include <conio.h>
3 #include <stdlib.h>
4
5 #include "kasse.h"
6 // conf
7 // drucker 4 oder 5
8 // preise+getraenke
9 //
10 // graphic 4,0,10
11
12
13
14 /* Hauptbildschirm ausgeben */
15 void print_screen() {
16         uc i = 0;
17         clrscr();
18         printf("C128-Kassenprogramm\n\n");
19         printf("Eingenommen: %d Euro, Verkauft: %d Flaschen\n\n", money * 100, items_sold);
20         for (; i < NUM_ITEMS; ++i)
21                 printf("Item %x: %s (%d Cents, %d mal verkauft)\n", i, status[i].item_name, status[i].preis, status[i].times_sold);
22         printf("\nBefehle: s) Save Data\n");
23 }
24
25 /* Wird ausgelagert */
26 void save_data() {
27 }
28
29 void buy(uc n) {
30         int negative = 1;
31         uc entered[5] = {49, 0, 0, 0, 0};
32         uc i = 0;
33         uc c;
34         int einheiten;
35         if (status[n].item_name == NULL)
36                 printf("ERROR: No such item\n");
37         else {
38                 printf("Wieviel Einheiten \"%s\"?\n", status[n].item_name);
39                 while (1) {
40                         c = getchar();
41                         if (c == 13)
42                                 break;
43                         else if (c == 45 && i == 0)
44                                 negative = -1;
45                         else if (c > 47 && c < 58)
46                                 entered[i++] = c;
47                 }
48                 einheiten = atoi(entered) * negative;
49                 status[n].times_sold += einheiten;
50                 money += status[n].preis * einheiten;
51                 items_sold += einheiten;
52         }
53 }
54
55 int main() {
56         static uc c;
57         /* TODO: remove */
58         status[0].item_name = "cola";
59         status[0].preis = 230;
60         status[0].times_sold = 0;
61         status[1].item_name = "mate";
62         status[1].preis = 150;
63         status[0].times_sold = 0;
64         for (c = 2; c < NUM_ITEMS; ++c)
65                 status[c].item_name = NULL;
66         while (1) {
67                 /* Bildschirm anzeigen */
68                 print_screen();
69                 /* Tastatureingaben abfragen */
70                 c = getchar();
71                 /* und eventuell weitere Dialoge anzeigen */
72                 if (c > 47 && c < 58)
73                         buy(c - 48);
74                 else if (c == 115)
75                         save_data();
76                 else if (c == 113)
77                         break;
78         }
79         printf("BYEBYE\n");
80 }