java作业 ATM存款机

java大作业 ATM存款机

英语能力不强 变量 包名 类名 方法名 起名并不规范 请谅解

使用时注意打包
导入sql.jar文件
创建数据库表

程序启动入口

package ruansan.word.app;

import ruansan.word.jiemian.DengLuGui;

public class App {

	// 启动程序
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		new DengLuGui();

	}

}

登陆界面 输入用户名密码进入主界面

package ruansan.word.jiemian;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

import javax.swing.*;

import ruansan.word.shuju.Array;
import ruansan.word.yonghu.Preson;

//创建登陆界面     
public class DengLuGui {
	public static Preson ps = null;
	private JFrame j;
	private Button b1, b2;
	private Label l1, l2;
	private TextField tf;
	private JPasswordField pas;

	// 调用方法 初始化界面
	public DengLuGui() {
		inti();
	}

	// 初始化界面
	public void inti() {
		// 创建窗体
		j = new JFrame("用户登陆");
		// 创建窗体 初始大小
		j.setBounds(500, 300, 350, 250);
		// 可见
		j.setVisible(true);
		// 不使用布局管理器
		j.setLayout(null);
		// 关闭按钮
		j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		l1 = new Label("用户名:");
		l1.setBounds(70, 40, 50, 25);
		j.add(l1);
		tf = new TextField();
		tf.setBounds(130, 40, 100, 25);
		j.add(tf);
		l2 = new Label("密码:");
		l2.setBounds(70, 75, 50, 25);
		j.add(l2);
		pas = new JPasswordField();
		pas.setBounds(130, 75, 100, 25);
		j.add(pas);
		b1 = new Button("登陆");
		b1.setBounds(70, 110, 50, 25);
		j.add(b1);
		b2 = new Button("退出");
		b2.setBounds(140, 110, 50, 25);
		j.add(b2);

		mEvent();
	}

	// 注册监听器
	private void mEvent() {
		// 退卡直接终止虚拟机
		b2.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				System.exit(0);
			}
		});

		// 登陆按钮
		b1.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				// 创建用户类 吧输入的账号密码存进去
				Preson a = new Preson(tf.getText(), pas.getText(), 100);

				// 取出数据中的值存入集合中
				ArrayList<Preson> l = Array.way();

				// 判断输入的账号密码是否正确 正确取出对象的姓名密码和钱
				for (int i = 0; i < l.size(); i++) {
					Preson aa = l.get(i);
					if (a.getName().equals(aa.getName()) && a.getPass().equals(aa.getPass())) {

						ps = aa;

						new ZuoYeMain();
					}
				}
			}
		});
	}

}

主界面

package ruansan.word.jiemian;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

import ruansan.word.zsgcGui.AddBut;
import ruansan.word.zsgcGui.DeleteBut;
import ruansan.word.zsgcGui.SelectBut;

//创建主界面
public class ZuoYeMain {
	private JFrame j;
	private Button b1, b2, b3, b4;

	// 调用方法 初始化界面
	public ZuoYeMain() {
		inti();
	}

	// 初始化界面
	public void inti() {
		// 创建窗体
		j = new JFrame("操作界面");
		// 创建窗体 初始大小
		j.setBounds(500, 300, 300, 200);
		// 可见
		j.setVisible(true);
		// 不使用布局管理器
		j.setLayout(null);
		// 关闭按钮
		j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		b1 = new Button("查询");
		b1.setBounds(80, 40, 40, 30);
		j.add(b1);
		b2 = new Button("存款");
		b2.setBounds(130, 40, 40, 30);
		j.add(b2);
		b3 = new Button("取款");
		b3.setBounds(80, 80, 40, 30);
		j.add(b3);

		b4 = new Button("退卡");
		b4.setBounds(130, 80, 40, 30);
		j.add(b4);
		Event();
	}

	// 注册监听器
	public void Event() {
		// 退卡直接终止虚拟机
		b4.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				System.exit(0);
			}
		});

		// 查询余额事件 创建查询界面
		b1.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				// 创建查询界面
				new SelectBut();
			}
		});

		// 存钱事件 创建存钱界面
		b2.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				// 创建存钱界面
				new AddBut();
			}
		});

		// 取钱事件 创建取钱界面
		b3.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				// 创建取钱界面
				new DeleteBut();
			}
		});
	}

}

数据库连接 和对数据库数据的处理 数据库名为Test 密码1234 表名为pre

package ruansan.word.shuju;

import java.sql.*;

//连接数据据
public class JDBC {

	// 开启连接
	public static Connection getConnection() throws Exception {
		Class.forName("com.mysql.jdbc.Driver");
		Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/Test", "root", "1234");
		return conn;
	}

