一、实验目的
1、理解简单程序中的面向对象思想的应用
2、掌握C#的定义类和创建对象的方法
3、理解方法中参数的传递
二、实验内容
1、设计一个Windows应用程序,模拟一个简单的银行账户管理系统。实现创建账户、取款、存款和查询余额的模拟操作。界面如图3-1、3-2、3-3、3-4所示。具体要求如下:
(1)设计一下账户类(Account)包含以下数据信息:卡号(creditNo)、余额(balance)等。
(2)当单击“创建账户”按钮时,显示如图3-1所示信息,其中卡号为随机生成的一个在100000-499999的一个值,余额初始化为100元。
(3)在“取款”文本框中输入取款金额后,单击“取款”按钮,显示如图3-2所示的信息。如果没有创建账户或没有输入金额而单击“取款”按钮或余额不足时,需要给出适当提示。
(4)在“存款”文本框中输入取款金额后,单击“存款”按钮,显示如图3-3所示的信息。如果没有创建账户或没有输入金额而单击“取款”按钮时,需要给出适当提示。
(5)当单击“查询余额”按钮时,显示如图3-4所示的信息。
图3-1 “创建账户”运行效果
图3-2 “取款”运行效果
图3-3“存款”运行效果
图3-4“查询余额”运行效果
三.参考代码
(1)“账户类”的核心代码如下(存款操作需要补齐):
(2)“窗体程序设计”的核心代码如下:
四. 代码实现如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp6
{
public partial class Form1 : Form
{
Account account;
decimal money;
int accountNo;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
account = new Account();
accountNo = account.CreditNo;
string message = String.Format("创建账户成功,用户卡号为:{0}", accountNo);
label2.Text = "\n" + message + "\n";
}
private void label2_Click(object sender, EventArgs e)
{
}
private void button2_Click(object sender, EventArgs e) //取钱按钮
{
string message;
if (account == null)
{
message = "请先创建账户!";
}
else if (textBox1.Text == "")
{
message = "请输入取款金额!";
}
else
{
decimal money = decimal.Parse(textBox1.Text.Trim());
account.WithDraw(money, out message);
}
label2.Text = "\n" + message + "\n";
}
private void button3_Click(object sender, EventArgs e) //存钱按钮
{
string message;
if (account == null)
{
message = "请先创建账户!";
}else if (textBox2.Text == "")
{
message = "请输入存款金额!";
}
else
{
decimal money = decimal.Parse(textBox2.Text.Trim());
account.deposit(money, out message);
}
label2.Text = "\n" + message + "\n";
}
private void button4_Click(object sender, EventArgs e) //查询余额按钮
{
label2.Text = "储蓄卡账户:\n" + accountNo + "\n" + "当前余额为:" + account.Balance;
}
}
public class Account
{
protected int creditNo;
protected decimal balance;
public Account()
{
Random r = new Random();
creditNo = r.Next(100000, 499999);
balance = 100;
}
public decimal Balance
{
get
{
return this.balance;
}
}
public int CreditNo
{
get
{
return this.creditNo;
}
}
public bool WithDraw(decimal money, out string message) //取钱
{
if (money < 0)
{
message = "操作失败!\n输入的金额不正确";
return false;
}else if (balance >= money)
{
balance -= money;
message = "操作成功!\n取款"+money+"元";
return true;
}else
{
message = "操作失败!\n余额不足";
return false;
}
}
public bool deposit(decimal money,out string message) //存钱
{
if (money < 0)
{
message = "操作失败!\n输入的金额不正确";
return false;
}
else
{
balance += money;
message = "操作成功!\n存款"+money+"元";
return true;
}
}
}
}
4.1界面实现如下: