首次发布此处,最近的新用户。我已经搜索了这个问题,因为我知道所有常见的“银行计划”问题,但是我找不到答案(至少我理解了)。
我知道家庭作业规则,但我已经坚持了一个星期以上我正在服用的在线课程。我觉得我理解它,但我遗漏了一些不允许我把它拼凑在一起的东西。我想制作一个银行表格,允许在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)
{
}
}
}
我知道这篇文章很愚蠢,但是如果有人能给我任何暗示,我将永远感激。
答案 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)
在您的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;
}
}
将BankAccount属性添加到您的BankForm并更改您的方法以使用银行帐户属性。我已经为你重写了其中一个功能。
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);
}
...
}
祝你好运!!!