Форум программистов, компьютерный форум CyberForum.ru

Задание из книги Страуструпа - C++

Восстановить пароль Регистрация
 
Ollister
Сообщений: n/a
29.07.2013, 15:37     Задание из книги Страуструпа #1
Здравствуйте! Я решил начать изучать программирование, конкретнее - язык 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");
    
}

Расскажите, в чём моя ошибка и как её исправить? Любые комментарии на тему кода приветствуются.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.07.2013, 15:37     Задание из книги Страуструпа
Посмотрите здесь:

пример из книги страуструпа C++
C++ Задачка из книги Страуструпа...
Задача из книги Страуструпа C++
Задачка из книги Страуструпа C++
Библиотеки для книги Страуструпа C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
aLarman
636 / 557 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
29.07.2013, 15:52     Задание из книги Страуструпа #2
Цитата Сообщение от Ollister Посмотреть сообщение
C++
1
if (0 <= age <= 110) cout << "I've heard You've just turned " << age << "\n"; else simple_error ("you're kidding");
странная констуркция условия для с++,
C++
1
if( (age>0) && (age < 110) )
Ryabchik
17 / 17 / 1
Регистрация: 09.01.2013
Сообщений: 158
29.07.2013, 15:57     Задание из книги Страуструпа #3
C++
1
2
if ( (age <= 0) || (age >=100) )
cout << "you are kidding/n";
Двойные неравенства в условии писать нельзя
Flysolo
0 / 0 / 0
Регистрация: 13.03.2015
Сообщений: 22
12.06.2015, 22:21     Задание из книги Страуструпа #4
В 6 пункте выше указанного задания упоминается использование simple_error. Что страуструп хочет? Объясните пожалуйста.
Yandex
Объявления
12.06.2015, 22:21     Задание из книги Страуструпа
Ответ Создать тему
Опции темы

Текущее время: 08:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru