Программа представляет собой графический интерфейс с двумя вкладками. На первой вкладке есть четыре текстовых поля для имени, идентификатора, возраста и баланса аккаунта. На этой вкладке также есть кнопка, которая добавит учетную запись в поле со списком на второй вкладке. На второй вкладке есть поле со списком и четыре текстовых поля для имени, идентификатора, возраста и баланса. когда я выбираю имя из поля со списком, четыре текстовых поля автоматически заполняют их информацией. Проблема, с которой я сталкиваюсь, заключается в том, что у меня должна быть кнопка снятия и депозита, в которой пользователь может ввести сумму и ее либо вычесть, либо добавить в баланс в текстовом поле. У меня есть пример кода для кнопки снятия, которую кто-то уже мне помог. Может ли кто-нибудь сказать мне, почему он не меняет баланс, когда я нажимаю кнопку?Программа депозита вклада банковского счета не работает
class BankAccount
{
//attributes
public string accountID;
public string customerName;
public int customerAge;
public double balance;
public const double DEFAULT_BALANCE = 500.00;
//construct
public BankAccount()
{
}
public BankAccount(string anID, string aName, int anAge, double aBalance)
{
accountID = anID;
customerName = aName;
customerAge = anAge;
balance = aBalance;
if (aBalance == 0)
{
balance = DEFAULT_BALANCE;
}
else
{
balance = aBalance;
}
}
public BankAccount(string anID, string aName, int anAge)
{
accountID = anID;
customerName = aName;
customerAge = anAge;
balance = DEFAULT_BALANCE;
}
//accessors
public void SetID(string anID)
{
accountID = anID;
}
public void SetName(string aName)
{
customerName = aName;
}
public void SetAge(int anAge)
{
customerAge = anAge;
}
public void SetBalance(double aBalance)
{
balance = aBalance;
}
public string GetID()
{
return accountID;
}
public string GetName()
{
return customerName;
}
public int GetAge()
{
return customerAge;
}
public double GetBalance()
{
return balance;
}
}
}
и вот форма
public partial class Form1 : Form
{
private List<BankAccount> account = new List<BankAccount>();
public Form1()
{
InitializeComponent();
}
private void btnAddAccount_Click(object sender, EventArgs e)
{
BankAccount aBankAccount = new BankAccount(txtAccountID.Text, txtName.Text,
int.Parse(txtAge.Text), double.Parse(txtBalance.Text));
account.Add(aBankAccount);
AddToComboBox();
ClearText();
}
private void AddToComboBox()
{
cboAccount.Items.Clear();
foreach (BankAccount person in account)
{
cboAccount.Items.Add(person.GetName());
}
}
private void ClearText()
{
txtName.Clear();
txtAccountID.Clear();
txtBalance.Clear();
txtAge.Clear();
txtAccountID.Focus();
}
private void cboAccount_SelectedIndexChanged(object sender, EventArgs e)
{
txtNameTab2.Text = account[cboAccount.SelectedIndex].customerName;
txtAgeTab2.Text = account[cboAccount.SelectedIndex].customerAge.ToString();
txtAccountIDTab2.Text = account[cboAccount.SelectedIndex].accountID.ToString();
txtBalanceTab2.Text = account[cboAccount.SelectedIndex].balance.ToString();
}
private void btnWithdraw_Click(object sender, EventArgs e)
{
double amount = 0;
if (double.TryParse(txtWithdraw.Text, out amount))
{
if (amount > 0)
{
BankAccount currentAccount = account[cboAccount.SelectedIndex];
double currentBalance = currentAccount.GetBalance();
double amountLeft = currentBalance - amount;
if (amountLeft >= 0)
{
currentAccount.SetBalance(amountLeft);
txtBalanceTab2.Text = amountLeft.ToString("c");
}
else
{
MessageBox.Show("You don't have enough money!");
}
}
}
}
}
}
Здесь есть довольно много кода. Когда вы отлаживаете его, в какой момент наблюдаемое поведение отклоняется от ожидаемого поведения? Определите эту строку, укажите значения и объясните, что вы ожидаете от нее. – David
У этого больше, чем удушение домашней работы; это? –
Это не касается вашей проблемы, но почему вы используете отдельные методы 'Get' и' Set' в вашем классе 'BankAccount'. Свойства могут быть более подходящими – psubsee2003