Ответы и объяснения

2013-07-22T15:15:52+04:00
Написано на с++ с использование классов и векторов:
#include <iostream>
#include <string>
#include <vector>
#include <windows.h>
using namespace std;
class pupil_DB
{
public:
    void input();
    void calculation();
    void output();
private:
    vector <string> surname;
    vector <string> name;
    vector <int> evaluation_one;
    vector <int> evaluation_two;
    vector <int> evaluation_three;
    vector <float> summa;
};

void main()
{
    setlocale(0, "russian");
    pupil_DB group;
    group.input();
    group.calculation();
    group.output();
    system("pause");
};

void pupil_DB::input()
{
    int temp_number;
    cout << "Введите количество учеников " << endl;
    cin >> temp_number;
    for (int i = 0; i < temp_number; i++){
        cout << "Введите информацию о " << (i + 1) << " ученике" << endl;
        string stemp;
        int itemp;
        cin >> stemp;
        surname.push_back(stemp);
        cin >> stemp;
        name.push_back(stemp);
        cin >> itemp;
        evaluation_one.push_back(itemp);
        cin >> itemp;
        evaluation_two.push_back(itemp);
        cin >> itemp;
        evaluation_three.push_back(itemp);
    }
};

void pupil_DB::calculation()
{
    for (int i = 0; i < evaluation_one.size(); i++){
        int iTempSum = 0;
        iTempSum = (evaluation_one[i] + evaluation_two[i] + evaluation_three[i]) / 3;
        summa.push_back(iTempSum);
    }
    int temp;
    for (int i = 1, j; i < summa.size(); i++){
        temp = summa[i];
        for (j = i - 1; j >= 0 && summa[j] > temp; j--)
            summa[j + 1] = summa[j];
        summa[j + 1] = temp;
    }
};

void pupil_DB::output()
{
    int temp = 0;
    int i = 0;
    cout << "Список худших учеников\n\t№\tФамилия\tИмя\tСредний балл" << endl;
    do{
        cout << "\t" << (i + 1) << "\t" << surname[i] << "\t" << name[i] << "\t" << summa[i] << endl;
        if (summa[i] != summa[i + 1])
            temp++;
        i++;
    } while (temp < 3);
};