#include #include #include typedef struct { int cislo; float castka; } TUcet; TUcet ucet[10010]; int pocet = 0; void prevod(int u1, int u2, float c) { int i; int ua = -1, ub = -1; for (i = 0; i < pocet; i++) { if (ucet[i].cislo == u1) ua = i; if (ucet[i].cislo == u2) ub = i; } if (ua >= 0) { if (ucet[ua].castka >= c) { if (ub >= 0) { ucet[ua].castka -= c; ucet[ub].castka += c; printf("Prevedeno %.2f z uctu %010d na ucet %010d.\n", c, u1, u2); } else printf("Ucet %010d neexistuje.\n", u2); } else { printf("Nedostatek penez.\n"); if (ub < 0) printf("Ucet %010d neexistuje.\n", u2); } } else { printf("Ucet %010d neexistuje.\n", u1); if (ub < 0) printf("Ucet %010d neexistuje.\n", u2); } } void status(int verb) { int i; float c = 0; printf("Pocet uctu: %d\n", pocet); for (i = 0; i < pocet; i++) { if (verb) { printf("%010d %10.2f\n", ucet[i].cislo, ucet[i].castka); } c += ucet[i].castka; } printf("Celkem: %10.2f\n", c); } int hledej(int u) { int i; for (i = 0; i < pocet; i++) if (ucet[i].cislo == u) return(i); return(-1); } int main(void) { char prikaz[12]; int u, i; float c; do { if (scanf("%s", prikaz) == EOF) { printf("Konec.\n"); return(0); } switch (prikaz[0]) { case 'Z' : scanf("%d", &u); if (hledej(u) >= 0) printf("Ucet %010d uz existuje.\n", u); else { ucet[pocet].cislo = u; ucet[pocet].castka = 0; pocet++; printf("Ucet %010d vytvoren.\n", u); } break; case 'U' : scanf("%d %f", &u, &c); i = hledej(u); if (i >= 0) { ucet[i].castka += c; printf("Ulozeno %.2f na ucet %010d.\n", c, u); } else printf("Ucet %010d neexistuje.\n", u); break; case 'V' : scanf("%d %f", &u, &c); i = hledej(u); if (i >= 0) { if (ucet[i].castka >= c) { ucet[i].castka -= c; printf("Vybrano %.2f z uctu %010d.\n", c, u); } else printf("Nedostatek penez.\n"); } else printf("Ucet %010d neexistuje.\n", u); break; case 'P' : scanf("%d %d %f", &u, &i, &c); prevod(u, i, c); break; case 'S' : status(0); break; case 'L' : status(1); break; case 'R' : pocet = 0; printf("Reset systemu.\n"); break; } printf("\n"); } while (1); }