讲一下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. [转]大型 JavaScript 应用架构中的模式

    目录 1.我是谁,以及我为什么写这个主题 2.可以用140个字概述这篇文章吗? 3.究竟什么是“大型”JavaScript应用程序? 4.让我们回顾一下当前的架构 5.想得长远一些 6.头脑风暴 7. ...

  2. 再谈LRU双链表内存管理

    N年前我写了个双链表也发了博客,还添了代码.但是那个代码不但复杂,而且还有有问题的,一直懒得整理,放在空间误导别人.最近在写服务端,今天抽点空补一篇. 关于LRU网上随便搜,有过后端经验的人应该很多都 ...

  3. Offer_answer_with_SDP_rfc3264

    Network Working Group J. RosenbergRequest for Comments: 3264 dynamicsoftObsoletes: 2543 H. Schulzrin ...

  4. QQ微信的备份

    一.问题的提出 windows phone上的微信,累积了太多的微信消息,突然提示“数据库占用空间过大,请及时清理” 二.问题的分析 在朋友发起的群聊中,大量的图片.视频,打开后是下载到本机上的,下载 ...

  5. DevExpress XtraTreeList的复选框 禁用

    树的2个事件代码如下,通过节点的tag判断是否禁用节点前的复选框.树的节点加载时设置要禁用的节点tag为-1,不禁用的则设为相关的值 private void treeListPer_CustomDr ...

  6. 64bit ubuntu 安装32bit的软件

    在64bit的系统上安装32bit的软件时,会提示: file not found or no such file. 此时只需要安装 sudo apt-get install libc6-dev-i3 ...

  7. [原]运行编译好的Android模拟器

    Android源码编译好了之后,我们就可以运行它了. 1.配置环境变量: /data/data/Android$ export PATH=$PATH:$(pwd)/out/host/linux-x86 ...

  8. JavaScript基础知识整理

    只整理基础知识中关键技术,旨在系统性的学习和备忘. 1.在 JScript 中 null 和 undefined 的主要区别是 null 的操作象数字 0,而 undefined 的操作象特殊值NaN ...

  9. 不使用ajax,无刷新提交表单

    <form action="form_action.asp" method="get" onsubmit"check_form()" ...

  10. nodejs之获取客户端真实的ip地址+动态页面中引用静态路径下的文件及图片等内容

    1.nodejs获取客户端真实的IP地址: 在一般的管理网站中,尝尝会需要将用户的一些操作记录下来,并记住是哪个用户进行操作的,这时需要用户的ip地址,但是往往当这些应用部署在服务器上后,都使用了ng ...