ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΠΎΠ²ΠΊΠ° ΠΊΠΎΠ΄Π° (1 ΠΊΡΡΡ). ΠΠΎΡΠ°Π±ΠΎΡΠΊΠ° ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°. Π’ΠΎ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ: //ΠΡΡΡΡ Π·Π°Π΄Π°Π½ ΡΠΏΠΈΡΠΎΠΊ ΡΠΎΠ²Π°ΡΠΎΠ² (Π½Π°Π·Π²Π°Π½ΠΈΠ΅, ΡΠ΅Π½Π°, Π΄Π°ΡΠ° ΠΏΠΎΡΡΡΠΏΠ»Π΅Π½ΠΈΡ), ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΡΠΎΡΡΡ
Π·Π°Π΄Π°Π΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. //ΠΡΠ²Π΅ΡΡΠΈ Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΈ ΡΠ΅Π½Ρ ΡΠΎΠ²Π°ΡΠΎΠ², ΠΏΠΎΡΡΡΠΏΠΈΠ²ΡΠΈΡ
ΠΏΠΎΠ·ΠΆΠ΅ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ Π΄Π°ΡΡ (Π΄Π΅Π½Ρ, ΠΌΠ΅ΡΡΡ, Π³ΠΎΠ΄). #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #pragma warning(disable : 4996) struct DateL { int dd; int mm; int yy; char* toString() { static char res[10]; res[0] = '0' + dd / 10; res[1] = '0' + dd % 10; res[2] = '.'; res[3] = '0' + mm / 10; res[4] = '0' + mm % 10; res[5] = '.'; res[6] = '0' + yy / 1000; res[7] = '0' + yy / 100 % 10; res[8] = '0' + yy / 10 % 10; res[9] = '0' + yy % 10; return res; } }; struct Tovar { char name[30]; // Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ²Π°ΡΠ° float price; // ΡΠ΅Π½Π° ΡΠΎΠ²Π°ΡΠ° DateL date; // Π΄Π°ΡΠ° ΠΏΠΎΡΡΡΠΏΠ»Π΅Π½ΠΈΡ ΡΠΎΠ²Π°ΡΠ° }; Tovar* VvodTovarov(int & n) { Tovar tovar_list[100]; DateL date; printf(“ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΊΠΎΠ»-Π²ΠΎ ΡΠΎΠ²Π°ΡΠ° = “); scanf(“%d“, &n); for (int i = 0; i < n; i++) { printf_s(“ΠΠ²Π΅Π΄ΠΈΡΠ΅ %d-i tovar:“, i); printf_s(“ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ²Π°ΡΠ°: “); scanf(“%s“, &tovar_list[i].name); printf_s(“Π¦Π΅Π½Π°: “); scanf(“%f“, &tovar_list[i].price); printf_s(“ΠΠ²Π΅Π΄ΠΈΡΠ΅ Π΄Π°ΡΡ ΠΏΠΎΡΡΡΠΏΠ»Π΅Π½ΠΈΡ ΡΠΎΠ²Π°ΡΠ°\n“); scanf(“%d.%d.%d“, &date.dd, &date.mm, &date.yy); tovar_list[i].date = date; } return tovar_list; } Tovar* IzFile(char namefile[], int &size_mas) { int size_mas_file = 0; FILE* file; fopen_s(&file, namefile, “r“); if (!file) { printf_s(“ΠΠ΅ ΡΠ΄Π°Π»ΠΎΡΡ ΠΎΡΠΊΡΡΡΡ ΡΠ°ΠΉΠ»\n“); return nullptr; } const int size_list = 100; Tovar tovar_list[size_list]; fscanf(file, “%d“, &size_mas_file); if ((size_mas_file > size_list) || (size_mas_file <= 0)) { printf_s(“ΠΠ°ΡΡΠΈΠ² Π² ΡΠ°ΠΉΠ»Π΅ Π²ΡΡΠ΅Π» Π·Π° Π³ΡΠ°Π½ΠΈΡΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ\n“); return nullptr; } size_mas = size_mas_file; for (int i = 0; i < size_list; i++) { fscanf(file, “%s %f %d.%d.%d“, &tovar_list[i].name, &tovar_list[i].price, &tovar_list[i].date.dd, &tovar_list[i].date.mm, &tovar_list[i].date.yy); } fclose(file); return tovar_list; } bool VivodFFile(Tovar* mas, int size_mas, char namefile[]) { FILE* OTVET; fopen_s(&OTVET, namefile, “w“); if (!OTVET) { return false; } fprintf_s(OTVET, “%d\n“, size_mas); for (int i = 0; i < size_mas; i++) { fprintf_s(OTVET, “%s %f %s“, mas[i].name, mas[i].price, mas[i].date.toString()); } fclose(OTVET); return true; } void print_console(Tovar* mas, int size_mas) { for (int i = 0; i < size_mas; i++) { printf_s(“%s %f %s“, mas[i].name, mas[i].price, mas[i].date.toString()); } } int main() { const int m = 30; int indexi[m] = { 0 }, metod = 0, max = 0, n = 0, sch = 0, p = 0; bool oshibka = false; Tovar [id2984899|*massiv] = (Tovar*)malloc(sizeof(Tovar[m])); double otvet = 0; char namefile[30]; setlocale(LC_ALL, “Russian“); do { printf_s(“ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠΏΠΎΡΠΎΠ± Π²Π²ΠΎΠ΄Π° ΠΌΠ°ΡΡΠΈΠ²Π° ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° Π½ΠΈΠΆΠ΅ : \n 1)ΠΠ²Π΅Π΄ΠΈΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎ ΡΠΎΠ²Π°ΡΡ Π½ΠΈΠΆΠ΅\n 2)ΠΠ°Π½Π½ΡΠ΅ ΠΏΠΎ ΡΠΎΠ²Π°ΡΠ°ΠΌ ΠΈΠ· ΡΠ°ΠΉΠ»Π°\n“); scanf(“%d“, &metod); /*if ((metod == 1) || (metod == 2)) { do { printf_s(“Π£ΠΊΠ°ΠΆΠΈΡΠ΅ ΡΠ°Π·ΠΌΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΎΡ 1 Π΄ΠΎ %d\n“, m); scanf(“%d“, &n); } while ((n <= 0) || (n > m)); }*/ switch (metod) { case 1: printf_s(“Π£ΠΊΠ°ΠΆΠΈΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎ ΡΠΎΠ²Π°ΡΠ°ΠΌ Π½ΠΈΠΆΠ΅\n“); massiv = VvodTovarov(n); break; case 2: printf_s(“ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, Π²Π²Π΅Π΄ΠΈΡΠ΅ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° Π½ΠΈΠΆΠ΅:\n“); scanf(“%s“, &namefile); massiv = IzFile(namefile, n); break; default: oshibka = true; printf_s(“ΠΠ΅Π²Π΅ΡΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°\n“); break; } } while (!oshibka); if (oshibka) { print_console(massiv, n); printf_s(“ΠΠΎΠ±Π°Π²ΠΈΡΡ Π² ΡΠ°ΠΉΠ»? 0 - Π΄Π°, ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΡΠ»Π° - Π½Π΅Ρ\n“); scanf(“%d“, &p); if (!p) { printf_s(“ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, Π²Π²Π΅Π΄ΠΈΡΠ΅ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° Π½ΠΈΠΆΠ΅:\n“); scanf(“%s“, &namefile); if (!VivodFFile(massiv, n, namefile)) { printf_s(“ΠΠ΅ ΡΠ΄Π°Π»ΠΎΡΡ Π²ΡΠ²Π΅ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅!\n“); } else { printf_s(“Π Π°Π±ΠΎΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π·Π°Π²Π΅ΡΡΠ΅Π½Π°. ΠΠ°Π½Π½ΡΠ΅ Π²Π½Π΅ΡΠ΅Π½Ρ Π² ΡΠ°ΠΉΠ».\n“); } } } system(“pause“); return 0; }.