一、 设计任务与目的
1、查询余额:初始余额为10000元
2、ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。
3、ATM存款:不能出现负存款。
4、修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。
二、系统设计
用户功能模块设计
连接数据库
加载驱动类,执行该类中的初始代码,将驱动注册到DriverManager中
public class AtmDriver {
public void atmDriver() {
try {
Class.forName("com.mysql.jdbc.Driver");
System.out.println("加载数据库驱动成功");
}
catch(ClassNotFoundException el){
System.out.println("加载数据库驱动失败");
}
}
}
连接MySQL数据库,建立连接对象
public class BankDb {
Connection bank=null;//建立连接对象
java.sql.Statement st=null;//建立SQL语句执行器
public Connection optiondb() {
try {
bank=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/product","root", "05021327abc");
st= bank.createStatement();
System.out.println("连接数据库成功");
return bank;
}
catch(Exception e1) {
JOptionPane.showMessageDialog(null, "连接数据库失败!");
}
return bank;
}
public Connection getBank() {
return bank;
}
public java.sql.Statement getSt() {
return st;
}
}
用户登录界面
登录时,应输入正确的用户名和密码,凡是输入错误用户名和密码都会提示登录失败。填写正确用户名和密码后,会跳转到另一个可选功能的页面。
public class BankWindow extends JFrame implements ActionListener {
private JFrame frame;
private JPanel p0,p1,p2,p3,p4;
private JTextField userName;
private JTextField passWord,passwordCheck;
private JButton button1;
private String Id="";
private String password="";
public BankWindow() {
frame=new JFrame("登录ATM");
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//设置的是退出程序
p0=new JPanel();
p0.add(new JLabel("模拟银行ATM"));
frame.add(p0);
p1=new JPanel();
p1.add(new JLabel("\t卡号:"));
userName=new JTextField(20);
p1.add(userName);
p2=new JPanel();
p2.add(new JLabel("\t密码:"));
passWord=new JTextField(20);
p2.add(passWord);
p3=new JPanel();
button1=new JButton("登录 ");
p3.add(button1);
button1.addActionListener(this);
p4=new JPanel();
p4.add(new JLabel("确认密码:"));
passwordCheck=new JTextField(20);
p4.add(passwordCheck);
frame.add(p1);
frame.add(p2);
frame.add(p4);//确认密码框
frame.add(p3);
frame.pack();
frame.setVisible(true);
p4.setVisible(false);
show();
}
public void show(){
frame.setBounds(500,500,350,250);//设置大小
frame.setLayout(new FlowLayout());//设置流式布局