Есть ответ 👍

Программа выводит информацию о дате рождения. есть класс 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; }

146
159
Посмотреть ответы 2

Ответы на вопрос:

joje1
4,8(10 оценок)

так как из-за структуры языка все символы, вводимые для типа 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                                                                              

вы ввели неверные данные!


Var summ,mat,fizik,geogr,biolog,fizra: integer; begin writeln('enter rating'); readln(mat,fizik,geogr,biolog,fizra); summ: =mat+fizik+geogr+biolog+fizra; writeln(summ); end.

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS