#include #include #include struct UCET { // char jmeno[10]; long double jmeno; float castka; }; UCET ucty[10001]; float celkPenez = 0.f; 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.f; printf("Ucet %010.0Lf vytvoren.\n\n", jmeno); // pucty[atoi(jmeno)] = &ucty[celkUctu]; celkUctu++; } void uloz(long double jmeno, float castka) { UCET *temp = najdi(jmeno); if (!temp) { printf("Ucet %010.0Lf neexistuje.\n\n", jmeno); return; } temp->castka += castka; printf("Ulozeno %.2f na ucet %010.0Lf.\n\n", castka, jmeno); celkPenez += castka; } void vyber(long double jmeno, float 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 %.2f z uctu %010.0Lf.\n\n", castka, jmeno); } else { printf("Nedostatek penez.\n\n"); return; } celkPenez -= castka; } void preved(long double jmeno1, long double jmeno2, float 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 %.2f z uctu %010.0Lf na ucet %010.0Lf.\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("%010.0Lf %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 double jmeno1, jmeno2; float castka; while (quit > 0) { quit = scanf("%s", prikaz); if (!strcmp(prikaz, "ZALOZ")) { scanf("%Lf", &jmeno1); zaloz(jmeno1); } else if (!strcmp(prikaz, "ULOZ")) { scanf("%Lf %f", &jmeno1, &castka); uloz(jmeno1, castka); } else if (!strcmp(prikaz, "VYBER")) { scanf("%Lf %f", &jmeno1, &castka); vyber(jmeno1, castka); } else if (!strcmp(prikaz, "PREVED")) { scanf("%Lf %Lf %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; }