Вывести фамилии, начинающиеся на буквы В, Г, Д - C (СИ)
Формулировка задачи:
zss
, Спасибо! Скажите, вот хочу что бы он мне выводил данные, фамилии которых начинается на букву В, Г, Д. Он не показывает, подскажете почему?
Листинг программы
- #include <stdio.h>
- #include <io.h>
- #include <conio.h>
- #include <iostream>
- struct TZap {
- char FIO[30];
- double s_b, mat, xum, inf, fiz, gr, god;
- } Zap;
- int size = sizeof(TZap);
- FILE *Fz, *Ft;
- char File_Zap[] = "zapisi.dat";
- char File_Rez[] = "rezult.txt";
- void Out(TZap);
- int main()
- {
- int kod, D_f, i = 0, j, kol;
- double s_b, mat, xum, inf, fiz, gr, god;
- long len;
- TZap st, *mas_Z;
- Ft = fopen(File_Rez, "w");
- while (true) {
- puts("\n Create - 1\n Add - 2\n View - 3\n Sort - 4\n EXIT - 0");
- scanf("%d", &kod);
- switch (kod) {
- case 1:
- if ((Fz = fopen(File_Zap, "wb")) == NULL)
- {
- puts("\n Create ERROR!");
- //return;
- }
- fclose(Fz);
- printf("\n Create New File %s !\n", File_Zap);
- break;
- case 2:
- Fz = fopen(File_Zap, "ab");
- printf("\n F.I.O. - ");
- fflush(stdin);
- gets(Zap.FIO);
- printf(" God rozdeniya - ");
- fflush(stdin);
- scanf("%lf", &Zap.god);
- printf(" Nomer gruppi - ");
- scanf("%lf", &Zap.gr);
- printf(" Fizika - ");
- scanf("%lf", &Zap.fiz);
- printf(" Matematika - ");
- scanf("%lf", &Zap.mat);
- printf(" Informatika - ");
- scanf("%lf", &Zap.inf);
- printf(" Xumuya - ");
- scanf("%lf", &Zap.xum);
- Zap.s_b = (Zap.fiz + Zap.mat + Zap.inf + Zap.xum) / 4;
- fwrite(&Zap, size, 1, Fz);
- fclose(Fz);
- break;
- case 3:
- if ((Fz = fopen(File_Zap, "rb")) == NULL)
- {
- puts("\n Open ERROR!");
- //return;
- }
- //
- printf("\n\t —-----------------— Informations —-------------------\n");
- printf("\n\t FIO , god ,nomer gr, fiz , mat , inf , xum ,sredball\n");
- //
- fprintf(Ft, "\n\t —-----------------— Informations —-------------------");
- while (1)
- {
- if (!fread(&Zap, size, 1, Fz)) break;
- Out(Zap);
- }
- fclose(Fz);
- break;
- case 4:
- Fz = fopen(File_Zap, "rb");
- D_f = fileno(Fz);
- len = filelength(D_f);
- kol = len / size;
- mas_Z = new TZap[kol];
- //
- for (i = 0; i < kol; i++)
- fread((mas_Z + i), size, 1, Fz);
- fclose(Fz);
- printf("\n\t---— S O R T —---\n");
- fprintf(Ft, "\n\t---— S O R T —---\n");
- for (i = 0; i < kol - 1; i++)
- if ((mas_Z[i].FIO[0] == 'В') && (mas_Z[i].FIO[0] == 'Г') && (mas_Z[i].FIO[0] == 'Д')) //&& ((mas_Z[i].mat == 8) || (mas_Z[i].mat == 9))) //888
- {
- }
- for (i = 0; i < kol; i++)
- Out(mas_Z[i]);
- delete[]mas_Z;
- break;
- case 0:
- fclose(Ft); //888
- //return;
- }
- }
- }
- void Out(TZap z)
- {
- printf("\n %20s , %6.0lf , %6.0lf , %6.3lf , %6.3lf , %6.3lf , %6.3lf , %6.3lf",
- z.FIO, z.god, z.gr, z.fiz, z.mat, z.inf, z.xum, z.s_b);
- fprintf(Ft, "\n %20s , %6.0lf , %6.0lf , %6.3lf , %6.3lf , %6.3lf , %6.3lf , %6.3lf",
- z.FIO, z.god, z.gr, z.fiz, z.mat, z.inf, z.xum, z.s_b);
- }
Qwerty_Wasd
, Спасибо! Скажите, вот хочу что бы он мне выводил данные, фамилии которых начинается на букву В, Г, Д. Он не показывает, подскажете почему?
Листинг программы
- #include <stdio.h>
- #include <io.h>
- #include <conio.h>
- #include <iostream>
- struct TZap {
- char FIO[30];
- double s_b, mat, xum, inf, fiz, gr, god;
- } Zap;
- int size = sizeof(TZap);
- FILE *Fz, *Ft;
- char File_Zap[] = "zapisi.dat";
- char File_Rez[] = "rezult.txt";
- void Out(TZap);
- int main()
- {
- int kod, D_f, i = 0, j, kol;
- double s_b, mat, xum, inf, fiz, gr, god;
- long len;
- TZap st, *mas_Z;
- Ft = fopen(File_Rez, "w");
- while (true) {
- puts("\n Create - 1\n Add - 2\n View - 3\n Sort - 4\n EXIT - 0");
- scanf("%d", &kod);
- switch (kod) {
- case 1:
- if ((Fz = fopen(File_Zap, "wb")) == NULL)
- {
- puts("\n Create ERROR!");
- //return;
- }
- fclose(Fz);
- printf("\n Create New File %s !\n", File_Zap);
- break;
- case 2:
- Fz = fopen(File_Zap, "ab");
- printf("\n F.I.O. - ");
- fflush(stdin);
- gets(Zap.FIO);
- printf(" God rozdeniya - ");
- fflush(stdin);
- scanf("%lf", &Zap.god);
- printf(" Nomer gruppi - ");
- scanf("%lf", &Zap.gr);
- printf(" Fizika - ");
- scanf("%lf", &Zap.fiz);
- printf(" Matematika - ");
- scanf("%lf", &Zap.mat);
- printf(" Informatika - ");
- scanf("%lf", &Zap.inf);
- printf(" Xumuya - ");
- scanf("%lf", &Zap.xum);
- Zap.s_b = (Zap.fiz + Zap.mat + Zap.inf + Zap.xum) / 4;
- fwrite(&Zap, size, 1, Fz);
- fclose(Fz);
- break;
- case 3:
- if ((Fz = fopen(File_Zap, "rb")) == NULL)
- {
- puts("\n Open ERROR!");
- //return;
- }
- //
- printf("\n\t —-----------------— Informations —-------------------\n");
- printf("\n\t FIO , god ,nomer gr, fiz , mat , inf , xum ,sredball\n");
- //
- fprintf(Ft, "\n\t —-----------------— Informations —-------------------");
- while (1)
- {
- if (!fread(&Zap, size, 1, Fz)) break;
- Out(Zap);
- }
- fclose(Fz);
- break;
- case 4:
- Fz = fopen(File_Zap, "rb");
- D_f = fileno(Fz);
- len = filelength(D_f);
- kol = len / size;
- mas_Z = new TZap[kol];
- //
- for (i = 0; i < kol; i++)
- fread((mas_Z + i), size, 1, Fz);
- fclose(Fz);
- printf("\n\t---— S O R T —---\n");
- fprintf(Ft, "\n\t---— S O R T —---\n");
- for (i = 0; i < kol - 1; i++)
- if ((mas_Z[i].FIO[0] == 'В') && (mas_Z[i].FIO[0] == 'Г') && (mas_Z[i].FIO[0] == 'Д')) //&& ((mas_Z[i].mat == 8) || (mas_Z[i].mat == 9))) //888
- {
- }
- for (i = 0; i < kol; i++)
- Out(mas_Z[i]);
- delete[]mas_Z;
- break;
- case 0:
- fclose(Ft); //888
- //return;
- }
- }
- }
- void Out(TZap z)
- {
- printf("\n %20s , %6.0lf , %6.0lf , %6.3lf , %6.3lf , %6.3lf , %6.3lf , %6.3lf",
- z.FIO, z.god, z.gr, z.fiz, z.mat, z.inf, z.xum, z.s_b);
- fprintf(Ft, "\n %20s , %6.0lf , %6.0lf , %6.3lf , %6.3lf , %6.3lf , %6.3lf , %6.3lf",
- z.FIO, z.god, z.gr, z.fiz, z.mat, z.inf, z.xum, z.s_b);
- }
Решение задачи: «Вывести фамилии, начинающиеся на буквы В, Г, Д»
textual
Листинг программы
- #include <stdio.h>
- #include <io.h>
- #include <conio.h>
- #include <iostream>
- struct TZap {
- char FIO[30];
- double s_b, mat, xum, inf, fiz, gr, god;
- } Zap;
- int size = sizeof(TZap);
- FILE *Fz, *Ft;
- char File_Zap[] = "zapisi.dat";
- char File_Rez[] = "rezult.txt";
- void Out(TZap);
- int main()
- {
- int kod, D_f, i = 0, kol;
- long len;
- TZap *mas_Z;
- Ft = fopen(File_Rez, "w");
- while (true) {
- puts("\n Create - 1\n Add - 2\n View - 3\n Sort - 4\n Show - 5\n EXIT - 0");
- scanf("%d", &kod);
- switch (kod) {
- case 1:
- if ((Fz = fopen(File_Zap, "wb")) == NULL)
- {
- puts("\n Create ERROR!");
- return 0;
- }
- fclose(Fz);
- printf("\n Create New File %s !\n", File_Zap);
- break;
- case 2:
- Fz = fopen(File_Zap, "ab");
- printf("\n F.I.O. - ");
- fflush(stdin);
- gets(Zap.FIO);
- printf(" God rozdeniya - ");
- fflush(stdin);
- scanf("%lf", &Zap.god);
- printf(" Nomer gruppi - ");
- scanf("%lf", &Zap.gr);
- printf(" Fizika - ");
- scanf("%lf", &Zap.fiz);
- printf(" Matematika - ");
- scanf("%lf", &Zap.mat);
- printf(" Informatika - ");
- scanf("%lf", &Zap.inf);
- printf(" Xumuya - ");
- scanf("%lf", &Zap.xum);
- Zap.s_b = (Zap.fiz + Zap.mat + Zap.inf + Zap.xum) / 4;
- fwrite(&Zap, size, 1, Fz);
- fclose(Fz);
- break;
- case 3:
- if ((Fz = fopen(File_Zap, "rb")) == NULL)
- {
- puts("\n Open ERROR!");
- return 0;
- }
- //
- printf("\n\t —-----------------— Informations —-------------------\n");
- printf("\n\t FIO , god ,nomer gr, fiz , mat , inf , xum ,sredball\n");
- //
- fprintf(Ft, "\n\t —-----------------— Informations —-------------------");
- while (1)
- {
- if (!fread(&Zap, size, 1, Fz)) break;
- Out(Zap);
- }
- fclose(Fz);
- break;
- case 4:
- Fz = fopen(File_Zap, "rb");
- D_f = fileno(Fz);
- len = filelength(D_f);
- kol = len / size;
- mas_Z = new TZap[kol];
- //
- for (i = 0; i < kol; i++)
- fread((mas_Z + i), size, 1, Fz);
- fclose(Fz);
- printf("\n\t---— S O R T —---\n");
- fprintf(Ft, "\n\t---— S O R T —---\n");
- for (i = 0; i < kol - 1; i++)
- if ((mas_Z[i].FIO[0] == 'A') && ((mas_Z[i].mat == 8) || (mas_Z[i].mat == 9)))
- {
- }
- for (i = 0; i < kol; i++)
- Out(mas_Z[i]);
- delete[]mas_Z;
- break;
- //---------------------------------------------
- case 5:
- if ((Fz = fopen(File_Zap, "rb")) == NULL){puts("\n Open ERROR!");return 0;}
- printf("\n\t —-----------------— Informations —-------------------\n");
- printf("\n\t FIO , god ,nomer gr, fiz , mat , inf , xum ,sredball\n");
- fprintf(Ft, "\n\t —-----------------— Informations —-------------------");
- while (1)
- {
- if (!fread(&Zap, size, 1, Fz)) break;
- if ((Zap.FIO[0] == 'V') || (Zap.FIO[0] == 'G') || (Zap.FIO[0] == 'D')) Out(Zap);
- }
- fclose(Fz);
- break;
- case 0:
- fclose(Ft);
- return 0;
- }
- }
- }
- void Out(TZap z)
- {
- printf("\n %20s , %6.0lf , %6.0lf , %6.3lf , %6.3lf , %6.3lf , %6.3lf , %6.3lf",
- z.FIO, z.god, z.gr, z.fiz, z.mat, z.inf, z.xum, z.s_b);
- fprintf(Ft, "\n %20s , %6.0lf , %6.0lf , %6.3lf , %6.3lf , %6.3lf , %6.3lf , %6.3lf",
- z.FIO, z.god, z.gr, z.fiz, z.mat, z.inf, z.xum, z.s_b);
- }
Объяснение кода листинга программы
В этом коде представлена программа, которая позволяет пользователю взаимодействовать с базой данных. Пользователь может создавать новые записи, просматривать существующие записи, добавлять новые записи, сортировать записи и выходить из программы. Список действий, которые выполняет программа:
- Создание нового файла для хранения данных.
- Добавление новой записи в базу данных.
- Просмотр информации о записи, хранящейся в базе данных.
- Сортировка записей в базе данных.
- Просмотр записей, начинающихся на буквы 'V', 'G' или 'D'.
- Закрытие программы.
Переменные, используемые в коде:
size
- размер структурыTZap
.Ft
- указатель на файл, в который выводятся результаты.File_Zap
- имя файла, в котором хранятся данные.File_Rez
- имя файла, в который выводятся результаты.Fz
- указатель на файл, из которого считываются данные.kol
- количество записей в базе данных.mas_Z
- массив структурTZap
, используемый для хранения отсортированных записей.i
- счетчик, используемый для итерации по массивуmas_Z
. В функцииOut
выводится информация о записи на экран и в файлFt
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д