Java语言编写实现银行账号开户存款取款和转账等功能.docx
《Java语言编写实现银行账号开户存款取款和转账等功能.docx》由会员分享,可在线阅读,更多相关《Java语言编写实现银行账号开户存款取款和转账等功能.docx(12页珍藏版)》请在冰豆网上搜索。
Java语言编写实现银行账号开户存款取款和转账等功能
Java语言编写实现银行账号开户-存款-取款和转账等功能
Java语言编写实现银行账号开户、存款、取款、
查询和转账源代码详解
需求分析
1.ATM柜员机系统保存所有开户用户的信息(银行卡号、密码、真实姓名、家庭地址、联系电话、卡内金额),限制最大开户数100
2.用户通过开户能实现自助开户,银行卡号随机数生成5位整数,卡内金额默认为0,其他信息由客户在控制台上输入,要求银行卡号不能重复
3.用户可以选择存款选项办理存款业务要求存款客户必须是已经在我行合法开户的用户,卡号、密码必须进过验证才能登录系统进行存款业务的办理,业务办理完毕后显示该客户目前的卡内余额信息并提示办理成功
4.用户可以选择取款选择办理取款要求取款客户必须是已经在我行合法开户的用户,卡号、密码必须进过验证才能登录系统进行取款业务的办理,输入存款金额后,显示目前卡内余额信息并提示办理成功
5.用户可以选择查询余额选择办理查询业务要求取款客户必须是已经在我行合法开户的用户,卡号、密码必须进过验证才能登录系统进行查询业务的办理,登录信息验证成功后显示该用户的详细信息
6.用户可以选择转账选项办理查询业务[本系统只支持本地行内转账]要求取款客户必须是已经在我行合法开户的用户,卡号、密码必须进过验证才能登录系统进行转账业务的办理,用户输入的转账帐号必须是已经在我行合法开户的用户,合法的转账帐号显示该用户姓名,输入转账金额,完成转账功能显示自己的卡内余额并提示业务办理成功
7.用户选择退出,结束本次业务办理
8.该项目中的相关逻辑判断请自行斟酌
1.将用户的卡号、密码、姓名、手机号码、家庭住址和卡上余额属性封装成对象,代码如下
packagecom.zsrt.test;
importjava.util.*;
publicclassBankAccount{
privateintcardNum;
privateStringpassWord;
privateStringname;
privateStringaddress;
privatelongtelephone;
privatefloatmoney;
publicintgetCardNum(){
returncardNum;
}
publicvoidsetCardNum(intcardNum){
this.cardNum=cardNum;
}
publicStringgetPassWord(){
returnpassWord;
}
publicvoidsetPassWord(StringpassWord){
this.passWord=passWord;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicStringgetAddress(){
returnaddress;
}
publicvoidsetAddress(Stringaddress){
this.address=address;
}
publiclonggetTelephone(){
returntelephone;
}
publicvoidsetTelephone(longtelephone){
this.telephone=telephone;
}
publicfloatgetMoney(){
returnmoney;
}
publicvoidsetMoney(floatmoney){
this.money=money;
}
}
2.建立测试类JunitTest文件
packagecom.zsrt.test;
importstaticorg.junit.Assert.*;
importjava.util.*;
importjava.text.DecimalFormat;
importorg.junit.Before;
importorg.junit.Test;
publicclassATMTest{
Scannersn=newScanner(System.in);
ListclientList=newArrayList();//采用动态数组来存放用户的信息
DecimalFormatdf=newDecimalFormat("0.00");//格式化输出余额
@Before
publicvoidsetUp()throwsException{
}
@Test
publicvoidtest(){
System.out.println("\t\t\t**********************⊙***********************");
System.out.println("\t\t\t**");
System.out.println("\t\t\t**");
System.out.println("\t\t\t*⊙欢迎进入中国银行*");
System.out.println("\t\t\t**");
System.out.println("\t\t\t**");
System.out.println("\t\t\t*********************⊙************************");
while(true){
System.out.println("\t\t\t请选择您要办理的手续:
");
System.out.println("\t\t\t\t1.开户");
System.out.println("\t\t\t\t2.存款");
System.out.println("\t\t\t\t3.取款");
System.out.println("\t\t\t\t4.查询余额");
System.out.println("\t\t\t\t5.转账");
System.out.println("\t\t\t\t6.退出");
System.out.println("\t\t\t请输入您要办理的项目");
intnum=sn.nextInt();
if(num==1){
openAccount();
}
elseif(num==2){
saveMoney();
}
elseif(num==3){
takeMoney();
}
elseif(num==4){
checkMoney();
}
elseif(num==5){
transferMoney();
}
elseif(num==6){
System.out.println("退出");
break;
}
else{
System.out.println("请输入正确的选项!
!
!
");
}
}
}
publicclassBankAccount{
privateintcardNum;
privateStringpassWord;
privateStringname;
privateStringaddress;
privatelongtelephone;
privatedoublemoney;
publicintgetCardNum(){
returncardNum;
}
publicvoidsetCardNum(intcardNum){
this.cardNum=cardNum;
}
publicStringgetPassWord(){
returnpassWord;
}
publicvoidsetPassWord(StringpassWord){
this.passWord=passWord;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicStringgetAddress(){
returnaddress;
}
publicvoidsetAddress(Stringaddress){
this.address=address;
}
publiclonggetTelephone(){
returntelephone;
}
publicvoidsetTelephone(longtelephone){
this.telephone=telephone;
}
publicdoublegetMoney(){
returnmoney;
}
publicvoidsetMoney(doublemoney){
this.money=money;
}
}
publicvoidopenAccount(){//开户函数
BankAccountaccount=newBankAccount();
intcardNum=(int)(Math.random()*90000+10000);
account.setCardNum(cardNum);
System.out.println("系统已为您随机分配一个卡号"+cardNum);
System.out.println("请为您的账户设置密码:
");
StringpassWord=sn.next();
account.setPassWord(passWord);
System.out.println("请输入您的姓名:
");
Stringname=sn.next();
account.setName(name);
System.out.println("请输入您的地址");
Stringaddress=sn.next();
account.setAddress(address);
System.out.println("请输入您的联系电话:
");
longtelephone=sn.nextLong();
account.setTelephone(telephone);
if(clientList.isEmpty()){
clientList.add(account);
System.out.println("开户成功!
"+"您的卡号是:
"+account.getCardNum());
}
else{
BankAccountaccount_1=checkCardNum(account.getCardNum());//卡号应是唯一的,若已在clientList中则表示卡号重复,需要重新开户,否则可以将account对象添加到clientList中
if(account_1==null){
account.setMoney(0);
clientList.add(account);
System.out.println("开户成功!
您的卡号是:
"+account.getCardNum());
}
}//end
}
publicvoidsaveMoney(){//存款函数
BankAccountaccount=login();//每次操作前需要先登录
if(account==null){
System.out.println("账号或密码有误,登录失败!
");
}
else{
System.out.println("登录成功!
请输入您的存款金额:
");
doublemoney=sn.nextFloat();
account.setMoney(money+account.getMoney());
Stringstr=df.format(account.getMoney());
System.out.println("存款成功!
您现在的卡上余额为:
"+str);
}
}
publicvoidtakeMoney(){//取款函数
BankAccountaccount=login();
if(account==null){
System.out.println("您输入的账号或密码有误,登录失败!
");
}
else{
System.out.println("登录成功!
请输入您的取款金额:
");
doublemoney=sn.nextFloat();
if(account.getMoney()System.out.println("您的卡上余额不足"+money+",取款失败!
");
}
else{
account.setMoney(account.getMoney()-money);
Stringstr=df.format(account.getMoney());
System.out.println("存款成功!
您现在的卡上余额为:
"+str);
}
}
}
publicvoidcheckMoney(){//查询余额函数
BankAccountaccount=login();
if(account==null){
System.out.println("您输入的账号不存在或密码有误,登录失败!
");
}
else{
Stringstr=df.format(account.getMoney());
System.out.println("查询余额成功!
您现在的卡上余额为:
"+str);
}
}
publicvoidtransferMoney(){//转账函数
BankAccountaccount=login();
if(account==null){
System.out.println("您输入的账号不存在或密码有误,登录失败!
");
}
else{
System.out.println("请输入你要转账的卡号:
");
intcardNum=sn.nextInt();
BankAccountaccount_1=checkCardNum(cardNum);
if(account_1!
=null){
System.out.println("您要转账的客户的姓名为:
"+account_1.getName());
System.out.println("请输入您的转账金额:
");
doublemoney=sn.nextFloat();
if(money>account.getMoney()){
System.out.println("您的卡上余额不足"+money+",转账失败!
");
}
else{
account.setMoney(account.getMoney()-money);
account_1.setMoney(money+account_1.getMoney());
Stringstr=df.format(account.getMoney());
System.out.println("转账成功!
您现在的卡上余额是:
"+str);
}
}
else{
System.out.println("您输入的卡号在本行不存在,转账失败!
");
}
}
}