1

Тема: Допоможіть по ООП на с++

Нам на парі ООП (Об'єктно орієнтовне програмування).
Сказали щоб ми цю програму
http://window.edu.ru/catalog/pdf2txt/95 … 2?p_page=7
переписали і запустили. Я запустив але програма  не коректно працює.
Я не знаю що в ній виправляти, чи я не так вводжу?
Будь ласка мені дуже потрібна допомога!!
https://replace.org.ua/extensions/om_images/img/5d849649541b4/2_2_2_a3f51e96e1271e61fffb72752e0202f2.jpg
А якщо при воді дати народження писати ., \ чи інший символ то буде безкінечний цикл.
https://replace.org.ua/extensions/om_images/img/5d849649541b4/2_2_2_96796902467e68172ea67e884a83b002.jpg

2

Re: Допоможіть по ООП на с++

cryoffiar написав:

А якщо при воді дати народження писати ., \ чи інший символ то буде безкінечний цикл.

Так, бо зчитування помилкових даних - окрема історія, яку початківцям не пояснюють. Хоча дивно, там використовуються виключні ситуації. Коротше, просто неякісний навчальний матеріал. Що можна було сказати й просто за доменним іменем - не користуйтеся інформацією з домену .ru.
Після такого некоректного зчитування об'єкт cin переходить у стан помилки, який треба перевірити і виправити. Доки cin в стані помилки, читати з нього неможливо.

int x;
cin >> x;//припустимо, тут ввели не число
if(!cin){ //якщо сталася помилка - обробляємо
    cin.clear();//скидаємо стан помилки; але символи, які були введені, все ще лишаються в буфері, і наступна операція зчитування призведе знову до помилки
    cin.ignore(256, '\n');//викидаємо з буфера 256 символів або доки не зустрінеться знак нового рядка (Enter)
    //теоретично, в цьому місці ignore знову може привести cin у стан помилки, думайте самі, що робити тоді
} else {
    //а ось тут все гаразд, значення x можна використовувати
}
Подякували: leofun011

3

Re: Допоможіть по ООП на с++

Ну і принагідно: ніякого ООП там і близько немає, дуже слабенькі АТД максимум.

4

Re: Допоможіть по ООП на с++

тре зателефонувати в сбу за ресурс

5

Re: Допоможіть по ООП на с++

Ну і просто залишу тут https://replace.org.ua/post/76373/#p76373