C#中的银行练习

时间:2014-01-26 02:45:27

标签: c# visual-studio-2010

首次发布此处,最近的新用户。我已经搜索了这个问题,因为我知道所有常见的“银行计划”问题,但是我找不到答案(至少我理解了)。

我知道家庭作业规则,但我已经坚持了一个星期以上我正在服用的在线课程。我觉得我理解它,但我遗漏了一些不允许我把它拼凑在一起的东西。我想制作一个银行表格,允许在Visual Studio中进行初始存款,存款和取款,将余额更新输出到列表框。我轻松制作了图形部分,我有3个文本框,3个按钮和一个列表框(用于平衡输出)。我有它所以我解析文本框以允许我的数字默认为双打而不是字符串,我也有它所以我可以点击存款按钮(listBox.Items.Add(blahblahblah))将数字输出到列表框。我想使用构造函数来设置初始存款,但我仍然坚持如何做到这一点。这是作业..

“创建一个名为BankForm的新Windows窗体应用程序项目。添加允许用户输入初始存款的控件,以及设置存款的按钮。此初始存款将创建BankAccount类的实例,调用以初始存款作为唯一参数的构造函数。然后有另一组控件允许用户进行存款或取款。每次存款或取款时,包括初始存款,输出活动和余额到一个ListBox控件。 对于这个项目,你所做的课程应该有访问权以获得余额,以及存入和取出资金的方法。类实例需要是Form的私有成员变量。您可以使用私有BankAccount bankForm等语法创建它。然后,当用户单击初始存款按钮时,在按钮单击事件中,使用new关键字创建bankForm对象。因此,如果初始存款为100美元,则可以使用bankForm = new BankAccount(100.0)等语法创建对象。 “

我所做的是从名为BankAccount的表单中创建一个单独的类。然后我想弄清楚如何为我做的初始存款设置一个构造函数,但是如何让它转到实际的表单,以便用户可以输入初始存款文本框然后让构造函数接受值?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace BankForm
{
    class BankAccount
    {
        double _initialDeposit { get; set; }
        double _deposit { get; set; }
        double _withdrawl { get; set; }
        double _balance { get; set; }

        public BankAccount()
        {

        }

        public BankAccount(double initDeposit)
        {
            this._initialDeposit = initDeposit;
        }

        public double Initial
        {
            get { return _initialDeposit; }
            set { _initialDeposit = value; }
        }

    }
}

^这就是我到目前为止所有BankAccount类,我只是创建了私有变量然后尝试使构造函数获取初始存款值,但是当我转到表单并输入BankAccount bankAccount = new BankAccount()我不知道如何设置初始存款的按钮点击进入构造函数的()。我故意搞砸了这个,所以你可以看到我在做什么。在表单上,​​我试图将初始存款与正常存款相加,但它们都在私有的虚拟按钮中,无法访问彼此的信息。我疯了,该死的。显然我对编程是全新的,我已经下载了大量书籍并且正在学习,但是这个项目让我很困惑,我不知道为什么。到目前为止,其他所有项目都进展顺利。

namespace BankForm
{
    public partial class BankForm : Form
    {

        public BankForm()
        {
            InitializeComponent();
        }

        private void setDepositButton_Click(object sender, EventArgs e)
        {
            double setInitial = double.Parse(setDepositTextBox.Text);
            BankAccount bankAccount = new BankAccount(setInitial);
            listBox.Items.Add(setInitial);

        }

        private void depositBalanceButton_Click(object sender, EventArgs e)
        {
            double setDepo = double.Parse(depositBalanceTextBox.Text);
            BankAccount bankAccount = new BankAccount(setDepo + setDepositTextBox.Text);

        }

        private void withdrawBalanceButton_Click(object sender, EventArgs e)
        {                      
        }

        private void listBox_SelectedIndexChanged(object sender, EventArgs e)
        {
        }             
    }
}

我知道这篇文章很愚蠢,但是如果有人能给我任何暗示,我将永远感激。

2 个答案:

答案 0 :(得分:1)

好的 - 首先,您可能希望在表单类中添加BankAccount字段。这在问题中描述如下:

类实例需要是Form的私有成员变量。您可以使用私有BankAccount bankForm等语法创建它。

看起来像这样:

public partial class BankForm : Form
{
    private BankAccount bankForm;

    public BankForm()
    {
        InitializeComponent();
    }
    ...

然后,您的“设置存款”点击应使用此字段,而不是创建本地对象。像这样:

    private void setDepositButton_Click(object sender, EventArgs e)
    {
        double setInitial = double.Parse(setDepositTextBox.Text);
        bankForm = new BankAccount(setInitial);
        listBox.Items.Add(setInitial);
    }

您现在可以在此'bankForm'字段中执行您喜欢的任何操作 - 它会一直存在,直到您再次进行“初始存款”点击。

我希望这会给你一些指示 - 我不打算给你写,但我相信你不要我。我可以清楚地看到你非常热衷于自己的工作!

答案 1 :(得分:1)

  1. 在您的BankAccount类中添加更新余额的函数 存款和取款。

    public class BankAccount
    {
    
     public double Balance { get; private set;}
    
     public BankAccount() {}
    
     public BankAccount(double initialDeposit)
     {
         Deposit(initialDeposit);
     }
    
     public void Deposit(double amount)
     {
         Balance += deposit;
     }
    
     public void Withdraw(double amount)
     {
        Balance -= amount;
     }
    

    }

  2. 将BankAccount属性添加到您的BankForm并更改您的方法以使用银行帐户属性。我已经为你重写了其中一个功能。

  3. public partial class BankForm : Form
    {
        private BankAccount _bankAccount { get; set; }

    private void setDepositButton_Click(object sender, EventArgs e) { double deposit = double.Parse(setDepositTextBox.Text); if (_bankAccount = null) { _bankAccount = new BankAccount(deposit); listBox.Items.Add(string.Format("Initial Deposit: {0}", setDepositTextBox.Text); } else { _bankAccount.AddDeposit(deposit); listBox.Items.Add(string.Format("Deposit: {0}", setDepositTextBox.Text); } listBox.Items.Add(string.Format("Balance: {0}", _bankAccount.Balance); } ...

    }

    祝你好运!!!

相关问题