C#基础第八天-作业答案-设计类-面向对象方式实现两个帐户之间转账
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ATM.Day02 { class Bank { public int index; public Account[] accounts = new Account[100]; public Account account = new Account(); public CreditAccount credit = new CreditAccount(); /// <summary> /// 用户开户方法 /// </summary> /// <param name="id">银行账户</param> /// <param name="passWord">密码</param> /// <param name="passWords">确认密码</param> /// <param name="name">姓名</param> /// <param name="userId">身份证号</param> /// <param name="email">邮箱</param> /// <param name="type">类型</param> /// <returns>Account实体类</returns> public Account Register(long id,string passWord,string passWords,string name, string userId,string email,string type) { account.Id = id; account.PassWord = passWord; account.Name = name; account.PersonId = userId; account.Email = email; account.Type = type; if (!account.PassWord.Equals(passWords)) { Console.WriteLine("确认密码不匹配,请核对后重新填写。"); return null; } if (accounts == null || accounts.Length == 0) { index = 0; } else { index = accounts.Length - 1; } accounts[index] = account; return account; } /// <summary> /// 登录方法 /// </summary> /// <param name="id">银行卡号</param> /// <param name="passWord">取款密码</param> /// <returns>Account实体类</returns> public Account Login(long id, string passWord) { for (int i = 0; i < accounts.Length; i++) { if (id == accounts[i].Id) { account.Id = accounts[i].Id; account.PassWord = passWord; account.Name = accounts[i].Name; account.PersonId = accounts[i].PersonId; account.Email = accounts[i].Email; account.Type = accounts[i].Type; return account; } } return null; } /// <summary> /// 存钱方法 /// </summary> /// <param name="id">银行账户</param> /// <param name="money">钱</param> /// <returns>Account实体类</returns> public Account Deposit(long id,double money) { if (account.Id!=id) { Console.WriteLine("当前用户不存在,请核对后进行操作。"); return null; } else if (money<=0) { Console.WriteLine("金额数据不正确,请核对后进行操作。"); return null; } account.Balance += money; return account; } /// <summary> /// 取钱方法 /// </summary> /// <param name="id">银行卡号</param> /// <param name="passWord">取款密码</param> /// <param name="money">金额</param> /// <returns>返回Account类型实体类</returns> public Account Withdraw(long id,string passWord,double money) { if (account.Id == id && passWord.Equals(account.PassWord) && account.Type.Equals("0")) { if (account.Balance < money ) { Console.WriteLine("当前账户余额不足!"); return null; } else if (account.Id == id && passWord.Equals(account.PassWord) && account.Type.Equals("1")) { credit = (CreditAccount)account; return credit.Withdraw(money); } } else { Console.WriteLine("当前账户:用户名或密码输入错误,请重新输入"); return null; } return credit; } /// <summary> /// 设置信用额度 /// </summary> /// <param name="id">银行卡号</param> /// <param name="passWord">银行密码</param> /// <param name="money">钱</param> /// <returns>返回Account类型实体类</returns> public Account UpdateCeiling(long id,string passWord,double money) { if (account.Type.Equals("1")) { credit.Ceiling = money; return credit; } return null; } /// <summary> /// 转账方法 /// </summary> /// <param name="id">账户号码</param> /// <param name="passWord">密码</param> /// <param name="fromId">转入账号</param> /// <param name="money">金额</param> /// <returns>返回bool值</returns> public bool Transfer(long id, string passWord, long fromId, double money) { if (account.Id == id && passWord.Equals(account.PassWord)) { for (int i = 0; i < accounts.Length; i++) { if (fromId == accounts[i].Id) { if (accounts[i].Id > money) { accounts[i].Balance -= money; return true; } else { Console.WriteLine("账号余额不足 不允许转账"); return false; } } } } return false; } public override string ToString() { string toString = string.Empty; return toString = "账号余额:" + account.Balance + "用户姓名:" + account.Name + "账户类型:" + account.Type; } } } public class CreditAccount : Account { public CreditAccount() { } private double ceiling; public double Ceiling { set { this.ceiling = value; } get { return this.ceiling; } } public override Account Withdraw(double money) { if (this.Ceiling + this.Balance < money) { Console.WriteLine("当前账户信用额度不足!"); return null; } if (this.Balance < money) { this.Ceiling = (this.Balance + this.Ceiling) - money; this.Balance = 0; } return this; } }
方法不一定最好,主要练习一下项目。
本系列教程:
C#基础总结之八面向对象知识点总结-继承与多态-接口-http://www.cnblogs.com/spring_wang/p/6113531.html
C#基础总结之七面向对象知识点总结1http://www.cnblogs.com/spring_wang/p/6113526.html
C#基础总结之六 DataTable (临时表/数据源) 和Datatable 名片练习http://www.cnblogs.com/spring_wang/p/6113520.html
C#基础总结之五Dictionary<string, string[]>和while循环http://www.cnblogs.com/spring_wang/p/6113514.html
C#基础总结之四List-Hashtable-冒泡排序http://www.cnblogs.com/spring_wang/p/6113504.html
C#基础总结之三循环控制-for-数组-乘法表-arraylisthttp://www.cnblogs.com/spring_wang/p/6113496.html
C#基础总结之二循环控制-运算符http://www.cnblogs.com/spring_wang/p/6113484.html
C#基础总结之一变量常量-if嵌套语句-witch结构-类型转换http://www.cnblogs.com/spring_wang/p/6113476.html
C#基础课程之六(临时表)DataTable使用方法http://www.cnblogs.com/spring_wang/p/6113454.html
C#基础课程之五集合(HashTable,Dictionary)http://www.cnblogs.com/spring_wang/p/6113404.html
C#基础课程之四集合(ArrayList、List<泛型>)http://www.cnblogs.com/spring_wang/p/6113396.html
C#基础课程之三循环语句http://www.cnblogs.com/spring_wang/p/6113383.html
C#基础课程之二变量常量及流程控制http://www.cnblogs.com/spring_wang/p/6113372.html
C#基础课程之一注释和控制台、一些常识http://www.cnblogs.com/spring_wang/p/6113361.html
C#基础第九天-作业答案-储蓄账户(SavingAccount)和信用账户(CreditAccount) http://www.cnblogs.com/spring_wang/p/6113291.html
C#基础第九天-作业-储蓄账户(SavingAccount)和信用账户(CreditAccount) http://www.cnblogs.com/spring_wang/p/6113285.html
C#基础第八天-作业答案-设计类-面向对象方式实现两个帐户之间转账http://www.cnblogs.com/spring_wang/p/6113274.html
C#基础第八天-作业-设计类-面向对象方式实现两个帐户之间转账http://www.cnblogs.com/spring_wang/p/6113258.html
C#基础第七天-作业答案-利用面向对象的思想去实现名片-动态添加http://www.cnblogs.com/spring_wang/p/6113232.html
C#基础第七天-作业-利用面向对象的思想去实现名片-动态添加http://www.cnblogs.com/spring_wang/p/6113224.html
C#基础第六天-作业-利用面向对象的思想去实现名片http://www.cnblogs.com/spring_wang/p/6113028.html
C#基础第六天-作业答案-利用面向对象的思想去实现名片http://www.cnblogs.com/spring_wang/p/6113033.html
C#基础第五天-作业答案-用DataTable制作名片集http://www.cnblogs.com/spring_wang/p/6113022.html
C#基础第五天-作业-用DataTable制作名片集http://www.cnblogs.com/spring_wang/p/6113013.html
C#基础第四天-作业答案-Hashtable-list<KeyValuePair>泛型实现名片http://www.cnblogs.com/spring_wang/p/6113005.html
C#基础第四天-作业-Hashtable-list<KeyValuePair>泛型实现名片http://www.cnblogs.com/spring_wang/p/6113000.html
C#基础第三天-作业答案-集合-冒泡排序-模拟名片http://www.cnblogs.com/spring_wang/p/6112888.html
C#基础第三天-作业-集合-冒泡排序-模拟名片http://www.cnblogs.com/spring_wang/p/6112885.html
C#基础第二天-作业答案-九九乘法表-打印星星http://www.cnblogs.com/spring_wang/p/6112881.html
C#基础第二天-作业-九九乘法表-打印星星http://www.cnblogs.com/spring_wang/p/6112875.html
C#基础第一天-作业答案http://www.cnblogs.com/spring_wang/p/6112872.html
C#基础第一天-作业http://www.cnblogs.com/spring_wang/p/6112867.html
C#-string.Format对C#字符串格式化http://www.cnblogs.com/spring_wang/p/6077098.html
作者: 王春天 出处: http://www.cnblogs.com/spring_wang/ Email: spring_best@yeah.net QQ交流:903639067
QQ群:322581894 关于作者: 大连天翼信息科技有限公司 技术总监。 SNF快速开发平台 创始人。应用平台架构师、IT规划咨询专家、业务流程设计专家。 专注于快速开发平台的开发、代码生成器。同时专注于微软平台项目架构、管理和企业解决方案,多年项目开发与管理经验,精通DotNet系列技术Vue、.NetCore、MVC、Webapi、C#、WinForm等,DB(SqlServer、Oracle等)技术,移动端开发。熟悉Java、VB及PB开发语言。在面向对象、面向服务以及数据库领域有一定的造诣。现从事项目实施、开发、架构等工作。并从事用友软件产品U8、U9、PLM 客开工作。 如有问题或建议,请多多赐教! 本文版权归作者和CNBLOGS博客共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过邮箱或QQ 联系我,非常感谢。