структура

Тема в разделе "Общие вопросы по С и С++", создана пользователем Art02, 11 май 2011.

  1. Art02

    Art02 Гость

    чтобы производились следующие действия: ввод с клавиатуры из 10 структур типа студент; записи должны быть упорядочены по возрастанию среднего балла



    #include<conio.h>
    #include<stdio.h>
    #include<iostream.h>
    #include<string>

    using namespace std;
    struct Student
    {
    string FIO;
    string Gruppa;
    int Uspevaemost[5];
    };

    void Add (Student *W, int &n)
    {
    clrscr ();
    cout<<"Dannie studenta:\n";
    cout<<"FIO:"; cin>>W[n].FIO;
    cout<<"Gruppa:"; cin>>W[n].Gruppa;
    int i;
    for (i=0;i<5;i++)
    {cout<<"Uspevaemost["<<i <<"]:"; cin>>W[n].Uspevaemost;}
    n++;
    }
    void Find (Student *W, int n)
    {
    string y;
    cout<<"Vvedite Gruppu:";
    cin>>y;
    cout<<"FIO Gruppa Uspevaemost\n";
    for (int i=0; i<n; i++)
    if (W.FIO==y)
    cout<<W.FIO<<" "<<W.Gruppa<<" "<<W.Uspevaemost<<"\n";
    getch ();
    }
    void Print (Student *W, int n)
    {
    clrscr ();
    cout<<"Spisok studentov :\n";
    if (n==0)
    {
    cout<<"Spisok pust";
    getch ();
    return;
    }
    cout<<"FIO Gruppa Uspevaemost\n";
    for (int i=0; i<n; i++)
    {
    cout<<W.FIO<<" "<<W.Gruppa<<" "<<W.Uspevaemost<<"\n";
    }
    getch ();
    }

    void Uporyid (Student *W, int n)
    {
    clrscr ();
    cout << n;
    cout << "Uporyid\n";
    Student temp;
    for(int i=0; i<n; i++)
    for(int j=n-2; j>=i; j--)
    if (W[j].Gruppa>W[j+1].Gruppa)
    {
    temp=W[j];
    W[j]=W[j+1];
    W[j+1]=temp;
    }

    getch ();
    }


    void main ()
    { Student *A=new Student [10];
    int n=0, j;
    char ch;



    const int N_max=10;
    Student *W=new Student[N_max];
    do

    {
    clrscr ();
    cout<<"1 - Dobavlenie\n";
    cout<<"2 - Pechat studentov\n";
    cout<<"3 - Naiti studenta\n";
    cout<<"4- Uporyid\n";
    cout<<"0 - Vixod\n";
    ch=getch ();
    switch (ch)
    {
    case '1': Add (W,n); break;
    case '2': Print (W,n); break;
    case '3': Find (W,n); break;
    case '4': Uporyid (W,n); break;

    }
    }
    while (ch!='0');
     
  2. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Где не получается?
     
  3. Rififi

    Rififi Гость

    Art02

    записи должны быть упорядочены по возрастанию среднего балла

    Код (Text):
    struct less
    {
    bool operator()(const Student& s1, const Student& s2) const
    {
    return avg(s1.Uspevaemost) < avg(s2.Uspevaemost);
    }

    template <typename T, size_t N>
    double avg(const T (&arr)[N]) const
    {
    return static_cast<double>(std::accumulate(arr, arr + N, T())) / N;
    }
    };

    ...

    std::vector<Student> ss;
    std::sort(ss.begin(), ss.end(), less());
     
Загрузка...
Похожие Темы - структура
  1. Виталий
    Ответов:
    14
    Просмотров:
    1.406
  2. nreginka832
    Ответов:
    5
    Просмотров:
    1.218
  3. nreginka832
    Ответов:
    2
    Просмотров:
    1.206
  4. KsuKsuKsunia
    Ответов:
    0
    Просмотров:
    1.359
  5. mikhailkarmanov
    Ответов:
    1
    Просмотров:
    975

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