结构:C/S
技术:JDK1.6 , Java Swing , Java I/O , Java Bean , Log5j(记录日志)
测试:
管理员:
用户名:amdin 密码:123456
普通用户:
2500130 123456
2500131 123456
可在test文件夹下 findAllAccount 查询所有用户
启动系统:
com.login.Login
管理员登录:
com.UI.AdminLogin
普通用户登录:
com.UI.Login
分层:
test:
用于测试方法
查询所有普通用户和密码 findAllAccount()
删除普通用户 deleteAccount()
添加数据测试 testAddAccount()
添加管理员 testAddAdmin()
VO:
Account.java
卡号(cardId)
密码(password)
货币类型(curType)
存款类型(savingType)
开户日期(openTime)
开户金额(openMoney)
余额(balance)
是否挂失(isReportLoss)
顾客编号(customerId)
AdminUser.java
管理员编号(ID)
登录名(loginName)
密码(password)
真名(realName)
CustomerInfo.java
顾客编号 (id)
开户名 (customerName)
身份证号 (personId)
性别 (sex)
联系电话 (telephone)
详细地址 (address)
银行卡号 (list)----一对多关系
TransInfo.java
交易ID(transId)
交易日期(transTime)
交易类型(transType)
交易金额(transMoney)
备注(remark)
卡号(cardID)
Dao:
AdministratorDao.java
TransDao.java
接口:
AdministratorDaoImpl.java
/**
* 管理员根据用户名,密码进行登录
* @param str
* @param password
* @return
*/
public AdminUser login(String str,String password);
/**
* 根据银行卡ID存款
* @param cardId 银行卡ID
* @param balance 余额
* @return
*/
public double desposit(String cardId,String pwd,double balance);
/**
* 第一次开户需要提供完整的个人信息
* @param customerName 客户名字
* @param PID 身份证ID
* @param sex 性别
* @param telephone 电话
* @param address 地址
* @param id 卡号ID
* @param password 密码
* @param savingType 存款类型
* @param openMoney 开户金额
* @param curType 货币类型
* @return
*/
public Account open(String customerName,String PID,String sex,String telephone,String address,int id,String password,String savingType,double openMoney,String curType) ;
/**
* 之后开户不需要再提供个人信息,只需要提供身份证就可以了(老客户开户)
* @param PID 身份证
* @param id 卡号ID
* @param password 密码
* @param savingType 存款类型
* @param openMoney 开户金额
* @param curType 货币类型
* @return
*/
public Account open(String PID,int id, String password,String savingType,double openMoney,String curType);
/**
* 根据身份证ID查询用户
* @param pid
* @return
*/
public Object[][] query(String pid);
/**
* 销户需要提供个人身份证以及要注销的银行卡号
* @param PID 身份证ID
* @param cardId 银行卡号
*/
public boolean close(String PID);
/**
* 根据银行卡号进行存款
* @param id 银行卡号
* @param balance 金额
* @return
*/
// public Account desposit(Long id,Double balance);
/**
* 根据银行卡号进行取款
* @param id 银行卡号
* @param balance 金额
* @return
*/
public Account withdraw(String id,String pwd,Double balance);
/**
* 根据银行卡号进行转账
* @param fromCardId 要转账的卡号
* @param toCardId 接收转账的卡号
* @param balance 金额
* @return
*/
public double transfer(String fromCardId,String toCardId,double balance) ;
/**
* 查看所有报表,
*/
public void queryReport();
/**
* 查看指定银行卡的交易情况,
*/
public void queryReport(String cardId);
/**
* 打印所有报表
*/
public void printReport();
/**
* 打印指定银行卡的交易情况
* @param cardId
*/
public void printReport(String cardId);
TransDaoImpl.java
/**
* 登录
* @param cardId 银行卡号(用户名)
* @param password 密码
* @return
*/
public Account login(String cardId, String password);
/**
* 对当前用户进行存款
* @param balance 金额
* @return 余额
*/
public double despoist(double balance);
/**
* 对当前用户取款
* @param balance 金额
* @return 当前用户余额
*/
public double withdraw(double balance);
/**
* 修改密码
* @param newPassword 新密码
*/
public void modifyPassword(String newPassword);
/**
* 查询余额
*/
public void queryBalance();
/**
* 打印凭条
*/
public void printRecord();
View:
Login.java //普通用户登录窗口
LoginFrame.java //普通用户操作窗口
AdminLogin.java //管理员登录窗口
AdminFrame.java //管束员操作窗口
日志框架:
Log5j.java 记录登录信息,异常信息,交易信息
log() 记录日志
print() 在控制台打印相关信息
formatDate() 格式化日期 年-月-日
formatTime() 格式化时间 年-月-日 时:分:秒
数据存储(使用IO)
account.db 存储 银行卡号
administrator.db 存储 管理员用户
transinfo.db 存储 银行卡交易信息
user.db 存储 普通用户信息