S
shilovec5377
Всем привет. Есть прога, которая записывает студентов в файл и выводит на экран студентов средний бал который >='6'.
Помогите пж отсортировать файл по условию :
ключ - средний бал. Метод сортировки QuickSort и пузырьковая сортировка.
заранее благодарю.
Помогите пж отсортировать файл по условию :
ключ - средний бал. Метод сортировки 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;
}
}