Использование класса SchoolClass в программе

Мы будем работать с классом SchoolClass в функции main(), которую тоже необходимо включить в файл schoolroom.cpp:
void main()
{
}

1. Начнем с объявления двух объектов класса SchoolClass: в объекте HistoryClass будут храниться оценки по истории, а в объекте EnglishClass - оценки по английскому языку:
void main()
{
SchoolClass HistoryClass(9);
SchoolClass EnglishClass(10);
.
.
.
}

2. Заполним внутренние массивы этих объектов данными с помощью метода AddScore():
void main()
{
SchoolClass HistoryClass(9);
SchoolClass EnglishClass(10);
HistoryClass.AddScore(80);
HistoryClass.AddScore(81);
HistoryClass.AddScore(82);
HistoryClass.AddScore(83);
HistoryClass.AddScore(84);
HistoryClass.AddScore(85);
HistoryClass.AddScore(86);
HistoryClass.AddScore(87);
HistoryClass.AddScore(88);
EnglishClass.AddScore(91);
EnglishClass.AddScore(92);
EnglishClass.AddScore(93);
EnglishClass.AddScore(94);
EnglishClass.AddScore(95);
EnglishClass.AddScore(96);
EnglishClass.AddScore(97);
EnglishClass.AddScore(98);
EnglishClass.AddScore(99);
EnglishClass.AddScore(100);
.
.
.
}

3. Осталось лишь вывести средние оценки по обоим предметам:
void main()
{
SchoolClass HistoryClass(9);
SchoolClass EnglishClass(10);
HistoryClass.AddScore(80);
HistoryClass.AddScore(81);
HistoryClass.AddScore(82);
HistoryClass.AddScore(83);
HistoryClass.AddScore(84);
HistoryClass.AddScore(85);
HistoryClass.AddScore(86);
HistoryClass.AddScore(87);
HistoryClass.AddScore(88);
EnglishClass.AddScore(91);
EnglishClass.AddScore(92);
EnglishClass.AddScore(93);
EnglishClass.AddScore(94);
EnglishClass.AddScore(95);
EnglishClass.AddScore(96);
EnglishClass.AddScore(97);
EnglishClass.AddScore(98);
EnglishClass.AddScore(99);
EnglishClass.AddScore(100);
cout << "Average score for History class: "
<< HistoryClass.AverageScore() << "\n"
cout << "Average score for English class: "
<< EnglishClass.AverageScore() << "\n"
}

4. Программа schoolroom готова к работе. Запустите ее - результаты работы программы изображены на рис. 1.8. В этом примере мы занесли данные в объекты класса SchoolClass и вычислили их средние значения - объекты успешно справились с обработкой данных.

Объекты помогли разбить программу на более мелкие и удобные блоки - именно в этом состоит их основное назначение. Ниже приведен полный текст программы из файла schoolroom.cpp.
schoolroom.cpp
#include <iostream.h>
class SchoolClass {
int *ClassData;
int ClassDataIndex;

 
Рис. 1.8. Запуск программы schoolroom

public:
SchoolClass(int NumberStudents);
~SchoolClass(void);
void AddScore(int Score);
int GetScore(int Index);
float AverageScore(void);
};
SchoolClass::SchoolClass(int NumberStudents)
{
ClassData = new int[NumberStudents];
ClassDataIndex = 0;
}
SchoolClass::~SchoolClass(void)
{
delete ClassData;
}
void SchoolClass::AddScore(int Score)
{
ClassData[ClassDataIndex++] = Score;
}
int SchoolClass::GetScore(int Index)
{
if(Index <= ClassDataIndex)
{
return ClassData[Index];
}
else
{
return -1;
}
}
float SchoolClass::AverageScore(void)
{
float Sum = 0;
if(ClassDataIndex == 0)
{
return -1;
}
for(int loop_index = 0; loop_index < ClassDataIndex; loop_index++)
{
Sum += (float) ClassData[loop_index];
}
return Sum / (float) ClassDataIndex;
}
void main()
{
SchoolClass HistoryClass(9);
SchoolClass EnglishClass(10);
HistoryClass.AddScore(80);
HistoryClass.AddScore(81);
HistoryClass.AddScore(82);
HistoryClass.AddScore(83);
HistoryClass.AddScore(84);
HistoryClass.AddScore(85);
HistoryClass.AddScore(86);
HistoryClass.AddScore(87);
HistoryClass.AddScore(88);
EnglishClass.AddScore(91);
EnglishClass.AddScore(92);
EnglishClass.AddScore(93);
EnglishClass.AddScore(94);
EnglishClass.AddScore(95);
EnglishClass.AddScore(96);
EnglishClass.AddScore(97);
EnglishClass.AddScore(98);
EnglishClass.AddScore(99);
EnglishClass.AddScore(100);
cout << "Average score for History class: "
<< HistoryClass.AverageScore() << "\n";
cout << "Average score for English class: "
<< EnglishClass.$AverageScore() << "\n";
}

Наши первые программы на C++ работают, но перед тем как переходить к следующему уроку, стоит познакомиться еще с несколькими важными концепциями: наследованием, переопределением и перегрузкой.

















































































































































Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: