• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • 🚨 29 мая стартует курс «Пентест Active Directory: от теории к практике» от Академии Кодебай

    🔍 Изучите реальные техники атак на инфраструктуру Active Directory: от первоначального доступа до полной компрометации.
    🛠️ Освойте инструменты, такие как BloodHound, Mimikatz, CrackMapExec и другие.
    🧪 Пройдите практические лабораторные работы, имитирующие реальные сценарии атак.
    🧠 Получите знания, которые помогут вам стать востребованным специалистом в области информационной безопасности.

    После старта курса запись открыта еще 10 дней Подробнее о курсе ...

  • Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

задача в билдере с файлами

  • Автор темы Автор темы Наталли
  • Дата начала Дата начала
Н

Наталли

выдает ошибку и думаю с сортировкой что-то не то

условие:Написать программу обработки файла типа запись, содержащую следую-щие пункты меню:
"Создание", "Просмотр", "Добавление новых данных" , «Решение индивидуального задания».
Каждая запись должна содержать следующую информацию о студентах:
– фамилия и инициалы;
– год рождения;
– оценки за семестр: по физике, математике, информатике, химии;
– средний балл.
Организовать ввод исходных данных, средний балл рассчитать по введенным оценкам.

Индивидуальное задание:
Распечатать анкетные данные студентов интересующей вас группы, имеющих средний балл выше введенного с клавиатуры.


код:
struct Sved{
char Fam[30];
int Ph_Bal,M_Bal,Inf_Bal,Ch_Bal;
double S_Bal;
}zap;
char Spis[]="Sp.dat";
char Spis2[]="Sort.dat";
FILE *F_zap,*F_rez;
FILE* Open_file(char*,char*);

void main(void)
{int i,kodR,size=sizeof(Sved),D_f,kol;
long len;
Sved st, *mas_Z;
double sb;
while(1){
puts("\n Создать - 1\n Просмотр - 2\n Добавление записи - 3\n Сортировка - 4\n Выход - 0");
scanf("%d",&kodR);
switch(kodR){
case 1: case 3: if(kodR==1)F_zap=Open_file(Spis,"w+");
else F_zap=Open_file(Spis,"a+");
while(2){
puts("\n Fam (.-end)");
scanf("%s",zap.Fam);
if ((zap.Fam[0])=='.') break;
puts("\n Ball po fizike: ");
scanf("%d",&zap.Ph_Bal);
puts("\n Ball po matematike: ");
scanf("%lf",&zap.M_Bal);
puts("\n Ball po informatike: ");
scanf("%lf",&zap.Inf_Bal);
puts("\n Ball po himii: ");
scanf("%lf",&zap.Ch_Bal);
zap.S_Bal=(zap.Ph_Bal+zap.M_Bal+zap.Inf_Bal+zap.Ch_Bal)/4;
fwrite(&zap,size,1,F_zap);
}
fclose(F_zap);
break;
case 2: F_zap=Open_file(Spis,"r+"); int nom=1;
while(2){
if(!fread(&zap,size,1,F_zap)) break;
printf("%d: %s %lf\n",nom++,zap.Fam,zap.S_Bal);
}
fclose(F_zap);
break;
case 4: F_zap=fopen(Spis,"rb");
D_f=fileno(F_zap);
len=filelength(D_f);
kol=len/size;
mas_Z=new Sved[kol];
for (i=0;i<kol;i++)
fread((mas_Z+1),size,1,F_zap);
fclose(F_zap);
F_rez=fopen(Spis2,"w");
printf("Vvedite naimen'shii srednii ball");
scanf("%lf",sb);
printf("\n\t----- S O R T -----\n");
fprintf(F_rez,"\n\t----- S O R T -----\n");
for (i=0;i<kol;i++)
if (mas_Z.S_Bal>sb){
printf("\n %s, %d, %d, %d, %d, %lf6.3",
zap.Fam,zap.Ph_Bal,zap.M_Bal,zap.Inf_Bal,zap.Ch_Bal,zap.S_Bal);
fprintf(F_zap,"\n %s, %d, %d, %d, %d, %lf6.3",
zap.Fam,zap.Ph_Bal,zap.M_Bal,zap.Inf_Bal,zap.Ch_Bal,zap.S_Bal);
}
fclose(F_rez);
break;
case 0: return;
}
}
}
//---------------------------------------------------------------------------
FILE *Open_file(char *file,char *kod){
FILE *f;
if(!(file,kod)){
puts("Open File Error!");
exit(1);
}
return(f);
}
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!

Курс AD