java实现银行管理系统
本文实例为大家分享了java实现银行管理系统的具体代码,供大家参考,具体内容如下
Bank类
packageFirst;
importjava.util.TreeSet;
//银行类
publicclassBank{
privateStringBankname="坑对对银行";//银行名称
TreeSetholder=null;//银行存储的信息
privatestaticBankINSTANCE=newBank();
privateBank(){}//私有化银行类
publicstaticBankgetInstance(){
//TODOAuto-generatedmethodstub
returnINSTANCE;
}
//存款功能
publicvoidsaveMoney(Useruser,doublemoney){
//初始金额与存入金额相加
doublesum=user.getSum()+money;
user.setSum(sum);
System.out.print(money+"存款成功!!!"+",当前余额是:"+user.getSum());
System.out.print("\n");
}
//取款功能
publicvoiddrawMoney(Useruser,doublemoney,Stringpw){
if(user.getPw().equals(pw)){//先判断取款密码
if(user.getSum()>=money){//判断余额
user.setSum(user.getSum()-money);
System.out.print("取款成功");
System.out.print("\n");
System.out.print("当前余额为:"+"\t"+user.getSum());
System.out.print("\n");
}else{
System.out.print("抱歉余额不足!!!当前余额:"+user.getSum());
System.out.print("\n");
}
}
}
//查看余额以及信息
publicvoidlooksum(Useruser){
System.out.print("姓名:"+user.getName()+",账号:"+user.getAccount()+",余额:"+user.getSum());
System.out.print("\n");
}
//欢迎语句
publicvoidwelcom(Useruser){
if(user.getSexual().equals("男")){
System.out.print(user.getName()+"先生!!"+""+(this.Bankname)+"欢迎您!!!");
System.out.print("\n");
}elseif(user.getSexual().equals("女")){
System.out.print(user.getName()+"女士!!"+""+(this.Bankname)+"欢迎您!!!");
System.out.print("\n");
}
}
//再见语句
publicvoidGoodBye(Useruser){
if(user.getSexual().equals("男")){
System.out.print(user.getName()+"先生!!"+""+(this.Bankname)+"祝您生活愉快!!!");
System.out.print("\n");
}elseif(user.getSexual().equals("女")){
System.out.print(user.getName()+"女士!!"+""+(this.Bankname)+"祝您生活愉快!!!");
System.out.print("\n");
}
}
}
Data:数据存储类
packageFirst;
importjava.util.TreeSet;
//模拟一个数据库
//银行的数据库
publicclassData{
TreeSetholder=newTreeSet(newMyComparator());//用于存储用户信息的容器---自定义比较规则
Filefile=File.getFile();//获取一个文件类
privatestaticDatadata=newData();
//单例模式--因为存储数据的类唯一.所以不能随意被实例化
privateData(){}//私有化构造方法
publicstaticDatagetData(){//提供返回该对象的静态方法
returndata;
}
//添加用户
publicvoidaddUser(Useruser){
holder.add(user);
System.out.print("注册成功!!");
System.out.print("\n");
}
//删除用户
publicvoidremoveUser(Useruser){
if(holder.contains(user)){//如果容器中包含所user对象,则移除对象
holder.remove(user);
}else{//如果不包含则打印语句
System.out.print("抱歉请检查输入的信息是否正确");
System.out.print("\n");
}
}
//获取容器
publicTreeSetgetHolder(){
returnholder;
}
//写入容器
publicvoidsetHolder(TreeSetholder){
this.holder=holder;
}
}
FIie:文件IO类
packageFirst;
importjava.io.FileInputStream;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.io.ObjectInputStream;
importjava.io.ObjectOutputStream;
importjava.util.Iterator;
importjava.util.TreeSet;
/*
*文件类--负责向内存中初始化信息以及程序结束后向内存中存入信息
**/
publicclassFile{
TreeSetholder=Data.getData().getHolder();//从Data数据库中获取容器
//文件类只供使用不能被任意实际化
publicstaticFileFILE;//私有化一个File类
privateFile(){};
publicstaticFilegetFile(){//对外界提供获取方法
returnFILE;
}
//保存到文件里
publicstaticvoidSaveToFile(TreeSetlist){//将获取到的容器存入到文件中----序列化
ObjectOutputStreamoo=null;
try{
oo=newObjectOutputStream(newFileOutputStream(".\\src\\Test\\text1.txt"));//获取文件存储地址
oo.writeObject(list);//将容器写入
}catch(Exceptionex){
ex.printStackTrace();
}finally{
try{
oo.close();//将流关闭
}catch(IOExceptione){
e.printStackTrace();
}
}
}
//从文件里读取
publicstaticTreeSetReadFromFile(){
ObjectInputStreamois=null;
TreeSetlist=null;
try{
ois=newObjectInputStream(newFileInputStream(".\\src\\Test\\text1.txt"));//反序列化从文件中获取容器加载到内存
list=Data.getData().getHolder();//获取容器
list=(TreeSet)ois.readObject();//从流中获取对象
Iteratorit=list.iterator();//迭代器
System.out.print("当前用户信息:");
System.out.print("\n");
System.out.print("\n");
while(it.hasNext()){//迭代初始信息
Useruser=(User)it.next();
System.out.print("\t"+"姓名:"+user.getName()+"\t"+"账号:"+user.getAccount()+"\t"+"密码:"+user.getPassword()+"\t"+"余额:"+user.getSum()+"\t");
System.out.print("\n");
System.out.print("\n");
}
}catch(Exceptionex){
ex.printStackTrace();
}finally{
try{
ois.close();//将流关闭
}catch(IOExceptione){
e.printStackTrace();
}
}
returnlist;
}
}
MyComparator:自定义比较器类
packageFirst;
importjava.io.Serializable;
importjava.util.Comparator;
//自定义比较器
//想要存入集合必须实现序列化和反序列化
publicclassMyComparatorimplementsComparator,Serializable{
/**
*
*/
privatestaticfinallongserialVersionUID=1L;
@Override
publicintcompare(Objectarg0,Objectarg1){
Useruser1=(User)arg0;//重写比较方法---强转成User类型
Useruser2=(User)arg1;
returnuser1.getAccount().compareTo(user2.getAccount());//比较两个银行账户
}
}
Operate:系统核心
packageFirst;
importjava.util.Iterator;
importjava.util.Scanner;
importjava.util.TreeSet;
//后台操作系统
//后台管理员
publicclassOperate{
Scannersc=newScanner(System.in);//键盘录入
TreeSetholder=Data.getData().getHolder();//从Data数据库中获取容器
Bankbank=Bank.getInstance();//获取一个银行类
Filefile=File.getFile();//获取一个文件类
//登录菜单
publicvoidregisterMenu(){
System.out.print("****************************");
System.out.print("\n");
System.out.print("\n");
System.out.print("欢迎来到坑多多银行登录系统!!!\n");
System.out.print("\n");
System.out.print("****************************");
System.out.print("\n");
System.out.print("\n");
holder=File.ReadFromFile();//从文件中获取容器
Data.getData().setHolder(holder);//把从文件中获取容器存储到数据库中
intstr=1;//从键盘获取数字
while(str!=0){
System.out.print("****************************");
System.out.print("\n");
System.out.print("1:登录");
System.out.print("\n");
System.out.print("2:注册");
System.out.print("\n");
System.out.print("3:忘记密码");
System.out.print("\n");
System.out.print("4:注销用户");
System.out.print("\n");
System.out.print("0:退出");
System.out.print("\n");
System.out.print("****************************");
System.out.print("\n");
System.out.print("请输入:");
str=sc.nextInt();
switch(str){//根据用户输入的值进行选择
case1:
System.out.print("请输入您的账号:");
Stringaccount=sc.next();//从键盘中获取录入用户名
System.out.print("请输入您的密码:");
Stringpw=sc.next();//从键盘中录入密码
Useruser=logon(holder,account,pw);
if(user!=null){//判断是否登录成功
System.out.print("登录成功!!!!欢迎使用");
System.out.print("\n");
System.out.print("正在跳转到银行操作界面.........");
System.out.print("\n");
this.BankMenu(user);//如果登录成功则将user对象传入到银行操作界面并跳转
}else{
System.out.print("登录失败!!!请从新输入");//如果登录失败打印此语句
System.out.print("\n");
}
break;
case2:
this.logon();//调用注册方法
break;
case3:
this.modify();//调用修改方法
break;
case4:
holder=logout(holder);//调用删除操作
break;
case0:
File.SaveToFile(holder);//退出系统式将信息保存到文件中
System.out.print("再见!!!!");
System.out.print("\n");
default:
System.out.print("输入错误!!!!");
System.out.print("\n");
}
}
}
//登录方法
publicUserlogon(TreeSetholder,Stringaccount,Stringpw){
Iteratorit=holder.iterator();//获取迭代器
while(it.hasNext()){
Useruser=it.next();
if(user.getAccount().equals(account)&&user.getPassword().equals(pw)){
System.out.print("登录成功!!");
System.out.print("\n");
returnuser;
}
}
System.out.print("账户或密码错误登录失败!!");
System.out.print("\n");
returnnull;
}
//注册方法体
publicvoidlogon(){
System.out.print("欢迎来到注册界面!!!!");
System.out.print("\n");
Stringname;//用户名
Stringaccount;//银行账号
Stringpassword;//密码
Stringpw;//取款密码
doublesum;//账户金额
Stringsexual;//性别
Useruser=newUser();//先创建一个空参的user对象
booleanflag=true;//语句的开关
while(flag){//将注册的信息依次输入
switch(1){
case1:
System.out.print("请输入姓名:");//依次从键盘中获取对应的姓名----正则表达式
name=sc.next();
user.setName(name);//将名字写入对象中
case2:
System.out.print("请输入账号(9位数字):");
account=sc.next();//从键盘中获取账号
Stringreges="[0-9]{9}";//正则表达式规则对账号进行限制
if(!account.matches(reges)){//如果不符合要求则报错
System.out.print("账号不符合规范!!");
System.out.print("\n");
System.out.print("请重新注册");
System.out.print("\n");
break;
}
user.setAccount(account);//将账号写入对象中
case3:
System.out.print("请输入密码(6位):");
password=sc.next();
reges="[0-9]{6}";//正则表达式规则
if(!password.matches(reges)){//如果密码不符合正则规则则报错
System.out.print("密码不符合规范!!");
System.out.print("\n");
System.out.print("请重新注册");
System.out.print("\n");
break;
}
user.setPassword(password);//将密码写入对象中
case4:
System.out.print("请输入取款密码(6位):");
pw=sc.next();
reges="[0-9]{6}";//正则表达式规则
if(!pw.matches(reges)){
System.out.print("取款密码不符合规范!!");
System.out.print("\n");
System.out.print("请重新注册");
System.out.print("\n");
break;
}
user.setPw(pw);//将取款密码写入到对象中
case5:
System.out.print("请输入金额:");
sum=sc.nextDouble();
user.setSum(sum);//将金额写入到对象中
case6:
System.out.print("请输入性别:");
sexual=sc.next();
user.setSexual(sexual);//将性别写入到对象中
case7:
if(!holder.contains(user)){
Data.getData().addUser(user);//一切准确无误后将user存入数据库Data中
}
else{
System.out.print("用户存在!!!");
System.out.print("\n");
//结束循环
}
flag=false;
break;
}
}
}
//忘记密码操作
publicvoidmodify(){
booleanflag=true;
Iteratorit=holder.iterator();//获取迭代器
System.out.print("请输入账户:");
Stringaccount=sc.next();//从键盘中获取账户
while(it.hasNext()){
Useruser=it.next();
if(user.getAccount().equals(account)){//如果容器中有这个对象则对它进行修改
System.out.print("请输入新账户的密码:");
Stringpw=sc.next();//从监盘上录入新的密码
Stringreges="[0-9]{6}";//正则表达式规则
if(!pw.matches(reges)){//如果密码不符合正则规则则报错
System.out.print("密码不符合规范!!");
System.out.print("\n");
}else{//正则表达式判断是否符合条件
holder.remove(user);//先从原容器中删除user
user.setPassword(pw);//修改user的属性
holder.add(user);//然后再向容器中添加
System.out.print("修改成功!!!");
System.out.print("\n");
flag=false;
break;
}
}
}
if(flag){
System.out.print("没有找到该用户");
System.out.print("\n");
}
}
//注销方法
publicTreeSetlogout(TreeSetlist){
Stringusername;//用户名
Stringpassword;//密码
System.out.print("请输入用户账号:");
username=sc.next();//从键盘录入用户名
System.out.print("请输入密码:");
password=sc.next();//从键盘录入密码
Iteratorit=list.iterator();//获取迭代器
while(it.hasNext()){
Useruser=(User)it.next();//获取对象
if(user.getAccount().equals(username)&&user.getPassword().equals(password)){
list.remove(user);//如果录入的信息匹配则从容器中删除user对象
System.out.print("注销成功!!");
System.out.print("\n");
returnlist;
}
}
System.out.print("账号或者密码错误");//不匹配打印提示语句
System.out.print("\n");
returnlist;
}
//银行操作界面
publicvoidBankMenu(Useruser){
bank.welcom(user);//银行调用欢迎语句
System.out.print("****************************");
System.out.print("\n");
System.out.print("\n");
System.out.print("欢迎来到坑多多银行擦操作系统!!!\n");
System.out.print("\n");
intstr=1;
while(str!=0){
System.out.print("****************************");
System.out.print("\n");
System.out.print("1:取钱");
System.out.print("\n");
System.out.print("2:存钱");
System.out.print("\n");
System.out.print("3:查看余额");
System.out.print("\n");
System.out.print("0:退出登录");
System.out.print("\n");
System.out.print("****************************");
System.out.print("\n");
System.out.print("\n");
System.out.print("请输入您的选项:");//从键盘中读取字符串
str=sc.nextInt();
switch(str){//根据用户输入的值进行选择
case1://取钱选项
System.out.print("请输入取款密码:");
Stringpw=sc.next();//从键盘获取输入的密码
if(user.getPw().equals(pw)){//将输入的取款密码与用户的密码进行比对:如果相同则继续执行
System.out.print("请输入取款金额:");
doublemoney=sc.nextDouble();//从键盘获取输入的金额
if(money>=0){//判断金额是否有误
bank.drawMoney(user,money,pw);//调用取款方法
}else{
System.out.print("输入金额错误!!!");
System.out.print("\n");
}
}else{
System.out.print("输入密码有误!!!");
System.out.print("\n");
}
break;
case2:
System.out.print("请输入取款金额:");
System.out.print("\n");
doublemoney1=sc.nextDouble();//从键盘获取输入的金额
if(money1>=0){//判断金额是否有误
bank.saveMoney(user,money1);;//调用存款方法
}else{
System.out.print("输入金额错误!!!");
System.out.print("\n");
}
break;
case3:
bank.looksum(user);//调用银行---查询账户操作
break;
case0:
bank.GoodBye(user);//调用结束语句
break;
default:
System.out.print("输入错误");
System.out.print("\n");
}
}
}
}
User类:
packageFirst;
importjava.io.Serializable;
/*
*这是一个User类
**/
publicclassUserimplementsSerializable{
/**
*实现接口,用于序列化和反序列化
*/
privatestaticfinallongserialVersionUID=1L;
privateStringname;//用户名
privateStringaccount;//银行账号
privateStringpassword;//密码
privateStringpw;//取款密码
privatedoublesum;//账户金额
privateStringsexual;//性别
//获取用户名
publicStringgetName(){
returnname;
}
//写入用户名
publicvoidsetName(Stringname){
this.name=name;
}
//获取账号
publicStringgetAccount(){
returnaccount;
}
//写入账号
publicvoidsetAccount(Stringaccount){
this.account=account;
}
//获取密码
publicStringgetPassword(){
returnpassword;
}
//修改密码
publicvoidsetPassword(Stringpassword){
this.password=password;
}
//查看余额
publicdoublegetSum(){
returnsum;
}
//修改余额
publicvoidsetSum(doublesum){
this.sum=sum;
}
//写入性别
publicStringgetSexual(){
returnsexual;
}
//修改性别
publicvoidsetSexual(Stringsexual){
this.sexual=sexual;
}
//获取取款密码
publicStringgetPw(){
returnpw;
}
//写入取款密码
publicvoidsetPw(Stringpw){
this.pw=pw;
}
//hashCode比较方法
@Override
publicinthashCode(){
finalintprime=31;
intresult=1;
result=prime*result+((account==null)?0:account.hashCode());
result=prime*result+((name==null)?0:name.hashCode());
result=prime*result+((password==null)?0:password.hashCode());
result=prime*result+((pw==null)?0:pw.hashCode());
result=prime*result+((sexual==null)?0:sexual.hashCode());
longtemp;
temp=Double.doubleToLongBits(sum);
result=prime*result+(int)(temp^(temp>>>32));
returnresult;
}
//equals比较方法
/*
*知识点:
*publicbooleanequals(Objectobj)名称不可改变
**/
@Override
publicbooleanequals(Objectobj){
if(this==obj)
returntrue;
if(obj==null)
returnfalse;
if(getClass()!=obj.getClass())
returnfalse;
Userother=(User)obj;
if(account==null){
if(other.account!=null)
returnfalse;
}elseif(!account.equals(other.account))
returnfalse;
if(name==null){
if(other.name!=null)
returnfalse;
}elseif(!name.equals(other.name))
returnfalse;
if(password==null){
if(other.password!=null)
returnfalse;
}elseif(!password.equals(other.password))
returnfalse;
if(pw==null){
if(other.pw!=null)
returnfalse;
}elseif(!pw.equals(other.pw))
returnfalse;
if(sexual==null){
if(other.sexual!=null)
returnfalse;
}elseif(!sexual.equals(other.sexual))
returnfalse;
if(Double.doubleToLongBits(sum)!=Double.doubleToLongBits(other.sum))
returnfalse;
returntrue;
}
//初始化用户
User(Stringname,Stringaccount,Stringpassword,Stringpw,doublesum,Stringsexual){
this.name=name;
this.account=account;
this.password=password;
this.sum=sum;
this.sexual=sexual;
this.pw=pw;
}
//空参构造函数
User(){
}
}
Main()类
packageFirst;
publicclassTest{
//测试类----唯一的主函数
publicstaticvoidmain(String[]args){
Operateoperate=newOperate();
operate.registerMenu();//调用登录方法
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。