在c#中的窗体中添加存款和取款方法
Adding a deposit and withdrawal method to a form in c#
您好,我非常渴望得到任何帮助。我会尽力解释这一点。我目前正在尝试使用 c# 制作银行表格,用户可以 select 一个帐户并从该帐户存款或取款。当他们将输入输入这些内容时,他们 select 提交并显示该帐户的更新余额。如果他们选择单击交易按钮,则列表框将显示所有用户以前的交易。我希望这是有道理的。
我目前的问题是我不知道如何添加 类 和 accounts.cs 中的方法,也不知道如何将 form1.cs 中的方法添加到纽扣。我的意思是当用户 selects 提交时,我不知道在按钮提交中写什么代码。
如果有人可以帮助我或给我一些代码来试用,我将不胜感激。我是新手,不想放弃。
Form1.cs
using System;
using System.Windows.Forms;
using static partc.Accounts;
namespace partc
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
// declare all the accounts
private Everyday _everydayAcct;
private Investment _investmentAcct;
private Omni _omniAcct;
// to hold active account based on radio button selection
private Accounts _accounts;
private void buttonSubmit_Click(object sender, EventArgs e)
{
}
// Display Balance
private void DisplayBalance(Accounts account)
{
textBoxDispkayBalance.Text = $"{account.AccountType}{account.Balance:$#,##0.00}";
}
// Deposit Amount
private void DepositAmount(Accounts account)
{
}
// Withdraw Amount
private void WithdrawAmount(Accounts account)
{
}
// Display Everyday
private void DisplayDetails(Everyday account)
{
listBoxTransactions.Items.Add("Everyday Account");
listBoxTransactions.Items.Add("Balance:" + account.Balance);
listBoxTransactions.Items.Add("Deposit: " + account.Deposits);
listBoxTransactions.Items.Add("Withdrawal:" + account.Withdrawals);
}
// Display Investment
private void DisplayInvestment(Investment account)
{
listBoxTransactions.Items.Add("Investment Account");
listBoxTransactions.Items.Add("Balance: " + account.Balance);
listBoxTransactions.Items.Add("Deposit: " + account.Deposits);
listBoxTransactions.Items.Add("Withdrawal:" + account.Withdrawals);
listBoxTransactions.Items.Add("Interest Rate: " + account.InterestRate + "%");
listBoxTransactions.Items.Add("Overdraft [=10=].00");
listBoxTransactions.Items.Add("Fee: " +account.Fees);
}
// Display Omni
private void DisplayOmni(Omni account)
{
listBoxTransactions.Items.Add("Omni Account");
listBoxTransactions.Items.Add("Balance: " + account.Balance);
listBoxTransactions.Items.Add("Deposit: " + account.Deposits);
listBoxTransactions.Items.Add("Withdrawal:" + account.Withdrawals);
listBoxTransactions.Items.Add("Interest Rate: " + account.InterestRate + "%");
listBoxTransactions.Items.Add("Overdraft 0.00");
listBoxTransactions.Items.Add("Fee: " + account.Fees);
}
// Shows account transaction details in list box
private void button1_Click(object sender, EventArgs e)
{
if(radioButtonEveryday.Checked){
// Display everyday details
}
if (radioButtonInvestment.Checked)
{
// Display investment detials
}
if (radioButtonOmni.Checked)
{
// Display Omni detials
}
}
private void textBoxDispkayBalance_TextChanged(object sender, EventArgs e)
{
}
// Clear Data
private void buttonClear_Click(object sender, EventArgs e)
{
radioButtonEveryday.Checked = false;
radioButtonInvestment.Checked = false;
radioButtonOmni.Checked = false;
textBoxDeposit.Clear();
textBoxWithdraw.Clear();
textBoxDispkayBalance.Clear();
}
}
}
Accounts.cs
using System;
namespace partc
{
public abstract class Accounts
{
public int AccountNumber { get; private set; }
public string AccountType => $"{this.GetType().Name} Account";
public abstract decimal Overdraft { get; protected set; }
public decimal Opening { get; protected set; }
public decimal Deposits { get; protected set; }
public decimal Withdrawals { get; protected set; }
public decimal Interest { get; protected set; }
public decimal Fees { get; protected set; }
public decimal InterestRate { get; protected set; } = 4m;
public decimal Balance => this.Opening + this.Deposits - this.Withdrawals + this.Interest - this.Fees;
private static Random _random = new Random();
public static int GenerateAccountNumber() => _random.Next(100000000, 1000000000);
public (decimal Withdrawn, decimal Fee) Withdraw(decimal amount)
{
if (amount <= 0m)
{
throw new System.InvalidOperationException("Withdrawal amount must be positive");
}
decimal fee = 0;
if (amount > this.Overdraft)
{
amount = 0m;
fee = 10m;
}
else if (this.Balance < amount)
{
amount = this.Balance;
}
this.Withdrawals += amount;
this.Fees += fee;
return (amount, fee);
}
public decimal Deposit(decimal amount)
{
if (amount <= 0m)
{
throw new System.InvalidOperationException("Deposit amount must be positive");
}
this.Deposits += amount;
return amount;
}
public class Everyday : Accounts
{
public decimal MinBalance { get; private set; } = 0m;
public decimal MaxBalance { get; private set; } = 1000000000000m;
public override decimal Overdraft { get; protected set; } = 100m;
}
public class Investment : Accounts
{
public decimal InvestmentFee { get; private set; } = 10m;
public override decimal Overdraft { get; protected set; } = 100m;
}
public class Omni : Accounts
{
public override decimal Overdraft { get; protected set; } = 1000m;
}
}
}
创建派生帐户的新实例类并将它们分配给相关的私有字段。
public Form1()
{
InitializeComponent();
_everydayAcct = new Everyday();
_investmentAcct = new Investment();
_omniAcct = new Omni();
}
在单选按钮点击事件中,将account字段赋值给相关account,并调用显示。
private void button1_Click(object sender, EventArgs e)
{
if (radioButtonEveryday.Checked)
{
_accounts = _everydayAcct;
}
if (radioButtonInvestment.Checked)
{
_accounts = _investmentAcct;
}
if (radioButtonOmni.Checked)
{
_accounts = _omniAcct;
}
}
您好,我非常渴望得到任何帮助。我会尽力解释这一点。我目前正在尝试使用 c# 制作银行表格,用户可以 select 一个帐户并从该帐户存款或取款。当他们将输入输入这些内容时,他们 select 提交并显示该帐户的更新余额。如果他们选择单击交易按钮,则列表框将显示所有用户以前的交易。我希望这是有道理的。
我目前的问题是我不知道如何添加 类 和 accounts.cs 中的方法,也不知道如何将 form1.cs 中的方法添加到纽扣。我的意思是当用户 selects 提交时,我不知道在按钮提交中写什么代码。
如果有人可以帮助我或给我一些代码来试用,我将不胜感激。我是新手,不想放弃。
Form1.cs
using System;
using System.Windows.Forms;
using static partc.Accounts;
namespace partc
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
// declare all the accounts
private Everyday _everydayAcct;
private Investment _investmentAcct;
private Omni _omniAcct;
// to hold active account based on radio button selection
private Accounts _accounts;
private void buttonSubmit_Click(object sender, EventArgs e)
{
}
// Display Balance
private void DisplayBalance(Accounts account)
{
textBoxDispkayBalance.Text = $"{account.AccountType}{account.Balance:$#,##0.00}";
}
// Deposit Amount
private void DepositAmount(Accounts account)
{
}
// Withdraw Amount
private void WithdrawAmount(Accounts account)
{
}
// Display Everyday
private void DisplayDetails(Everyday account)
{
listBoxTransactions.Items.Add("Everyday Account");
listBoxTransactions.Items.Add("Balance:" + account.Balance);
listBoxTransactions.Items.Add("Deposit: " + account.Deposits);
listBoxTransactions.Items.Add("Withdrawal:" + account.Withdrawals);
}
// Display Investment
private void DisplayInvestment(Investment account)
{
listBoxTransactions.Items.Add("Investment Account");
listBoxTransactions.Items.Add("Balance: " + account.Balance);
listBoxTransactions.Items.Add("Deposit: " + account.Deposits);
listBoxTransactions.Items.Add("Withdrawal:" + account.Withdrawals);
listBoxTransactions.Items.Add("Interest Rate: " + account.InterestRate + "%");
listBoxTransactions.Items.Add("Overdraft [=10=].00");
listBoxTransactions.Items.Add("Fee: " +account.Fees);
}
// Display Omni
private void DisplayOmni(Omni account)
{
listBoxTransactions.Items.Add("Omni Account");
listBoxTransactions.Items.Add("Balance: " + account.Balance);
listBoxTransactions.Items.Add("Deposit: " + account.Deposits);
listBoxTransactions.Items.Add("Withdrawal:" + account.Withdrawals);
listBoxTransactions.Items.Add("Interest Rate: " + account.InterestRate + "%");
listBoxTransactions.Items.Add("Overdraft 0.00");
listBoxTransactions.Items.Add("Fee: " + account.Fees);
}
// Shows account transaction details in list box
private void button1_Click(object sender, EventArgs e)
{
if(radioButtonEveryday.Checked){
// Display everyday details
}
if (radioButtonInvestment.Checked)
{
// Display investment detials
}
if (radioButtonOmni.Checked)
{
// Display Omni detials
}
}
private void textBoxDispkayBalance_TextChanged(object sender, EventArgs e)
{
}
// Clear Data
private void buttonClear_Click(object sender, EventArgs e)
{
radioButtonEveryday.Checked = false;
radioButtonInvestment.Checked = false;
radioButtonOmni.Checked = false;
textBoxDeposit.Clear();
textBoxWithdraw.Clear();
textBoxDispkayBalance.Clear();
}
}
}
Accounts.cs
using System;
namespace partc
{
public abstract class Accounts
{
public int AccountNumber { get; private set; }
public string AccountType => $"{this.GetType().Name} Account";
public abstract decimal Overdraft { get; protected set; }
public decimal Opening { get; protected set; }
public decimal Deposits { get; protected set; }
public decimal Withdrawals { get; protected set; }
public decimal Interest { get; protected set; }
public decimal Fees { get; protected set; }
public decimal InterestRate { get; protected set; } = 4m;
public decimal Balance => this.Opening + this.Deposits - this.Withdrawals + this.Interest - this.Fees;
private static Random _random = new Random();
public static int GenerateAccountNumber() => _random.Next(100000000, 1000000000);
public (decimal Withdrawn, decimal Fee) Withdraw(decimal amount)
{
if (amount <= 0m)
{
throw new System.InvalidOperationException("Withdrawal amount must be positive");
}
decimal fee = 0;
if (amount > this.Overdraft)
{
amount = 0m;
fee = 10m;
}
else if (this.Balance < amount)
{
amount = this.Balance;
}
this.Withdrawals += amount;
this.Fees += fee;
return (amount, fee);
}
public decimal Deposit(decimal amount)
{
if (amount <= 0m)
{
throw new System.InvalidOperationException("Deposit amount must be positive");
}
this.Deposits += amount;
return amount;
}
public class Everyday : Accounts
{
public decimal MinBalance { get; private set; } = 0m;
public decimal MaxBalance { get; private set; } = 1000000000000m;
public override decimal Overdraft { get; protected set; } = 100m;
}
public class Investment : Accounts
{
public decimal InvestmentFee { get; private set; } = 10m;
public override decimal Overdraft { get; protected set; } = 100m;
}
public class Omni : Accounts
{
public override decimal Overdraft { get; protected set; } = 1000m;
}
}
}
创建派生帐户的新实例类并将它们分配给相关的私有字段。
public Form1()
{
InitializeComponent();
_everydayAcct = new Everyday();
_investmentAcct = new Investment();
_omniAcct = new Omni();
}
在单选按钮点击事件中,将account字段赋值给相关account,并调用显示。
private void button1_Click(object sender, EventArgs e)
{
if (radioButtonEveryday.Checked)
{
_accounts = _everydayAcct;
}
if (radioButtonInvestment.Checked)
{
_accounts = _investmentAcct;
}
if (radioButtonOmni.Checked)
{
_accounts = _omniAcct;
}
}