Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
626 / 38 / 25
Регистрация: 25.04.2017
Сообщений: 477
1

Разработать систему денежных переводов банка

29.03.2019, 12:11. Показов 1282. Ответов 2
Метки нет (Все метки)

Задание 1
Создайте модель данных для следующей задачи:
Разработать систему денежных переводов банка. У каждого клиента банка есть один или несколько счетов. Необходимо разработать систему, позволяющую делать денежные переводы с одного счета на другой.
Модель по заданию 1:
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
    #region Model
    /// <summary>
    /// Представляет банковский счет
    /// </summary>
    public class Account
    {
        public decimal Sum { get; set; }
        public Client Client { get; set; }
    }
    /// <summary>
    /// Банк
    /// </summary>
    public class Bank
    {
 
        Transaction transaction;
 
        List<Client> clients = new List<Client>();
        List<Account> accounts = new List<Account>();
 
        /// <summary>
        /// Переводит денежные средства с одного счета на другой
        /// </summary>
        public TransferResult Transfer(Account acc1, Account acc2, decimal sum)
        {
            transaction = new Transaction
            {
                FromAccount = acc1,
                ToAccount = acc2,
                Sum = sum
            };
 
            var result = transaction.Execute();
            return result;
        }
    }
    /// <summary>
    /// Клиент
    /// </summary>
    public class Client
    {
        public string Name { get; set; }
        public Client(string name)
        {
            Name = name;
        }
    }
    /// <summary>
    /// Транзакция
    /// </summary>
    public class Transaction
    {
        // с какого счета перевод
        public Account FromAccount { get; set; }
        // на какой счет перевод
        public Account ToAccount { get; set; }
        // сумма перевода
        public decimal Sum { get; set; }
 
        public TransferResult Execute()
        {
            if (FromAccount.Sum >= Sum)
            {
                FromAccount.Sum -= Sum;
                ToAccount.Sum += Sum;
                return TransferResult.Success;
            }
            return TransferResult.Failure;
        }
 
    }
 
    #endregion
    public enum TransferResult
    {
        None,
        Success,
        Failure
    }
Не получается решить 2 задание:
Сделайте предыдущее упражнение, но с учетом того, что счета могут быть в разных валютах.

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

Наработки по заданию 2:
Изменен класс Account
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    /// <summary>
    /// Представляет банковский счет
    /// </summary>
    public class Account
    {
        public decimal Sum { get; set; }
        //Хранит тип валюты счета
        public CurrencyType currency { get; set; }
        public Client Client { get; set; }
    }
   public enum CurrencyType
    {
        RUB, USD, EUR
    }
Класс с курсами валют
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
    /// <summary>
    /// Содержит курсы валют
    /// </summary>
    public class CurrencyRate
    {
        public CurrencyType currency { get; set; }
        public string CurrencyName { get; set; }
        public decimal ExchangeRate { get; set; }
 
        /// <summary>
        /// Переводит рубли в иностранную валюту по курсу rate
        /// </summary>
        public decimal ConvertToCurrency(decimal sum, decimal rate)
        {
            return sum / rate;
        }
        /// <summary>
        /// Переводит иностранную валюту в рубли по курсу rate
        /// </summary>
        public decimal ConvertToRUB(decimal sum, decimal rate)
        {
            return sum * rate;
        }
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.03.2019, 12:11
Ответы с готовыми решениями:

Упрощение графа денежных переводов
Допустим, имеется следующий лог переводов денежных сумм с одного счета на другой: A -&gt; B 800...

Разработать прог¬рамму, которая заменяет все словесные записи денежных сумм числами
В исходном файле содержится некоторый текст. Разработать прог¬рамму, которая заменяет все словесные...

Разработать систему тестирования знаний студентов (экспертную систему) по правовым вопросам
народ, помогите, очень нужно! вот задание: Разработать систему тестирования знаний студентов...

PIC 16F8xxx. Считать байт из регистра банка «0» и передать в регистр банка «1»
Помогите решить задачу MPLAB IDE микроконтроллеров PIC micro ассемблер. PIC 16F8xxx Задача...

2
626 / 38 / 25
Регистрация: 25.04.2017
Сообщений: 477
02.04.2019, 12:10  [ТС] 2
Ну кто нибудь? (
0
1210 / 751 / 394
Регистрация: 23.02.2019
Сообщений: 1,890
02.04.2019, 14:27 3
Могу быть неправ, но как идея. Любой перевод валюты в банках, всё равно идёт через конвертацию в рубли, а затем в валюту назначения. Поэтому можно создать какой нибудь глобальный словарь с текущим курсом валют (по отношению к рублю), например:

C#
1
2
3
4
Dictionary<CurrencyType, decimal> currencyRate = new Dictionary<CurrencyType, decimal>();
currencyRate[CurrencyType.RUB] = 1m;
currencyRate[CurrencyType.USD] = 65.30m;
currencyRate[CurrencyType.EUR] = 73.10m;
А в транзакции, что-то вроде этого:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
public TransferResult Execute()
{
    if (FromAccount.Sum >= Sum)
    {
        FromAccount.Sum -= Sum;
 
        // конвертация в валюту получателя
        ToAccount.Sum += ConvertCurrency(FromAccount.currency, ToAccount.currency, Sum);
 
        return TransferResult.Success;
    }
    return TransferResult.Failure;
}
Где конвертация выглядит примерно таким образом:
C#
1
2
3
4
5
6
7
8
9
10
11
private decimal ConvertCurrency(CurrencyType fromCurrency, CurrencyType toCurrency, decimal sum)
{
    // если тип валюты разный, то сначала переводим в рубли, а затем в валюту получателя.
    if (fromCurrency != toCurrency)
    {
        sum *= currencyRate[fromCurrency];
        sum /= currencyRate[toCurrency];
    }
 
    return sum;
}
Возможно где-то ошибся с логикой, но вроде всё в порядке. Лучше конечно проверить тщательно, банк всё таки)
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.04.2019, 14:27

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Необходимо раз уделить средства банка таким образом, чтобы годовой доход банка был максимальным
Собственные средства банка составляют 100 единиц. Банк получает прибыль, выдавая кредиты и покупая...

На сколько лет необходимо положить в банк сумму Х денежных единиц, чтобы получить сумму N денежных единиц (N> X)
Здравствуйте помогите пожалуйста сделать эту задачу в которой нужно использовать цикли. На...

Разработать систему тестирования
разработка системы тестирования на delphi XE3

Разработать справочную систему
Разработать справочную систему, выдающую в окно вывода текста информацию о четырех операторах языка...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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