Вывести фамилии, начинающиеся на буквы В, Г, Д - 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);
}

Объяснение кода листинга программы

В этом коде представлена программа, которая позволяет пользователю взаимодействовать с базой данных. Пользователь может создавать новые записи, просматривать существующие записи, добавлять новые записи, сортировать записи и выходить из программы. Список действий, которые выполняет программа:

  1. Создание нового файла для хранения данных.
  2. Добавление новой записи в базу данных.
  3. Просмотр информации о записи, хранящейся в базе данных.
  4. Сортировка записей в базе данных.
  5. Просмотр записей, начинающихся на буквы 'V', 'G' или 'D'.
  6. Закрытие программы. Переменные, используемые в коде:
    • size - размер структуры TZap.
    • Ft - указатель на файл, в который выводятся результаты.
    • File_Zap - имя файла, в котором хранятся данные.
    • File_Rez - имя файла, в который выводятся результаты.
    • Fz - указатель на файл, из которого считываются данные.
    • kol - количество записей в базе данных.
    • mas_Z - массив структур TZap, используемый для хранения отсортированных записей.
    • i - счетчик, используемый для итерации по массиву mas_Z. В функции Out выводится информация о записи на экран и в файл Ft.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5
Похожие ответы