• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Сортировка Файла

  • Автор темы shilovec5377
  • Дата начала
S

shilovec5377

Всем привет. Есть прога, которая записывает студентов в файл и выводит на экран студентов средний бал который >='6'.
Помогите пж отсортировать файл по условию :

ключ - средний бал. Метод сортировки QuickSort и пузырьковая сортировка.

заранее благодарю.

C++:
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#include <fstream.h>
#include <math.h>


FILE *fl;

typedef struct
{
char fio[30];
double matem;
double oaip;
double english;
double srb;
}TStudent;

TStudent stud[30]; //?????? ????????
char name[20];//??? ?????
int nst=0;//????? ????????? ????????

int menu();	//????
void spisok(); //?????? ??????
void resf();  //????????? ????????? ? ????
void resc();  //??????? ????????? ?? ?????




int main()
{
while (true)
{
switch (menu())
{

case 1: spisok(); break; //?????? ??????
case 2: resf(); break; //????????? ????????? ? ????
case 3: resc(); break; //??????? ????????? ?? ?????


case 4: return 0;
default: "Viberite pravilno!";
}
puts("pres any key to continue");
getch();
system("cls"); 
}
} 


int menu()//????
{
cout<<"viberite:"<<endl;
cout<<"1.vvod studentov"<<endl;
cout<<"2.sohranit rezultat v file"<<endl;
cout<<"3.vivesti rezultat na ekran"<<endl;

cout<<"4.Exit"<<endl;
int i;
cin>>i;
return i;
}





void resc() //na ekran
{
char fio[30];
double matem;
double oaip;
double english;
double srb;


ifstream fin("ofile.txt", ios::in);

fin.getline(fio, 30);
fin >> matem >> oaip >> english>>srb;
fin.ignore(1);



for (int i=0;i<nst;i++)
{
if(srb >= 6.0)



cout << fio << '\n' << matem << '\n' << oaip << '\n' << english << '\n'<< srb << "\n\n"; 

fin.getline(fio, 30);
fin >> matem >> oaip >> english>>srb;
fin.ignore(1);

}
fin.close();
system("pause");
}



void spisok () //?????? ??????
{

cout<<"vvedite chislo studentov"<<endl;
cin>>nst;

for (int i=0;i<nst;i++)
{
cout<<"vvedite imya: ";
cin>>stud[i].fio;
cout<<"vvedite ocenki po matem.: ";
cin>>stud[i].matem;
cout<<"vvedite ocenku po oaip: ";
cin>>stud[i].oaip;
cout<<"vvedite ocenku po english: ";
cin>>stud[i].english;


stud[i].srb=( (stud[i].matem)+(stud[i].oaip)+(stud[i].english) )/3;

}
}



void resf()////sohran file
{




ofstream fout("ofile.txt", ios::app);
for (int i=0;i<nst;i++)


{


fout << stud[i].fio << endl << stud[i].english << endl
<< stud[i].matem << endl << stud[i].oaip << endl<< stud[i].srb << endl;
}
}
 
Мы в соцсетях:

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