Website Summary Files Commits Branches @commit @diff @stats
path: root / Sem. 09 / task (not finished) / Student.cpp
blob: 99d26dc84e3e3999fe51c6a4064f2235aff77ddd (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include "Student.h"

Student::Student(const char* name, size_t fn)
{
	setName(name);
	setFn(fn);
}

void Student::setFn(size_t fn)
{
	if (fn < 80000 || fn > 83000)
		throw std::exception("Invalid fn");

	this->fn = fn;
}
void Student::setName(const char* name)
{
	if (strlen(name) > MAX_NAME_LENGTH)
		throw std::exception("Name is too long!");

	strcpy(this->name, name);
}

size_t Student::getFN() const
{
	return fn;
}
const char* Student::getName() const
{
	return name;
}

void Student::addGrade(const char* taskName, size_t grade)
{
	if (gradesCount == MAX_GRADES_COUNT)
		throw std::exception("Error! Too many grades!");

	Grade currentGrade(taskName, grade);
	grades[gradesCount++] = currentGrade;
}

void Student::print() const
{
	std::cout << name << " " << fn << std::endl;
}