From 74c1f5598b4545b029acc45569d29fd0950ee3a8 Mon Sep 17 00:00:00 2001 From: Alexander Zhirov Date: Sun, 20 Jun 2021 22:46:32 +0300 Subject: [PATCH] exercise 1 - creating classes --- lesson_2/exercise_1.hpp | 110 ++++++++++++++++++++++++++++++++++++++++ lesson_2/main.cpp | 15 ++++++ 2 files changed, 125 insertions(+) create mode 100644 lesson_2/exercise_1.hpp create mode 100644 lesson_2/main.cpp diff --git a/lesson_2/exercise_1.hpp b/lesson_2/exercise_1.hpp new file mode 100644 index 0000000..65a5399 --- /dev/null +++ b/lesson_2/exercise_1.hpp @@ -0,0 +1,110 @@ +#ifndef EXERCISE_1_HPP_ +#define EXERCISE_1_HPP_ + +#include + +enum Gender +{ + GENDER_MALE, + GENDER_FEMALE +}; + +class Person +{ +private: + std::string m_name; + int m_age; + Gender m_gender; + float m_weight; +public: + Person(std::string name, int age, Gender gender, float weight) : + m_name(name), m_age(age), m_gender(gender), m_weight(weight) {} + + void setName(std::string name = "") + { + if (name == "") + { + std::cout << "Введите новое имя: "; + std::cin >> m_name; + } + else + m_name = name; + } + + void setAge(int age = 0) + { + if (age == 0) + { + std::cout << "Введите возраст: "; + std::cin >> m_age; + } + else + m_age = age; + } + + void setWeight(float weight = 0.0) + { + if (weight == 0) + { + std::cout << "Введите вес: "; + std::cin >> m_weight; + } + else + m_weight = weight; + } + + void printInfo() const + { + std::cout << "Имя: " << m_name << std::endl + << "Возраст: " << m_age << std::endl + << "Пол: " << (m_gender == GENDER_MALE ? "муж" : "жен") << std::endl + << "Вес: " << m_weight << std::endl; + } +}; + +class Student : public Person +{ +private: + static int count; + int m_yos; // year of study +public: + Student(std::string name, int age, Gender gender, float weight, int yos) : + Person(name, age, gender, weight), m_yos(yos) + { + count++; + } + + static void printCount() + { + std::cout << "Количество студентов: " << count << std::endl; + } + + void setYearStudy(int yos = 0) + { + if (yos == 0) + { + std::cout << "Введите год обучения: "; + std::cin >> m_yos; + } + else + m_yos = yos; + } + + void incYear() + { + m_yos++; + } + + void printInfo() const + { + Person::printInfo(); + std::cout << "Год обучения: " << m_yos << std::endl; + } + + ~Student() + { + count--; + } +}; + +#endif diff --git a/lesson_2/main.cpp b/lesson_2/main.cpp new file mode 100644 index 0000000..522b096 --- /dev/null +++ b/lesson_2/main.cpp @@ -0,0 +1,15 @@ +#include +#include "exercise_1.hpp" + +using namespace std; + +int Student::count = 0; + +int main() +{ + Student Alex("Олег", 20, GENDER_MALE, 75.2, 2020); + Alex.printInfo(); + Student::printCount(); + + return 0; +}