首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >简单的银行程序,有2个方法,我不能很好地解析C#

简单的银行程序,有2个方法,我不能很好地解析C#
EN

Stack Overflow用户
提问于 2013-03-05 05:47:53
回答 3查看 10K关注 0票数 2

我正在创建一个程序,其中包含这两个我不太清楚的方法。它们分别是“提取”和“存款”,它们位于CheckingAccount类中。在这些方法中,我希望将值初始化为0,然后将其相加。然后我想取新的数字,并从中减去。我想‘存’250美元。然后我想‘取’98美元。我不确定将这些值存储在哪里以及如何执行它们。我知道在保留取款和存放方法为空的情况下,显示应该是什么样子。

帐户类别:

代码语言:javascript
复制
class Account
{
    protected string firstName;
    protected string lastName;
    protected long number;

    public string FirstName
    {
        set
        {
            firstName = value;
        }
    }
    public string LastName
    {
        set
        {
            lastName = value;
        }
    }
    public long Number
    {
        set
        {
            number = value;
        }
    }
    public override string ToString()
    {
        return firstName + " " + lastName + "\nAccount #: " + number;
    }
}
}

检查科目分类:

代码语言:javascript
复制
    class CheckingAccount : Account
{
    private decimal balance;

    public CheckingAccount(string firstName, string lastName, long number, decimal initialBalance)
    {
        FirstName = firstName;
        LastName = lastName;
        Number = number;
        Balance = initialBalance;
    }
    public decimal Balance
    {
        get
        {
            return balance;
        }
        set
        {
            balance = value;
        }
    }


    public void deposit(decimal amount)
    {
        //initial value should be 0 and should be adding 250 to it.
    }
    public void withdraw(decimal amount)
    {
        //this takes the 250 amount and subtracts 98 from it
    }


    public void display()
    {
        Console.WriteLine(ToString());
        Console.WriteLine("Balance: ${0}", Balance);
    }
}
}

显示类:

代码语言:javascript
复制
    class Display
{
    static void Main(string[] args)
    {

        CheckingAccount check = new CheckingAccount("John", "Smith", 123456, 0M);

        Console.WriteLine("After Account Creation...");
        check.display();

        Console.WriteLine("After Depositing $250...");
        //constructor
        Console.WriteLine("After Withdrawing $98...");
        //constructor
    }
}
}

我希望我的输出看起来像这样:

创建帐户后...

约翰·史密斯

账号: 123456

余额:0

在存了250美元之后...

约翰·史密斯

账号: 123456

余额: 250

在取了98美元之后...

约翰·史密斯

账号: 123456

余额: 152

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-05 05:51:02

简单的答案是

代码语言:javascript
复制
public void deposit(decimal amount)
{
    balance += amount;
}
public void withdraw(decimal amount)
{
    balance -= amount;
}

可以随意添加必要的验证(透支?尝试存入负数?)

票数 5
EN

Stack Overflow用户

发布于 2013-03-05 05:53:59

要创建帐户,请执行以下操作:

代码语言:javascript
复制
Checking Account ca = new Checking Account (John, Smith, 123456, 0);

存入250美元:

代码语言:javascript
复制
ca.deposit(250);

要提取98美元:

代码语言:javascript
复制
ca.withdraw(98);

业务逻辑:

代码语言:javascript
复制
public void deposit(decimal amount)
{
    balance += amount;
}
public void withdraw(decimal amount)
{
    balance -= amount;
}

正如另一个answer所说,当你的账户中没有钱(或更少)时,验证诸如透支或取款之类的场景是明智的!

奖励:

您还可以编写一个GetBalance函数来验证存取款。

代码语言:javascript
复制
public decimal GetBalance(long accountNumber)
{
    return balance;
}

并使用以下命令调用它:

代码语言:javascript
复制
var currentBalance = ca.GetBalance(123456);
票数 1
EN

Stack Overflow用户

发布于 2013-03-05 06:10:07

您可能希望为prevent方法提供额外的逻辑,以防止透支。

代码语言:javascript
复制
public void withdraw(decimal amount)
{
    if (balance >= amount)
    {
       balance -= amount;
    }
    else
    {
       Console.WriteLine("You can't withdraw money that you don't have!");
       // or else you could charge an overdraft fee as long as you're within 
       // a certain tolerance (minimum of -1000 or something like that). 
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15211777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档