Программа учета успеваемости студентов
Создадим программу, которая будет заниматься учетом успеваемости студентов в группе. Создайте заголовочный файл students.h, в котором будет находиться класс Students .
#include <string>
class Students {
public:
void set_name(std::string student_name)
{
name = student_name;
}
std::string get_name()
{
return name;
}
void set_last_name(std::string student_last_name)
{
last_name = student_last_name;
}
std::string get_last_name()
{
return last_name;
}
void set_scores(int student_scores[])
{
for (int i = 0; i < 5; ++i) {
scores[i] = student_scores[i];
}
}
void set_average_ball(float ball)
{
average_ball = ball;
}
float get_average_ball()
{
return average_ball;
}
private:
int scores[5];
float average_ball;
std::string name;
std::string last_name;
};
Мы добавили в наш класс новые методы, а также сделали приватными все его свойства. Функцияset_name() сохраняет имя студента в переменной name , а get_name() возвращает значение этой переменной. Принцип работы функций set_last_name() и get_last_name() аналогичен.
Функция set_scores() принимает массив с промежуточными оценками и сохраняет их в приватную переменную int scores[5] .
Теперь создайте файл main.cpp со следующим содержимым.
#include <iostream>
#include "students.h"
int main()
{
Students student;
std::string name;
std::string last_name;
std::cout << "Name: ";
getline(std::cin, name);
std::cout << "Last name: ";
getline(std::cin, last_name);
student.set_name(name);
student.set_last_name(last_name);
int scores[5];
int sum = 0;
for (int i = 0; i < 5; ++i) {
std::cout << "Score " << i+1 << ": ";
std::cin >> scores[i];
sum += scores[i];
}
student.set_scores(scores);
float average_ball = sum / 5.0;
student.set_average_ball(average_ball);
std::cout << "Average ball for " << student.get_name() << " "
<< student.get_last_name() << " is "
<< student.get_average_ball() << std::endl;
return 0;
}
В самом начале программы создается объект класса Students . Дело в том, что сам класс является только описанием его объекта. Класс Students является описанием любого из студентов, у которого есть имя, фамилия и возможность получения оценок.
Объект класса Students характеризует конкретного студента. Если мы захотим выставить оценки всем ученикам в группе, то будем создавать новый объект для каждого из них. Использование классов очень хорошо подходит для описания объектов реального мира.
После создания объекта student , мы вводим с клавиатуры фамилию, имя и промежуточные оценки для конкретного ученика. Пускай это будет Вася Пупкин, у которого есть пять оценок за семестр — две тройки, две четверки и одна пятерка.
Введенные данные мы передаем set-функциям, которые присваивают их закрытым переменным класса. После того, как были введены промежуточные оценки, мы высчитываем средний балл на основе этих оценок, а затем сохраняем это значение в закрытом свойстве average_ball , с помощью функцииset_average_ball() .
Скомпилируйте и запустите программу.
|