讲一下Bank系统的做法:

01.首先创建一个Card类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace VS1
{
//账号类
public class Card
{
//姓名
public string name;
//账号
public string account;
//密码
public string password;
//身份证号
public string id;
//余额
public double balance;
}
}

02.创建一个Bank类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace VS1
{
//银行类
public class Bank
{
//定义卡数组
Card[] cards=new Card[];
#region 01.给原有2卡赋值
public void InitialData()
{
Console.WriteLine("===========================================");
Console.WriteLine("=================现有卡有==================>>");
//卡1
Card card1 = new Card();
card1.name = "阿乐";//用户名
card1.account = "";//卡号
card1.password = "";//mima
card1.id = "";//身份证号
card1.balance = ;//余额
cards[] = card1;//把卡值赋值数组 //卡2
Card card2 = new Card();
card2.name = "阿龙";
card2.account = "";
card2.password = "";
card2.id = "";
card2.balance = ;
cards[] = card2; } #endregion #region 02.欢迎页面
public void Welcome()
{
Console.WriteLine("欢迎进入天尽头ATM系统,亲");
Console.WriteLine("功能:1.开户 2.存款 3.取款 4.查询余额 5.转账 6.修改密码 7.退卡");
Console.WriteLine("请选择您要操作的功能模块,亲");
string choice = Console.ReadLine();
switch (choice)
{
case "":
//开户
CreateAccount();
break;
case "":
//存款
bool flag= MoneyIn();
if (flag==false)
{
Console.WriteLine("对不起,您输入信息(密码和卡号)有误!,登录失败....");
Console.WriteLine("====>>自动转回主页面");
Welcome();
} break;
case "":
//取款
bool flag1 = MoneyOut();
if (flag1 == false)
{
Console.WriteLine("对不起,您输入信息(密码和卡号)有误!");
Console.WriteLine("====>>自动转回主页面");
Welcome();
}
break;
case "":
//查询余额
bool flag2 = SelectMoney();
if (flag2 == false)
{
Console.WriteLine("对不起,您输入信息(密码和卡号)有误!,登录失败....");
Console.WriteLine("====>>自动转回主页面");
Welcome();
}
break;
case "":
//转账
bool flag3 = TransferMoney();
if (flag3 == false)
{
Console.WriteLine("对不起,您输入信息(密码和卡号)有误!,登录失败....");
Console.WriteLine("====>>自动转回主页面");
Welcome();
}
break;
case "":
//修改密码
bool flag6 = ModifyPwd();
if (flag6 == false)
{
Console.WriteLine("对不起,您输入信息(密码和卡号)有误!,登录失败....");
Console.WriteLine("====>>自动转回主页面");
Welcome();
}
break;
default:
Console.WriteLine("成功退卡!");
break; }
}
#endregion #region 03.输出原卡信息
public void PrintCustomerInfo() {
foreach(Card item in cards){
if(item!=null){ Console.WriteLine("用户名:{0},卡号:{1},密码:{2},身份证号:{3},余额:{4}", item.name, item.account,item.password,item.id,item.balance);
Console.WriteLine("===========================================");
} } }
#endregion #region 04.开户功能
public void CreateAccount() {
Console.WriteLine("============这里是开户===================");
Console.WriteLine("===================>>>>>>>>>"); Console.WriteLine("请输入身份证号:");
string id = Console.ReadLine();
Console.WriteLine("请输入用户名");
string name = Console.ReadLine();
Console.WriteLine("请输入密码");
string password = Console.ReadLine();
Console.WriteLine("请输入开户金额");
double balance = double.Parse(Console.ReadLine()); //先将四个零散的属性装配成一个Card对象
Card card = new Card();
card.id = id;
card.name = name;
card.password = password;
card.balance = balance;
card.account = "";
for (int i = ; i < cards.Length; i++)
{
if(cards[i]==null){
cards[i] = card;
Console.WriteLine("您好!{0},您开户成功!您的卡号为:{1},您卡余额为:{2},请牢记您的密码!",cards[i].name,cards[i].account,cards[i].balance);
Console.WriteLine("=====>>自动转回主页面");
break;
}
}
Console.WriteLine("==============================");
Welcome(); } #endregion #region 05.存款功能
public bool MoneyIn() {
bool flag = false;
Console.WriteLine("============这里是存款===================");
Console.WriteLine("===================>>>>>>>>>");
Console.WriteLine("请输入卡号:");
string account = Console.ReadLine();
Console.WriteLine("请输入密码:");
string password = Console.ReadLine();
for (int i = ; i < cards.Length;i++ )
{
if(cards[i]!=null){
if (cards[i].account == account&&cards[i].password==password)
{
flag = true;
Console.WriteLine("您好!{0},请输入您要存的金额:", cards[i].name);
double balance=double.Parse(Console.ReadLine());
cards[i].balance = cards[i].balance + balance;
Console.WriteLine("{0},您存款成功,现在您的卡总余额为:{1}", cards[i].name, cards[i].balance);
Console.WriteLine("====>>自动转回主页面");
Welcome();
break;
}
}
}
return flag; } #endregion #region 06.取款功能
public bool MoneyOut()
{
bool flag1 = false; Console.WriteLine("============这里是取款===================");
Console.WriteLine("===================>>>>>>>>>");
Console.WriteLine("请输入卡号:");
string account = Console.ReadLine();
Console.WriteLine("请输入密码:");
string password = Console.ReadLine();
for (int i = ; i < cards.Length;i++ )
{
if(cards[i]!=null){
if (cards[i].account == account&&cards[i].password==password)
{
flag1 = true;
Console.WriteLine("您好!{0},请输入您要取的金额:", cards[i].name); double balance=double.Parse(Console.ReadLine());
if(cards[i].balance>balance){
cards[i].balance = cards[i].balance - balance;
Console.WriteLine("{0},您取款成功,现在您的卡总余额为:{1}",cards[i].name,cards[i].balance);
Console.WriteLine("====>>自动转回主页面");
Welcome();
break;
}else{
Console.WriteLine("可能不要瞎输,你卡里有这么多钱吗?");
Console.WriteLine("====>>自动转回主页面");
Welcome();
break;
}
}
}
}
return flag1;
}
#endregion #region 07.查询余额
public bool SelectMoney(){
bool flag2 = false;
Console.WriteLine("============这里是查询===================");
Console.WriteLine("===================>>>>>>>>>");
Console.WriteLine("请输入卡号:");
string account = Console.ReadLine();
Console.WriteLine("请输入密码:");
string password = Console.ReadLine();
for (int i = ; i < cards.Length; i++)
{
if(cards[i]!=null){ if (cards[i].account == account && cards[i].password == password)
{
flag2 = true;
Console.WriteLine("{0},您好,现在您的卡总余额为:{1}", cards[i].name, cards[i].balance);
Console.WriteLine("====>>自动转回主页面");
Welcome();
break;
}
}
}
return flag2;
}
#endregion #region 08.转账
public bool TransferMoney()
{
bool flag3 = false;
Console.WriteLine("============这里是转账===================");
Console.WriteLine("===================>>>>>>>>>");
Console.WriteLine("请输入卡号:");
string account = Console.ReadLine();
Console.WriteLine("请输入密码:");
string password = Console.ReadLine();
for (int i = ; i < cards.Length; i++)
{
if (cards[i] != null)
{
if (cards[i].account == account && cards[i].password == password)
{
bool flag4 = false;
bool flag5 = false;
flag3 = true;
Console.WriteLine("您好!{0},请输入您要转账的卡号:", cards[i].name);
string account1=Console.ReadLine();
for (int j = ; j < cards.Length;j++ )
{ if(cards[j]!=null){
if (cards[j].account == account1)
{
flag4 = true;
Console.WriteLine("您好!{0},您输入要转账的卡号为:{1},请您输入要转账的金额:", cards[i].name,account1);
double balance=double.Parse(Console.ReadLine()); if(cards[j].balance>balance){
flag5 = true;
cards[j].balance = cards[j].balance - balance;
cards[i].balance = cards[i].balance + balance;
Console.WriteLine("您好!{0},转账后,您的余额:{1}", cards[i].name, cards[i].balance);
Console.WriteLine("您好!{0},转账后,您的余额:{1}", cards[j].name, cards[j].balance);
Console.WriteLine("====>>自动转回主页面");
Welcome();
break;
}
}
}
}
if (flag4 == false)
{
Console.WriteLine("您输入的未找到相匹配的卡号!!请核对!!");
Console.WriteLine("====>>自动转回主页面");
Welcome();
}
if (flag5 == false)
{
Console.WriteLine("您的卡里没有这么多钱!!请核对!!");
Console.WriteLine("====>>自动转回主页面");
Welcome();
}
} } }
return flag3;
}
#endregion #region 09.修改密码
public bool ModifyPwd() {
bool flag6 = false; Console.WriteLine("============这里是修改密码===================");
Console.WriteLine("===================>>>>>>>>>");
Console.WriteLine("请输入卡号:");
string account = Console.ReadLine();
Console.WriteLine("请输入密码:");
string password = Console.ReadLine();
for (int i = ; i < cards.Length; i++)
{
if (cards[i] != null)
{
if (cards[i].account == account && cards[i].password == password)
{
flag6 = true;
Console.WriteLine("您好!{0},请再次输入您的原始密码:", cards[i].name);
string password1 = Console.ReadLine();
if (password == password1)
{
Console.WriteLine("您好!{0},请输入您的新密码:", cards[i].name);
string password2 = Console.ReadLine();
Console.WriteLine("您好!{0},请再次输入您的新密码:", cards[i].name);
string password3 = Console.ReadLine();
if (password2 == password3)
{
Console.WriteLine("{0},您改密码成功,现在您的卡新密码为:{1}", cards[i].name, password2);
cards[i].password = password3;
Console.WriteLine("====>>自动转回主页面");
Welcome();
}
else {
Console.WriteLine("您好!{0},您输入的两次新密码密码不一致", cards[i].name);
Console.WriteLine("====>>自动转回主页面");
Welcome();
} }
else {
Console.WriteLine("您好!{0},您输入的两次原始密码不一致", cards[i].name);
Console.WriteLine("====>>自动转回主页面");
Welcome();
}
break;
}
}
}
return flag6;
}
#endregion #region 10.退卡 #endregion
}
}

