C#学习笔记 您所在的位置:网站首页 bob存款失败则么处理 C#学习笔记

C#学习笔记

2023-07-29 05:04| 来源: 网络整理| 查看: 265

C#面向对象程序设计 编程模拟实现个人银行的存款业务

要求: (1)提供两种账户:活期存款账户CheckingCustom和定期存款账户FixedCustom (2)创建活期账户时,必须提供账户名和开户金额,而账号则根据存款分类自动生成 (3)不论是活期存款账户还是定期存款账户都可以随时存款和取款 (4)活期存款账户的账号范围是10001-19999,活期存款利息一律按当前余额的0.5%计算。每次取款时,不论存款时间有多长,都要先根据当前余额结算一次利息,并将利息附加到现有余额中,然后再从中取出指定的款数。向现有账户追加存款是,不进行结算。 (5)定期存款账号的范围是20001-29999,定期存款利息计算方法如下:如果当前余额大于500,利息为6%,否则为3%。每次取款时,不论存款时间有多长,都要先根据当前余额结算一次利息,并将利息附加到现有余额中,然后再从中取出指定的款数。向现有账户追加存款是,不进行结算。 (6)要允许用户随时查询自己的存款信息,查询是要求提供用户名、存款类型和账号 (7)程序要易于扩充,即需要增加存款业务时,能够利用已经实现的功能,通过尽量少的代码快速实现。

解:

(1)创建一个名为BankCustoms的Windows应用程序项目,重命名Form1.cs为FormMain.cs,然后在此窗体上完成个人存款业务处理的设计界面。

(2)添加一个类文件Custom.cs,处理活期存款和定期存款共有的业务。在Custom类中完成下列功能。

① 声明三个私有的成员变量保存帐户对应的信息,分别如下。

accountName:帐户名。

accountNumber:帐户号。

accountBalance:帐户余额。

然后给这三个私有成员定义相应的属性,分别命名为AccountName、AccountNumber和AccountBalance,并处理对应的访问权限。

② 编写一个公共的Deposit方法,向帐户中添加存款。

③ 编写一个公共的Withdraw方法,从帐户中取款。

(3)向项目中添加一个名为CheckingCustom.cs类文件,处理活期存款业务,让其继承自Custom类,在CheckingCustom类中完成下列功能。

① 定义一个静态变量newAccountNumber,提供准备产生的活期存款帐号,初值为0001。注意每使用一次该帐号,其值都要自动加1。

② 分别提供可以让外部访问的属性,包括帐户名、帐户号、余额和利率。

③ 提供一个带参数的构造函数,在构造函数中接收指定的帐户名和开户金额,并利用newAccountNumber产生一个在活期存款规定帐户范围内的合法的帐户号,然后设置对应的属性。

④ 重写基类的Withdraw方法,使之符合活期存款业务的要求。

(4)添加一个名为FixedCustom.cs的类文件,处理定期存款业务,让其继承自Custom类,在FixedCustom类中完成除利息计算方式不同外、其他情况与活期存款业务相似的功能。

(5)在存款业务处理界面的代码文件中完成下列功能。

① 分别定义保存活期存款和定期存款的SortedList泛型列表对象,使用SortedList的目的是为了利用键/值对进行处理。实现代码可以参看源程序。

