ATM柜员机模拟程序

要求使用图形用户界面:

1、通过主界面,可以进入管理员界面、用户界面、系统设置界面、退出;

2、启动软件,可以进入用户模式,也可以进入系统管理模式;

3、进入系统管理模式,需要输入管理员账号和密码,可以查看这台ATM机近期资金出入明细,可以查看这台ATM机上面操作的所有账户的历史记录和明细;

4、进入用户账号和密码的登录界面,当输入给定的卡号和密码(初始卡号16位和密码6位)时,对比系统存储的账号和密码正确,能登录ATM柜员机系统,当日出错次数操作3次,当日锁定账户不能继续操作,累计三日被锁定,需要管理员账号才能够完成解锁操作。

用户可以按照以下规则进行操作:

1、查询余额:初始余额为100000元;

2、ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支;

3、ATM存款:不能出现负存款,要求存钱为100的整数倍;

4、ATM转账:通过登录的用户向指定的银行账号(在系统中已经保存)转账,若银行卡不存在,则提
示银行卡号输入错误,转账成功则提示“转账成功”,并且工具日期能够实现当日转账金额的限制;

5、历史交易记录查询,要求能够保存20条以上的交易记录;

6、修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码;

7、退卡:点击退卡,返回登录界面。

主界面



//文件名:MainInterface.java
package ATM;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public abstract class MainInterface implements ActionListener {
	static JFrame mainJFrame=new JFrame();
	static JLabel lbl=new JLabel("ATM柜员机模拟程序——主界面",JLabel.CENTER);
	static JButton bt_userMode=new JButton("用户模式");
	static JButton bt_systemManagementMode=new JButton("系统管理模式");
	static JButton bt_signOut=new JButton("退出");
	public static void main(String[] args) {
		mainJFrame.setTitle("ATM柜员机模拟程序——主界面");
		mainJFrame.setBounds(0, 0, 800, 600);



用户登录界面



//文件名:UserLoginInterface.java
package ATM;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.text.*;
import java.util.*;
import javax.swing.*;
public class UserLoginInterface {
	static FileReader fr;//FileReader类
	static FileWriter fw;//FileWriter类
	static SimpleDateFormat time;
	static Date date;
    static Calendar calendar;



系统设置界面



//文件名:SystemSettingInterface.java
package ATM;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
public class SystemSettingInterface {
	static FileReader fr;//FileReader类
	static FileWriter fw;//FileWriter类
	static JFrame mainJFrame_2=new JFrame();
	static JLabel lbl=new JLabel("ATM柜员机模拟程序——系统设置界面",JLabel.CENTER);
	static JDialog diag_message=new JDialog();
	static JLabel lb_message=new JLabel();
	static JLabel lb_name=new JLabel("帐号");



用户界面



//文件名:UserInterface.java
package ATM;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.text.*;
import java.util.*;
import javax.swing.*;
public class UserInterface {
	static FileReader fr;//FileReader类
	static FileWriter fw;//FileWriter类
	static SimpleDateFormat time;
	static Date date;
	//用户界面组件



管理员界面



//文件名:AdministratorInterface.java
package ATM;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.text.*;
import java.util.*;
import javax.swing.*;
public class AdministratorInterface {
	static FileReader fr;//FileReader类
	static FileWriter fw;//FileWriter类
	static SimpleDateFormat time;
	static Date date;
	static JFrame mainJFrame_4=new JFrame();



UserTest



//文件名:UserTest.java
package ATM;
import java.io.*;
import java.util.*;
public class UserTest {
	static ArrayList<UserAccount> userArrayList;//集合类-ArrayList类
	static UserAccount currentUserAccount;//当前用户账号
	static UserAccount currentUserAccount_1;//当前被转帐用户账号
	static File userFile;//File类
	static File currentUserFile;//当前用户文件
	static FileReader fr;//FileReader类
	static FileWriter fw;//FileWriter类
	public static void main(String[] args) throws Exception {
		userArrayList=new ArrayList<UserAccount>();//集合类-ArrayList类



UserAccount



//文件名:UserAccount.java
package ATM;
public class UserAccount {
	String userAccount;
	String password;
	float balance;
}



AdministratorTest



//文件名:AdministratorTest.java
package ATM;
import java.io.*;
import java.util.*;
public class AdministratorTest {
	static ArrayList<AdministratorAccount> administratorArrayList;//集合类-ArrayList类
	static AdministratorAccount currentAdministratorAccount;//当前管理员账号
	static File administratorFile;//File类
	static File currentAdministratorFile;//当前管理员文件
	static FileReader fr;//FileReader类
	static FileWriter fw;//FileWriter类
	public static void main(String[] args) throws Exception {
		administratorArrayList=new ArrayList<AdministratorAccount>();//集合类-ArrayList类
		currentAdministratorAccount=new AdministratorAccount(null,null,0);//当前管理员账号



AdministratorAccount



//文件名:AdministratorAccount.java
package ATM;
public class AdministratorAccount {
	String administratorAccount;
	String password;
	float balance;
}