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"); } } //获取容器 publicTreeSet getHolder(){ returnholder; } //写入容器 publicvoidsetHolder(TreeSet holder){ 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(TreeSet list){//将获取到的容器存入到文件中----序列化 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(); } } } //从文件里读取 publicstaticTreeSet ReadFromFile(){ ObjectInputStreamois=null; TreeSet list=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(TreeSet holder,Stringaccount,Stringpw){ Iterator it=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; Iterator it=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"); } } //注销方法 publicTreeSet logout(TreeSet list){ 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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。