Реализовать класс Account, представляющий собой банковский счет - C#
Формулировка задачи:
Реализовать класс Account, представляющий собой банковский счет. В классе должны быть четыре поля: фамилия владельца, номер счета, процент начисления и сумма в рублях. Необходимо выполнять следующие операции: сменить владельца счета, снять некоторую сумму денег со счета, положить деньги на счет, начислить проценты, перевести сумму в доллары, перевести сумму в евро, получить сумму прописью (преобразовать в числительное).
Решение задачи: «Реализовать класс Account, представляющий собой банковский счет»
textual
Листинг программы
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Account аccount = new Account
{
ФамилияВладельца = "",
НомерСчета = "123abc",
ПроцентНачисления = 0.13M,
СуммаРубли = 10000.23M
};
СменаВладельца(аccount, "Neko");
СнятьНeкоторуюСуммуСчета(аccount, 100);
ПоложитьНаСчет(аccount, 100);
НачислитьПроцентьіЗаМесяц(аccount);
ПеревестиЕвро(аccount);
ПеревестиДоларьі(аccount);
СуммаПрописью(аccount);
}
public class Account
{
public string ФамилияВладельца;
public string НомерСчета;
public decimal ПроцентНачисления;
public decimal СуммаРубли;
}
static void СменаВладельца(Account аccount, string новьійвладелец)
{ аccount.ФамилияВладельца = новьійвладелец; }
static void СнятьНeкоторуюСуммуСчета(Account аccount, int сумма)
{
// в условии нет описания ситуации, когда на счету меньше снимаемого,
//а значит тут я кручу-верчу-делаю-что-хочу (разрешаю отрицательньій баланс)
аccount.СуммаРубли -= сумма;
}
static void ПоложитьНаСчет(Account аccount, int сумма)
{ аccount.СуммаРубли -= сумма; }
static void НачислитьПроцентьіЗаМесяц(Account аccount)
{ аccount.СуммаРубли = аccount.СуммаРубли * (1 + аccount.ПроцентНачисления); }
static void ПеревестиЕвро(Account аccount)
{ Console.WriteLine("Счет в евро = " + (аccount.СуммаРубли / 40).ToString()); }
static void ПеревестиДоларьі(Account аccount)
{ Console.WriteLine("Счет в доларах = " + (аccount.СуммаРубли / 30).ToString()); }
static void СуммаПрописью(Account аccount)
{
string result = "";
decimal nya = decimal.Truncate(аccount.СуммаРубли);
if (аccount.СуммаРубли < 0)
{
result += "минус ";
nya = decimal.Negate(nya);
}
int i = 0;
string[] рaзрядность = new string[] {"", "тьіс.", "мил.", "трил.", "покемонов"};
while (nya > 0)
{
result = Get(Convert.ToInt32(nya % 1000)) + " " + рaзрядность[i] + result;
i++;
nya = decimal.Truncate(nya / 1000);
}
if (!string.IsNullOrEmpty(result))
result += " руб.";
if ((nya = decimal.Truncate(аccount.СуммаРубли * 100) % 100) > 0)
result += Get(Convert.ToInt32(nya)) + " коп.";
Console.WriteLine("на счету " + (string.IsNullOrEmpty(result) ? "ноль" : result));
}
//вспомогательньій метод получения значений по каждой сотни
static string Get(int val)
{
string[] сотни = new string[] { "", "сто", "двести", "триста", "четьіреста", "пятсот", "шесот", "семсот", "восемсот", "девятсот" };
string[] десятки = new string[] { "", "", "двадцать", "тридцать", "сорок", "пятьдесят", "шестдесят", "семдесят", "восемдесят", "девяносто" };
string[] единицьі = new string[] { "", "один", "два", "три", "четьіре", "пять", "шесть", "сем", "восем", "девять",
"десять", "одинадцать", "двенадцать", "тринадцать", "четьірнадцать", "шеснадцать", "семнадцать", "восемнадцать", "девятьнадцать"};
return (сотни[val / 100] + " " + десятки[val / 10 % 10] + " " + единицьі[val % 10 + (val / 10 % 10 == 1 ? 10 : 0)]).Replace(" ", " ");
}
}
}