Java基础课程设计-模拟ATM银行管理系统《控制台版本》

前言介绍:

最近很多同学找我帮忙做一些课程设计或Web前端大作业、其中控制台项目应该是初学者必须经历的一个过程、作为java初学者这个控制台版本的模拟ATM银行管理系统十分合适、用到的技术也是最简单的JavaList集合、变量的声明、对象的创建、一些基本的while语句、switch语句、循环遍历等基础语法。一个最基础版本的控制台模拟ATM银行管理系统也就是CRUD功能、 直接上完整代码****

创建抽象类Card类

abstract class Card {int cardId; public Card() {super();}public Card(int cardId) {super();this.cardId = cardId;}public abstract String getCardId();public abstract void setCardId(int cardId); }

创建普通银行类继承Card

public class CommonCard extends Card{public CommonCard() {super();}public CommonCard(int cardId) {super();this.cardId = cardId;}@Overridepublic String getCardId() {return “普通银行卡卡号为:”+cardId;}@Overridepublic void setCardId(int cardId) {this.cardId = cardId;} }

创建普通信用卡继承Card

package com.railway.modules.base.test;public class CreditCard extends Card{public CreditCard() {super();}public CreditCard(int cardId) {super(cardId);}@Overridepublic String getCardId() {return “信用卡卡号为:”+cardId;}@Overridepublic void setCardId(int cardId) {this.cardId = cardId;}}

创建普通医保卡继承Card

package com.railway.modules.base.test;public class MedicalInsuranceCard extends Card{public MedicalInsuranceCard() {super();}public MedicalInsuranceCard(int cardId) {super(cardId);}@Overridepublic String getCardId() {return “医保卡卡号为:”+cardId;}@Overridepublic void setCardId(int cardId) {this.cardId = cardId;} }

ATM主要方法业务类逻辑实现

