✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。
🍎个人主页:乐趣国学的博客
🍊个人信条:不迁怒,不贰过。小知识,大智慧。
💞当前专栏:Java案例分享专栏
✨特色专栏:国学周更-心性养成之路
🥭本文内容:Java——银行存款取款系统(对象+集合)
更多内容点击👇
Java——常见异常的原因和解决办法 Java——汽车租赁系统(对象+集合)
项目场景
Java实现简单的银行存款取款系统
本代码适合Java初学者小白,没有数据库的存储功能,熟悉对象+集合知识的应用;也可用对象+数组的知识改写。
覆盖知识
程序基本概念、数据类型、流程控制、顺序、选择 、循环、跳转语句、变量、类、方法、继承、多态、集合等
项目需求
简单的实现一个银行存取款系统,功能有:
登录,注册,退出,存款,取款,转账,查询个人信息等功能。
开发思路
(1)明确需求
(2)编码顺序
1)、先完成客户类的编写
2)、再完成存取款系统的银行业务类的编写
3)、最后完成测试类的编写
(3)逻辑测试
类的属性和方法
** 属性:**
- 客户类:账号 、密码、账户资金、姓名、联系电话
- 银行业务类:忽略
- 测试类:忽略
** 方法:**
方法主要都写在银行业务类中;
1)欢迎界面的方法:本方法中,定义登陆前时的欢迎提示界面,主要包含(1:登录、2:注册、3:退出)三个选项的提示信息。根据提示信息,选择对应的操作。 2)账户注册的方法:本方法中,主要实现账户注册的功能。 3)账户登录的方法:本方法中,主要实现账户登录的功能。 4)个人页面的方法:本方法中,主要实现账户登录账户登录成功后的相关操作,如:1:存款、2:取款、3:查询余额、4:转账、5:查询个人信息、6:退出登录
代码展示
1、客户类
package cn.bdqn.demo01;
public class BankUser {
//封装属性
private String accountNum;
private String password;
private int money=0;
private String name;
private String phone;
//构造方法
public BankUser(String accountNum, String password, String name,String phone) {
this.accountNum = accountNum;
this.password = password;
this.name = name;
this.phone = phone;
}
//添加get/set方法
public String getAccountNum() {
return accountNum;
}
public void setAccountNum(String accountNum) {
this.accountNum = accountNum;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
//遍历个人信息
public void printInfo(){
System.out.println("姓名:"+this.getName()+
"\t\t\t账号:"+this.getAccountNum()+
" \n密码:"+this.getPassword()+
"\t\t\t账户资金:"+this.getMoney()+
"\n联系电话:"+this.getPhone());
}
}
2、银行业务类
package cn.bdqn.demo01;
import java.util.ArrayList;
import java.util.Scanner;
public class BankMethod {
//欢迎界面
public static void bankInterface(Scanner sc, ArrayList<BankUser> user) {
while (true) {
System.out.println("==== 欢迎您使用银行存取款系统 ====");
System.out.println();
System.out.println("1:登录\t\t2:注册\t\t3:退出");
int select = sc.nextInt();
if (select == 1) {
login(sc, user);
} else if (select == 2) {
register(sc, user);
} else if (select == 3) {
break;
} else {
System.out.println("输入有误!");
}
}
}
//账户注册
public static void register(Scanner sc, ArrayList<BankUser> user) {
System.out.println("==== 注 册 ====");
int i = 0;
System.out.println("请输入注册账号:");
String accountNum = sc.next();
System.out.println("请输入注册密码:");
String password = sc.next();
System.out.println("请输入您的真实姓名:");
String name = sc.next();
System.out.println("请输入手机号:");
String phone = sc.next();
BankUser gr = new BankUser(accountNum, password, name, phone);
user.add(gr);
System.out.println("注册成功");
}
//账户登录
public static void login(Scanner sc, ArrayList<BankUser> user) {
System.out.println("==== 登 录 =====");
System.out.println("请输入账号:");
String zh = sc.next();
System.out.println("请输入密码:");
String mm = sc.next();
for (int i = 0; i < user.size(); i++) {
// System.out.println(user[i]);
if (user.get(i) != null) {
BankUser gr = user.get(i);
// System.out.println(gr.getZijin());
if (zh.equals(gr.getAccountNum()) && mm.equals(gr.getPassword())) {
System.out.println("登录成功!");
personalInterface(sc, user, gr);
return;
}
}
}
System.out.println("无此账号或密码错误!");
}
//个人页面
public static void personalInterface(Scanner sc, ArrayList<BankUser> user, BankUser gr) {
while (true) {
System.out.println("==== 个人页面 =====");
System.out.println("请选择您要办理的业务:");
System.out.println("1:存款\t\t\t2:取款");
System.out.println("3:查询余额\t\t4:转账");
System.out.println("5:查询个人信息\t6:退出登录");
int xuanze = sc.nextInt();
if (xuanze == 1) {
System.out.println("请输入存款金额:");
gr.setMoney(gr.getMoney() + sc.nextInt());
System.out.println("存款成功,当前余额:" + gr.getMoney() + "元");
} else if (xuanze == 2) {
System.out.println("请输入取款金额:");
int qk = sc.nextInt();
if (qk > gr.getMoney()) {
System.out.println("余额不足。。。");
} else {
gr.setMoney(gr.getMoney() - qk);
System.out.println("取款成功,当前余额:" + gr.getMoney() + "元");
}
} else if (xuanze == 3) {
System.out.println("当前余额:" + gr.getMoney() + "元");
} else if (xuanze == 4) {
System.out.println("请输入转账账号:");
String zh = sc.next();
System.out.println("请输入转账金额:");
int jine = sc.nextInt();
for (int i = 0; i < user.size(); i++) {
if (user.get(i) != null) {
BankUser gr1 = user.get(i);
if (zh.equals(gr1.getAccountNum())) {
gr1.setMoney(gr1.getMoney() + jine);
gr.setMoney(gr.getMoney() - jine);
}
}
}
} else if (xuanze == 5) {
gr.printInfo();
} else if (xuanze == 6) {
return;
}
}
}
}
3、测试类
package cn.bdqn.demo01;
import java.util.ArrayList;
import java.util.Scanner;
public class BankTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//定义一个BankUser集合
ArrayList<BankUser> userList=new ArrayList<BankUser>();
BankMethod.bankInterface(sc, userList);
}
}
效果展示
1、注册登录逻辑效果展示
2、银行业务操作逻辑展示
部分逻辑有待优化,后期加上数据库等相关知识,会更新更优版本给广大博友!
码文不易,本篇文章就介绍到这里,如果想要学习更多**Java系列知识**,请**关注博主**,博主带你零基础学习Java知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的**第四栏目**:《国学周更—心性养成之路》,学习技术的同时,我们也注重了心性的养成。
版权归原作者 乐趣国学 所有, 如有侵权,请联系我们删除。