atm系统 java_ATM系统——Java实现

这是一个用Java编写的ATM系统,包含客户、管理员和管理功能。系统管理客户账户,包括添加、删除和验证用户,以及刷新用户文件。客户可以进行登录、存款、取款和查询余额等操作。
摘要由CSDN通过智能技术生成

package ATM;

import java.util.ArrayList;

public class Client {

ArrayList customerList=new ArrayList();

Manager m=new Manager(976279,"000000");

public Client() {

customerList.clear();

}

public boolean addcustom(Customer e)

{

customerList.add(e);

for(int i=0;i

{

if(customerList.get(i).getId()==e.getId())

{

return true;

}

}

return false;

}

public void deletecustom(int id)

{

for(int i=0;i

{

if(customerList.get(i).getId()==id)

{

customerList.remove(i);

break;

}

}

}

public boolean checkcustom(int id,String password)

{

for(int i=0;i

{

// System.out.println(customlist.get(i).getId()+" "+customlist.get(i).getpassword()+id+password);

if(customerList.get(i).getId()==id)

{

if(customerList.get(i).getpassword().equals(password))

{

// System.out.println("right");

return true;

}

}

}

return false;

}

public void refreshcustomfile()throws Exception

{

java.io.File file=new java.io.File("custom.txt");

if(file.exists())

{

System.out.println("File already exists.");

file.delete();

refreshcustomfile();

}

java.io.PrintWriter output=new java.io.PrintWriter(file);

for(int i=0;i

{

output.println(customerList.get(i).getId()+" "+customerList.get(i).getpassword()+" "+customerList.get(i).getBalance()

+customerList.get(i).getdateCreated()+customerList.get(i).getAnnualInterestRate());

}

output.close();

}

}

package ATM;

import java.util.Date;

public class Customer {

private int id;

private double balance;

private String passWord;

private double annualInterestRate = 0;

private Date dateCreatedDate;

Customer() {

}

Customer(int id,double balance,String passWord){

this.id = id;

this.balance = balance;

this.passWord =passWord;

}

void setpassword(String password)

{

this.passWord=password;

}

String getpassword()

{

return passWord;

}

int getId()

{

return id;

}

void setId(int id)

{

this.id = id;

}

double getBalance()

{

return balance;

}

void setBalance(double balance)

{

this.balance = balance;

}

double getAnnualInterestRate()

{

return annualInterestRate;

}

void setAnnualInterestRate(double annualInterestRate)

{

this.annualInterestRate = annualInterestRate;

}

Date getdateCreated()

{

return dateCreatedDate;

}

double getMonthlyInterestRate()

{

return annualInterestRate/12;

}

boolean withDraw(double count)

{

if(balance

return false;

}

else {

balance -= count;

if (balance >= 0)

return true;

else

return false;

}

}

void deposit(double count)

{

balance += count;

}

}

package ATM;

public class Manager {

private int id;

private String passWord;

Manager(int nid,String npassword)

{

id=nid;

passWord=npassword;

}

public int getId()

{

return id;

}

public String getPassWord()

{

return passWord;

}

public void setPassWord(String newpassword)

{

passWord=newpassword;

}

public void setCustomer(int newid,int balance,String newpassword)

{

@SuppressWarnings("unused")

Customer a=new Customer(newid,balance,newpassword);

}

public void deleteCustom(Customer a)

{

a.setId(0);

a.setBalance(0);

a.setBalance(0);

}

}

package ATM;

import javax.swing.JOptionPane;

import javafx.application.Application;

import javafx.scene.Scene;

import javafx.scene.text.Text;

import javafx.scene.image.ImageView;

import javafx.scene.image.Image;

import javafx.stage.Stage;

import javafx.scene.layout.*;

import javafx.geometry.*;

import javafx.event.*;

import javafx.scene.control.*;

public class GUI extends Application {

private ATMpane atm=new ATMpane();

public void start(Stage priamrystage)

{

Scene scene=new Scene(atm.getatm(),600,600);

priamrystage.setTitle("ATM");

priamrystage.setScene(scene);

priamrystage.show();

}

class ATMpane extends GridPane

{

Client users=new Client();

int id;

TextField t1= new TextField();

TextField t2= new TextField();

public ATMpane()

{

Text text1=new Text(" 欢迎使用ATM系统!");

this.add(text1, 0, 0);

Image imageManager=new Image("image/admin.png");

Image imageCustomer=new Image("image/manageusers.png");

Button b8=new Button("",new ImageView(imageCustomer));

Button b9=new Button("",new ImageView(imageManager));

//this.add(new ImageView(imageCustomer), 0, 1);

//this.add(new ImageView(imageManager), 0, 2);

this.add(b8, 0, 1);

this.add(b9, 0, 2);

setAlignment(Pos.CENTER);

setPadding(new Insets(50,50,50,50));

setHgap(25);

setVgap(25);

b8.setOnAction(e->managerStart());

b9.setOnAction(e->customerStart());

}

public void start()

{

this.getChildren().clear();

Text text1=new Text(" 欢迎使用ATM系统!");

this.add(text1, 0, 0);

Image imageManager=new Image("image/admin.png");

Image imageCustomer=new Image("image/manageusers.png");

Button b8=new Button("",new ImageView(imageCustomer));

Button b9=new Button("",new ImageView(imageManager));

this.add(b8, 0, 1);

this.add(b9, 0, 2);

setAlignment(Pos.CENTER);

setPadding(new Insets(50,50,50,50));

setHgap(25);

setVgap(25);

b8.setOnAction(e->managerStart());

b9.setOnAction(e->customerStart());

}

public void managerStart()

{

this.getChildren().clear();

Button b10=new Button("确定");

add(new Label("用户名"),0,0);

add(t1, 1, 0);

add(new Label("密码"), 0, 1);

add(t2, 1, 1);

add(b10,1,2);

b10.setOnAction(e->{

id=Integer.parseInt(t1.getText());

String password=t2.getText();

if((users.m.getId()==id)&&(users.m.getPassWord().equals(password)))

{

managerUser();

}

else

JOptionPane.showMessageDialog(null, "用户名或密码输入错误");

});

}

public void managerUser()

{

this.getChildren().clear();

setAlignment(Pos.CENTER);

setPadding(new Insets(50,50,50,50));

setHgap(25);

setVgap(25);

Button b11=new Button("开户");

Button b12=new Button("销户");

Button b1=new Button("退出");

Image imageCreate=new Image("image/user-blue-add2.png");

Image imageDelete=new Image("image/user-blue-delete.png");

Image imageLogout=new Image("image/sign-out.png");

this.add(new ImageView(imageCreate), 0, 0);

this.add(new ImageView(imageDelete), 0, 1);

this.add(new ImageView(imageLogout), 0, 2);

this.add(b11, 1, 0);

this.add(b12, 1, 1);

this.add(b1, 1, 2);

b11.setOnAction(e->{

this.getChildren().clear();

setAlignment(Pos.CENTER);

setPadding(new Insets(50,50,50,50));

setHgap(25);

setVgap(25);

t1.clear();

t2.clear();

add(new Label("用户名"),0,0);

add(t1, 1, 0);

add(new Label("密码"), 0, 1);

add(t2, 1, 1);

Button b13=new Button("确定");

add(b13,1,2);

b13.setOnAction(y->reset());

});

b1.setOnAction(e->start());

b12.setOnAction(e->{

int id=Integer.parseInt(JOptionPane.showInputDialog("输入注销账号"));

users.deletecustom(id);

managerUser();

});

}

public void customerStart()

{

this.getChildren().clear();

t1.clear();

t2.clear();

Button b2=new Button("确定");

Button b15=new Button("退出");

setAlignment(Pos.CENTER);

setPadding(new Insets(50,50,50,50));

setHgap(25);

GridPane.setHalignment(b15, HPos.CENTER);

setVgap(25);

add(new Label("用户名"),0,0);

add(t1, 1, 0);

add(new Label("密码"), 0, 1);

add(t2, 1, 1);

add(b15, 1, 2);

add(b2,0,2);

b15.setOnAction(e->start());

b2.setOnAction(e->{login();});

}

public void login()

{

id=Integer.parseInt(t1.getText());

String password=t2.getText();

if(users.checkcustom(id, password))

{

doing();

}

else

{

JOptionPane.showMessageDialog(null, "用户名或密码输入错误");

}

}

public void reset()

{

id=Integer.parseInt(t1.getText());

String password=t2.getText();

double balance=Double.parseDouble(JOptionPane.showInputDialog("请输入金额"));

Customer e=new Customer(id,balance,password);

if( users.addcustom(e))

JOptionPane.showMessageDialog(null, "注册成功");

else

JOptionPane.showMessageDialog(null, "注册失败");

managerUser();

}

public ATMpane getatm()

{

return this;

}

public void doing()

{

this.getChildren().clear();

Button b3=new Button("余额查询");

Button b4=new Button("存钱");

Button b5=new Button("取钱");

Button b6=new Button("退出");

Image imageSubtract=new Image("image/033.png");

Image imageAdd=new Image("image/032.png");

Image imageSreach=new Image("image/035.png");

Image imageexit=new Image("image/049.png");

this.add(new ImageView(imageAdd), 0, 0);

this.add(new ImageView(imageSubtract), 0, 1);

this.add(new ImageView(imageSreach), 0, 2);

this.add(new ImageView(imageexit), 0, 3);

this.add(b3, 1, 2);

this.add(b4, 1, 0);

this.add(b5, 1, 1);

this.add(b6, 1, 3);

b3.setOnAction(e->{

for(int i=0;i

{

if(users.customerList.get(i).getId()==id)

{

JOptionPane.showMessageDialog(null, "余额为:"+users.customerList.get(i).getBalance());

}

}

});

b4.setOnAction(e->{

for(int i=0;i

{

if(users.customerList.get(i).getId()==id)

{

double balance=Double.parseDouble(JOptionPane.showInputDialog("请输入金额"));

users.customerList.get(i).deposit(balance);

try{ users.refreshcustomfile();

JOptionPane.showMessageDialog(null, "操作成功");

}

catch(Exception ex)

{

JOptionPane.showMessageDialog(null, "操作失败");

}

}

}

});

b5.setOnAction(e->{

for(int i=0;i

{

if(users.customerList.get(i).getId()==id)

{

double balance=Double.parseDouble(JOptionPane.showInputDialog("请输入金额"));

users.customerList.get(i).withDraw(balance);

try{ users.refreshcustomfile();

JOptionPane.showMessageDialog(null, "操作成功");

}

catch(Exception ex)

{

JOptionPane.showMessageDialog(null, "操作失败");

}

}

}

});

b6.setOnAction(e->customerStart());

}

}

public static void main(String[] args)

{

Application.launch(args);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值