Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2024, 11:13   #1
Polyan
 
Регистрация: 04.04.2024
Сообщений: 4
По умолчанию С++ Курсы валют

Здравствуйте, форумчане!
Прошу помочь с вводом данным.
Запуталась с вводом данным. Не получается сделать как в примере.
Есть задача по написанию программы по курсу валют с классом Currency.
В классе должны быть:

Название валюты (string name)

Курс в рублях (double rate)

Возможность задавать и получать название и курс валюты:

void set_name(string);

void set_rate(double); // Если предлагается изменить курс валюты на отрицательное число, то установить курс, равный 1.

double get_rate();

string get_name();

Метод, который возвращает количество рублей, которое можно получить за введенное количество валюты

double convert(double);

У вас есть 2 различные валюты, описанные данным образом. Напишите программу, умеющую работать со следующими командами:

set_rate <номер> <значение> – устанавливает курс для заданной валюты (1 или 2 соответственно)

set_name <номер> <название> – задает название валюте

show <номер> – выводит название и курс валюты

convert <количество> from <номер> – выводит, сколько можно получить рублей за введенное количество валюты

Формат входных данных

В первой строке входных данных задается информация по первой валюте в формате: строка, состоящая из строчных и заглавных букв английского алфавита, и вещественное число через пробел, задающее курс валюты.

Во второй строке аналогично задается информация по второму типу валюты.
В третьей строке задаётся число N (N <= 100) – количество команд.
В следующих N строках вводятся команды, описанные выше.
Все числа заданы с точностью до 6 знаков после точки и по модулю не превосходят 1000.
Формат выходных данных
Для каждой команды, требующей вывод данных, выведите эти данные на экран в описанном выше формате.
Sample Input:

Euro 85.5
Dollar 65.3
3
convert 10 from 1
convert 11 from 2
show 1

Sample Output:

855
718.3
Euro 85.5

Код:
#include <iostream>
#include <string>
using namespace std;

class Currency {
private:
    string currencyName;
    double exchangeRate;
public:
   /* Currency(string name, double rate) {
        currencyName = name;
        exchangeRate = (rate >= 0) ? rate : 1.0;
    }
    */
    void setName(string newName)
    {
        currencyName = newName;
    }

    void setRate(double rate)
    {
        exchangeRate = (rate >= 0) ? rate : 1.0;

    }
    string getCurrencyName() {
        return currencyName;
    }

    double getExchangeRate() {
        return exchangeRate;
    }

    double convertToRubles(double amount) {
        return amount * exchangeRate;
    }


    void displayCurrency() {
        cout << currencyName << " " << exchangeRate << endl;//show
    }
};

int main() {
    Currency currency1, currency2;
    string name1, name2, command;
    double rate1, rate2, amount;
    int numCommands;
    cin >> name1 >> rate1;
    currency1.setName(name1);
    currency1.setRate(rate1);

    cin >> name2 >> rate2;
    currency2.setName(name2);
    currency2.setRate(rate2);

    cin >> numCommands;
    for (int i = 0; i < numCommands; ++i) {
        cin >> command;
        if (command == "convert") {
            cin >> amount;
            cout << "from ";
            int currencyNum;
            cin >> currencyNum;
            if (currencyNum == 1) {
                cout << currency1.convertToRubles(amount)<<endl;
            }
            else if (currencyNum == 2) {
                cout << currency2.convertToRubles(amount) << endl;
            }
        }
       if (command == "show") {
            int currencyNum;
            cin >> currencyNum;
            if (currencyNum == 1)
            {
                currency1.displayCurrency();
            }
            else if (currencyNum == 2)
            {
                currency2.displayCurrency();
            }

        }

    }

	return 0;
}
Polyan вне форума Ответить с цитированием
Старый 29.05.2024, 16:59   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,323
По умолчанию

Код:
            cin >> amount;
            cin >> command; // eat "from"
            int currencyNum;
            cin >> currencyNum;
В реализации не хватает поддержки команд set_rate и set_name.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 30.05.2024, 12:21   #3
Polyan
 
Регистрация: 04.04.2024
Сообщений: 4
По умолчанию

Спасибо за помощь.
С записью справилась.
set_rate set_name пока не разобралась.
Polyan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подтянуть курсы валют в Power BI hattter HTML и CSS 1 12.08.2019 09:20
калькулятор и курсы валют на C++Builder Evgeny922 Помощь студентам 1 26.01.2012 18:09
Курсы валют с cbr.ru в access 2007 Zhiltsov Microsoft Office Access 1 28.06.2011 20:49
Задача про курсы валют. Rustafa13 Помощь студентам 6 10.05.2011 20:34
Курсы валют aaa Microsoft Office Excel 2 20.11.2007 09:37