其中08.转账也可以写为:

 //转账
public void TransferMoney()
{
Console.WriteLine("请输入转出卡卡号");
string outCardNo = Console.ReadLine(); //
Console.WriteLine("请输入转出卡密码");
string outCardPwd = Console.ReadLine();
//判定用户名和密码是否正确
//循环对比
//定义一个标记,标记指示转出卡号默认是不存在
bool flag = false;//默认转出卡不存在
bool outCardFlag = false;//默认转入卡不存在
int type = ;
foreach (Card card in cards)
{
if (card!=null)
{
if (card.CardNo.Equals(outCardNo)) //卡号一致
{
flag = true;
//判定密码是否一致
if (card.CardPwd.Equals(outCardPwd)) //密码一致
{
//用户名 密码均正确,可以执行后续内容
Console.WriteLine("请输入转入卡卡号");
string inCardNo = Console.ReadLine();
#region 内层循环,转入卡
foreach (Card card1 in cards)
{
if (card1 != null)
{
if (card1.CardNo.Equals(inCardNo)) //转入卡存在
{
type = ;
//存在,可以提示输入转账金额
Console.WriteLine("请输入转账金额");
int money = Convert.ToInt32(Console.ReadLine());
if (money <= card.Balance) //合法
{
while (money % != ) //不是面值100的
{
Console.WriteLine("您输入的不合法");
Console.WriteLine("请输入转账金额");
money = Convert.ToInt32(Console.ReadLine());
}
//代码执行到这里,证明转账金额合法
//100元
//改变双方的余额
card.Balance -= money;
card1.Balance += money;
Console.WriteLine("转账成功!");
outCardFlag = true;
Console.WriteLine("转出卡余额{0}\t转入卡余额{1}", card.Balance, card1.Balance); }
else
{
Console.WriteLine("余额不足,退出");
}
break; }
} }
#endregion if (outCardFlag == false&&type==)
{
Console.WriteLine("转入卡不存在!");
} }
else
{
Console.WriteLine("转出卡密码错误!");
}
break;
}
}
}
//出了循环,如果flag还是false,就证明没有该卡!
if (flag==false)
{
Console.WriteLine("没有该卡");
} }