② 分别实现存款、取款和显示帐户信息功能。

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Custom { class Custom //基类 { protected int number; //账号 protected string name; //账户名 protected double account; //账户余额 protected static List numbers = new List(); protected Random r; protected string type; // 活期/定期 public void deposit(double money) 编写一个公共的deposit方法,向账户中添加存款 { if (money < 0) { Console.WriteLine("存款失败"); return; } account += money; Console.WriteLine("向{0}账户中存入{1}元", number, money); Console.WriteLine("您的余额为{0}元", account); } public void get_info() { Console.WriteLine("存款信息如下:"); Console.WriteLine("账户名:{0}\n账号:{1}\n存款类型:{2}\n账号余额:{3}", name, number, type, account); } public string Name { get { return name; } } public int Number { get { return number; } } } class CheckingCustom : Custom // 活期存款账户 { public CheckingCustom(double account_size, string name) { this.name = name; account = account_size; while (true) { r = new Random(); number = r.Next(10001, 19999); if (!numbers.Contains(number)) break; } type = "活期"; Console.WriteLine("您的账号为:{0}", number); } public void withdraw(double money) { if (money < 0) { Console.WriteLine("取款失败"); return; } account += account * 0.005; if (account >= money) { account -= money; Console.WriteLine("从{0}账户中取出{1}元", number, money); Console.WriteLine("您的余额为{0}元", account); } else { Console.WriteLine("余额不足"); } } } class FixedCustom : Custom // 定期存款账户 { public FixedCustom(double account_size, string name) { this.name = name; account = account_size; while (true) { r = new Random(); number = r.Next(20001, 29999); if (!numbers.Contains(number)) break; } type = "定期"; Console.WriteLine("您的账号为:{0}", number); } public void withdraw(double money) { if (money < 0) { Console.WriteLine("取款失败"); return; } if (account >= 500) account += account * 0.06; else account += account * 0.03; if (account >= money) { account -= money; Console.WriteLine("取出{1}元", number, money); Console.WriteLine("您的余额为{0}元", account); } else Console.WriteLine("余额不足"); } } class Program { private static List list1 = new List(); private static List list2 = new List(); public static void create_account() { string name; int open_account; int type; Console.WriteLine("请输入账户名:"); name = Console.ReadLine(); try { Console.WriteLine("请输入开户金额:"); open_account = Convert.ToInt32(Console.ReadLine()); if (open_account < 0) { Console.WriteLine("开户金额不足"); return; } Console.WriteLine("请输入账户类型:(0-活期,1-定期)"); type = Convert.ToInt32(Console.ReadLine()); if (type == 0) { CheckingCustom c = new CheckingCustom(open_account, name); list1.Add(c); } else if (type == 1) { FixedCustom c = new FixedCustom(open_account, name); list2.Add(c); } else Console.WriteLine("请输入0或1"); } catch (Exception e) { Console.WriteLine("输入错误"); } } public static void withdraw_money() { string name; int number; double amount; Console.WriteLine("请输入取款账户名:"); name = Console.ReadLine(); try { Console.WriteLine("请输入取款账号:"); number = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("请输入取款金额:"); amount = Convert.ToInt32(Console.ReadLine()); foreach (CheckingCustom c in list1) { if (c.Name == name && c.Number == number) { c.withdraw(amount); return; } } foreach (FixedCustom c in list2) { if (c.Name == name && c.Number == number) { c.withdraw(amount); return; } } Console.WriteLine("该账户不存在"); } catch (Exception e) { Console.WriteLine("输入错误"); } } public static void deposit_money() { string name; int number; double amount; Console.WriteLine("请输入存款账户名:"); name = Console.ReadLine(); try { Console.WriteLine("请输入存款账号:"); number = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("请输入存款金额:"); amount = Convert.ToInt32(Console.ReadLine()); foreach (CheckingCustom c in list1) { if (c.Name == name && c.Number == number) { c.deposit(amount); return; } } foreach (FixedCustom c in list2) { if (c.Name == name && c.Number == number) { c.deposit(amount); return; } } Console.WriteLine("该账户不存在"); } catch (Exception e) { Console.WriteLine("输入错误"); } } public static void inquery_account() { string name; int number; int type; Console.WriteLine("请输入存款账户名:"); name = Console.ReadLine(); try { Console.WriteLine("请输入存款账号:"); number = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("请输入账户类型:(0-活期,1-定期"); type = Convert.ToInt32(Console.ReadLine()); if (type == 0) { foreach (CheckingCustom c in list1) { if (c.Name == name && c.Number == number) { c.get_info(); return; } } } if (type == 1) { foreach (FixedCustom c in list2) { if (c.Name == name && c.Number == number) { c.get_info(); return; } } } Console.WriteLine("该账户不存在"); } catch (Exception err) { Console.WriteLine("输入错误"); } } static void Main(string[] args) { string choice; while (true) { Console.WriteLine("选择功能(按其它键退出):\n1.创建账户\n2.取款\n3.存款\n4.查询账户"); choice = Console.ReadLine(); if (choice != "1" && choice != "2" && choice != "3" && choice != "4") { break; } switch (choice) { case "1": create_account(); break; case "2": withdraw_money(); break; case "3": deposit_money(); break; case "4": inquery_account(); break; } } } } }


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有