Среднее из массива (структура) - PullRequest
2 голосов
/ 19 ноября 2011

Я шел к этому и, похоже, не могу найти правильный способ сделать это.Я оставил только тот код, который работает, потому что остальное просто смущает ...

Создайте программу, используя 2 массива, которые содержат набор классов данных для 10 учеников: первый массив содержит первый и последнийимя (в разных ячейках) учащихся. Во втором массиве содержатся оценки (всего 5) для каждого из учащихся. Создайте соответствующие функции для загрузки и отображения массива, включая среднюю и буквенную оценку ученика.Отбросьте наименьшую оценку из среднего показателя студента.

Я не прошу, чтобы кто-то сделал это для меня, мне просто нужна помощь.

#include <cstdlib>
#include <iostream>

using namespace std;

const int CLASSIZE = 1;

struct student
{
    string firstName;
    string lastName;

    void printTheInfo()
    {
        cout << "Name: " << firstName << " " << lastName;
    }
    void loadMe()
    {
        cout << "First Name: ";
        cin >> firstName;
        cout << "Last Name: ";
        cin >> lastName;
    }
};
struct grades
{
    int grade1;
    int grade2;
    int grade3;
    int grade4;
    int grade5;

    void printTheGrades()
    {
        cout << " Grades: " << grade1 << " " << grade2 << " " << grade3
             << " " << grade4 << " " << grade5 << endl;
    }
    void loadGrades()
    {
        cout << "Grade 1: ";
        cin >> grade1;
        cout << "Grade 2: ";
        cin >> grade2;
        cout << "Grade 3: ";
        cin >> grade3;
        cout << "Grade 4: ";
        cin >> grade4;
        cout << "Grade 5: ";
        cin >> grade5;
    }
};

void printAllStudents(student [], grades [], int);
void loadAllStudents(student [], grades [], int);

int main(int argc, char *argv[])
{    
    student theStudent[CLASSIZE];
    grades theGrade[CLASSIZE];

    loadAllStudents(theStudent, theGrade, CLASSIZE);
    printAllStudents(theStudent, theGrade, CLASSIZE);

    system("PAUSE");
    return EXIT_SUCCESS;
}

void loadAllStudents(student theStudents[], grades theGrades[], int s) 
{
    for(int i = 0; i < s; i++)
    {
        theStudents[i].loadMe();
        theGrades[i].loadGrades();
    }
}
void printAllStudents(student theStudents[], grades theGrades[], int s) 
{
    for(int i = 0; i < s; i++)
    {
        theStudents[i].printTheInfo(); 
        theGrades[i].printTheGrades();
    }
}

1 Ответ

1 голос
/ 22 декабря 2011

Прежде всего создайте массив оценок.Для этого вы можете использовать double: double grade [5], вместо grade1, ..., grade5.Тогда легче вычислить среднее.При расчете среднего значения для каждого учащегося вы можете сохранить в переменной текущее минимальное значение.

...