03.最后使用main方法调用输出:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace Bank
{
class Program
{
static void Main(string[] args)
{
Bank bank=new Bank();
bank.InitialData();//保证数组中前3项有值
bank.PrintCustomerInfo();
bank.Welcome();
Console.ReadKey();
}
}
}

亲们! 首次见面! 带来不适!多多见谅!--------->>Bank系统的更多相关文章

  1. [问题解决]win10误删启动项(BCD)(HP电脑亲测,无需启动盘,并非重装系统)

    昨天使用easyBCD软件,开始不太懂,手残把win10的引导删除了,后来发现电脑关机总是变成重启,无奈强制关机.今天重启了一下电脑,发现电脑已经无法打开了,这才明白昨天是误删了win10的BCD. ...

  2. Ubuntu16.04 下如何安装搜狗拼音输入法【亲测有效】

    Ubuntu16.04 下如何安装搜狗拼音输入法[亲测有效]   一.添加fcitx键盘输入法系统[系统默认是iBus] 1.将下载源添加至系统源: sudo add-apt-repository p ...

  3. C#.NET中对称和非对称加密、解密方法汇总--亲测可用

    C#.NET中对称和非对称加密.解密方法汇总--亲测可用   在安全性要求比较高的系统中都会涉及到数据的加密.解密..NET为我们封装了常用的加密算法,例如:MD5,DES,RSA等.有可逆加密,也有 ...

  4. 【MySQL】漫谈MySQL中的事务及其实现

    最近一直在做订单类的项目,使用了事务.我们的数据库选用的是MySQL,存储引擎选用innoDB,innoDB对事务有着良好的支持.这篇文章我们一起来扒一扒事务相关的知识. 为什么要有事务? 事务广泛的 ...

  5. 系统配置 之:远程桌面连接(win7系统)

    本文包括两部分: 1.配置远程桌面连接 2.解决[远程桌面连接不上] 一.远程桌面连接设置 [远程桌面连接配置] Win7系统下的远程桌面连接设置,如果是其他系统或 Win8 及其以上系统,也可作为参 ...

  6. Code笔记 之:注册页面验证码

    文章内容包括: 1.验证码制作 -- 中文|字母|数字|…… 2.图文验证码 -- 图片防盗链(PHP而非JS) 3.JS防止右键点击图片 4.input表单输入框不记录输入过的信息 5.CSS+di ...

  7. 如何成为一位优秀的创业CEO

    英文原文:How to Be Startup CEO 编者按:本文来自 Ryan Allis,是一位来自旧金山的创业者和投资人.在 2003 年创立了 iContact,并任 CEO. 做创业公司的 ...

  8. 漫谈MySql中的事务

    最近一直在做订单类的项目,使用了事务.我们的数据库选用的是MySql,存储引擎选用innoDB,innoDB对事务有着良好的支持.这篇文章我们一起来扒一扒事务相关的知识. 为什么要有事务? 事务广泛的 ...

  9. C#语法糖之开篇

    本人虽然大学不是学的计算机但是对于IT行业的热爱,依然决然进军IT行业了,自从踏进这个行业到现在也已经3年多了,从去年开发通过网上 了解博客园后深深的爱上这儿了,这里有很多牛人,通过拜读他们的代码,让 ...

