Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/55: Рейтинг темы: голосов - 55, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 30.01.2020
Сообщений: 15

Конвертер валют

17.05.2020, 20:20. Показов 12003. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Очень нужна помощь! Нужно написать программу, которая переводит суммы из рублей в доллары. Буду очень благодарна
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.05.2020, 20:20
Ответы с готовыми решениями:

Конвертер валют
Составить программу "конвертер валют".Известны размер денежной суммы в некотрой валюте и текущий курс этой валюты по отношению к...

Конвертер валют
Помогите написать конвертер валют в Windows form 1. Сумма в рублях 2. Курс доллара 3. Результат в долларах Необходимо рубли...

Конвертер валют
Очень нужна помощь! Нужно написать программу "Конвертер валют", которая позволяет перевести указанную сумму из одной валюты в другую по...

5
Wanna be serious
 Аватар для Bespridelschic
587 / 474 / 186
Регистрация: 31.07.2013
Сообщений: 1,693
17.05.2020, 22:05
Справишься?
C#
1
2
    decimal rubs = 10.0M;
    decimal inDollars = rubs * 30;
0
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
17.05.2020, 22:47
Bespridelschic, 10₽=300$ ?))
0
Wanna be serious
 Аватар для Bespridelschic
587 / 474 / 186
Регистрация: 31.07.2013
Сообщений: 1,693
17.05.2020, 22:48
AndreyVorobey, я надеюсь на прекрасное далёко
0
 Аватар для Scrypto
132 / 111 / 48
Регистрация: 08.02.2013
Сообщений: 621
17.05.2020, 23:57
В общем так.
Прога подтягивает текущий курс валют через Api: https://currate.ru/api
Вводишь сумму, выбираешь что во что конвертировать и получаешь результат.
Можно даже битки проверять. Для работы нужен интернет.

Через апи получаем json ответ, десериализуем с помощью newtonsoft.json, и получаем список возможных конвертаций.
После чего при выборе в combobox нужной конвертации, регуляркой выдергиваем ее стоимость (через json адекватно сделать не получилось, так как пришлось создавать свойство на каждую валюту, проще регуляркой парсить). Ну и потом перемножаем и выводит mbox;

Потребуется установать nuget newtonsoft json

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
using Newtonsoft.Json;
using System;
using System.Text.RegularExpressions;
using System.Windows.Forms;
 
namespace moneyConverter
{
    public partial class Form1 : Form
    {
        Converter conv = new Converter();
        public Form1()
        {
            InitializeComponent();
        }
 
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            // Подгружаем в combobox названия валютных преобразований EURRUB - евро в рубли и т.п.(за 1 шт.)
            string convVals = conv.GetValutes();
            ValuteJson vjs = JsonConvert.DeserializeObject<ValuteJson>(convVals);
            foreach (string val in vjs.Data)
            {
                comboBox1.Items.Add(val);
            }
 
        }
 
 
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            double valutaPrice = 1;
            if (comboBox1.SelectedIndex >= 0)
            {                 
                string priceJsonGet = conv.GetPrice(comboBox1.SelectedItem.ToString());
 
                string pattern = "{\"status\":200,\"message\":\"rates\",\"data\":{\"[A-Z]+\":\"([0-9].*)\"}}";
                Regex PriceCondition = new Regex(pattern, RegexOptions.IgnoreCase);
                MatchCollection PriceRegexr = PriceCondition.Matches(priceJsonGet);
                if (PriceRegexr.Count > 0)
                    valutaPrice = double.Parse(PriceRegexr[0].Groups[1].Value.Replace(".",","));
               
                    MessageBox.Show((double.Parse(textBox1.Text) * valutaPrice).ToString());  
            }
        }
    }
}
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
using Newtonsoft.Json;
using System.Collections.Generic;
using System.IO;
using System.Net;
 
namespace moneyConverter
{
    class Converter
    {
        public string GetValutes() {
            WebRequest request = WebRequest.Create("https://currate.ru/api/?get=currency_list&key=bff22bff094dcfcb97777bb17b4513f9");
            WebResponse response = request.GetResponse();
            using (Stream stream = response.GetResponseStream())
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    string line = "";
                    while ((line = reader.ReadLine()) != null)
                    {
                        return line;
                    }
                }
            }
            
            response.Close();
            return "";
        }
 
        //ttps://currate.ru/api/?get=rates&pairs=USDRUB,EURRUB&key=YOUR-API-KEY
        public string GetPrice(string valuta)
        {
            WebRequest request = WebRequest.Create($"https://currate.ru/api/?get=rates&pairs={valuta}&key=bff22bff094dcfcb97777bb17b4513f9");
            WebResponse response = request.GetResponse();
            using (Stream stream = response.GetResponseStream())
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    string line = "";
                    while ((line = reader.ReadLine()) != null)
                    {
                        return line;
                    }
                }
            }
 
            response.Close();
            return "";
        }
    }
    public class ValuteJson
    {
 
        [JsonProperty("status")]
        public string Status { get; set; }
 
        [JsonProperty("message")]
        public string Message { get; set; }
 
        [JsonProperty("data")]
        public IList<string> Data { get; set; }
    }
 
 
}
Миниатюры
Конвертер валют   Конвертер валют  
0
 Аватар для Scrypto
132 / 111 / 48
Регистрация: 08.02.2013
Сообщений: 621
18.05.2020, 00:02
У сервиса есть ограничения. 1000 операций в день, так что если будет превышено, прога получит исключение, которое в коде никак не обработано, так как писалось на скорую руку, можете сами.
Вот исходники https://yadi.sk/d/czGD_i2mvL9rHw
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.05.2020, 00:02
Помогаю со студенческими работами здесь

Проекты с GUI. Конвертер валют
Имеется конвертер валют. Пользователь вводит сумму, выбирает две валюты и получает эквивалент во второй валюте. P.S. Я не смогу...

Написать конвертер валют (3 валюты).
Написать конвертер валют (3 валюты). У пользователя есть баланс в каждой из представленных валют. Он может попросить сконвертировать...

Конвертер валют (с использованием ООП)
Есть ли у кого-нибудь готовый конвертер валют на с#? Необходимо чтобы были соблюдены принципы объектно-ориентированного программирования,...

Конвертация валют
Вот условие задачи: Используя Visual Studio, создайте проект по шаблону Console Application. Требуется: Создать класс Converter. ...

Онлайн крус валют
привет, подскажите можно ли такое реализовать, и как Вот сам суть программы Надо что бы каждый день обновлялась курс валюты онлайн в...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в конфигурации КА2. Данные берутся из регистра сведений, по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru