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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
KattyBelka
0 / 0 / 0
Регистрация: 26.04.2013
Сообщений: 10
#1

Через ООП: Дать для числа наименование: "рубль", "рубля", "рублей"; - C++

17.06.2013, 12:00. Просмотров 928. Ответов 3
Метки нет (Все метки)

Помогите пожалуйста с задачей. Могу сделать ее просто, но надо через ООП и у меня не получается.

Дано натуральное число N (N<20), определяющее сумму денег в рублях. Дать для этого числа наименование: "рубль", "рубля", "рублей";
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.06.2013, 12:00     Через ООП: Дать для числа наименование: "рубль", "рубля", "рублей";
Посмотрите здесь:

Правильно ли написано программа про "Рубля, рублей, рубль" - C++
Здравствуйте, нужно чтобы программа определяла, рубля, рублей, рубль. То есть как правильно сказать. Подскажите пожалуйста, правильно ли...

Дано натуральное число. Найти сумму последних "n" цифр "n" числа, не применяя переменых значений - C++
Здравствуйте, помогите написать две программы. 1) Дано натуральное число. Найти сумму последних &quot;n&quot; цифр &quot;n&quot; числа, не применяя...

2 Программы. На "целые числа и системы счисления" и на "метод деления отрезка пополам" - C++
1)Дано натурально число n. Среди чисел 1, ... ,n найти все такие, запись которых совпадает с последними цифрами их квадрата ( как,...

Проверить, образуют ли числа симметричную последовательность (варианты ответа "Yes" или "No") - C++
на с++ помогите исправить код #include &lt;iostream&gt; using namespace std; int main() { int n,i; int a;

Два числа, действительное "a" и натуральное "n" вводятся с клавиатуры - C++
Два числа, действительное &quot;a&quot; и натуральное &quot;n&quot; (n&gt;=10) вводятся с клавиатуры, необходимо найти значение выражения : ...

Проблема с перегрузкой операторов "+" и "+=" для классов Point и Circle - C++
Есть класс Point (элементы данных x,y) и класс Circle (элементы данных р(типа Point),r). Их заголовочные файлы: class Point { ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Пaтрик
415 / 390 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
17.06.2013, 12:23     Через ООП: Дать для числа наименование: "рубль", "рубля", "рублей"; #2
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
27
28
29
30
#include <functional>
#include <iostream>
 
class money : public std::unary_function<short, const wchar_t*>
{
public:
    const wchar_t* operator () (short m)
    {
        switch (m)
        {
        case 1:
            return L"рубль";
        case 2:
        case 3:
        case 4:
            return L"рубля";
        default:
            break;
        }
        return L"рублей";
    }
};
 
int main()
{
    setlocale(LC_ALL, "Russian");
    money m;
    std::wcout << m(10) << std::endl;
    return 0;
}
KattyBelka
0 / 0 / 0
Регистрация: 26.04.2013
Сообщений: 10
18.06.2013, 10:04  [ТС]     Через ООП: Дать для числа наименование: "рубль", "рубля", "рублей"; #3
Спасибо большое!!!

Правда программа работает не совсем так как надо(просто выводит слово, не относя к числу и вообще не запрашивает число), но это я думаю не долго исправить.

Можно попросить еще об одном, объяснить поподробней текст программы

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
27
28
29
30
#include <functional>
#include <iostream>
using namespace std; 
class money : public unary_function<short, const wchar_t*>
{
public:
    const wchar_t* operator () (short m)
    {
        switch (m)
        {
        case 1:
            return L"рубль";
        case 2:
        case 3:
        case 4:
            return L"рубля";
        default:
            break;
        }
        return L"рублей";
    }
};
 
int main()
{
    setlocale(LC_ALL, "Russian");
    money m;
    wcout << m(10) << "\n";
    return 0;
}

Почему только от 1 до 4 рублей или мне просто самой доделать по принципу?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.06.2013, 11:06     Через ООП: Дать для числа наименование: "рубль", "рубля", "рублей";
Еще ссылки по теме:

Описание классов. Классы "Шар" и "Ящик для шаров" - C++
1.Опишите класс &quot;шар&quot;, описывающий габариты и вес. Данные класса: радиус шара,вес. Методы класса: должны обеспечить минимальную...

После введенного числа дописать "Рубль" в правильной форме - C++
Написать программу которая после введенного с клавиатуры числа (в диапазоне от 1 до 999), обозначающего денежную единицу,дописывает &quot;Рубль&quot;...

Паттерн "Итератор" для шаблонного класса "Словарь" - C++
Препод дал задание сделать шаблонный словарь и реализовать для него иттератор. Сделал словарь, но как работать с иттератором я понятия не...

Перегрузка "opеrator =" и "{ }" для собственного класса - C++
Я пытаюсь создать класс Vector. Для задания элементов вектора хотелось бы использовать &quot;opеrator =&quot; и &quot; { } &quot;. Возможно ли...

При сокращении "Фамилия Имя Отчество" к "Фамилия И.О." пропадают "И.О." - C++
Подскажите, в чём может быть ошибка? Процедура сама по себе работает правильно, а в таком виде нет. ...

чем отличается вызов объекта через "." и через "->" - C++
Здравствуйте. Вот создал топик для тех, кто желает сам познать С++, но у которых есть вопросы по базовым знаниям. Начну с вопроса:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
18.06.2013, 11:06     Через ООП: Дать для числа наименование: "рубль", "рубля", "рублей"; #4
KattyBelka, От 5 и до 20 окончание будет "рублей", что хэндлит дефолтный кейс.
Соответственно разница только для 1 (рубль), и 2,3,4 (рубля).
Yandex
Объявления
18.06.2013, 11:06     Через ООП: Дать для числа наименование: "рубль", "рубля", "рублей";
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru