亲们! 首次见面! 带来不适!多多见谅!--------->>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年多了,从去年开发通过网上 了解博客园后深深的爱上这儿了,这里有很多牛人,通过拜读他们的代码,让 ...
随机推荐
- mem_fun 例子
// functional_mem_fun.cpp // compile with: /EHsc #include <vector> #include <functional> ...
- SQL 触发器 instead of | insert
create trigger tgr_Insert on A instead of insert as print 'Hello World' go insert into A values('100 ...
- Linux高级编程--07.进程间通信
每个进程各自有不同的用户地址空间,进程之间要交换数据必须通过在内核中开辟缓冲区,从而实现数据共享. 管道 管道是一种最基本的IPC机制,由pipe函数创建: int pipe(int filedes[ ...
- 4.3.3版本之引擎bug
bug描述: IOS设备上,当使用WWW www = WWW.LoadFromCacheOrDownload(url, verNum); 下载资源时,第一次下载某个资源,www.assetBundle ...
- 浅析.NET泛型
泛型是.NET Framework 2.0最强大的功能,通过泛型可以定义类型安全的数据结构,而没有必要使用实际的数据类型,这将显著提高性能并得到更高质量的代码.在.NET Framework 2.0之 ...
- MongoDB入门三:MongoDB shell
MongoDB shell MongDB shell是一个功能完备的Javascript解释器,可以运行Javascript程序.也可以用于连接MongoDB服务器,执行脚本,对数据库进行操作.类似于 ...
- UML系列03之 UML类图(二)
概要 在"UML系列02之 UML类图(一) "中介绍了类图的基本构成--类的UML表示方法.本文是接着前文,继续对"UML的类图"中几种关系进行介绍.介绍的主 ...
- Transact-SQL 示例 - 使用脚本备份数据库的示例
在常规的数据库开发与维护的过程中,常常需要对数据库进行数据备份,最入门的办法就是使用SSMS图形化界面提供的数据库备份向导一步一步操作进行备份,这种方式虽然简单快捷但是日子久了就会觉得重复且繁琐.下面 ...
- python 在sublime 中的配置
首先可以先装package control 方法——按ctrl+`,然后在命令行里复制粘贴以下代码, import urllib2,os;pf='Package Control.sublime-pac ...
- 基于openssl的单向和双向认证
1.前言 最近工作涉及到https,需要修改nginx的openssl模块,引入keyless方案.关于keyless可以参考CloudFlare的官方博客: https://blog.cloudfl ...