package com.railway.modules.base.test;import java.util.Scanner;public class ATM {Scanner input = new Scanner(System.in);private User[] user=new User[100];User atm = new User();private User usr;private int accountId = 1;private Card card; public void Select() { while(true) {System.out.println(“=======ATM管理系统=======”);System.out.print(“1.开户2.登录3.取款4.存款5.余额查询6.修改密码7.查看用户信息8.退出登录9.退出系统请选择需要选择的项目:”);switch(input.nextInt()) {case 1:setAccount();//开户break;case 2:usr=userLogin();//登录break;case 3:drawMoney();//取款break;case 4:depositMoney();//存款break;case 5:showBalance();//余额查询break;case 6:revisePassword();//修改密码break;case 7:lookAccount();//查看用户信息break;case 8:cancel();//退出登录break;case 9:System.out.println(“=======================”);System.out.println(“欢迎下次登录该系统!”);//退出系统System.exit(0);break;default:System.out.println(“=======================”);System.out.println(“输入错误!请重新输入!”);break;}}} public void setAccount(){//开户if (usr!=null) {System.out.println(“=======================”);System.out.println(“请先退出上一个账户!”);}else{boolean x = true;while(x) {System.out.println(“=======================”);System.out.print(“1.普通银行卡2.信用卡3.医保卡0.返回请选择开户类型:”);switch(input.nextInt()) {case 1:card = new CommonCard();card.setCardId(accountId);x=false;break;case 2:card = new CreditCard();card.setCardId(accountId);x=false;break;case 3:card = new MedicalInsuranceCard();card.setCardId(accountId);x=false;break;case 0:Select();default:System.out.println(“=======================”);System.out.println(“输入错误!请重新输入!”);break;}} System.out.print(“请输入姓名:”);String name=input.next();System.out.print(“请输入性别:”);String sex=input.next();System.out.print(“请输入年龄:”);String age=input.next();System.out.print(“请输入身份证号:”);String ID=input.next();System.out.print(“请输入银行卡要设置的密码:”);String password1=input.next();System.out.print(“请再次输入密码:”);String password2=input.next();if(password1.equals(password2)){user[accountId]=new User(name,sex,age,password1,ID,0,card);System.out.println(“=======================”);System.out.println(“开户成功!你的卡号为:”+accountId);accountId++;}else {System.out.println(“=======================”);System.out.println(“两次密码不同!请重新开始!”);}} } public User userLogin(){//登录if (usr!=null) {System.out.println(“=======================”);System.out.println(“请先退出上一个账户!”);return usr;}else{System.out.print(“请输入卡号:”);int aId=input.nextInt();System.out.print(“请输入密码:”);String password=input.next();for(int i=0;iusr.getBalance()) {System.out.println(“=======================”);System.out.print(“取款金额大于余额,请重新输入取款金额:”);blc=input.nextDouble();}while(blc<=0){System.out.println("=======================");System.out.print("取款金额错误,请重新输入取款金额:");blc=input.nextDouble();}usr.setBalance(usr.getBalance()-blc);System.out.println("=======================");System.out.println("取款成功!");System.out.println("账户余额:"+usr.getBalance()); }} public void depositMoney(){//存款if(usr==null){System.out.println("=======================");System.out.println("请先登录账户!");}else{System.out.print("请输入存款金额:");double dsm=input.nextDouble();while(dsm=0;i–) {if(password.equals(usr.getPassword()))break;if(i==0) {System.out.println("三次密码输入错误!即将退出账户!");cancel();Select();}System.out.println("密码错误!你还有"+i+"次机会!");System.out.print("请输入原密码:");password=input.next();}System.out.print("验证成功,请输入新密码:");String password1=input.next();System.out.print("请再次输入密码:");String password2=input.next();while(!password1.equals(password2)) {System.out.println("=======================");System.out.print("两次密码不同,请重新输入新密码:");password1=input.next();System.out.print("请再次输入密码:");password2=input.next();}usr.setPassword(password1);System.out.println("=======================");System.out.println("修改成功!");}} public void lookAccount() {//查看用户信息if(usr==null){System.out.println("=======================");System.out.println("请先登录账户!");}else{System.out.println("=======================");System.out.println("姓名:"+usr.getName());System.out.println("性别:"+usr.getSex());System.out.println(usr.getCardId());System.out.println("身份证号:"+usr.getID());System.out.println("余额:"+usr.getBalance());}} public void cancel() {if(usr==null){System.out.println("=======================");System.out.println("请先登录账户!");}else{usr=null;System.out.println("=======================");System.out.println("账户退出成功!");}}}

main方法测试启动类

public class TestATM {public static void main(String[] args) {ATM atm = new ATM();atm.Select();}}

控制台打印:

=======ATM管理系统=======1.开户2.登录3.取款4.存款5.余额查询6.修改密码7.查看用户信息8.退出登录9.退出系统请选择需要选择的项目:1=======================1.普通银行卡2.信用卡3.医保卡0.返回请选择开户类型:1请输入姓名:admin请输入性别:男请输入年龄:22请输入身份证号:513922199555555555请输入银行卡要设置的密码:123456请再次输入密码:123456=======================开户成功!你的卡号为:1=======ATM管理系统=======1.开户2.登录3.取款4.存款5.余额查询6.修改密码7.查看用户信息8.退出登录9.退出系统请选择需要选择的项目:2请输入卡号:1请输入密码:123456=======================admin,欢迎登录!=======ATM管理系统=======1.开户2.登录3.取款4.存款5.余额查询6.修改密码7.查看用户信息8.退出登录9.退出系统请选择需要选择的项目:

很基础、 适合java初学者来进行练习以及当做课程作业来使用

郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#wlmqw.com)删除。
(0)
用户投稿
上一篇 2022年6月13日
下一篇 2022年6月13日

相关推荐

  • 做一个扫码点餐软件系统开发要多少钱呢?

      现在有很多朋友都喜欢线上扫码点餐,但是也有许多餐饮店的老板并不清楚开发一个扫码点餐小程序到底需要多少钱。   那么在我这里呢,有两种模式供大家选择,一种是模板系统,也就是成品,…

    2022年7月4日
  • 鸿蒙3.0即将发布,相比2.0大提升,大家却关注荣耀手机能升级吗?

    大家好,我是三月。 最近一段时间关于鸿蒙3.0的消息越来越多了,尤其是当官方表示鸿蒙3.0将于7月27的发布会上正式发布时,鸿蒙3.0的热度就更高了。其实鸿蒙现如今和安卓,IOS比…

    2022年7月24日
  • 头条创作挑战赛_反诈骗先锋_2022年09月21日_微头条

    河北石家庄,79岁的赵大爷在银行存了3000万,定期一年,但当定期存款到期后,发现钱已被银行工作人员范某分批次全部转走,于是,赵大爷将银行告上法院,索赔3000万元本息和。银行却认…

    2022年9月22日
  • 今天的财经早餐 「财经早餐」2022.05.07星期六

    ► 中办、国办:印发《关于推进以县城为重要载体的城镇化建设的意见》。目标到2025年,以县城为重要载体的城镇化建设取得重要进展,县城短板弱项进一步补齐补强。加快发展大城市周边县城,…

    2022年6月28日
  • 房贷是自动扣款还是主动还款 扣款失败第二天还会扣吗?

    在如今,办理房贷的时候,还款的问题一定要搞清楚,我们都知道,使用信用卡和网贷的时候,一般都是主动还款的,那么房贷是自动扣款还是主动还款?下文就来带大家了解一下。 房贷是自动扣款的。…

    2022年9月24日
  • LOL:吸血鬼W到底能不能挡死歌大?Doinb直播玩吸血鬼被队友嘲讽

    最近在直播中,Doinb也是非常罕见的玩起了吸血鬼这个英雄,要知道吸血鬼这个英雄现在在高端局的登场率非常低,胜率同样也非常低。没想到Doinb却敢逆版本拿出吸血鬼出来,最后还被队友…

    2022年8月5日
  • 如何系统学习护肤知识呢?

    为什么别人用完都说好的护肤品,我用一点效果都没有? 第一,每个人肤质不同,同一种产品不能适合所有人。 第二,需要了解护肤品的作用机制,尤其是作用深度,才能对症下药,解决我们自己的问…

    2022年6月7日
  • 查违规的app 赶紧自查手机!17款App违规违法

    国家计算机病毒应急处理中心近期通过互联网监测发现17款移动App存在隐私不合规行为,违反网络安全法、个人信息保护法等相关规定,涉嫌超范围采集个人隐私信息。 1、未向用户明示申请的全…

    2022年6月28日
  • 腾讯32款游戏退市背后的原因曝光 腾讯32款游戏退市完整名单

    现如今越来越多未成年接触游戏,因此出现了不少沉迷游戏的现象,令家长朋友们担心不已。最近腾讯在海南参与并发起了一个会议——2019中国游戏产业年会未成年人守护分论坛,其会议的主要内容…

    2022年7月7日
  • 猫和老鼠手游:猫方ban位常客有哪些?没有哪只猫是绝对弱的

    鼠皇猫皇们大家好,上期分享了现版本T0鼠方角色强度分析。玩家纷纷留言想看T0猫方角色强度分析。猫和老鼠手游一直被玩家们调侃是“毛和老虎”,本意更是老鼠强无敌,猫咪弱得一无是处。那么…

    2022年7月1日

联系我们

联系邮箱:admin#wlmqw.com
工作时间:周一至周五,10:30-18:30,节假日休息