首页 > 解决方案 > 提款金额扣除5%手续费银行系统

问题描述

我现在正在提高我的 C# 技能我被困在简单的数学公式上,我正在开发一个非常基本的银行系统,它可以执行基本的银行功能,例如存款、取款和显示余额。我卡住的问题是简单的数学公式,我想从提款金额中扣除 5% 的佣金,我知道这行代码不能解决问题。

BankAccount.Comision c = comis => 2 * comis;

这是我的代码:

 class BankDetails : IBankDetails
{
    ReturnedVal rv = new ReturnedVal();
    List<BankAccount> _accounts;

    public BankDetails()
    {
        _accounts = new List<BankAccount>();
    }

    public List<BankAccount> Account
    {
        get { return _accounts; }
    }


    public void CreateAccount(string name)
    {
        BankAccount account = new BankAccount();
        CalculateIBAN calculateIban = new CalculateIBAN();
        

        try
        {
            if (!String.IsNullOrEmpty(name))
            {
                account.Name = name;
                account.IBAN = calculateIban.IBAN();
                _accounts.Add(account);
                Console.WriteLine("Account created - Name: {0}, IBAN: {1}", account.Name, account.IBAN);
            }
            else
            {
                Console.WriteLine("Account name is null or empty.");
            }
        }
        catch (NullReferenceException ne)
        {
            Console.WriteLine(ne.StackTrace);
        }
    }

    public float Deposit()
    {
        string iban = rv.EnterIban();
        BankAccount account = rv.GetAccountByName(iban, _accounts);

        while (account == null)
        {
            Console.WriteLine("Account doesn't exist");
            iban = rv.EnterIban();
            account = rv.GetAccountByName(iban, _accounts);
        }

        float sum = rv.AmountToDeposit();
        while (sum <= 0)
        {
            Console.WriteLine("Amount cannot be less or equal than 0.");
            sum = 0;
            sum = rv.AmountToDeposit();
        }

        account.Sum += sum;
        Console.WriteLine("Added {0} to account {1}", sum, iban);

        return account.Sum;
    }

    public float Withdraw()
    {
        BankDetails details = new BankDetails();
        BankAccount.Comision c = comis => 2 * comis;

        string iban = rv.EnterIban();
        BankAccount account = rv.GetAccountByName(iban, _accounts);

        while (account == null)
        {
            Console.WriteLine("Account doesn't exist");
            iban = rv.EnterIban();
            account = rv.GetAccountByName(iban, _accounts);
        }

        float sum = rv.AmountToDeposit();
        while (sum <= 0)
        {
            Console.WriteLine("Amount cannot be less or equal than 0.");
            sum = 0;
            sum = rv.AmountToDeposit();
        }

        account.Sum -= sum;

        Console.Write("Withdrawn {0} from account {1}.", sum, iban);
        Console.WriteLine("Comision {0}", Math.Round(c(account.Sum)));
        account.Sum -= c(account.Sum);
        Console.WriteLine("Remaining: {0}", Math.Round(account.Sum));

        return account.Sum;
    }

    public float Balance()
    {
        string iban = rv.EnterIban();
        BankAccount account = rv.GetAccountByName(iban, _accounts);

        Console.WriteLine("IBAN: {0} has {1} left", iban, account.Sum);

        return account.Sum;
    }
}

这是我声明委托和属性的班级

public class BankAccount
{
    public string Name { get; set; }
    public string IBAN { get; set; }
    public float Sum { get; set; }

    public delegate float Comision(float comis);

}

标签: c#.net

解决方案


要获得金额的 5%,您必须计算 (5 * amount)/100,这与金额 * 0.05f 相同。在你的情况下 BankAccount.Comision c = amount => amount*0.05f;


推荐阅读