1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

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

Тема в разделе "С и С++", создана пользователем shilovec5377, 22 май 2013.

  1. shilovec5377

    shilovec5377 Member

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

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

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

    Код:
    #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;
    }
    }
     
  2. shilovec5377

    shilovec5377 Member

    Репутация:
    0
    Регистрация:
    13 апр 2012
    Сообщения:
    12
    Симпатии:
    0
    Всем спасибо, решил сам.
     
Загрузка...

Поделиться этой страницей