银行ATM自动取款机模拟系统.docx
- 文档编号:16782773
- 上传时间:2023-07-17
- 格式:DOCX
- 页数:21
- 大小:19.03KB
银行ATM自动取款机模拟系统.docx
《银行ATM自动取款机模拟系统.docx》由会员分享,可在线阅读,更多相关《银行ATM自动取款机模拟系统.docx(21页珍藏版)》请在冰点文库上搜索。
银行ATM自动取款机模拟系统
用Vs2010写控制台应用程序
银行ATM自动取款机系统教程
要写出银行ATM自动取款机系统,我们先要梳理取款机的运作过程。
首先,一套完整的ATM系统包括取款界面,后台处理。
后台处理中,银行和账户是不可缺的因素。
所以,我们可以在项目中创建三个类:
ATM类、Account账户类、Bank银行类。
下面是详细的代码:
(本系统已成都银行为例)
排版若有不妥,敬请原谅。
以下代码仅供参考。
一、Program
为了方便大家学习,特讲一些构造函数、方法、获取属性等语法的书写方法注释在Program中。
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
namespaceATM
{
classProgram
{
staticvoidMain(string[]args)
{
//创建银行
Bankbank=newBank("成都银行");
//创建自动提款机
ATMatm=newATM(bank);
//调用Start()方法
atm.Start();
//1.无参构造函数创建对象并且赋值
//实例化对象的语法:
//类对象名=new类();
//Studentstudent=newStudent();
//设置属性的语法:
//对象名属性名=值
//student.Name="小明";
//student.Age=18;
//student.Sex="男D";
//student.ClassName="0801T";
////2.带参构函数创建对象并且赋值
//Studentwangwu=newStudent("wangwu","女",20);
//stringstudyResult=wangwu.StudyByName(wangwu.Name);
//Console.WriteLine(studyResult);
////获取属性的语法;
////对象名属性名
//stringstudentName=student.Name;
////调用方法的语法:
////对象名方法名(实际参数1,实际参数2,…..实际参数n);
//student.Study(studentName);
Console.ReadLine();
}
}
}
二、ATM类
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
namespaceATM
{
classATM
{
privateBankbank;
publicATM(Bankbank)
{
this.bank=bank;
}
publicvoidStart()
{
while(true)
{
Console.WriteLine("================================================================================");
Console.WriteLine(">>>>欢迎使用{0}ATM自动取款机<<<<,this.bank.Name);
Console.WriteLine("");
Console.WriteLine("请***************************************");
Console.WriteLine("选**");
Console.WriteLine("择*1、开户2、登陆*");
Console.WriteLine("业**");
Console.WriteLine("务***************************************");
Console.WriteLine("");
Console.WriteLine("================================================================================");
Console.WriteLine("请选择:
");
stringinput=Console.ReadLine();
//实际参数可以不赋初始值
Accountaccount;
if(input=="1")
{
//开a户
Console.Write("用户名:
");
stringusername=Console.ReadLine();
Console.Write("密码:
");
stringpassword=Console.ReadLine();
intpa=password.Trim().IndexOf("");
if(password.Trim()!
=""&&pa>0)
{
Console.WriteLine("您输入的密码不合法!
");
}
//调用开a户方法
boolopenResult=bank.OpenAccount(username,password,outaccount);
if(openResult==true)
{
Console.WriteLine("开户成功!
");
Console.WriteLine("用户名:
{0}",account.Username);
Console.WriteLine("余额:
{0}",account.Balance);
}
else
{
Console.WriteLine("开户失败!
");
}
}
elseif(input=="2")
{
//登录
Console.Write("用户名:
");
stringusername=Console.ReadLine();
Console.Write("密码:
");
stringpassword=Console.ReadLine();
boolloginResult=bank.LoginAtm(username,password,outaccount);
if(loginResult==true)
{
//是否跳出当前循环标记
boolisExsist=false;
while(true)
{
if(isExsist==true)
{
break;
}
Console.WriteLine("=================================================================");
Console.WriteLine(">>>>欢迎使1用{0}ATM自动取款机<<<<",this.bank.Name);
Console.WriteLine("1.存款");
Console.WriteLine("2.取款");
Console.WriteLine("3.转a账");
Console.WriteLine("4.查询余额");
Console.WriteLine("5.修T改密码");
Console.WriteLine("6.注é销");
Console.WriteLine("7.退出");
Console.WriteLine("=================================================================");
Console.Write("请选择:
");
stringinp=Console.ReadLine();
switch(inp)
{
case"1":
//存款
Console.WriteLine("请输入存款金e额:
");
stringmoney=Console.ReadLine();
//转a换为a十进制数y
decimalmoneyDecimal=0;
try
{
moneyDecimal=decimal.Parse(money);
}
catch(Exceptionex)
{
Console.WriteLine("您的输入有误,请重新输入:
"+ex.Message);
}
//调用账户里的存款方法
booldepositResult=account.Deposit(moneyDecimal);
if(depositResult==true)
{
Console.WriteLine("存款成功!
");
Console.WriteLine("您的用户名:
{0}",account.Username);
Console.WriteLine("您的余额:
{0}",account.Balance);
}
else
{
Console.WriteLine("存款失败!
");
}
break;
case"2":
//取款
Console.WriteLine("请输入取款金e额:
");
stringmoneyDraw=Console.ReadLine();
decimalmoneyDecimalq=0;
try
{
moneyDecimalq=decimal.Parse(moneyDraw);
}
catch(Exceptionex)
{
Console.WriteLine("您的输入有误,请重新输入:
"+ex.Message);
}
booldrawResult=account.Draw(moneyDecimalq);
if(drawResult==true)
{
Console.WriteLine("取款成功!
");
Console.WriteLine("您的用户名:
{0}",account.Username);
Console.WriteLine("您的余额:
{0}",account.Balance);
}
else
{
Console.WriteLine("取款失败!
");
}
break;
case"3":
//1.提示输入转a入的用户名
Console.WriteLine("请输入转入的用户名:
");
stringtransferUsername=Console.ReadLine();
//2.判D断转a入的用户名是否存在
AccounttransferAccount=null;
//2.1获取银行D账户列D表,循环每一个账户
foreach(Accountiteminbank.AccountList)
{
//2.2与输出的用户名进行D比较,如果用户名存在,获取转a入的账户
if(transferUsername==item.Username)
{
//获取账入账户
transferAccount=item;
break;
}
}
//3.提示输入转a账金e额
Console.WriteLine("请输入转账金额:
");
stringtransferMoney=Console.ReadLine();
decimaltransferMoneyDecimal=0;
try
{
transferMoneyDecimal=decimal.Parse(transferMoney);
}
catch(Exceptionex)
{
Console.WriteLine("您的输入有误,请重新输入:
"+ex.Message);
}
//4.调用当前账户的转账方法
booltransferResult=account.TransferMoney(transferAccount,transferMoneyDecimal);
//5.输出转账结果
if(transferResult)
{
Console.WriteLine("转a账成功!
");
Console.WriteLine("您的用户名:
{0}",account.Username);
Console.WriteLine("您的余额:
{0}",account.Balance);
}
else
{
Console.WriteLine("转a账失败!
");
}
//转a账
break;
case"4":
//查询余额
Console.WriteLine("您的余额为a:
{0}",account.Balance);
break;
case"5":
//修改密码
//提示输入原密码
Console.WriteLine("请输入旧密码:
");
stringoldPassword=Console.ReadLine();
//提示输入新密码
Console.WriteLine("请输入新密码");
stringnewPassword=Console.ReadLine();
//提示再次输入新密码
Console.WriteLine("请再次输入新密码");
stringnewPasswordRepeat=Console.ReadLine();
//验证两次密码是否一致
if(newPassword.Equals(newPasswordRepeat))
{
//调用当前账户的修T改密码方法
boolchangeResult=account.ChangePassword(oldPassword,newPassword);
if(changeResult)
{
Console.WriteLine("修T改密码成功!
");
}
else
{
Console.WriteLine("修T改密码失败!
");
}
}
else
{
Console.WriteLine("两次输入的密码不一致,请重新输入!
");
}
break;
case"6":
//注é销
isExsist=true;
break;
case"7":
//退出
return;
default:
Console.WriteLine("选择有误,请重新选择!
");
break;
}
}
}
else
{
Console.WriteLine("登录失败!
");
}
}
else
{
Console.WriteLine("您的输入有误,请重新输入:
");
}
}
}
}
}
三、Bank类
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
namespaceATM
{
classBank
{
privatestringname;
///
///银行名称
///
publicstringName
{
get{returnname;}
set{name=value;}
}
//定义账户集合
privateList
publicList
{
get{returnaccountList;}
}
publicBank(stringname)
{
this.name=name;
accountList=newList
}
///
///开户
///
///
///
///
///
publicboolOpenAccount(stringusername,stringpassword,outAccountaccount)
{
account=null;
boolresult=true;
//验证用户名是否存在
foreach(AccountiteminaccountList)
{
if(item.Username==username)
{
returnfalse;
}
}
//开a户
Accountacc=newAccount(username,password);
//将新账户添加到银行账户集合里
accountList.Add(acc);
//将新账户赋给输出账户
account=acc;
returnresult;
}
///
///登录
///
///
///
///
///
publicboolLoginAtm(stringusername,stringpassword,outAccountaccount)
{
boolresult=false;
//out关键字的作用:
为了在调用方法时返回该参数。
//定义方法的时候,如果参数有Dout关键字,那么在方法体里面必须给该参数y赋初始值。
account=null;
//循环银行账户集合进行匹配
foreach(AccountiteminaccountList)
{
boolres=item.Login(username,password);
if(res==true)
{
result=true;
//将登录成功的账户赋给输出账户
account=item;
break;
}
}
returnresult;
}
}
}
四、Account类
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
namespaceATM
{
classAccount
{
privatestringusername;
///
///用户名
///
publicstringUsername
{
get{returnusername;}
}
privatestringpassword;
privatedecimalbalance;
publicdecimalBalance
{
get{returnbalance;}
set{balance=value;}
}
///
///开户
///
///
///
publicAccount(stringusername,stringpassword)
{
this.username=username;
this.password=password;
this.balance=0;
}
///
///登录方法
///
///
///
///
publicboolLogin(stringusername,stringpassword)
{
boolresult=false;
if(this.username==username&&this.password==password)
{
result=true;
}
returnresult;
}
///
///存款
///
///
///
publicboolDeposit(decimalmoney)
{
boolresult=false;
//判断存款金额不能小于等于,不能大于是10000
if(money<=10000&&money>0)
{
//将余额累加
this.balance=this.balance+money;
result=true;
}
returnresult;
}
///
///取款
///
///
///
publicboolDraw(decimalmoney)
{
boolresult=false;
if(money>=0&&money<=this.B
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 银行 ATM 自动 取款 模拟 系统
![提示](https://static.bingdoc.com/images/bang_tan.gif)