#include #include #include struct UCET { // char jmeno[10]; long double jmeno; int castka; }; UCET ucty[10001]; int celkPenez = 0; int celkUctu = 0; UCET* najdi(long double jmeno) { UCET* temp = ucty; int i = 0; for (i = 0; i < celkUctu; i++, temp++) { if (jmeno == temp->jmeno) { return temp; } } return NULL; } void zaloz(long double jmeno) { if (najdi(jmeno)) { printf("Ucet %010.0Lf uz existuje.\n\n", jmeno); return; } ucty[celkUctu].jmeno = jmeno; ucty[celkUctu].castka = 0; printf("Ucet %010.0Lf vytvoren.\n\n", jmeno); // pucty[atoi(jmeno)] = &ucty[celkUctu]; celkUctu++; } void uloz(long double jmeno, int castka) { UCET *temp = najdi(jmeno); if (!temp) { printf("Ucet %010.0Lf neexistuje.\n\n", jmeno); return; } temp->castka += castka; printf("Ulozeno %7d.%02d na ucet %010.0Lf.\n\n", castka/100, castka%100, jmeno); celkPenez += castka; } void vyber(long double jmeno, int castka) { UCET *temp = najdi(jmeno); if (!temp) { printf("Ucet %010.0Lf neexistuje.\n\n", jmeno); return; } if (temp->castka >= castka) { temp->castka -= castka; printf("Vybrano %7d.%02d z uctu %010.0Lf.\n\n", castka/100, castka%100, jmeno); } else { printf("Nedostatek penez.\n\n"); return; } celkPenez -= castka; } void preved(long double jmeno1, long double jmeno2, int castka) { UCET *ucet1 = najdi(jmeno1); bool prevod = true; if (!ucet1) { printf("Ucet %010.0Lf neexistuje.\n", jmeno1); prevod = false; } else if (ucet1->castka < castka) { printf("Nedostatek penez.\n"); prevod = false; } UCET *ucet2 = najdi(jmeno2); if (!ucet2) { printf("Ucet %010.0Lf neexistuje.\n\n", jmeno2); return; } if (!prevod) { printf("\n"); return; } ucet2->castka += castka; ucet1->castka -= castka; printf("Prevedeno %7d.%02d z uctu %010.0Lf na ucet %010.0Lf.\n\n", castka/100, castka%100, 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("%010.0Lf %7d.%02d\n", temp->jmeno, temp->castka/100, temp->castka%100); } printf("Celkem: %7d.%02d\n\n", celkPenez/100,celkPenez%100); } void reset() { printf("Reset systemu.\n\n"); celkUctu = 0; celkPenez = 0; } int main() { // hlava = zadek = NULL; int quit = 1; char prikaz[10]; long double jmeno1, jmeno2; int castka, kc, hal; while (quit > 0) { quit = scanf("%s", prikaz); if (!strcmp(prikaz, "ZALOZ")) { scanf("%Lf", &jmeno1); zaloz(jmeno1); } else if (!strcmp(prikaz, "ULOZ")) { scanf("%Lf %d.%d", &jmeno1, &kc, &hal); castka = kc*100 + hal; uloz(jmeno1, castka); } else if (!strcmp(prikaz, "VYBER")) { scanf("%Lf %d.%d", &jmeno1, &kc, &hal); castka = kc*100 + hal; vyber(jmeno1, castka); } else if (!strcmp(prikaz, "PREVED")) { scanf("%Lf %Lf %d.%d", &jmeno1, &jmeno2, &kc, &hal); castka = kc*100 + hal; 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; }