开发环境
开发语言为Java,开发环境Eclipse或者IDEA都可以。数据库采用:MySQL。运行主程序,或者执行打开JAR文件即可以运行本程序。
系统框架
利用JDK自带的SWING框架开发,需要导入MySMyQL的JDBC JAR包。MySQL数据库,纯窗体模式,直接运行Main文件即可以。同时带有详细得设计文档
涉及主要技术
银行ATM系统 系统用Java语言编写,是一个典型的窗体程序,采用swing框架编写,系统涉及到文件、UI、数据库操作、事件等操作。通过运行Main.java,或者直接运行解压文件假下的JAR文件
主要功能
(1)顾客登录:输出个当输入给定的卡号和密码,系统能登录ATM柜员机系统。当校验通过的时候,跳转到主界面,校验失败,则提示卡号和密码错:
(2)用户输入卡号、密码完成用户的注册操作
(2)查询余额:初始余额为5000元 ,用户点击查询余额,可以查询自己银行卡上的余额信息
(3)ATM取款:每次取款金额为1的倍数,总额不超过5000元,支取金额不允许透支。
(4)ATM存款:不能出现负存款。
(5)转账:用户往指定的卡号进行转账,转账操作需要满足两个条件,对方卡号真实存在,转账的数量必须为正数,而且必须满足卡内余额大于转账金额。
(6)退卡:当用户完成所有的业务操作侯,点击退卡操作,提示用户保管好自己的卡
运行效果
关键代码
package atm;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Menu implements ActionListener{
public JFrame mframe;
private JPanel mp0,mp1,mp2,mp3,mp4;//p4是确认密码;点击register按钮石出现
private JTextField passWord,passwordCheck;
private JButton inqury;
private JButton outmoney;
private JButton transfer;
private JButton inmoney;
private JButton changepassword;
public Menu()
{
mframe=new JFrame();
mframe.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
JButton inqury=new JButton("查询");
JButton outmoney=new JButton("取款");
JButton transfer=new JButton("转账");
JButton inmoney=new JButton("存款");
JButton changepassword=new JButton("更改密码");
JButton exit=new JButton("退卡");
inqury.setPreferredSize(new Dimension(200,40));
outmoney.setPreferredSize(new Dimension(200,40));
transfer.setPreferredSize(new Dimension(200,40));
inmoney.setPreferredSize(new Dimension(200,40));
changepassword.setPreferredSize(new Dimension(200,40));
exit.setPreferredSize(new Dimension(200,40));
inqury.setFont(new Font("宋体",Font.BOLD,16));
outmoney.setFont(new Font("宋体",Font.BOLD,16));
transfer.setFont(new Font("宋体",Font.BOLD,16));
inmoney.setFont(new Font("宋体",Font.BOLD,16));
changepassword.setFont(new Font("宋体",Font.BOLD,16));
exit.setFont(new Font("宋体",Font.BOLD,16));
// mp0=new JPanel();
// mp0.add(new JLabel("选择项目"));
// mframe.add(mp0);
mp1=new JPanel();
JLabel jlb1=new JLabel("ATM业务选择");
jlb1.setFont(new java.awt.Font("Dialog", 1, 30));
jlb1.setForeground(Color.blue);
mp1.add(jlb1);
mp1.add(inmoney);
mp1.add(inqury);
mp1.add(outmoney);
mp1.add(transfer);
mp1.add(changepassword);
mp1.add(exit);
mp1.setLayout(new GridLayout(7,1));
mframe.add(mp1);
mframe.pack();
mframe.setVisible(true);
mframe.setLayout(new FlowLayout());
// mframe.setBounds(800,800,450,300);
mframe.setSize(600, 400);//窗体大小
mframe.setLocationRelativeTo(null);
mframe.setTitle("中国建设银行ATM系统");
inqury.addActionListener(this);//绑定监听器
inmoney.addActionListener(this);
outmoney.addActionListener(this);
transfer.addActionListener(this);
changepassword.addActionListener(this);
exit.addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent e) {
String cmd=e.getActionCommand();//cmd赋值为点击的按钮的值
if(cmd.equals("查询"))
{
Inqury inquryGui=new Inqury();
}
else if(cmd.equals("取款"))
{
OutMoney outMoneyGui=new OutMoney();
}
else if(cmd.equals("存款"))
{
InMoney inMoney=new InMoney();
}else if(cmd.equals("转账"))
{
Transfer transfer=new Transfer();
}else if(cmd.equals("更改密码"))
{
ChangePassword changePassword=new ChangePassword();
}
else if(cmd.equals("退卡")){
mframe.setVisible(false);//隐藏
LoginGui loginGui=new LoginGui();
JOptionPane.showMessageDialog(null,"请记得取走你的银行卡");
}
}
}