Объектно-ориентированное программирование на C++. Андрианова А.А - 100 стр.

UptoLike

Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
// инициализация статических переменных класса Student
int Student::countTests = 6;
int Student::countExams = 4;
// метод заполнения информации о студенте
void Student::Fill(char* f, int d, int m, int y,
int ntb, double mark)
{
strcpy(fio, f);
numberOfTestBook = ntb;
// проверка на корректность введенной даты
// в случае некорректной даты генерируются исключения
if(y < 1950 || y > 2000)
throw 1;
if(m < 1 || m > 12)
throw 2;
if ((m == 1 || m == 3 || m == 5 || m == 7 || m == 8
|| m == 10 || m == 12) && (d < 1 || d > 31))
throw 3;
if ((m == 4 || m == 6 || m == 9 || m == 11) &&
(d < 1 || d > 30))
throw 3;
if (m == 2 && (d < 1 || (((y % 4 == 0 &&
y % 100 != 0) || y % 400 == 0) && d > 29)
|| (!((y % 4 == 0 && y % 100 != 0)
|| y % 400 == 0) && d > 28)))
throw 3;
dayBirth = d;
monthBirth = m;
yearBirth = y;
averageMark = mark;
for(int i = 0; i < countTests; i++)
tests[i] = 0.0;
for(int i = 0; i < countExams; i++)
exams[i] = 0.0;
}
// конструктор класса Student
Student::Student(char* f, int d, int m, int y,
int ntb, double mark)
{
Fill(f, d, m, y, ntb, mark);
}
// конструктор по умолчанию класса Student
Student::Student()
{
}
100
                               Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.

      // инициализация статических переменных класса Student
      int Student::countTests = 6;
      int Student::countExams = 4;

      // метод заполнения информации о студенте
      void Student::Fill(char* f, int d, int m, int y,
                                         int ntb, double mark)
      {
           strcpy(fio, f);
           numberOfTestBook = ntb;
           // проверка на корректность введенной даты
           // в случае некорректной даты генерируются исключения
           if(y < 1950 || y > 2000)
                throw 1;
           if(m < 1 || m > 12)
                throw 2;
           if ((m == 1 || m == 3 || m == 5 || m == 7 || m == 8
                 || m == 10 || m == 12) && (d < 1 || d > 31))
                     throw 3;
           if ((m == 4 || m == 6 || m == 9 || m == 11) &&
                (d < 1 || d > 30))
                throw 3;
           if (m == 2 && (d < 1 || (((y % 4 == 0 &&
                y % 100 != 0) || y % 400 == 0) && d > 29)
                || (!((y % 4 == 0 && y % 100 != 0)
                || y % 400 == 0) && d > 28)))
                throw 3;
           dayBirth = d;
           monthBirth = m;
           yearBirth = y;
           averageMark = mark;
           for(int i = 0; i < countTests; i++)
                tests[i] = 0.0;
           for(int i = 0; i < countExams; i++)
                exams[i] = 0.0;
      }

      // конструктор класса Student
      Student::Student(char* f, int d, int m, int y,
                                    int ntb, double mark)
      {
           Fill(f, d, m, y, ntb, mark);
      }

      // конструктор по умолчанию класса Student
      Student::Student()
      {
      }

100