JavaSE案例-Bank
2024-09-07 14:16:45
项目介绍
完成基本的银行业务功能
存款 取款 转账 查询余额 修改密码 修改预留手机号 注销账号 退出
任务分解:
定义三个基本类:
BankTest():银行业务主程序
Bank(): 银行类,包含主要业务逻辑
User():客户类,存储客户相关个人信息
任务逻辑图:
实现代码
银行主类(BankTest)
程序开头在这个类中
/*BankTest*/
public class BankTest {
public static void main(String[] args) {
Bank bank = new Bank();
bank.login();
System.out.println("欢迎再次使用");
}
}
银行类(Bank)
login()函数完成了3个功能:
1.调用初始化函数。//存入初始用户信息
2.接收用户输入的卡号密码等信息
3.调用check()函数核对用户信息是否正确
import java.util.Scanner; public class Bank {
Scanner sc = new Scanner(System.in);
User[] users = new User[5];
//String no = ;//字符串的默认值?
public void initial() {//存入初始用户信息
User user = new User();//生成用户对象
user.setCardNo("6222021702033334444");
user.setPwd("123456");
user.setIdNo("4444444444444");
user.setPhone("13900000000");
user.setName("tom");
user.setBalance(4000.0);
users[0] = user;
User user1 = new User("6222021702033334444","123456","5555555555555","13911111111","tony",5000.0);//有参构造方式生成对象
users[1] = user1; } public void login() { initial();//调用初始化函数 System.out.print("请输入卡号:");
String no = sc.next();
System.out.print("请输入密码:");
String pwd = sc.next(); User mine = check(no , pwd);//将接收的卡号和密码传给check()函数确认有无客户信息,有客户信息则返回客户对象,无客户信息则返回null
if (mine != null) {
System.out.println("已经到这里了");
this.showMenu(mine);//客户信息存在,调出银行业务菜单
return;
} else {
System.out.println("输入错误,用户不存在");
}
} //check函数,校验是否存在该用户
public User check(String no ,String pwd) {
for (int i = 0;i < users.length; i++) {
if (users[i] != null) {//数组的非空判断
if (no.equals(users[i].getCarNo()) && pwd.equals(users[i].getPwd())) {
System.out.println("用户存在");
return users[i];
}
} }
return null; }
}
客户类(User)
/*用户类*/
public class User {
private String cardNo;
private String pwd;
private String idNo;
private String phone;
private String name;
private double balance; public User() {} public User (String cardNo , String pwd , String idNo , String phone , String name , double balance) {
this.cardNo = cardNo;
this.pwd = pwd;
this.idNo = idNo;
this.phone = phone;
this.name = name;
this.balance = balance;
} public void setCardNo(String cardNo) {
this.cardNo = cardNo;
}
public String getCarNo() {
return this.cardNo;
} public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getPwd() {
return this.pwd;
} public void setIdNo(String idNo) {
this.idNo = idNo;
}
public String getIdNo() {
return this.idNo;
} public void setPhone(String phone) {
this.phone = phone;
}
public String getPhone() {
return this.phone;
} public void setName(String name) {
this.name = name;
}
public String getName() {
return this.name;
} public void setBalance(double balance) {
this.balance = balance;
}
public double getBalance() {
return this.balance;
}
}
银行类(Bank)
业务功能相关代码
public void showMenu(User mine) {
do {
System.out.println();
System.out.println();
System.out.println();
System.out.println("欢迎使用银行ATM自助服务");
System.out.println("--------------------");
System.out.println("1.开户 2.存款 3.取款 4.转账 5.查询余额 6.修改密码 7.修改手机号 0.退出");
System.out.println("--------------------");
int choice = 0; choice = sc.nextInt();
switch (choice) {
case 1:
System.out.println("执行开户功能");
break; case 3:
System.out.println("执行取款功能");
this.withdrawal(mine);
break; case 0:
System.out.println("执行退出功能"); return;
} } while (true);
银行类(Bank)
具体取款操作相关代码
public void withdrawal(User mine) {
System.out.print("请输入取款金额:");
double moneyOut = sc.nextDouble();
if (mine.getBalance() >= moneyOut) {
System.out.println("请取款金额为:" + moneyOut + "。");
mine.setBalance(mine.getBalance()-moneyOut);
System.out.println("剩余存款为:" + mine.getBalance() + "。"); }
}
最新文章
- Java连接MYSQL 数据库的连接步骤
- 【01:转自知乎:关于 openSUSE 】
- 51nod1757 大灾变
- IOS应用开发版本控制工具之Versions使用
- Lombok介绍及使用方法
- mybatis+spring+c3p0+maven+ehcache
- 网页 cookie
- MYSQL报错注入方法整理
- ListView动态刷新adapter.notifyDataSetChanged()无反应
- 集群技术(三)MySQL集群深度解析
- [转]一千行 MySQL 学习笔记
- LabVIEW-PC-PLC-MCU串口通信-介绍很全
- sqlserver服务启动后停止,传递给数据库 &#39;master&#39; 中的日志扫描操作的日志扫描号无效
- 用户设置与virtual host配置
- 配置静态IP
- From 百度知道 SQLSERVER 字符集排序规则简单说明
- 《PHP和MySQL Web开发》读书笔记(上篇)
- C#socket编程序(三)
- POJ-2251-Dungeon Master(3D迷宫,BFS)
- Log4Net使用教程