Программа выводит информацию о дате рождения. есть класс date и унаследованный от него birthday. в конструктор класса birthday нужно передать три значения типа int, для дня, месяца и года соответственно. если передавать значения вручную прямо из программы - все прекрасно. но если доверить пользователю самому вводить эти значения с клавиатуры (что логично) и записывать их в какие-либо переменные, а потом передавать значения этих переменных в конструктор - появляется возможность ввода данных любых типов, приводимых к int. как проверить, что пользователь действительно ввёл с клавиатуры целые числа? и если введены недопустимые значения (например, буква или же строка, содержащая буквы, и т.д) обработать ошибку с try - catch - throw? #include #include using namespace std; class date { protected: int day, month, year; public: date () { day = 0; month = 0; year = 0; } void info () { cout«"day: "«day«endl; cout«"month: "«month«endl; cout«"year: "«year«endl; cout«endl; } }; class birthday : public date { public: birthday (int d_day, int m_month, int y_year){ day = d_day; month = m_month; year = y_year; } }; int main() { birthday ilya(17,10,1999); birthday alina(5,2,1999); birthday angelina(5,2,1999); ilya.info(); alina.info(); angelina.info(); return 0; }
Ответы на вопрос:
так как из-за структуры языка все символы, вводимые для типа int превращаются в 0, то после ввода в main можно проверяться на наличие нуля. это никак не навредит программе, поскольку в датах не может быть нуля.
кодint main()
{
int day = 0, month = 0, year = 0;
cout < < "ilya (d//m//y): ";
cin > > day > > month > > year;
if((day == 0) || (month == 0) || (year == 0)){
cout < < "вы ввели неверные данные! ";
return 0;
}
else{
//
}
return 0;
}
проверкаilya (d//m//y): six 3 1999
вы ввели неверные данные!
ilya (d//m//y): ( 8 1954
вы ввели неверные данные!
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
lilya14kiev29.06.2022 20:22
-
wranase06.07.2020 16:17
-
alyssasweetgirl24.02.2021 11:23
-
p11111119717.06.2023 00:30
-
ilmasha2411.04.2023 23:26
-
Maksim12345105.01.2021 06:19
-
Helokiti234313.06.2022 13:01
-
MalenkayaStervochka15.10.2022 15:51
-
алиса15342631.03.2020 22:01
-
Andreichik22805.11.2021 23:04
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.