#ifndef CONFIG_H_
#define CONFIG_H_
-unsigned long int num_items;
-char **items;
+/* Eingenommes Geld in Cent */
+unsigned long int money = 0;
+unsigned long int num_items = 0;
-char load_config();
+/* Datenstruktur der verkauften Einträge */
+struct status_t {
+ char key;
+ char *item_name;
+ /* Wieviel kostet der Eintrag (in Cent)? */
+ unsigned int price;
+ /* Wie oft wurde er verkauft */
+ unsigned int times_sold;
+};
+#define MAX_ITEMS 16
+static struct status_t status[MAX_ITEMS];
+
+// unklar bis jetzt was das tun wird
+void load_config();
+
+void load_items();
+void load_state();
+void save_state();
#endif /*CONFIG_H_*/
#include <conio.h>
#include <stdlib.h>
+#include "config.h"
#include "kasse.h"
// conf
// drucker 4 oder 5
uc i = 0;
clrscr();
printf("C128-Kassenprogramm\n\n");
- printf("Eingenommen: %d Euro, Verkauft: %d Flaschen\n\n", money * 100, items_sold);
- for (; i < NUM_ITEMS; ++i)
- printf("Item %x: %s (%d Cents, %d mal verkauft)\n", i, status[i].item_name, status[i].preis, status[i].times_sold);
+ printf("Eingenommen: 1337 Euro, Verkauft: 42 Flaschen\n\n");
+ for (; i < num_items; ++i)
+ printf("Item %x: %s (%d Cents, %d mal verkauft)\n", i, status[i].item_name, status[i].price, status[i].times_sold);
printf("\nBefehle: s) Save Data\n");
}
}
void buy(uc n) {
- int negative = 1;
- uc entered[5] = {49, 0, 0, 0, 0};
- uc i = 0;
- uc c;
- int einheiten;
+ static uc einheiten = 1;
+ static uc c;
if (status[n].item_name == NULL)
printf("ERROR: No such item\n");
else {
printf("Wieviel Einheiten \"%s\"?\n", status[n].item_name);
while (1) {
c = getchar();
- if (c == 13)
+ printf("das war %x\n", c);
+ if (c == 32)
break;
- else if (c == 45 && i == 0)
- negative = -1;
- else if (c > 47 && c < 58)
- entered[i++] = c;
+ else if (c > 47 && c < 60)
+ einheiten += (c - 48);
}
- einheiten = atoi(entered) * negative;
status[n].times_sold += einheiten;
+ money += status[n].price * einheiten;
money += status[n].preis * einheiten;
items_sold += einheiten;
}
static uc c;
/* TODO: remove */
status[0].item_name = "cola";
- status[0].preis = 230;
+ status[0].price = 230;
status[0].times_sold = 0;
status[1].item_name = "mate";
- status[1].preis = 150;
+ status[1].price = 150;
status[0].times_sold = 0;
- for (c = 2; c < NUM_ITEMS; ++c)
+ for (c = 2; c < 15; ++c)
status[c].item_name = NULL;
while (1) {
/* Bildschirm anzeigen */
/* Tastatureingaben abfragen */
c = getchar();
/* und eventuell weitere Dialoge anzeigen */
- if (c > 47 && c < 58)
+ if (c > 47 && c < 60)
buy(c - 48);
else if (c == 115)
save_data();
/* Abkürzung */
#define uc unsigned char
-/* Anzahl Einträge */
-#define NUM_ITEMS 15
-
-/* Eingenommes Geld in Cent */
-static unsigned long int money = 0;
-static unsigned long int items_sold = 0;
-
-/* Datenstruktur der verkauften Einträge */
-struct status_t {
- char *item_name;
- /* Wieviel kostet der Eintrag (in Cent)? */
- unsigned int preis;
- /* Wie oft wurde er verkauft */
- unsigned int times_sold;
-};
-
-static struct status_t status[NUM_ITEMS];