	// 关闭连接
	public static void release(Statement stmt, Connection conn) {
		if (stmt != null) {
			try {
				stmt.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
			stmt = null;
		}
		if (conn != null) {
			try {
				conn.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
			conn = null;
		}
	}

	// 关闭连接
	public static void release(Statement stmt, ResultSet rs, Connection conn) {
		if (rs != null) {
			try {
				rs.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
			rs = null;
		}
		if (stmt != null) {
			try {
				stmt.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
			stmt = null;
		}
		if (conn != null) {
			try {
				conn.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
			conn = null;
		}
	}

}

对数据库数据处理

package ruansan.word.shuju;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;

import ruansan.word.jiemian.DengLuGui;
import ruansan.word.yonghu.Preson;

//数据处理类
public class Array {
	
	// 建立数据库连接 吧值封装对象并存入集合
	public static ArrayList<Preson> way() {
		Connection conn = null;
		Statement stmt = null;
		ResultSet rs = null;
		// 创建集合
		ArrayList<Preson> arr = new ArrayList<Preson>();
		try {
			// 建立连接 执行sql查询语句
			conn = JDBC.getConnection();
			stmt = conn.createStatement();
			String sql = "select * from pre";
			rs = stmt.executeQuery(sql);
			// 查询是否由内容
			while (rs.next()) {
				// 把sql的值整合成对象属性
				Preson pp = new Preson();
				pp.setName(rs.getString("name"));
				pp.setPass(rs.getString("pass"));
				pp.setMonkey(rs.getDouble("monkey"));
				// 添加到arr集合中
				arr.add(pp);
			}
			// 返回arr集合
			return arr;
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			// 关闭连接
			JDBC.release(stmt, rs, conn);
		}

		return null;
	}

	// 刷新登陆对象钱的值每次进行存取查都刷新一次
	public static double way2() {
		// 调用way方法 取出返回的集合 并赋值给 集合l
		ArrayList<Preson> l = way();
		// 取出登陆界面的用户
		Preson a = DengLuGui.ps;
		for (int i = 0; i < l.size(); i++) {
			Preson aa = l.get(i);
			// 找到登陆时的用户 把用户的钱刷新 并且返回
			if (a.getName().equals(aa.getName()) && a.getPass().equals(aa.getPass())) {
				return aa.getMonkey();

			}
		}
		return 0.0;
	}
}

用户类

package ruansan.word.yonghu;

//建立用户类
public class Preson {
	// 成员变量
	private String name;
	private String pass;

	private double monkey = 0;

	public Preson() {

	}

	// 构造方法
	public Preson(String name, String pass, double monkey) {
		this.monkey = monkey;
		this.name = name;
		this.pass = pass;
	}

	// 共有方法
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public double getMonkey() {
		return monkey;
	}

	public void setMonkey(double monkey) {
		this.monkey = monkey;
	}

	public String getPass() {
		return pass;
	}

	public void setPass(String pass) {
		this.pass = pass;
	}

}

创建 存钱 取钱 查询方法

package ruansan.word.zsgc;

import java.sql.*;

import java.util.*;

import ruansan.word.jiemian.DengLuGui;
import ruansan.word.shuju.Array;
import ruansan.word.shuju.JDBC;
import ruansan.word.yonghu.Preson;

//取钱 存钱 查余额具体类
public class Zsgca {
	// 获取登陆的对象
	private Preson a = DengLuGui.ps;

	public Zsgca() {

	}

	// 存钱方法 创建对象锁
	public synchronized String addAdd(double monkey) {
		// 刷新用户的余额 并把要存入的钱存入数据库
		double d = Array.way2() + monkey;
		// 获取sql主键
		String s = a.getName();
		Connection conn = null;
		PreparedStatement pe = null;
		try {
			// 建立连接
			conn = JDBC.getConnection();
			// sql修改语句
			String sql = "update pre set monkey='" + d + "'where name='" + s + "';";
			pe = conn.prepareStatement(sql);
			pe.executeUpdate();

		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			// 关闭连接
			JDBC.release(pe, conn);
		}

		return "存钱成功存入的金额为" + monkey;

	}

	// 取钱方法  创建对象锁
	public synchronized String addDelete(double monkey) {
		// 刷新用户的余额
		double d = Array.way2();
		// 判断余额
		if (d < monkey) {
			return "对不起您的余额不足";
		} else {
			double dd = d - monkey;
			// 获取sql主键
			String s = a.getName();
			Connection conn = null;
			PreparedStatement pe = null;
			try {
				// 建立连接
				conn = JDBC.getConnection();
				// sql修改语句
				String sql = "update pre set monkey='" + dd + "'where name='" + s + "';";
				pe = conn.prepareStatement(sql);
				pe.executeUpdate();
			} catch (Exception e) {
				e.printStackTrace();
			} finally {
				// 关闭连接
				JDBC.release(pe, conn);
			}
			return "取钱成功取钱金额为" + monkey;
		}
	}

	// 查询方法  创建对象锁
	public synchronized String addSelet() {

		// 刷新用户的余额
		double d = Array.way2();

		return "您的余额为" + d;
	}
}

存钱界面

package ruansan.word.zsgcGui;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import ruansan.word.zsgc.Zsgca;
 //存钱窗体
public class AddBut extends JFrame {
	Zsgca z = new Zsgca();
	
	//创建Gui界面所需的窗体 按钮 文本框  标题框
	private JFrame j3;
	private Button ba1, ba2;
	private Label l;
	private TextField tf;
  
	
	public AddBut() {
		//创建窗体
		this.j3 = new JFrame("存钱");
		//初始位置 和窗体大小
		this.setBounds(500, 300, 300, 180);
		//可见
		this.setVisible(true);
		//不使用布局
		this.setLayout(null);
		//关闭按钮
		this.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);
		ba1 = new Button("确定");
		ba1.setBounds(50, 70, 40, 25);
		this.add(ba1);
		ba2 = new Button("返回");
		ba2.setBounds(110, 70, 50, 25);
		this.add(ba2);
		l = new Label("输入存入的金额:");
		l.setBounds(50, 30, 100, 25);
		this.add(l);
		tf = new TextField();
		tf.setBounds(160, 30, 70, 25);
		this.add(tf);
		aEvent();
	}
  
	// 注册监听器
	private void aEvent() {
		// 返回按钮
		ba2.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				//返回不可见
				j3.setVisible(false);
			}
		});
		
		// 确定按钮 调用存钱方法
		ba1.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				//获取文本框的内容 
				String s = tf.getText();
				//转换成数值型
				double monkey = Double.parseDouble(s);
				//调用存钱方法
				String d = z.addAdd(monkey);
				//输出存钱结果
				JOptionPane.showMessageDialog(j3, d);
			}
		});
	}
}

