Цель
В этом задании мы узнаем о разнице между классом и экземпляром; поскольку это объектно-ориентированная концепция, она доступна только на определенных языках. Во вкладке Обучение вы найдете учебные материалы и обучающее видео!
Задача
Напишите класс Person с переменной экземпляра age и конструктором, который принимает целое число initialAge в качестве параметра. . Конструктор должен присвоить initialAge age после подтверждения того, что аргумент, переданный как initialAge, не является отрицательным; если в качестве initialAge передается отрицательный аргумент, конструктор должен установить для age значение 0 и вывести Age is not valid, setting age to 0.
. Кроме того, вы должны написать следующие методы экземпляра:
- yearPasses() должен увеличить переменную экземпляра age на 1.
- amIOld() должен выполнять следующие условные действия:
- Если возраст ‹ 13, выведите
You are young.
. - Если возраст ≥ 13 и возраст ‹ 18, выведите
You are a teenager.
. - В противном случае выведите
You are old.
.
Чтобы помочь вам учиться на примерах и решать эту задачу, большая часть кода предоставляется вам, но вы будете писать все в будущем. Код, который создает каждый экземпляр вашего класса Person, находится в основном методе. Не волнуйтесь, если вы еще не все понимаете!
Примечание. Не удаляйте и не изменяйте код-заглушку в редакторе.
Формат ввода
Ввод обрабатывается кодом-заглушкой в редакторе.
Первая строка содержит целое число T (количество тестов), а каждая из последующих строк T содержит целое число, обозначающее возраст экземпляр Person.
Ограничения
- 1 ≤ T ≤ 4
- -5 ≤ возраст ≤ 30 лет
Формат вывода
Заполните определения методов, предоставленные в редакторе, чтобы они соответствовали спецификациям, изложенным выше; код для проверки вашей работы уже находится в редакторе. Если ваши методы реализованы правильно, каждый тест будет печатать 2 или 3 строки (в зависимости от того, был ли передан допустимый initialAge в конструктор).
Пример ввода
4
-1
10
16
18
Пример вывода
Age is not valid, setting age to 0. You are young. You are young.
You are young. You are a teenager.
You are a teenager. You are old.
You are old. You are old.
используя пространство имен std;
#include ‹iostream›
класс Человек{
общедоступно:
инт возраст;
Person(int initialAge);
void amIOld();
void yearPasses();
};
Person::Person(int initialAge){
// Добавляем еще немного кода для запуска некоторых проверок initialAge
if(initialAge › 0){
возраст = начальный возраст;
}
еще{
возраст = 0;
cout‹‹"Возраст недействителен, установите возраст на 0."‹‹endl;
}
}
void Person::amIOld(){
// Делаем здесь некоторые вычисления и выводим правильный оператор на консоль
если(возраст ‹ 13 лет){
cout‹‹"Вы молоды."‹‹endl;
}
иначе если(возраст ›= 13 && возраст ‹ 18){
cout‹‹"Вы подросток."‹‹endl;
}
еще{
cout‹‹"Ты старый."‹‹endl;
}
}
void Person::yearPasses(){
// Увеличиваем возраст человека здесь
возраст++;
}
целое main(){
целое т;
инт возраст;
цин ›› т;
for(int i=0; i ‹ t; i++) {
цин ›› возраст;
человек р(возраст);
p.amIold();
for(int j=0; j ‹ 3; j++) {
p.yearPass();
}
p.amIold();
cout ‹‹ ‘\n’;
}
возврат 0;
}