最后
手绘了下图所示的kafka知识大纲流程图(xmind文件不能上传,导出图片展现),但都可提供源文件给每位爱学习的朋友
博主介绍:✌公司项目主程、全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,CSDN博客之星TOP100、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业设计✌
🍅文末获取源码联系🍅
前言介绍:
最近很多同学找我帮忙做一些课程设计或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;
}
@Override
public String getCardId() {
return "普通银行卡卡号为:"+cardId;
}
@Override
public 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);
}
@Override
public String getCardId() {
return "信用卡卡号为:"+cardId;
}
@Override
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("取款成功!");
## 一线互联网大厂Java核心面试题库
![image](https://img-blog.csdnimg.cn/img_convert/1f6fb5272b80ff538cc32f45b5f7a17c.webp?x-oss-process=image/format,png)
正逢面试跳槽季,给大家整理了大厂问到的一些面试真题,由于文章长度限制,只给大家展示了部分题目,更多Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等已整理上传,感兴趣的朋友可以看看支持一波!
> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**
**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**
了部分题目,更多Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等已整理上传,感兴趣的朋友可以看看支持一波!
> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**
**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**