#include #include #include #define JMTYP long int struct UCET { // char jmeno[10]; JMTYP jmeno; float castka; }; UCET ucty[10001]; float celkPenez = 0.f; int celkUctu = 0; UCET* najdi(JMTYP jmeno) { UCET* temp = ucty; int i = 0; for (i = 0; i < celkUctu; i++, temp++) { if (jmeno == temp->jmeno) { return temp; } } return NULL; } void zaloz(JMTYP jmeno) { if (najdi(jmeno)) { printf("Ucet %010ld uz existuje.\n\n", jmeno); return; } ucty[celkUctu].jmeno = jmeno; ucty[celkUctu].castka = 0.f; printf("Ucet %010ld vytvoren.\n\n", jmeno); // pucty[atoi(jmeno)] = &ucty[celkUctu]; celkUctu++; } void uloz(JMTYP jmeno, float castka) { UCET *temp = najdi(jmeno); if (!temp) { printf("Ucet %010ld neexistuje.\n\n", jmeno); return; } temp->castka += castka; printf("Ulozeno %.2f na ucet %010ld.\n\n", castka, jmeno); celkPenez += castka; } void vyber(long int jmeno, float castka) { UCET *temp = najdi(jmeno); if (!temp) { printf("Ucet %010ld neexistuje.\n\n", jmeno); return; } if (temp->castka >= castka) { temp->castka -= castka; printf("Vybrano %.2f z uctu %010ld.\n\n", castka, jmeno); } else { printf("Nedostatek penez.\n\n"); return; } celkPenez -= castka; } void preved(long int jmeno1, long int jmeno2, float castka) { UCET *ucet1 = najdi(jmeno1); if (!ucet1) { printf("Ucet %010ld neexistuje.\n\n", jmeno1); return; } if (ucet1->castka < castka) { printf("Nedostatek penez.\n\n"); return; } UCET *ucet2 = najdi(jmeno2); if (!ucet2) { printf("Ucet %010ld neexistuje.\n\n", jmeno2); return; } ucet2->castka += castka; ucet1->castka -= castka; printf("Prevedeno %.2f z uctu %010ld na ucet %010ld.\n\n", castka, jmeno1, jmeno2); } void statistika(bool list) { printf("Pocet uctu: %d\n", celkUctu); if (list == true) { UCET* temp = ucty; for (int i = 0; i < celkUctu; i++, temp++) printf("%010ld %10.2f\n", temp->jmeno, temp->castka); } printf("Celkem: %10.2f\n\n", celkPenez); } void reset() { printf("Reset systemu.\n\n"); celkUctu = 0; celkPenez = 0.f; } int main() { // hlava = zadek = NULL; int quit = 1; char prikaz[10]; long int jmeno1, jmeno2; float castka; while (quit > 0) { quit = scanf("%s", prikaz); if (!strcmp(prikaz, "ZALOZ")) { scanf("%ld", &jmeno1); zaloz(jmeno1); } else if (!strcmp(prikaz, "ULOZ")) { scanf("%ld %f", &jmeno1, &castka); uloz(jmeno1, castka); } else if (!strcmp(prikaz, "VYBER")) { scanf("%ld %f", &jmeno1, &castka); vyber(jmeno1, castka); } else if (!strcmp(prikaz, "PREVED")) { scanf("%ld %ld %f", &jmeno1, &jmeno2, &castka); preved(jmeno1, jmeno2, castka); } else if (!strcmp(prikaz, "STATISTIKA")) { statistika(false); } else if (!strcmp(prikaz, "LIST")) { statistika(true); } else if (!strcmp(prikaz, "RESET")) { reset(); } // printf("\"%s\"\n", prikaz); prikaz[0] = 0; // quit = (!strcmp(prikaz,"")); // printf("QUIT = [%d]!!! \n", quit); } printf("Konec.\n"); return 0; }