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

public 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);
}
@Override
public String getCardId() {
return “医保卡卡号为:”+cardId;
}
@Override
public 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.开户\n2.登录\n3.取款\n4.存款\n5.余额查询\n6.修改密码\n7.查看用户信息\n8.退出登录\n9.退出系统\n请选择需要选择的项目:");
		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.普通银行卡\n2.信用卡\n3.医保卡\n0.返回\n请选择开户类型:");
			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;i<user.length;i++){
			if (user[i]!=null) {
				if (aId==user[i].getCard()&&password.equals(user[i].getPassword())) {
					System.out.println("=======================");
					System.out.println(user[i].getName()+",欢迎登录!");
					return user[i];
				}
			}
		}
		System.out.println("=======================");
		System.out.println("卡号或密码有误");
		return null;
	}
}


public void drawMoney(){	//取款
	if(usr==null){
		System.out.println("=======================");
		System.out.println("请先登录账户!");
	}
	else{
		System.out.print("请输入取款金额:");
		double blc=input.nextDouble();
		while(blc>usr.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){
			System.out.println("=======================");
			System.out.print("输入金额错误,请重新输入:");
			dsm=input.nextDouble();
		}
		usr.setBalance(usr.getBalance()+dsm);
		System.out.println("=======================");
		System.out.println("存款成功!");
		System.out.println("账户余额:"+usr.getBalance());
	}
}

public void showBalance(){	//余额查询
	if(usr==null){
		System.out.println("=======================");
		System.out.println("请先登录账户!");
	}
	else{
		System.out.println("=======================");
		System.out.println("账户余额:"+usr.getBalance());
	}
}

public void revisePassword(){	//修改密码
	if(usr==null){
		System.out.println("=======================");
		System.out.println("请先登录账户!");
	}
	else{
		System.out.print("请输入原密码:");
		String password=input.next();
		for(int i=2;i>=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方法测试启动类
> 
> 
> 


### 最后

由于篇幅有限,这里就不一一罗列了,**20道常见面试题(含答案)+21条MySQL性能调优经验**小编已整理成Word文档或PDF文档

![MySQL全家桶笔记](https://img-blog.csdnimg.cn/img_convert/ce687862c9a7ed902b26b6d31ff9c776.webp?x-oss-process=image/format,png)

**还有更多面试复习笔记分享如下**

![Java架构专题面试复习](https://img-blog.csdnimg.cn/img_convert/aac5f131a19b0610fa1568d94de52d40.webp?x-oss-process=image/format,png)

m.out.println("=======================");
			System.out.println("账户退出成功!");
		}
	}
}


main方法测试启动类

最后

由于篇幅有限,这里就不一一罗列了,20道常见面试题(含答案)+21条MySQL性能调优经验小编已整理成Word文档或PDF文档

[外链图片转存中…(img-QWvWrkvI-1714353238097)]

还有更多面试复习笔记分享如下

[外链图片转存中…(img-lZEVMdlz-1714353238098)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值