亲们! 首次见面! 带来不适!多多见谅!--------->>Bank系统
讲一下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系统的更多相关文章
- [问题解决]win10误删启动项(BCD)(HP电脑亲测,无需启动盘,并非重装系统)
昨天使用easyBCD软件,开始不太懂,手残把win10的引导删除了,后来发现电脑关机总是变成重启,无奈强制关机.今天重启了一下电脑,发现电脑已经无法打开了,这才明白昨天是误删了win10的BCD. ...
- Ubuntu16.04 下如何安装搜狗拼音输入法【亲测有效】
Ubuntu16.04 下如何安装搜狗拼音输入法[亲测有效] 一.添加fcitx键盘输入法系统[系统默认是iBus] 1.将下载源添加至系统源: sudo add-apt-repository p ...
- C#.NET中对称和非对称加密、解密方法汇总--亲测可用
C#.NET中对称和非对称加密.解密方法汇总--亲测可用 在安全性要求比较高的系统中都会涉及到数据的加密.解密..NET为我们封装了常用的加密算法,例如:MD5,DES,RSA等.有可逆加密,也有 ...
- 【MySQL】漫谈MySQL中的事务及其实现
最近一直在做订单类的项目,使用了事务.我们的数据库选用的是MySQL,存储引擎选用innoDB,innoDB对事务有着良好的支持.这篇文章我们一起来扒一扒事务相关的知识. 为什么要有事务? 事务广泛的 ...
- 系统配置 之:远程桌面连接(win7系统)
本文包括两部分: 1.配置远程桌面连接 2.解决[远程桌面连接不上] 一.远程桌面连接设置 [远程桌面连接配置] Win7系统下的远程桌面连接设置,如果是其他系统或 Win8 及其以上系统,也可作为参 ...
- Code笔记 之:注册页面验证码
文章内容包括: 1.验证码制作 -- 中文|字母|数字|…… 2.图文验证码 -- 图片防盗链(PHP而非JS) 3.JS防止右键点击图片 4.input表单输入框不记录输入过的信息 5.CSS+di ...
- 如何成为一位优秀的创业CEO
英文原文:How to Be Startup CEO 编者按:本文来自 Ryan Allis,是一位来自旧金山的创业者和投资人.在 2003 年创立了 iContact,并任 CEO. 做创业公司的 ...
- 漫谈MySql中的事务
最近一直在做订单类的项目,使用了事务.我们的数据库选用的是MySql,存储引擎选用innoDB,innoDB对事务有着良好的支持.这篇文章我们一起来扒一扒事务相关的知识. 为什么要有事务? 事务广泛的 ...
- C#语法糖之开篇
本人虽然大学不是学的计算机但是对于IT行业的热爱,依然决然进军IT行业了,自从踏进这个行业到现在也已经3年多了,从去年开发通过网上 了解博客园后深深的爱上这儿了,这里有很多牛人,通过拜读他们的代码,让 ...
随机推荐
- 彻底理解JAVA动态代理
代理设计模式 定义:为其他对象提供一种代理以控制对这个对象的访问. 代理模式的结构如下图所示. 动态代理使用 java动态代理机制以巧妙的方式实现了代理模式的设计理念. 代理模式示例代码 public ...
- ionic介绍
ionic介绍 Ionic是一个前端的框架,帮助开发者使用HTML5, CSS3和JavaScript做出原生应用. The beautiful, open source front-end fram ...
- [原]Android打包之跨平台打包
Android自动打包流程详细图: 在前面一些博客我们知道了如何通过命令行打包,如何通过Eclipse打包,如何通过编写shell脚本来进行打包,但是这些都不能很好的跨平台进行打包. 因Python本 ...
- MyBatis知多少(25)动态SQL
使用动态查询是MyBatis一个非常强大的功能.有时你已经改变WHERE子句条件的基础上你的参数对象的状态.在这种情况下的MyBatis提供了一组可以映射语句中使用,以提高SQL语句的重用性和灵活性的 ...
- 数据可视化(6)--Google Charts实例
上头给的关于jqplot的问题暂时解决了,继续google charts. google charts的实例很多,就以区域图(Geochart)为例~~ 区域图(Geochart)是一个国家.大陆或者 ...
- [OpenCV] Feature Extraction
特征检测 特征描述 特征匹配 特征跟踪 “不读白不读,读了还想读” 的一本基础书 低层次特征提取 阈值方法 1. 边缘检测 一阶检测算子 二阶检测算子 相位一致性(频域) 2. 角点检测(局部特征提取 ...
- [转载]部署Office Web Apps Server并配置其与SharePoint 2013的集成
Office Web Apps Server 是新的 Office 服务器产品,它提供 Word.PowerPoint.Excel 和 OneNote 的基于浏览器的版本.单个 Office Web ...
- MySQL中的账号与权限管理
MySQL权限管理 权限系统的工作原理 MySQL权限系统通过下面两个阶段进行认证: (1)对连接的用户进行身份认证,合法的用户通过认证.不合法的用户拒绝连接. (2)对通过认 ...
- Android 学习笔记之网络通信基础+WebView....
PS:加快学习进度...下周一完成Android网络通信...然后正式进入实战... 学习内容: 1.Android中Http基础... 2.Android中的Socket基础... 3.Androi ...
- 如何根据iframe内嵌页面调整iframe高宽续篇
接着昨天的工作 如何根据iframe内嵌页面调整iframe高宽 来说,按照文章中说的第二种方法实现代码如下: 实现 A.com/detail/view 页面的iframe代码如下: <ifra ...