取钱界面

package ruansan.word.zsgcGui;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import ruansan.word.zsgc.Zsgca;

//取钱窗体
public class DeleteBut extends JFrame {
	// 创建Gui界面所需的窗体 按钮 文本框 标题框
	Zsgca z = new Zsgca();
	private JFrame j4;
	private Button bd1, bd2;
	private Label l;
	private TextField tf2;

	public DeleteBut() {
		inti();
	}

	private void inti() {
		// 创建窗体
		j4 = new JFrame("取钱");
		// 初始位置 和窗体大小
		j4.setBounds(900, 300, 300, 180);
		// 可见
		j4.setVisible(true);
		// 不使用布局
		j4.setLayout(null);
		// 关闭按钮
		j4.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);
		bd1 = new Button("确定");
		bd1.setBounds(50, 70, 40, 25);
		j4.add(bd1);
		bd2 = new Button("返回");
		bd2.setBounds(110, 70, 50, 25);
		j4.add(bd2);
		l = new Label("输入取出的金额:");
		l.setBounds(50, 30, 100, 25);
		j4.add(l);
		tf2 = new TextField();
		tf2.setBounds(160, 30, 70, 25);
		j4.add(tf2);
		dEvent();

	}

	// 注册监听器
	private void dEvent() {
		bd2.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				// 返回不可见
				j4.setVisible(false);
			}
		});
		// 确定按钮 调用取钱方法
		bd1.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				// 获取文本框的内容
				String s = tf2.getText();
				// 转换成数值型
				double monkey = Double.parseDouble(s);
				// 调用取钱方法
				String d = z.addDelete(monkey);
				// 输出结果
				JOptionPane.showMessageDialog(j4, d);
			}
		});
	}
}

查询界面

package ruansan.word.zsgcGui;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import ruansan.word.zsgc.Zsgca;

//查询窗体
public class SelectBut {
	// 创建Gui界面所需的窗体 按钮 文本框 标题框
	Zsgca z = new Zsgca();
	private JFrame j5;
	private Button bs1, bs2;
	private TextField tf3;

	public SelectBut() {
		inti();
	}

	private void inti() {
		// 创建窗体
		j5 = new JFrame("查询");
		// 初始位置 和窗体大小
		j5.setBounds(1300, 300, 300, 180);
		// 可见
		j5.setVisible(true);
		// 不使用布局
		j5.setLayout(null);
		// 关闭按钮
		j5.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);
		bs1 = new Button("查询");
		bs1.setBounds(50, 70, 40, 25);
		j5.add(bs1);
		bs2 = new Button("返回");
		bs2.setBounds(110, 70, 50, 25);
		j5.add(bs2);
		tf3 = new TextField();
		tf3.setBounds(50, 30, 150, 30);
		j5.add(tf3);
		sEvent();
	}

	// 注册监听器
	private void sEvent() {
		// 返回按钮
		bs2.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				// 返回不可见
				j5.setVisible(false);
			}
		});
		// 确定按钮
		bs1.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				// 调用查询方法
				String s = z.addSelet();
				// 吧查询的值放入文本框中
				tf3.setText(s);

			}
		});
	}
}
  • 9
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值