随机推荐

  1. .NET Framework 高级开发

    .NET Framework 高级开发 MSDN 这部分帮助介绍与 .NET Framework 相关的高级编程主题. 本节内容 管理 介绍如何管理 Active Directory 中的对象,如何使 ...

  2. SVN: bdb: BDB1538 Program version 5.3 doesn't match environment version 4.7

    Q:bdb: BDB1538 Program version 5.3 doesn't match environment version 4.7 A: svnadmin recover /var/wh ...

  3. css3实现进度条的模拟

    两种进度条动画的实现: 1.css3,但IE9-不支持. 2.js动画,兼容性好,但没有css3实现的顺畅 Demo: <html>    <head>        < ...

  4. 实例学习Backbone.js(一)

    前面有两篇文章介绍了Backbone的model.collection和view,那么接下来我想用一个完整的Demo来记录我学习的过程, 单页操作,实现数据的增删改,后台使用json做数据库,通过re ...

  5. 从逆向的角度去理解C++虚函数表

    很久没有写过文章了,自己一直是做C/C++开发的,我一直认为,作为一个C/C++程序员,如果能够好好学一下汇编和逆向分析,那么对于我们去理解C/C++将会有很大的帮助,因为程序中所有的奥秘都藏在汇编中 ...

  6. 非常简单实用的Python HTTP服务

    在做分布式系统应用的时候经常在测试环境上传一个包,或者干嘛的,公司的服务器比较bug,只给ldap权限,每次只能scp到自己的个人目录下,然后才能进到公共账号下去cp,比较麻烦.这时候如果你需要一个简 ...

  7. IOS的启动画面的适配问题

    iPhone4,iPhone4s 分辨率960*640 长宽比1.5iPhone5,iPhone5s 分辨率1136*640 长宽比1.775iPhone6 分辨率1334*750 长宽比1.778i ...

  8. visual studio 2013 秘钥

    #visual studio 2013# 有效密钥:BWG7X-J98B3-W34RT-33B3R-JVYW9

  9. nginx后的tomcat获取真实用户ip

    目前大部分获取ip的方式:beat.getRequest().getRemoteAddr()但是,如果通过nginx反向代理的话,就获取不到真实ip,是获取的nginx的ip 需要:添加    pro ...

  10. oracle 日期获取

    ,'YYYY-MM-DD')星期一, to_char(NEXT_DAy(to_date(,'YYYY-MM-DD')星期日 from dual; select to_char(sysdate,'yyy ...