C#——Windows银行储蓄管理系统

         在银行储蓄管理系统中,普通帐户(Account)和VIP账号(VipAccount)都包含账户(CreditNo),余额(Balance)等基本数据信息,都提供创建帐户,存款(Withdtaw),取款(Deposit)和查询余额功能,但二者的区别是:普通帐户的账号介于100 000~500 000之间,取款时不允许透支(余额不能<0),VIP账户的账号在500  000~1  000  000之间,取款时允许透支1000元(即取款之后余额必须大于-1000).请使用继承性和多态性实现Account类和VipAccount类的定义。

提示:将Account定义为基类,VipAccount定义为派生类,根据要求分别定义构造函数实现账号和余额字段的初始化;在基类中把取款方法定义为虚拟方法,在派生类中重载取款方法;让派生类从基类继承存款方法。

首先设计如下界面:

C#——Windows银行储蓄管理系统

编写如下代码:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

 

namespace 银行储蓄系统

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

 

        private void Form1_Load(object sender, EventArgs e)

        {

 

        }

        Account acc = new Account("","");

        //创建账户

        private void button1_Click(object sender, EventArgs e)

        {

            if (Convert.ToInt32(textBox1.Text) >= 100000 & Convert.ToInt32(textBox1.Text) <= 500000)

            {

                label5.Text = acc.Create(textBox1.Text, textBox2.Text);

            }

            else if (Convert.ToInt32(textBox1.Text) > 500000 & Convert.ToInt32(textBox1.Text) <= 1000000)

            {

                label5.Text = acc.Create(textBox1.Text, textBox2.Text);

            }

            else

            {

                label5.Text = "不符合输入规则";

            }

            textBox1.Text = "";

            textBox2.Text = "";

            textBox3.Text = "";

        }

 

        //存款

        private void button2_Click(object sender, EventArgs e)

        {

            label5.Text =acc.Withdtaw(textBox1 .Text ,textBox2.Text ,Convert .ToDouble(textBox3 .Text ));

            textBox1.Text = "";

            textBox2.Text = "";

            textBox3.Text = "";

        }

        //取款

        private void button3_Click(object sender, EventArgs e)

        {

            label5.Text = acc.Deposit (textBox1.Text, textBox2.Text, Convert.ToDouble(textBox3.Text));

            textBox1.Text = "";

            textBox2.Text = "";

            textBox3.Text = "";

        }

        //查询

        private void button4_Click(object sender, EventArgs e)

        {

            label5.Text = acc.Select(textBox1.Text, textBox2.Text);

            textBox1.Text = "";

            textBox2.Text = "";

            textBox3.Text = "";

        }

    }

    public class Account

    {

        private string CreditNo;

        private string pwd;

        private double Balance;

        Account []acc=new Account [100];

        int number = 0;

        public Account()

        {

            this.Balance = 0;

        }

        public Account(string CreditNo,string pwd)

        {

            this.CreditNo = CreditNo;

            this.pwd = pwd;

        }

        //创建账户

        public string Create(string CreditNo,string pwd)

        {

            acc[number] = new Account(CreditNo ,pwd);

            number++;

            return "成功创建"+number +"账户";

        }

        //存款

        public string Withdtaw(string CreditNo,string pwd,double money)

        {

            Boolean  flag = false;

            int i;

            for (i = 0; i < acc.Length;i++ )

            {

                if (acc[i].CreditNo == CreditNo & acc[i].pwd == pwd)

                {

                    flag = true;

                    break;

                }

            }

            if (flag == true)

            {

                acc[i].Balance = acc[i].Balance + money;

                return "存款成功余额为:"+acc[i].Balance ;

            }

            else 

            {

                return "信息输入不正确";

            }

        }

        //取款

        public string Deposit(string CreditNo,string pwd,double money)

        {

            Boolean flag = false;

            int i;

            for (i = 0; i < acc.Length; i++)

            {

                if (acc[i].CreditNo == CreditNo & acc[i].pwd == pwd)

                {

                    flag = true;

                    break;

                }

            }

            if (flag == true)

            {

                if(Convert .ToInt32( CreditNo)>=100000&Convert .ToInt32 (CreditNo )<=500000)

                {

                    if (acc[i].Balance - money > 0)

                    {

                        acc[i].Balance = acc[i].Balance - money;

                        return "取款成功余额为:" + acc[i].Balance;

                    }

                    else 

                    {

                        return "余额不足";

                    }

                }

                else 

                {

                    if (acc[i].Balance - money > -1000)

                    {

                        acc[i].Balance = acc[i].Balance - money;

                        return "取款成功余额为:" + acc[i].Balance;

                    }

                    else

                    {

                        return "余额不足";

                    }

                }                      

            }

            else

            {

                return "信息输入不正确;

            }

        }

        //查询余额?

        public string Select(string CreditNo,string pwd)

        {

            Boolean flag = false;

            int i;

            for (i = 0; i < acc.Length; i++)

            {

                if (acc[i].CreditNo == CreditNo & acc[i].pwd == pwd)

                {

                    flag = true;

                    break;

                }

            }

            if (flag == true)

            {

                return "余额为:" + acc[i].Balance;

            }

            else

            {

                return "信息输入不正确";

            }

        }

    }

}

运行结果如下:

C#——Windows银行储蓄管理系统