#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
struct rab {
char* master;
double cost;
};
struct auto1 {
char* number;
double km;
rab process;
};
int prov(double n) {
char* s
= (char*)malloc(50 * sizeof(char)); if (s[0] == '\n')
return 0;
else return 1;
}
int proverka_indiv(auto1* a, int n, char* num) {
int k = 0;
for (int i = 0; i < n; i++)
if (strcmp(a
[i
].
number, num
) == 0) k++;
if (k == 0)
return 0;
else return 1;
}
void delet_n(char*& a) {
int i = 0;
while (a[i] != '\n')
i++;
a[i] = '\0';
}
void input(auto1*& a, int& n) {
double w;
int q, fl = 0, e;
printf_s("Введите количество клиентов в банке: ");
e = n;
do {
while (scanf_s("%lf", &w) == 0 || w < 0 || prov(w) == 1) {
printf_s("Вы ввели не то, что надо. Повторите. Ваш ответ: ");
}
q = w;
if (w - q != 0) {
printf_s("Вы ввели дробное число, а надо целое. Повторите.\n");
continue;
}
if (q == 0)
return;
a
= (auto1
*)realloc(a
, (n
+ q
) * sizeof(auto1
)); fl = 1;
for (int i = n; i < q + n; i++) {
a
[i
].
process.
master = (char*)malloc(50 * sizeof(char)); a
[i
].
number = (char*)malloc(50 * sizeof(char)); double e, pl = 0;
char* poiu
= (char*)malloc(50 * sizeof(char)); printf_s("\n Дата последнего изменения: ");
int k = 0;
do {
delet_n(poiu);
k = 1;
} while (proverka_indiv(a, i + 1, poiu) > 0);
a[i].number = poiu;
printf_s(" номер счёта: ");
while (scanf_s("%lf", &a[i].km) == 0 || a[i].km < 0 || prov(a[i].km) == 1) {
printf_s("Вы ввели не то, что надо. Повторите. Ваш ответ: ");
}
printf_s(" ФИО клиента: ");
fgets(a
[i
].
process.
master, 255, stdin
); delet_n(a[i].process.master);
printf_s(" сумма на счёте($): ");
while (scanf_s("%lf", &a[i].process.cost) == 0 || a[i].process.cost < 0 || prov(a[i].process.cost) == 1) {
printf_s("Вы ввели не то, что надо. Повторите. Ваш ответ: ");
}
}
} while (fl == 0);
n += q;
}
void output(auto1* a, int n) {
printf_s("Дата последнего изменения\t\t\t\tномер счёта\t\t\t\tклиент\t\t\t\tсумма на счёте\n");
for (int i = 0; i < n; i++)
printf_s("%-31s %-31.2lf %-31s %-31.2lf\n", a[i].number, a[i].km, a[i].process.master, a[i].process.cost);
//printf_s("%10s\t\t%15s\t\t%7.2lf\t%15s\t\t%20s\t\t%7.2lf\n", a[i].number, a[i].mark, a[i].km, a[i].process.master, a[i].process.work, a[i].process.cost);
}
int main() {
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
struct auto1
* cs
= (auto1
*)malloc(sizeof(auto1
)); int buf = 1, flag = 0, n = 0, a;
double w;
do {
printf_s("что вы хотите сделать?(варианты ответа 1-3)\n 1.Ввод\n 2.Вывод на экран\n 3.Завершить работу\nВаш Ответ: ");
while (scanf_s("%lf", &w) == 0 || w < 0 || w > 8 || prov(w) == 1) {
printf_s("Вы ввели не то, что надо или данного пункта нет в списке задач. Повторите. Ваш ответ: ");
}
a = w;
if (w - a != 0) {
printf_s("Вы ввели дробное число, а надо целое. Повторить.\n");
continue;
}
switch (a) {
case 1: input(cs, n); break;
case 2:if (n != 0)output(cs, n); else printf_s("Вы ещё не ввели данные про авто."); break;
case 3: buf = 0; break;
}
if (buf != 0) {
double e;
printf_s("Вы хотите вернуться в меню?\n 1.да\n 2.нет(выйти из программы)\nВаш ответ: ");
while (scanf_s("%lf", &e) == 0 || (e != 2 && e != 1) || prov(e) == 1) {
printf_s("Вы ввели не то, что надо. Повторите. Ваш ответ: ");
}
if (e == 2)
buf = 0;
}
} while (buf == 1);
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHdpbmRvd3MuaD4Kc3RydWN0IHJhYiB7CgljaGFyKiBtYXN0ZXI7Cglkb3VibGUgY29zdDsKfTsKc3RydWN0IGF1dG8xIHsKCWNoYXIqIG51bWJlcjsKCWRvdWJsZSBrbTsKCXJhYiBwcm9jZXNzOwp9OwppbnQgcHJvdihkb3VibGUgbikgewoJY2hhciogcyA9IChjaGFyKiltYWxsb2MoNTAgKiBzaXplb2YoY2hhcikpOwoJZmdldHMocywgMjU1LCBzdGRpbik7CglpZiAoc1swXSA9PSAnXG4nKQoJCXJldHVybiAwOwoJZWxzZSByZXR1cm4gMTsKfQppbnQgcHJvdmVya2FfaW5kaXYoYXV0bzEqIGEsIGludCBuLCBjaGFyKiBudW0pIHsKCWludCBrID0gMDsKCWZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKQoJCWlmIChzdHJjbXAoYVtpXS5udW1iZXIsIG51bSkgPT0gMCkKCQkJaysrOwoJaWYgKGsgPT0gMCkKCQlyZXR1cm4gMDsKCWVsc2UgcmV0dXJuIDE7Cn0Kdm9pZCBkZWxldF9uKGNoYXIqJiBhKSB7CglpbnQgaSA9IDA7Cgl3aGlsZSAoYVtpXSAhPSAnXG4nKQoJCWkrKzsKCWFbaV0gPSAnXDAnOwp9CnZvaWQgaW5wdXQoYXV0bzEqJiBhLCBpbnQmIG4pIHsKCWRvdWJsZSB3OwoJaW50IHEsIGZsID0gMCwgZTsKCXByaW50Zl9zKCLQktCy0LXQtNC40YLQtSDQutC+0LvQuNGH0LXRgdGC0LLQviDQutC70LjQtdC90YLQvtCyINCyINCx0LDQvdC60LU6ICIpOwoJZSA9IG47CglkbyB7CgkJd2hpbGUgKHNjYW5mX3MoIiVsZiIsICZ3KSA9PSAwIHx8IHcgPCAwIHx8IHByb3YodykgPT0gMSkgewoJCQlwcmludGZfcygi0JLRiyDQstCy0LXQu9C4INC90LUg0YLQviwg0YfRgtC+INC90LDQtNC+LiDQn9C+0LLRgtC+0YDQuNGC0LUuINCS0LDRiCDQvtGC0LLQtdGCOiAiKTsKCQkJcmV3aW5kKHN0ZGluKTsKCQl9CgkJcSA9IHc7CgkJaWYgKHcgLSBxICE9IDApIHsKCQkJcHJpbnRmX3MoItCS0Ysg0LLQstC10LvQuCDQtNGA0L7QsdC90L7QtSDRh9C40YHQu9C+LCDQsCDQvdCw0LTQviDRhtC10LvQvtC1LiDQn9C+0LLRgtC+0YDQuNGC0LUuXG4iKTsKCQkJY29udGludWU7CgkJfQoJCWlmIChxID09IDApCgkJCXJldHVybjsKCQlhID0gKGF1dG8xKilyZWFsbG9jKGEsIChuICsgcSkgKiBzaXplb2YoYXV0bzEpKTsKCQlmbCA9IDE7CgkJZm9yIChpbnQgaSA9IG47IGkgPCBxICsgbjsgaSsrKSB7CgkJCWFbaV0ucHJvY2Vzcy5tYXN0ZXIgPSAoY2hhciopbWFsbG9jKDUwICogc2l6ZW9mKGNoYXIpKTsKCQkJYVtpXS5udW1iZXIgPSAoY2hhciopbWFsbG9jKDUwICogc2l6ZW9mKGNoYXIpKTsKCQkJZG91YmxlIGUsIHBsID0gMDsKCQkJY2hhciogcG9pdSA9IChjaGFyKiltYWxsb2MoNTAgKiBzaXplb2YoY2hhcikpOwoJCQlwcmludGZfcygiXG4gINCU0LDRgtCwINC/0L7RgdC70LXQtNC90LXQs9C+INC40LfQvNC10L3QtdC90LjRjzogIik7CgkJCXJld2luZChzdGRpbik7CgkJCWludCBrID0gMDsKCQkJZG8gewoJCQkJZmdldHMocG9pdSwgMjU1LCBzdGRpbik7CgkJCQlkZWxldF9uKHBvaXUpOwoJCQkJayA9IDE7CgkJCX0gd2hpbGUgKHByb3ZlcmthX2luZGl2KGEsIGkgKyAxLCBwb2l1KSA+IDApOwoJCQlhW2ldLm51bWJlciA9IHBvaXU7CgkJCXByaW50Zl9zKCIgINC90L7QvNC10YAg0YHRh9GR0YLQsDogIik7CgkJCXdoaWxlIChzY2FuZl9zKCIlbGYiLCAmYVtpXS5rbSkgPT0gMCB8fCBhW2ldLmttIDwgMCB8fCBwcm92KGFbaV0ua20pID09IDEpIHsKCQkJCXByaW50Zl9zKCLQktGLINCy0LLQtdC70Lgg0L3QtSDRgtC+LCDRh9GC0L4g0L3QsNC00L4uINCf0L7QstGC0L7RgNC40YLQtS4g0JLQsNGIINC+0YLQstC10YI6ICIpOwoJCQkJcmV3aW5kKHN0ZGluKTsKCQkJfQoJCQlwcmludGZfcygiICDQpNCY0J4g0LrQu9C40LXQvdGC0LA6ICIpOwoJCQlyZXdpbmQoc3RkaW4pOwoJCQlmZ2V0cyhhW2ldLnByb2Nlc3MubWFzdGVyLCAyNTUsIHN0ZGluKTsKCQkJZGVsZXRfbihhW2ldLnByb2Nlc3MubWFzdGVyKTsKCQkJcHJpbnRmX3MoIiAg0YHRg9C80LzQsCDQvdCwINGB0YfRkdGC0LUoJCk6ICIpOwoJCQl3aGlsZSAoc2NhbmZfcygiJWxmIiwgJmFbaV0ucHJvY2Vzcy5jb3N0KSA9PSAwIHx8IGFbaV0ucHJvY2Vzcy5jb3N0IDwgMCB8fCBwcm92KGFbaV0ucHJvY2Vzcy5jb3N0KSA9PSAxKSB7CgkJCQlwcmludGZfcygi0JLRiyDQstCy0LXQu9C4INC90LUg0YLQviwg0YfRgtC+INC90LDQtNC+LiDQn9C+0LLRgtC+0YDQuNGC0LUuINCS0LDRiCDQvtGC0LLQtdGCOiAiKTsKCQkJCXJld2luZChzdGRpbik7CgkJCX0KCQl9Cgl9IHdoaWxlIChmbCA9PSAwKTsKCW4gKz0gcTsKfQp2b2lkIG91dHB1dChhdXRvMSogYSwgaW50IG4pIHsKCXByaW50Zl9zKCLQlNCw0YLQsCDQv9C+0YHQu9C10LTQvdC10LPQviDQuNC30LzQtdC90LXQvdC40Y9cdFx0XHRcdNC90L7QvNC10YAg0YHRh9GR0YLQsFx0XHRcdFx00LrQu9C40LXQvdGCXHRcdFx0XHTRgdGD0LzQvNCwINC90LAg0YHRh9GR0YLQtVxuIik7Cglmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykKCQlwcmludGZfcygiJS0zMXMgJS0zMS4ybGYgJS0zMXMgJS0zMS4ybGZcbiIsIGFbaV0ubnVtYmVyLCBhW2ldLmttLCBhW2ldLnByb2Nlc3MubWFzdGVyLCBhW2ldLnByb2Nlc3MuY29zdCk7CgoJLy9wcmludGZfcygiJTEwc1x0XHQlMTVzXHRcdCU3LjJsZlx0JTE1c1x0XHQlMjBzXHRcdCU3LjJsZlxuIiwgYVtpXS5udW1iZXIsIGFbaV0ubWFyaywgYVtpXS5rbSwgYVtpXS5wcm9jZXNzLm1hc3RlciwgYVtpXS5wcm9jZXNzLndvcmssIGFbaV0ucHJvY2Vzcy5jb3N0KTsKCn0KCmludCBtYWluKCkgewoJU2V0Q29uc29sZUNQKDEyNTEpOwoJU2V0Q29uc29sZU91dHB1dENQKDEyNTEpOwoJc3RydWN0IGF1dG8xKiBjcyA9IChhdXRvMSopbWFsbG9jKHNpemVvZihhdXRvMSkpOwoJaW50IGJ1ZiA9IDEsIGZsYWcgPSAwLCBuID0gMCwgYTsKCWRvdWJsZSB3OwoJZG8gewoJCXJld2luZChzdGRpbik7CgkJcHJpbnRmX3MoItGH0YLQviDQstGLINGF0L7RgtC40YLQtSDRgdC00LXQu9Cw0YLRjD8o0LLQsNGA0LjQsNC90YLRiyDQvtGC0LLQtdGC0LAgMS0zKVxuICAxLtCS0LLQvtC0XG4gIDIu0JLRi9Cy0L7QtCDQvdCwINGN0LrRgNCw0L1cbiAzLtCX0LDQstC10YDRiNC40YLRjCDRgNCw0LHQvtGC0YNcbtCS0LDRiCDQntGC0LLQtdGCOiAiKTsKCQl3aGlsZSAoc2NhbmZfcygiJWxmIiwgJncpID09IDAgfHwgdyA8IDAgfHwgdyA+IDggfHwgcHJvdih3KSA9PSAxKSB7CgkJCXByaW50Zl9zKCLQktGLINCy0LLQtdC70Lgg0L3QtSDRgtC+LCDRh9GC0L4g0L3QsNC00L4g0LjQu9C4INC00LDQvdC90L7Qs9C+INC/0YPQvdC60YLQsCDQvdC10YIg0LIg0YHQv9C40YHQutC1INC30LDQtNCw0YcuINCf0L7QstGC0L7RgNC40YLQtS4g0JLQsNGIINC+0YLQstC10YI6ICIpOwoJCQlyZXdpbmQoc3RkaW4pOwoJCX0KCQlhID0gdzsKCQlpZiAodyAtIGEgIT0gMCkgewoJCQlwcmludGZfcygi0JLRiyDQstCy0LXQu9C4INC00YDQvtCx0L3QvtC1INGH0LjRgdC70L4sINCwINC90LDQtNC+INGG0LXQu9C+0LUuINCf0L7QstGC0L7RgNC40YLRjC5cbiIpOwoJCQljb250aW51ZTsKCQl9CgkJc3lzdGVtKCJDTFMiKTsKCQlzd2l0Y2ggKGEpIHsKCQljYXNlIDE6IGlucHV0KGNzLCBuKTsgYnJlYWs7CgkJY2FzZSAyOmlmIChuICE9IDApb3V0cHV0KGNzLCBuKTsgZWxzZSBwcmludGZfcygi0JLRiyDQtdGJ0ZEg0L3QtSDQstCy0LXQu9C4INC00LDQvdC90YvQtSDQv9GA0L4g0LDQstGC0L4uIik7IGJyZWFrOwoJCWNhc2UgMzogYnVmID0gMDsgYnJlYWs7CgkJfQoJCWlmIChidWYgIT0gMCkgewoJCQlkb3VibGUgZTsKCQkJcHJpbnRmX3MoItCS0Ysg0YXQvtGC0LjRgtC1INCy0LXRgNC90YPRgtGM0YHRjyDQsiDQvNC10L3Rjj9cbiAgMS7QtNCwXG4gIDIu0L3QtdGCKNCy0YvQudGC0Lgg0LjQtyDQv9GA0L7Qs9GA0LDQvNC80YspXG7QktCw0Ygg0L7RgtCy0LXRgjogIik7CgkJCXdoaWxlIChzY2FuZl9zKCIlbGYiLCAmZSkgPT0gMCB8fCAoZSAhPSAyICYmIGUgIT0gMSkgfHwgcHJvdihlKSA9PSAxKSB7CgkJCQlwcmludGZfcygi0JLRiyDQstCy0LXQu9C4INC90LUg0YLQviwg0YfRgtC+INC90LDQtNC+LiDQn9C+0LLRgtC+0YDQuNGC0LUuINCS0LDRiCDQvtGC0LLQtdGCOiAiKTsKCQkJCXJld2luZChzdGRpbik7CgkJCX0KCQkJaWYgKGUgPT0gMikKCQkJCWJ1ZiA9IDA7CgkJCXJld2luZChzdGRpbik7CgkJfQoJCXN5c3RlbSgiQ0xTIik7Cgl9IHdoaWxlIChidWYgPT0gMSk7Cn0=