一、技术
JDBC、MySQL数据库
二、实现功能
1)登陆功能(15分)
1.1)
用户名判断
1.2)
密码判断
1.2.1)密码输入错误3次,账号锁定5s
2)列表显示功能(10分)
3)查询功能(10分)
4)取款功能(15分)
4.1)判断取款金额是否为100倍数
4.2)判断卡内余额是否大于取款金额
5)存款功能(10分)
5.1)判断存款金额是否为100倍数
6)转账功能(15分)
6.1)判断转账金额是否为100倍数
6.2)判断卡内余额是否大于转账金额
6.3)转账给新的账户
7)改密功能(15分)
7.1)输入原始密码并确认无误
7.2)输入修改的密码
7.3)修改成功,重新登录
package view;
import java.util.Scanner;
import service.AccountService;
import service.AccountServiceImpl;
import entity.Account;
/**
* View表示层
*
*/
public class AccountView {
private static Scanner in = new Scanner(System.in);
//View层调用Service层
static AccountService accountService = new AccountServiceImpl();
public static void main(String[] args) {
System.out.println("************欢迎进入银行管理系统************");
System.out.println("1.存钱√ 2.取钱√");
System.out.println("3.查询余额√ 4.转账√");
System.out.println("5.注册账户√ 6.注销账户√");
System.out.println("7.更改密码√ 0.退出登录√");
while (true) {
System.out.print("请输入选项进行您的操作:");
// 输入选择的业务项
int n = in.nextInt();
switch (n) {
case 1:
save();
// 存钱
break;
case 2:
draw();
// 取钱
break;
case 3:
queryBalance();
// 查询余额
break;
case 4:
transfer();
// 转账
break;
case 5:
// 注册账户
regist();
break;
case 6:
logout();
// 注销账户
break;
case 7:
changepassword();
// 更改密码
break;
case 0:
// 退出登录
System.out.println("您已退出,感谢使用");
System.exit(0);
break;
default:
throw new RuntimeException("您的输入有误,请重新输入!");
}
}
}
//6.注销账户
private static void logout() {
//View层收集信息
int cardid = -1;
String password = null;
System.out.println("请输入账号:");
cardid = in.nextInt();
System.out.println("请输入密码:");
password = in.next();
try{
//进入Service层调用logout函数
accountService.logout(cardid,password);
System.out.println("账户注销完成!");
}catch(Exception e){
System.out.println(e.getMessage());
}
}
//7.更改密码
private static void changepassword() {
//View层收集信息
int cardid = -1;
String password = null;
String chpassword = null;
System.out.println("请输入账号:");
cardid = in.nextInt();
System.out.println("请输入密码:");
password = in.next();
System.out.println("请输入修改后的密码");
chpassword = in.next();
try{
//进入Service层调用changepassword函数
accountService.changepassword(cardid,password,chpassword);
System.out.println("密码修改完成");
}catch(Exception e){
System.out.println(e.getMessage());
}
}
//2取钱
private static void draw() {
//View层收集信息
int cardid = -1;
String password = null;
double money= 0.0;
System.out.println("请输入账号:");
cardid = in.nextInt();
System.out.println("请输入密码:");
password = in.next();
System.out.println("请输入取钱金额:");
money = in.nextDouble();
try{
//进入Service层调用draw函数
accountService.draw(cardid,password,money);
System.out.println("取钱完成");
}catch(Exception e){
System.out.println(e.getMessage());
}
}
//1.存钱
private static void save() {
//View层收集信息
int cardid = -1;
String password = null;
double money= 0.0;
System.out.println("请输入账号:");
cardid = in.nextInt();
System.out.println("请输入密码:");
password = in.next();
System.out.println("请输入存钱金额:");
money = in.nextDouble();
try{
//进入Service层调用save函数
accountService.save(cardid,password,money);
System.out.println("存钱完成");
}catch(Exception e){
System.out.println(e.getMessage());
}
}
//4.转账
private static void transfer() {
//View层收集信息
int from_cardid = -1;
int to_cardid = -1;
String password = null;
double money= 0.0;
System.out.println("请输入账号:");
from_cardid = in.nextInt();
System.out.println("请输入密码:");
password = in.next();
System.out.println("请输入对方账号:");
to_cardid = in.nextInt();
System.out.println("请输入转账金额:");
money = in.nextDouble();
try {
//进入Service层调用transfer函数
accountService.transfer(from_cardid,password,to_cardid,money);
System.out.println("转账完成!");
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
//3.查询余额
private static void queryBalance() {
//View层收集信息
int cardid = -1;
String password = null;
System.out.println("请输入账户");
cardid = in.nextInt();
System.out.println("请输入密码");
password = in.next();
try{
//交给Service层处理,Service又访问Dao层,获得balance的值
Double balance = accountService.queryBalance(cardid,password);
System.out.println("您当前的余额为:"+balance);
}catch(Exception e){
System.out.println(e.getMessage());
}
}
//5.注册账户
private static void regist() {
//View层收集信息
String name = null;
String password = null;
String repassword = null;
System.out.println("请输入姓名:");
name = in.next();
System.out.println("请输入密码:");
password = in.next();
System.out.println("请确认密码:");
repassword = in.next();
Account account = new Account(null,name,password,0.0);
try{
//交给Service层处理
accountService.regist(account,repassword);
System.out.println("注册成功√");
}catch(Exception e){
//捕捉异常
System.out.println(e.getMessage());
}
}
}
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
/*
* 1. 客户登录或注册用户 2. 查询个人账户余额 3. 取入钱款交易 4. 存入钱款交易 5. 转账交易 6. 退出账户 7. 注销账户
* 要求:1.Switch语句,循环语句,集合,继承,构造方法,抽象方法,
* super,this,Scanner,静态方法等的运用、呈现。2.添加注释
* */
public class BankTest {
public static void main(String[] args) {
int num;
Scanner input = new Scanner(System.in);
UserData u=null;
Map<String,UserData> userList = new HashMap<String,UserData>();
while(true) {
System.out.println("***************中国银行系统***************\n");
System.out.println("1、注册 *\n");
System.out.println("2、登录 *\n");
System.out.println("3、查询个人账户 *\n");
System.out.println("4、存款 *\n");
System.out.println("5、取钱 *\n");
System.out.println("6、转账 *\n");
System.out.println("7、退出**********************************\n");
System.out.println("请选择(1~7):");
num = input.nextInt();
switch(num) {
case 1:
System.out.println("你选择的是开户:请输入卡号,密码,存款金额:");
u = new UserData(input.next(),input.next(),input.nextFloat());
System.out.println("开户成功,信息如下:敲任意键继续....");
System.out.println(u);
userList.put(u.getId(), u);
input.next();
break;
case 2:
System.out.println("你选择的是登录:请输入卡号,密码:");
String id = input.next();
String pwd = input.next();
u = userList.get(id);
if(u==null) {
System.out.println("卡号不存在:");
return;
}
if(u.getPassword().equals(pwd)) {
System.out.println("登录成功,你的信息如下:");
System.out.println(u);
}
break;
case 3:
if(u==null) {
System.out.println("用户不存。");
break;
}
System.out.println("你选择的是查询个人账户:信息如下:");
System.out.println(u);
break;
case 4:
if(u==null) {
System.out.println("用户不存。");
break;
}
System.out.println("你选择的是存款:请输入存款金额:");
float money = input.nextFloat();
u.setMoney(u.getMoney()+money);
System.out.println("存款后的信息如下:");
System.out.println(u);
break;
case 5:
if(u==null) {
System.out.println("用户不存。");
break;
}
System.out.println("你选择的是取钱:请输入取款金额:");
money = input.nextFloat();
u.setMoney(u.getMoney()-+money);
System.out.println("取款后的信息如下:");
System.out.println(u);
break;
case 6:
if(u==null) {
System.out.println("用户不存。");
break;
}
System.out.println("你选择的是转账:请输入对方账号:");
id = input.next();
UserData other = userList.get(id);
if(other==null) {
System.out.println("对方账号不存在:");
break;
}
System.out.println("请输入转账金额:");
money = input.nextFloat();
u.setMoney(u.getMoney()-money);
other.setMoney(other.getMoney()+money);
System.out.println(u);
System.out.println(other);
break;
case 7:
break;
}
if(num==7)
break;
}
}
}
class UserData implements Serializable{
private String id;
private String password;
private float money;
public UserData() {
}
public UserData(String id,String password,float money) {
this.id = id;
this.password = password;
this.money = money;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public float getMoney() {
return money;
}
public void setMoney(float money) {
this.money = money;
}
@Override
public String toString() {
return "id:"+this.id+",密码:"+this.password+",账户余额:"+this.money;
}
}