我们为之奋斗过的C#-----Bank系统
首先感谢大家抽出宝贵的时间来看这个Bank系统,这是我最近学的Bank系统,你们看我刚一学完就给你们分享了我的所学以及学习的一些经验,所以大家一定要耐心看下去,真的你会有所收获的,不信你看看.下面话不多说.我们直接切入正题,怎样来做这个Bank系统.还记得我给大家分享的经验吗?做这样的题目需要先理清逻辑思路,然后在来做.
1.这个Bank要实现的功能是:
1.开户2.存款3.取款4.查询余额5.转账6.修改密码7退出
2首先这个Bank系统需要这几个类:
Card类(银卡类)
Bank类(Bank系统中的核心类);
程序的入口类(实质上就是Manin方法)
3 核心类bank类中定义方法:
初始化100张卡的前3张卡信息,给前3张卡的信息赋值方法: EvaluationCard()
输出出三张卡的信息的方法outputCardShow()
欢迎菜单的方法Welcome();
开户的方法CreateAccount()
存款的方法MoneyIn()
取款的方法MoneyOut()
转账的方法TransferMoney()
查询余额的方法SelectMoney()
修改密码的方法ModifyPwd()
退出的方法ExitSystem()
4在Main方法中调用方法.
下面就是代码的部分的,来自五湖四海的朋友们,认真看吧!
Card类
public class Card
{
//字段
private string cardName;//持卡人姓名
private int cardNumber;//卡账户
private string cardPwd;//卡密码
private double cardMoney;//卡余额
private string idCard;//身份证号
//属性
public string IdCard
{
get { return idCard; }
set { idCard = value; }
}
public double CardMoney
{
get { return cardMoney; }
set { cardMoney = value; }
}
public string CardPwd
{
get { return cardPwd; }
set { cardPwd = value; }
}
public int CardNumber
{
get { return cardNumber; }
set { cardNumber = value; }
}
public string CardName
{
get { return cardName; }
set { cardName = value; }
}
}
Bank类(核心类)
public class Bank
{
Card[] card = ];//实例化一个数组对象给定一个长度为100;
Bank类中的方法.
初始化100张卡的前3张卡信息,给前3张卡的信息赋值方法: EvaluationCard()
public void EvaluationCard()
{
Card card1 = new Card();//实例化一个card1对象
card1.CardName = "汪苏泷";
card1.CardMoney = ;
card1.CardNumber = ;
card1.CardPwd = ";
card[] = card1;
Card card2 = new Card();//实例化一个card2对象
card2.CardName = "林俊杰";
card2.CardMoney = ;
card2.CardNumber = ;
card2.CardPwd = ";
card[] = card2;
Card card3 = new Card();//实例化一个card3对象
card3.CardName = "王力宏";
card3.CardMoney = ;
card3.CardNumber = ;
card3.CardPwd = ";
card[] = card3;
}
打印出三张卡的信息的方法outputCardShow()
public void outputCardShow()
{
Console.WriteLine("********************************************");
foreach (Card item in card)//用foreach循环遍历数组
{
if (item != null)//保证数组对象中的值不为null.
{
Console.WriteLine("用户名:{0}\t\t银行账户:{1}", item.CardName, item.CardNumber);
}
}
Console.WriteLine("********************************************");
}
欢迎菜单的方法Welcome()
public void Welcome()
{
//调用打印三张卡信息,在屏幕中显示,后续开户功能会增加更多卡信息
outputCardShow();
Console.WriteLine("欢迎进入泪洒星辰ATM自助取款系统");
Console.WriteLine("功能:1.开户 2.存款 3.取款 4.查询余额 5.转账 6.修改密码 7.退出");
Console.WriteLine("请选择您要操作的功能模块,亲");
string result = Console.ReadLine();
switch (result)//根据对应的数字选择对应的功能模块
{
":
//调用开户的方法
CreateAccount();
break;
":
//调用存款的方法
MoneyIn();
break;
":
//调用取款的方法
MoneyOut();
break;
":
//调用查询余额的方法
SelectMoney();
break;
":
//调用转账的方法
TransferMoney();
break;
":
//调用修改密码的方法
ModifyPwd();
break;
":
// 调用退卡的方法
ExitSystem();
Console.WriteLine("成功退卡!");
break;
default:
Console.WriteLine("没有对应的功能模块!");
break;
}
}
开户的方法CreateAccount()
public void CreateAccount()
{
Console.WriteLine("===================");
Console.WriteLine("这里是开户模块");
Console.WriteLine("===================");
Console.WriteLine("请输入省份证号码:");
string id = Console.ReadLine();
Random ran = new Random();//实例化一个随机数对象
//让系统随机产生一个10000000~99999999之间的随机数
, );
//向屏幕打印出用户的银行账号
Console.WriteLine("请牢记您的账户:{0}", RandKey);
Console.WriteLine("请输入用户名:");
string name = Console.ReadLine();
Console.WriteLine("请输入密码:");
string mima = Console.ReadLine();
Console.WriteLine("请输入预存余额:");
double money = double.Parse(Console.ReadLine());
Card cards = new Card();
cards.IdCard = id;
cards.CardName = name;
cards.CardPwd = mima;
cards.CardMoney = money;
cards.CardNumber = RandKey;
; i < card.Length; i++)
{
if (card[i] == null)
{
card[i] = cards;
Console.WriteLine("*******************");
Console.WriteLine("恭喜开户成功!");
Console.WriteLine("*******************");
break;
}
}
Welcome();
}
存款的方法MoneyIn()
public void MoneyIn()
{
Console.WriteLine("===================");
Console.WriteLine("这里是存款");
Console.WriteLine("===================");
Console.WriteLine("请输入账号:");
int number = int.Parse(Console.ReadLine());
bool flag = false;//定义一个标记,标记指示卡号默认是不存在
; i < card.Length; i++)//用for循环遍历数组
{
//如果数组中的值不为null并且输入的账号要和数组中的账号一致才能输入密码.
if (card[i] != null && number.Equals(card[i].CardNumber))
{
flag = true;//改变标记这里账号已经审核成功
Console.WriteLine("请输入密码:");
string pwd = Console.ReadLine();
if (pwd.Equals(card[i].CardPwd))//如果密码一致,才能进行下一步
{
Console.WriteLine("{0},您好!登录成功", card[i].CardName);
Console.WriteLine("============================");
Console.WriteLine("请输入你的存款金额:");
Console.WriteLine("============================");
double money = double.Parse(Console.ReadLine());
//存款金额=存款金额+账户已有余额;
card[i].CardMoney = card[i].CardMoney + money;
Console.WriteLine("============================");
Console.WriteLine("存款成功!目前账户余额为:{0}", card[i].CardMoney);
Console.WriteLine("============================");
Welcome();//调用欢迎菜单,返回主菜单
break;
}
else
{
Console.WriteLine("============================");
Console.WriteLine("对不起你输入的密码有误!");
Console.WriteLine("============================");
break;
}
}
}
//出了循环证明没有匹配的账号flag的值没被改过判定flag标记是否为false
if(flag==false)
{
Console.WriteLine("============================");
Console.WriteLine("对不起!没检测到该卡");
Console.WriteLine("============================");
}
}
取款的方法MoneyOut()
public void MoneyOut()
{
Console.WriteLine("===================");
Console.WriteLine("这里是取款");
Console.WriteLine("===================");
Console.WriteLine("请输入账号:");
int number = int.Parse(Console.ReadLine());
bool flag = false;
; i < card.Length; i++)
{
if (card[i] != null && number.Equals(card[i].CardNumber))
{
flag = true;
Console.WriteLine("请输入密码:");
string pwd = Console.ReadLine();
if (pwd.Equals(card[i].CardPwd))
{
Console.WriteLine("{0},您好!登录成功", card[i].CardName);
Console.WriteLine("请输入你的取款金额:");
double money = double.Parse(Console.ReadLine());
if (money > card[i].CardMoney)
{
Console.WriteLine("============================");
Console.WriteLine("对不起!你的余额不足本次取款");
Console.WriteLine("============================");
}
else
{
//如果输入的取款数不是100的整数倍那么输入的金额就会不合法,知道输入合法才可退出
!= )
{
Console.WriteLine("您输入的不合法");
Console.WriteLine("请输入取款金额");
money = Convert.ToInt32(Console.ReadLine());
}
//代码执行到这里,证明转账金额合法
card[i].CardMoney = card[i].CardMoney - money;
Console.WriteLine("============================");
Console.WriteLine("取款成功!目前账户余额为:{0}", card[i].CardMoney);
Console.WriteLine("============================");
Welcome();//调用欢迎菜单,返回主菜单
break;
}
}
else
{
Console.WriteLine("============================");
Console.WriteLine("对不起你输入的密码有误!");
Console.WriteLine("============================");
break;
}
}
}
if (flag == false)
{
Console.WriteLine("对不起!没检测到该卡");
}
}
转账的方法”难点”(这块可能要花大量时间理解if结构嵌套关系太多)TransferMoney()
public void TransferMoney()
{
Console.WriteLine("============================");
Console.WriteLine("这里是转账");
Console.WriteLine("============================");
Console.WriteLine("请输入转出卡卡号");
int outnum = int.Parse(Console.ReadLine());
bool flag = false;//默认转出卡不存在
bool outCardFlag = false;//默认转入卡不存在
;
foreach (Card card1 in card)
{
if (card1!= null)
{
if (card1.CardNumber.Equals(outnum))
{
flag = true;
Console.WriteLine("请输入转出卡密码");
string outpwd = Console.ReadLine();
if (card1.CardPwd.Equals(outpwd)) //判断密码是否一致
{
//用户名 密码均正确,可以执行后续内容
Console.WriteLine("请输入转入卡卡号");
int intnum = int.Parse(Console.ReadLine());
foreach (Card card2 in card)
{
if (card2 != null)
{
if (card2.CardNumber.Equals(intnum)) //判断转入卡是否存在
{
type = ;
//存在,可以提示输入转账金额
Console.WriteLine("请输入转账金额");
int money = Convert.ToInt32(Console.ReadLine());
if (money <= card1.CardMoney) //合法
{
!= ) //不是面值100的
{
Console.WriteLine("============================");
Console.WriteLine("您输入的不合法");
Console.WriteLine("请输入转账金额");
Console.WriteLine("============================");
money = Convert.ToInt32(Console.ReadLine());
}
//代码执行到这里,证明转账金额合法
//改变双方的余额
card1.CardMoney -= money;
card2.CardMoney += money;
Console.WriteLine("转账成功!");
outCardFlag = true;
Console.WriteLine("============================");
Console.WriteLine("转出卡余额{0}\t转入卡余额{1}", card1.CardMoney, card2.CardMoney);
Console.WriteLine("============================");
Welcome();//调用欢迎菜单,返回主菜单
}
else
{
Console.WriteLine("============================");
Console.WriteLine("余额不足!");
Console.WriteLine("============================");
}
break;
}
}
}
)
{
Console.WriteLine("============================");
Console.WriteLine("转入卡不存在!");
Console.WriteLine("============================");
}
}
else
{
Console.WriteLine("============================");
Console.WriteLine("转出卡密码错误!");
Console.WriteLine("============================");
}
break;
}
}
}
//出了循环,如果flag还是false,就证明没有该卡!
if (flag == false)
{
Console.WriteLine("============================");
Console.WriteLine("没有该卡");
Console.WriteLine("============================");
}
}
查询余额的方法SelectMoney()
public void SelectMoney()
{
Console.WriteLine("===================");
Console.WriteLine("这里是查询余额");
Console.WriteLine("===================");
Console.WriteLine("请输入账号:");
int number = int.Parse(Console.ReadLine());
bool flag = false;
; i < card.Length; i++)
{
if (card[i] != null && number.Equals(card[i].CardNumber))
{
flag = true;
Console.WriteLine("请输入密码:");
string pwd = Console.ReadLine();
if (pwd.Equals(card[i].CardPwd))
{
Console.WriteLine("{0},您好!登录成功", card[i].CardName);
Console.WriteLine("============================");
Console.WriteLine("目前账户余额为:{0}", card[i].CardMoney);
Console.WriteLine("============================");
Welcome();//调用欢迎菜单,返回主菜单
break;
}
else
{
Console.WriteLine("============================");
Console.WriteLine("对不起你输入的密码有误!");
Console.WriteLine("============================");
break;
}
}
}
if (flag == false)
{
Console.WriteLine("============================");
Console.WriteLine("对不起!没检测到该卡");
Console.WriteLine("============================");
}
}
修改密码的方法ModifyPwd()
public void ModifyPwd()
{
Console.WriteLine("===================");
Console.WriteLine("这里是修改密码");
Console.WriteLine("===================");
Console.WriteLine("请输入账号:");
int number = int.Parse(Console.ReadLine());
bool flag = false;
; i < card.Length; i++)
{
if (card[i] != null && number.Equals(card[i].CardNumber))
{
flag = true;
Console.WriteLine("请输入密码:");
string pwd = Console.ReadLine();
if (pwd.Equals(card[i].CardPwd))
{
Console.WriteLine("{0},您好!登录成功", card[i].CardName);
Console.WriteLine("请输入你的新密码:");
string newpwd = Console.ReadLine();
Console.WriteLine("请确认你的密码:");
string newpwdone = Console.ReadLine();
if (newpwdone.Equals(newpwd))//判断两次输入的密码是否一致
{
//代码执行到这说明密码已经一致
card[i].CardPwd = newpwdone;
Console.WriteLine("============================");
Console.WriteLine("修改密码成功!修改后的密码为{0};请牢记密码.", card[i].CardPwd);
Console.WriteLine("============================");
Welcome();//调用欢迎菜单,返回主菜单
}
else
{
Console.WriteLine("============================");
Console.WriteLine("对不起!前后密码不一致!未能更改密码:");
Console.WriteLine("============================");
}
break;
}
else
{
Console.WriteLine("============================");
Console.WriteLine("对不起你输入的密码有误!");
Console.WriteLine("============================");
break;
}
}
}
if (flag == false)
{
Console.WriteLine("============================");
Console.WriteLine("对不起!没检测到该卡");
Console.WriteLine("============================");
}
}
退出的方法ExitSystem()
public void ExitSystem()
{
Console.WriteLine("============================");
Console.WriteLine("谢谢您的使用!");
Console.WriteLine("============================");
}
最后在程序的入口类(Main方法)中调用
static void Main(string[] args)
{
Bank bank = new Bank();//创建bank对象
bank. EvaluationCard();//调用EvaluationCard()方法.保证前三项有值
bank.Welcome();//调用欢迎菜单的方法,上面代码中功能模块的方法已经在case块中调用
Console.ReadLine();
}
到这终于结束了,希望对刚入门的一些人士有帮助,也在此感谢大家能够看完,感觉写的还可以的支持一下,如若有其他的一些问题,请发送到
我的邮箱:18813091329@163.com.
QQ:2991635691
我们为之奋斗过的C#-----Bank系统的更多相关文章
- 神奇的Bank系统之旅哦
奋斗不能等待,我们不能等到垂暮之年再去“全力以赴”.让我们从现在开始,为理想而努力,为人生而拼搏.精诚所至,金石为开,相信奋斗会让我们的青春之花绽放得更加绚烂,让我们的人生之路走下来不留遗憾. ...
- 论那些年我们讨论过的Bank系统!
今天呢我就和大家分享一下怎样用对象数组的形式来实现一个简单的银行系统, 首先呢,跟大家介绍一下这个简单的银行操作系统要实现的一些主要的功能: 主要功能有 : 1.开户功能 2.存款 3.取款 4.转账 ...
- 亲们! 首次见面! 带来不适!多多见谅!--------->>Bank系统
亲们!您们好! 讲一下Bank系统的做法: 01.首先创建一个Card类 using System; using System.Collections.Generic; using System.Li ...
- 搞死人不偿命的 Bank系统
每一个成功者都有一个开始.勇于开始,才能够找到通往成功的路. 最近C#进行到第三章:升级Mybank,发现这是一个我个人觉得比较难搞的一个东西,一下是我对Bank系统难点的叙述,请大神笔下留情~ 1. ...
- 银行bank系统项目实践
想看项目的注意了!完整版银行管理系统就在这里看不看你看着办! 按照惯例咱们还是先来看一下项目需求: 某银行为了提高业务率希望开发一个银行管理系统功能如下: 1.能够完成用户开户操作 2.能够完成用户取 ...
- 我们为之奋斗过的C#之---简单的库存管理系统
今天非常开心,因为今天终于要给大家分享一个库存管理项目了. 我个人感觉在做项目之前一定先要把逻辑思路理清,不要拿到项目就噼里啪啦的一直敲下去这样是一不好的习惯,等你做大项目的时候,你就不会去养成一种做 ...
- 浅谈为之奋斗过的Set接口
Set接口 Set接口存储一组唯一,无序的对象 HashSet 是Set接口常用的实现类 HashSet允许集合元素值为null 操作数据的方法与List类似 Set接口不存在get()方法 set ...
- 我们为之奋斗过的C#-----C#的一个简单理解
我们首先来简单叙述一下什么是.NET,以及C#的一个简单理解和他们俩的一个区别. 1 .NET概述 .NET是Microsoft.NET的简称,是基于Windows平台的一种技术.它包含了能在.NET ...
- 构建嵌入式小型Linux系统
构建嵌入式小型Linux系统 摘要:用buildroot构建x86的交叉编译工具链:裁减linux内核,尽可能做到最小:手工构建根文件系统:安装qemu虚拟机,仿真新配置的Linux系统:为新配置的L ...
随机推荐
- PRML读书会第二章 Probability Distributions(贝塔-二项式、狄利克雷-多项式共轭、高斯分布、指数族等)
主讲人 网络上的尼采 (新浪微博: @Nietzsche_复杂网络机器学习) 网络上的尼采(813394698) 9:11:56 开始吧,先不要发言了,先讲PRML第二章Probability Dis ...
- C# 有关命名法
常用的几种:匈牙利命名法,骆驼命名法,帕斯卡(pascal)命名法就说了. 总结下VS所用的标准命名: 1 ADO.NET 命名规范 数据类型 数据类型简写 标准命名举例 Connection con ...
- css的6中居中的方式
请先看blog:http://blog.csdn.net/wolinxuebin/article/details/7615098
- xml基本操作
在实际项目中遇到一些关于xml操作的问题,被逼到无路可退的时候终于决定好好研究xml一番.xml是一种可扩展标记语言,可跨平台进行传输,因此xml被广泛的使用在很多地方. 本文由浅入深,首先就xml的 ...
- SQL中exists的使用方法
EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False exists : 强调的是是否返回结果集,不要求知道返回什么, exists 与 in ...
- sublime text下代码太长brackethighlighter不能正确显示闭合高亮的解决方法
用brackethighlighter显示高亮一直都有这个问题...也没在网上找到解决方案,就一直凑合着用,今天翻着配置文件玩,改了参数发现问题解决了...... 修改search_threshold ...
- Rhino Mock
mock interfaces, delegates and classes, including those with parameterized constructors. set expecta ...
- ZOJ 3201 树形dp+背包(简单题)
#include<cstdio> #include<vector> #include<cstring> #include<iostream> using ...
- oracle-分页查询方案
一.使用rownum做三层包装查询(常用方案) SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A ) 其中 ...
- Java基础-String 存储机制管理
JVM运行的时候,将内存分为两个部分,一部分是堆,一部分是栈.堆中存放的是创建对象,而栈中存放的则是方法调用过程中的局部变量或引用.在设计JAVA字符串对象内存实现的时候,在堆中又开辟了一块很小的内存 ...