29.07.2013, 15:37. Просмотров 1614. Ответов 3
Здравствуйте! Я решил начать изучать программирование, конкретнее - язык C++. Самым логичным способом изучения мне показалось попробовать почитать книгу Страуструпа "Программирование. Принципы и практика использования C++". Разумеется, по ходу чтения пытаюсь выполнять задания из книги, и вот в конце 3й главы возникла проблема - не могу справиться с заданием, поэтому было решено попросить помощи у более опытных людей.
Собственно, текст задания:
Кликните здесь для просмотра всего текста
Задание
На каждом этапе выполнения задания запустите программу и убедитесь, что она
делает именно то, что вы ожидали. Создайте список сделанных ошибок, чтобы предотвратить их в будущем.
1. Напишите программу, формирующую простую форму для письма на основе входной информации. Для начала наберите программу из раздела 3.1, предложив пользователю ввести свое имя и предусмотрев вывод строки "Hello, firstname", где firstname— это имя, введенное пользователем. Затем модифицируйте программу следующим образом: измените приглашение на строку "Введите имя адресата" и измените вывод на строку "Dear firstname,". He забудьте о запятой.
2. Введите одну или две вступительные фразы, например "Как дела? У меня все хорошо. Я скучаю по тебе". Убедитесь, что первая строка отделена от других. Добавьте еще несколько строк по своему усмотрению—это же ваше письмо.
3. Предложите пользователю ввести имя другого приятеля и сохраните его в переменной frlend_name. Добавьте в ваше письмо следующую строку: "Видел ли ты friend_name недавно?
4. Объявите переменную типа char с именем frlendsex и инициализируйте его нулем. Предложите пользователю ввести значение хп, если ваш друг — мужчина, и f — если женщина. Присвойте переменной friendsex введенное значение. Затем с помощью двух инструкций if запишите следующее. Если друг— мужчина, то напишите строку: "Если ты увидишь friendname, пожалуйста, попроси его позвонить мне". Если друг — женщина, то напишите строку: "Если ты увидишь friend_name, пожалуйста, попроси ее позвонить мне".
5. Предложите пользователю ввести возраст адресата и присвойте его переменной age, имеющей тип int. Ваша программа должна вывести на экран строку: "Я слышал, ты только что отметил день рождения и тебе исполнилось age лет". Если значение переменной age меньше или равно 0 или больше или равно 110, выведите на экран строку error ("ты шутишь!").
6. Добавьте в ваше письмо следующие строки
Если вашему другу меньше 12 лет, напишите: "На следующий год тебе исполнится age+1 лет".
Если вашему другу 18 лет, напишите: "На следующий год ты сможешь голосовать".
Если вашему другу больше 60 лет, напишите: "Я надеюсь, что ты не скучаешь на пенсии".
Убедитесь, что ваша программа правильно обрабатывает каждое из этих значений.
7. Добавьте строку "Искренне твой," затем введите две пустые строки для подписи
и укажите свое имя.
Проблема возникла на 5м пункте. Насколько я понял, проверку значения переменной age (больше она 110 или меньше 0, например) следует выполнять через if-else. Но либо я не понял принцип использования функции if, либо я не понимаю чего-то ещё, но проверка значения переменной age не происходит, и сообщение об ошибке не показывается, каким бы значение переменной ни было. Собственно, мой код:
Кликните здесь для просмотра всего текста
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| #include "..//..//std_lib_facilities.h"
int main()
{
cout << "Enter recipient's first name and press Enter: \n";
string first_name;
cin >> first_name;
cout << "Dear " << first_name << ",\n"
<< "How are u? I'm fine. Miss you.\n";
cout << "Enter other friend's name and press Enter:\n";
string friend_name;
cin >> friend_name;
cout << "Have you seen " << friend_name << " recently?\n";
char friend_sex = 0;
cout << "Enter m for man, f for woman: \n";
cin >> friend_sex;
if (friend_sex == 'm') //тут было критично закавычить ('m') значение, принимаемое функцией friend_sex
cout << "If u'll see " << friend_name << " please ask him to call me.\n";
if (friend_sex == 'f')
cout << "If u'll see " << friend_name << " please ask her to call me.\n";
cout << "Enter recipient's age and press Enter: \n";
int age;
cin >> age;
if (0 <= age <= 110) cout << "I've heard You've just turned " << age << "\n";
else simple_error ("you're kidding");
} |
|
Расскажите, в чём моя ошибка и как её исправить? Любые комментарии на тему кода приветствуются.