JAVA课程设计-银行存取管理系统(所有代码)

更新时间:2023-10-03 19:00:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《JAVA程序设计》 课程设计报告

设计题目:学院名称:专业班级:姓 名:学 号:

银行存取系统设计与实现 信息工程学院 13计本2 王田 1312252233

1

目录

一 需求分析。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3

二 概要设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3

三 详细设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3

四 模块中数据库访问。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3 4.1数据库核对用户名和密码(登录)。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3 4.2向数据库添加一行(注册)。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。4 4.3修改数据库中数据(取款、存款、转账、修改密码码)。。。。。。。。。。。。。。。。。。。。5 4.4查询数据库中数据(显示余额、查询修改)。。。。。。。。。。。。。。。。。。。。。。。。。。。。。5 4.5删除数据库中一行(注销用户)。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。6 五 软件的整体规划。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。7 5.1登录界面。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。7 5.2用户业务界面。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。8 六 数据库设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。8

七 软件测试。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。8 7.1登录界面(已有用户登录不能登录其他用户)。。。。。。。。。。。。。。。。。。。。。。。。。。。9 7.2注册界面(有空文本框有提示)。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。9 7.3用户主页(窗口关闭按钮不可以)。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。10 7.4存款。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。10 7.5取款(余额不足有提示)。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。10 7.6转账(余额不足、卡号不存在都有提示窗口)。。。。。。。。。。。。。。。。。。。。。。。。。。。11 7.7查询修改(卡号不可修改)。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。11 7.8数据库截图。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。11 7.9测试方法。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。12 八 总结。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。12

2

一 需求分析

本软件主要是为用户在银行自助服务的目的设计。主要业务包括注册、取款、存款、转账、修改密码、查询余额和查询修改信息等项目,一个用户只允许操作自己的信息,保证用户账户的安全。 二 概要设计

主要设计可以为用户服务的ATM机客户端,用户可以在登录界面注册自己的卡号,登录后可以进行取款、存款、转账、修改密码、查询余额和查询修改信息的业务,所有操作都会保存数据库。实现银行自助服务的目的。 三 将用户需求模块化

根据概要设计的原则来分析一下本项目的用户需求,并最终转化成用程序语言描述的模块。什么样的需求才是一个模块?模块应该具备如下几个特征。

(1)登录主界面:用类a来实现主界面的显示,用Denlu类中的checkUser(String k,String m)方法链接数据库核对用户名和密码是否正确,如果正确返回1,如果卡号不存在返回2,如果读取数据库失败返回3。

(2)用户注册:用类Zc来实现注册界面的显示,用Denlu类中的zhucezh(String name,String sex,String kahao,String mima,String phone)方法链接数据库,将新用户添加入数据库。

(3)用户主页:用类Zhuye来实现主页界面的显示,主页中包括业务有取款、存款、转账、修改密码、查询余额和查询修改信息,最后有退出按钮(不能使用窗口关闭按钮退出主页,一个用户登录其他用户不能登录)。

1取款:用类Qukuan来实现取款窗口的显示,用Denlu类中的qukuan(long k,long j)方○

法链接数据库操作数据。

2存款:用类Cunkuan来实现存款窗口的显示,用Denlu类中的cunkuan(long k,long j)○

方法链接数据库操作数据。

3转账:○用类Zuanzhang来实现转账窗口的显示,用Denlu类中的zhuanzhang(long k,long j)方法链接数据库操作数据。

4修改密码:用类Xiugai来实现修改密码窗口的显示,用Denlu类中的gaimi(String ○

y,String x)方法链接数据库操作数据。

5查询余额:用类Xianshi来实现查询余额窗口的显示,用Denlu类中的chaxun()方法○

链接数据库操作数据。

6查询修改:用类Chaxun来实现查改窗口的显示,用Denlu类中的chagai(String ○

name,String sex,String phone)方法链接数据库操作数据。

7注销:使用静态方法shanchu(String id)实现,注销时如果余额不为0,提示“取出余○

额在注销”。

四 模块中数据库访问

JAVA课程设计-银行存取管理系统(源代码)

同学们,这里是银行存取管理系统的所有JAVA代码,下载复制粘贴就可以用。具体建包如下图:(按图片建立数据库)

3

数据库截图

所有源代码: 类 :a.java

package zhuce;

import javax.swing.*;

import java.awt.*; import java.awt.event.*;

public class a extends JFrame {

static TextField Kahao=new TextField(\,20);

static JPasswordField Mima=new JPasswordField(\,15); static boolean weiyi=false; public a(){

JFrame f=new JFrame(\银行管理系统\); f.setBounds(200,100,700,600);

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

4

f.setResizable(false);

Container c=getContentPane(); //必须继承JFrame类 c.setLayout(null);

c.setBackground(Color.blue);//不采用任何布局方式 f.add(c);

JLabel label1=new JLabel(\欢迎您进入银行管理系统\); JLabel label2=new JLabel(\银 行 卡 号:\); JLabel label3=new JLabel(\银行卡密码:\);

label1.setFont(new Font(\,Font.BOLD,40)); label1.setForeground(Color.WHITE);

//label1.setBounds(300,200,400,300); //改变标签位置 label2.setFont(new Font(\,Font.BOLD,20)); label2.setForeground(Color.WHITE);

label3.setFont(new Font(\,Font.BOLD,20)); label3.setForeground(Color.WHITE);

JButton button1=new JButton(\登录\); JButton button2=new JButton(\注册\);

BHandler h=new BHandler(); button1.addActionListener(h); button2.addActionListener(h);

JPanel p1=new JPanel(); JPanel p2=new JPanel(); JPanel p3=new JPanel(); JPanel p4=new JPanel();

//改变面板位置 错误 p1.setBackground(Color.blue); p1.add(label1);

p2.setBounds(0,200,700,50); p2.setBackground(Color.blue); p2.add(label2); p2.add(Kahao);

p3.setBounds(0,250,700,50); p3.setBackground(Color.blue); p3.add(label3); p3.add(Mima);

p4.setBounds(0,350,700,70); //改变面板位置 错误 p4.setBackground(Color.blue); p4.add(button1); p4.add(button2);

错误 5

p1.setBounds(0,0,700,200);

c.add(p1); c.add(p2); c.add(p3); c.add(p4);

f.setVisible(true);

}

public static void main(String args[]){ }

a b=new a();

public class BHandler implements ActionListener {

public void actionPerformed (ActionEvent event) {

if(event.getActionCommand()==\注册\) { }

else if(event.getActionCommand()==\登录\) {

Zc zhuce=new Zc(); //zhuce.validate();

if(Denlu.checkUser(Kahao.getText(),Mima.getText())==1&&weiyi==false)

{

weiyi=true;

JOptionPane.showMessageDialog(a.this,\登录成功!\); Zhuye zhu=new Zhuye();

}

else if(weiyi==true) {

JOptionPane.showMessageDialog(a.this,\请先退出已经登录的用户!\);

} else {

JOptionPane.showMessageDialog(a.this,\卡号或者密码不正确!\); }

} else {

6

}

}

}

}

类 :Chaxun.java

package zhuce;

import javax.swing.*;

import zhuce.Zhuanzhang.BHandler;

import java.awt.*; import java.awt.event.*; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement;

public class Chaxun extends JDialog{ TextField name=new TextField(20); TextField sex=new TextField(20); TextField kahao=new TextField(20); TextField phone=new TextField(20); public Chaxun(JFrame m,String s){

super(m,s);

setBounds(350,150,400,400); setVisible(true); setModal(false);

setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); setResizable(false); setLayout(null);

JLabel label1=new JLabel(\客户个人信息查询与修改\); JLabel label2=new JLabel(\姓 名:\); JLabel label3=new JLabel(\性 别:\); JLabel label4=new JLabel(\卡 号:\); JLabel label5=new JLabel(\手机号:\);

label1.setFont(new Font(\,Font.BOLD,20)); label2.setFont(new Font(\,Font.BOLD,13)); label3.setFont(new Font(\,Font.BOLD,13)); label4.setFont(new Font(\,Font.BOLD,13)); label5.setFont(new Font(\,Font.BOLD,13)); kahao.setEditable(false); //卡号不可修改

JButton button1=new JButton(\确定\);

7

JButton button2=new JButton(\取消\); BHandler h=new BHandler(); button1.addActionListener(h); button2.addActionListener(h); JPanel p1=new JPanel(); JPanel p2=new JPanel(); JPanel p3=new JPanel(); JPanel p4=new JPanel(); JPanel p5=new JPanel(); JPanel p6=new JPanel();

p1.setBounds(0,0,400,70);

add(p1); add(p2); add(p3); add(p4); add(p5);

p1.add(label1);

p2.setBounds(0,70,400,50); p2.add(label2); p2.add(name);

p3.setBounds(0,120,400,50); p3.add(label3); p3.add(sex);

p4.setBounds(0,170,400,50); p4.add(label4); p4.add(kahao);

p5.setBounds(0,220,400,50); p5.add(label5); p5.add(phone);

p6.setBounds(0,270,400,70); p6.add(button1); p6.add(button2);

add(p6); try{

//1.注册驱动

String driverClassName = \;

Class.forName(\); //2.连接数据库 Connection conn =

DriverManager.getConnection(\,\,\);

Statement stmt=conn.createStatement();

8

ResultSet rs=stmt.executeQuery(\UserID='\+Integer.parseInt(a.Kahao.getText())+\);

if(rs.next()) {

name.setText(rs.getString(\)); sex.setText(rs.getString(\)); kahao.setText(rs.getString(\)); phone.setText(rs.getString(\)); rs.close(); stmt.close(); conn.close(); }

}

catch(Exception sqle){

System.err.println(sqle);

JOptionPane.showMessageDialog(Zhuye.z,\系统故障,请稍后在试!\);

public class BHandler implements ActionListener {

public void actionPerformed (ActionEvent event) {

System.out.println(x); if(x==1) int x;

if(event.getActionCommand()==\确定\) {

}

setVisible(true); }

x=Denlu.chagai(name.getText(),sex.getText(),phone.getText());

{ JOptionPane.showMessageDialog(Zhuye.z,\修改成功!\);dispose();}

else

{ JOptionPane.showMessageDialog(Zhuye.z,\修改出错!\);dispose();}

}

}

}

else if(event.getActionCommand()==\取消\) dispose();

9

}

类:Cunkuan.java

package zhuce;

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class Cunkuan extends JDialog { TextField jine=new TextField(10); public Cunkuan(JFrame m,String s){ super(m,s);

setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE); setBounds(400,250,400,200); setVisible(true); setResizable(false); setLayout(null);

JLabel label1=new JLabel(\请输入存款的金额\ label1.setFont(new Font(\ JLabel label2=new JLabel(\金额:\

label2.setFont(new Font(\

JButton button1=new JButton(\确认\ BHandler h=new BHandler(); button1.addActionListener(h);

JPanel p1=new JPanel(); JPanel p2=new JPanel();

p1.setBounds(0,0,200,70); p1.add(label1);

p2.setBounds(25,70,400,50); p2.add(label2); p2.add(jine); p2.add(button1);

add(p1); add(p2);

setVisible(true); }

public class BHandler implements ActionListener {

10

}

public static int cunkuan(long k,long j) {

try{

//1.注册驱动

String driverClassName = \;

Class.forName(\); //2.连接数据库 Connection conn =

DriverManager.getConnection(\,\,\);

Statement stmt=conn.createStatement();

ResultSet rs=stmt.executeQuery(\UserID='\+k+\);

if(rs.next())

{ j=rs.getInt(\)+j;

stmt.executeUpdate(\+j+\UserID='\+k+\); rs.close(); stmt.close(); conn.close(); return 1; }

}

catch(Exception sqle){

System.err.println(sqle); return 2; } }

public static int zhuanzhang(long k,long j) {

long i = 0; long p = 0;

i=Denlu.cunkuan(k, 0); if(i==1) {

p=Denlu.qukuan(Integer.parseInt(a.Kahao.getText()), j); if(p==1) { return 0;

16

try{

//1.注册驱动

String driverClassName = \;

Class.forName(\); //2.连接数据库 Connection conn =

DriverManager.getConnection(\,\,\);

Statement stmt=conn.createStatement();

ResultSet rs=stmt.executeQuery(\UserID='\+k+\);

if(rs.next())

{ j=rs.getInt(\)+j;

stmt.executeUpdate(\+j+\UserID='\+k+\); rs.close(); stmt.close(); conn.close(); return 1; }

}

public static int checkUser(String k,String m) {

try{

//1.注册驱动

String driverClassName = \; return 3;

}

catch(Exception sqle){

System.err.println(sqle); return 4; }

}

}

return 2;

Class.forName(\); //2.连接数据库 Connection conn =

DriverManager.getConnection(\,\,

17

\); String temp_ID=k; String temp_pass=m;

String sql_user=\

UserID=? and UserPW=?\;

PreparedStatement pst=null;

pst=conn.prepareStatement(sql_user);

pst.setString (1,temp_ID); //为绑定变量赋值

pst.setString (2,temp_pass); ResultSet rst=pst.executeQuery();

if(rst.next()) {

rst.close(); pst.close(); conn.close(); return 1; } else return 0; }

catch(Exception sqle){

System.err.println(sqle); return 0; } }

}

类:Qukuan.java

package zhuce;

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class Qukuan extends JDialog { TextField jine=new TextField(10); public Qukuan(JFrame m,String s){ super(m,s);

setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE); setBounds(400,250,400,200); setVisible(true); setResizable(false); setLayout(null);

18

JLabel label1=new JLabel(\请输入取款的金额\ label1.setFont(new Font(\ JLabel label2=new JLabel(\金额:\

label2.setFont(new Font(\

JButton button1=new JButton(\确认\ BHandler h=new BHandler(); button1.addActionListener(h);

JPanel p1=new JPanel(); JPanel p2=new JPanel();

p1.setBounds(0,0,200,70); p1.add(label1);

p2.setBounds(25,70,400,50); p2.add(label2); p2.add(jine); p2.add(button1);

add(p1); add(p2);

setVisible(true); }

public class BHandler implements ActionListener { public void actionPerformed (ActionEvent event) { if(!(jine.getText().equals(\ {

int i=0;

i=Denlu.qukuan(Integer.parseInt(a.Kahao.getText()),Integer.parseInt(jine.getText()));

if(i==1) {

JOptionPane.showMessageDialog(Zhuye.z,\成功取款\元!\ dispose(); }

else if(i==2)

JOptionPane.showMessageDialog(Zhuye.z,\您的余额不足!\ else {

19

JOptionPane.showMessageDialog(Zhuye.z,\系统故障,请稍后在试!\ dispose(); } } else

JOptionPane.showMessageDialog(Zhuye.z,\请输入取款金额!\

}

} }

类:Xianshi.java

package zhuce;

import javax.swing.*;

import zhuce.Chaxun.BHandler;

import java.awt.*;

import java.awt.event.*;

public class Xianshi extends JDialog{ TextField yue=new TextField(10); long i=0;

public Xianshi(JFrame m,String s){ super(m,s);

setBounds(400,250,400,150); setVisible(true); setModal(false);

setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); setResizable(false); setLayout(null);

JLabel label1=new JLabel(\您的余额为:\ label1.setFont(new Font(\宋体\ JLabel label2=new JLabel(\元。\

label2.setFont(new Font(\宋体\

yue.setEditable(false);

JButton button1=new JButton(\确认\ BHandler h=new BHandler(); button1.addActionListener(h);

JPanel p1=new JPanel(); JPanel p2=new JPanel(); p1.setBounds(0,30,400,50);

20

转账(余额不足、卡号不存在都有提示窗口)

查询修改(卡号不可修改)

数据库截图

36

测试的方法

软件测试的方法和技术是多种多样的,网路上也提供了很多免费的工具。对于软件测试技术,可以从不同的角度加以划分。

(1)从是否需要执行被测软件的角度,可分为静态测试和动态测试。

(2)从是否针对系统的内部结构和具体实现算法的角度来看,可分为白盒测试和黑盒测试。

下面具体介绍黑盒测试和白盒测试。

(1)黑盒测试。又叫功能测试,由测试人员在不知道程序如何实现的情况下,输入功能需要的数据,查看输出结果的正确性。所谓“黑盒”,其实就是把程序看成是一个完全密封的盒子,测试人员不考虑程序的内部构造,只是按照需求说明,进行数据的录入操作,并查看结果是否满足需求要完成的功能。

“黑盒”法着眼于程序外部结构,不考虑内部运算,针对界面和功能进行测试。“黑盒”法是穷举测试,只有把所有可能的输入都进行测试,才能查处程序中所有的错误。实际上测试情况有无穷多个,测试人员不仅要测试合法的输入,还要对那些不合法的输入进行测试。

(2)白盒测试。又叫逻辑结构测试。测试人员需要了解功能的内部构造,对所有逻辑路径都进行测试。

“白盒”法是穷举路径测试。测试人员必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。即使每条路径都测试了,仍然可能有错误。

第一,穷举路径测试无法查出程序违反了设计规范,即程序本身是个错误的程序。 第二,穷举路径测试查不出程序中因遗漏路径而出错的情况。 第三,穷举路径测试可能发现不了输入数据的错误。

******************************************************************************/ 八 总结 此次JAVA课程设计给了我很大的启示,以前没有用JAVA自己编辑过系统,第一次遍还是很茫然的。最后到网上查看了别人编写的代码,脑海中才有了系统的雏形。然后自己设计流程图将复杂的系统分为几个模块,一个一个解决感觉还是挺轻松的。在此过程中图形界面比较好做,但是访问数据库时经常出现自己想不到的问题,语法、语义错误还是经常有的,最后在网络的帮助下解决了所有问题。

本次java课程设计主要侧重在对数据库的添加、删除、修改、查看等最基本的操作,掌握这些最基本的设计思想是很重要的,能够帮助我们开发更加复杂的软件提供依据和基础,所以看似简单的课程设计,却是对我们设计软件的一次考验,一次磨练,所以我一直都保持着很认真地精神来进行设计的,在今后的学习里,一定要更加努力,学好这门编程语言。

37

p1.add(label1); p1.add(yue); p1.add(label2);

p2.setBounds(300,80,100,50); p2.add(button1); add(p1); add(p2);

i=Denlu.chaxun(); if(i>=0) {

yue.setText(String.valueOf(i)); } else {

JOptionPane.showMessageDialog(Zhuye.z,\系统故障,请稍后在试!\ }

setVisible(true); }

public class BHandler implements ActionListener { public void actionPerformed (ActionEvent event) { dispose(); } } }

类:Xiugai

package zhuce;

import javax.swing.*;

import zhuce.Zhuanzhang.BHandler;

import java.awt.*;

import java.awt.event.*;

public class Xiugai extends JDialog{ TextField ymima=new TextField(20); TextField xmima=new TextField(20); public Xiugai(JFrame m,String s){ super(m,s);

setBounds(400,250,400,300); setVisible(true); setModal(false);

21

setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); setResizable(false);

setLayout(null); //不用任何布局 JLabel label1=new JLabel(\修改密码\

label1.setFont(new Font(\宋体\ JLabel label2=new JLabel(\原密码:\

label2.setFont(new Font(\宋体\ JLabel label3=new JLabel(\新密码:\

label3.setFont(new Font(\宋体\

JButton button1=new JButton(\确认\ JButton button2=new JButton(\取消\ BHandler h=new BHandler(); button1.addActionListener(h); button2.addActionListener(h);

JPanel p1=new JPanel(); JPanel p2=new JPanel(); JPanel p3=new JPanel(); JPanel p4=new JPanel(); p1.setBounds(0,0,250,60); p1.add(label1);

p2.setBounds(25,60,300,40); p2.add(label2); p2.add(ymima);

p3.setBounds(25,100,300,60); p3.add(label3); p3.add(xmima);

p4.setBounds(35,160,300,40); p4.add(button1); p4.add(button2); add(p1); add(p2); add(p3); add(p4);

setVisible(true); }

public class BHandler implements ActionListener { public void actionPerformed (ActionEvent event) {

int i;

if(event.getActionCommand()==\确认

\ {

22

i=Denlu.gaimi(ymima.getText(), xmima.getText()); if(i==1) {

JOptionPane.showMessageDialog(Zhuye.z,\修改密码成功,请重新登录!\

dispose(); Zhuye.close(); }

else if(i==2)

JOptionPane.showMessageDialog(Zhuye.z,\原密码错误!\ else {

JOptionPane.showMessageDialog(Zhuye.z,\系统故障!\ dispose(); } }

else if(event.getActionCommand()==\确认

\

JOptionPane.showMessageDialog(Zhuye.z,\请补全信息!\ else

dispose(); } } }

类:Zc.java

package zhuce;

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class Zc extends JFrame{

JFrame z=new JFrame(\银行管理系统\ TextField name=new TextField(20); TextField sex=new TextField(20); TextField kahao=new TextField(20); TextField mima=new TextField(20); TextField phone=new TextField(20); public Zc(){

23

Zoc(); }

public void Zoc(){

z.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE); z.setBounds(210,110,700,600); z.setVisible(true); z.setResizable(false);

Container c=getContentPane(); //必须继承JFrame类 c.setLayout(null);

c.setBackground(Color.blue);//不采用任何布局方式 z.add(c);

JLabel label1=new JLabel(\客户注册\JLabel label2=new JLabel(\姓 名:\JLabel label3=new JLabel(\性 别:\JLabel label4=new JLabel(\卡 号:\JLabel label5=new JLabel(\密 码:\JLabel label6=new JLabel(\手机号:\

label1.setFont(new Font(\label1.setForeground(Color.WHITE);

label2.setFont(new Font(\label2.setForeground(Color.WHITE);

label3.setFont(new Font(\label3.setForeground(Color.WHITE);

label4.setFont(new Font(\label4.setForeground(Color.WHITE);

label5.setFont(new Font(\label5.setForeground(Color.WHITE);

label6.setFont(new Font(\label6.setForeground(Color.WHITE);

ImageIcon img1=new ImageIcon(\ImageIcon img2=new ImageIcon(\JButton button1=new JButton(\button1.setBackground(Color.blue); JButton button2=new JButton(\

24

button2.setBackground(Color.blue); BHandler h=new BHandler(); button1.addActionListener(h); button2.addActionListener(h);

JPanel p1=new JPanel(); JPanel p2=new JPanel(); JPanel p3=new JPanel(); JPanel p4=new JPanel(); JPanel p5=new JPanel(); JPanel p6=new JPanel(); JPanel p7=new JPanel();

p1.setBackground(Color.blue); p1.add(label1);

p2.setBounds(0,70,700,50); p2.setBackground(Color.blue); p2.add(label2); p2.add(name);

p3.setBounds(0,120,700,50); p3.setBackground(Color.blue); p3.add(label3); p3.add(sex);

p4.setBounds(0,170,700,50); p4.setBackground(Color.blue); p4.add(label4); p4.add(kahao);

p5.setBounds(0,220,700,50); p5.setBackground(Color.blue); p5.add(label5); p5.add(mima);

p6.setBounds(0,270,700,70); p6.setBackground(Color.blue); p6.add(label6); p6.add(phone);

p7.setBounds(0,340,700,50); //p7.setBackground(Color.blue); p7.add(button1); p7.add(button2); c.add(p1); c.add(p2); c.add(p3); c.add(p4);

改变面板位置 错误 改变面板位置 错误 25

p1.setBounds(0,0,700,70); //

c.add(p5); c.add(p6); c.add(p7);

z.setVisible(true); }

private class BHandler implements ActionListener { public void actionPerformed (ActionEvent event) { int i;

String s1=name.getText(); String s2=sex.getText(); String s3=kahao.getText(); String s4=mima.getText(); String s5=phone.getText(); System.out.println(s1);

if(event.getActionCommand()==\ z.dispose();

else if((s1.equals(\s4.equals(\ {

JOptionPane.showMessageDialog(Zc.this,\请补全信息!\ } else {

i=Denlu.zhucezh(s1,s2,s3,s4,s5); if(i==1) {

JOptionPane.showMessageDialog(Zc.this,\注册成功!\ z.dispose(); } else

JOptionPane.showMessageDialog(Zc.this,\卡号已存在!\ } }

} }

类:Zhuanzhang.java

package zhuce;

26

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class Zhuanzhang extends JDialog { TextField kahao=new TextField(20); TextField jine=new TextField(10); public Zhuanzhang(JFrame m,String s){ super(m,s);

setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE); setBounds(400,250,400,300); setVisible(true); setResizable(false); setModal(false);

setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); setLayout(null);

JLabel label1=new JLabel(\请输入转账信息\ label1.setFont(new Font(\宋体\ JLabel label2=new JLabel(\收款人卡号:\

label2.setFont(new Font(\宋体\ JLabel label3=new JLabel(\转 账 金 额:\ label3.setFont(new Font(\宋体\

JButton button1=new JButton(\确认\ BHandler h=new BHandler(); button1.addActionListener(h);

JPanel p1=new JPanel(); JPanel p2=new JPanel(); JPanel p3=new JPanel();

p1.setBounds(0,0,250,60); p1.add(label1);

p2.setBounds(25,60,375,50); p2.add(label2); p2.add(kahao);

p3.setBounds(14,110,400,50); p3.add(label3); p3.add(jine); p3.add(button1);

add(p1); add(p2);

27

add(p3); }

public class BHandler implements ActionListener { public void actionPerformed (ActionEvent event) {

if(!(jine.getText().equals(\ {

int i=0;

i=Denlu.zhuanzhang(Integer.parseInt(kahao.getText()),Integer.parseInt(jine.getText())); if(i==1) {

JOptionPane.showMessageDialog(Zhuye.z,\成功转账\元!\ dispose(); }

else if(i==2)

JOptionPane.showMessageDialog(Zhuye.z,\余额不足!\

else if(i==3)

JOptionPane.showMessageDialog(Zhuye.z,\您输入的银行卡号不存在!\ else {

JOptionPane.showMessageDialog(Zhuye.z,\系统故障!\ dispose(); } }

else if((jine.getText().equals(\ JOptionPane.showMessageDialog(Zhuye.z,\请补全信息!\ } } }

类:Zhuye.java

package zhuce;

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class Zhuye extends JFrame {

static JFrame z=new JFrame(\银行管理系统\ public Zhuye(){

28

z.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE); z.setBounds(200,100,700,600); z.setVisible(true); z.setResizable(false);

z.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);//窗口不能关 Container c=getContentPane(); c.setLayout(null);

c.setBackground(Color.blue); z.add(c);

JLabel label1=new JLabel(\个人账户\

JLabel label2=new JLabel(\请选择您的业务\ label1.setFont(new Font(\ label1.setForeground(Color.WHITE);

label2.setFont(new Font(\ label2.setForeground(Color.WHITE);

JButton button1=new JButton(\取 款\ JButton button2=new JButton(\修改密码\ JButton button3=new JButton(\存 款\ JButton button4=new JButton(\显示余额\ JButton button5=new JButton(\转 账\ JButton button6=new JButton(\查询修改\ JButton button7=new JButton(\退 出\ JButton button8=new JButton(\注 销\

BHandler h=new BHandler(); button1.addActionListener(h); button2.addActionListener(h); button3.addActionListener(h); button4.addActionListener(h); button5.addActionListener(h); button6.addActionListener(h); button7.addActionListener(h); button8.addActionListener(h);

JPanel p1=new JPanel(); JPanel p2=new JPanel(); JPanel p3=new JPanel(); JPanel p4=new JPanel(); JPanel p5=new JPanel(); JPanel p6=new JPanel(); JPanel p7=new JPanel();

29

JPanel p8=new JPanel(); JPanel p9=new JPanel();

p1.setBounds(0,0,700,70); p1.setBackground(Color.blue); p1.add(label1);

p2.setBounds(0,70,350,100); p2.setBackground(Color.blue); p2.add(label2);

p3.setBounds(0,170,200,80); p3.setBackground(Color.blue); p3.add(button1);

p4.setBounds(500,170,200,80); p4.setBackground(Color.blue); p4.add(button2);

p5.setBounds(0,250,200,80); p5.setBackground(Color.blue); p5.add(button3);

p6.setBounds(500,250,200,80); p6.setBackground(Color.blue); p6.add(button4);

p7.setBounds(0,330,200,80); p7.setBackground(Color.blue); p7.add(button5);

p8.setBounds(500,330,200,150); p8.setBackground(Color.blue); p8.add(button6);

p9.setBounds(0,480,700,50); p9.setBackground(Color.blue); p9.add(button7); p9.add(button8); c.add(p1); c.add(p2); c.add(p3); c.add(p4); c.add(p5); c.add(p6); c.add(p7); c.add(p8); c.add(p9);

z.setVisible(true);

}

public static void close(){ a.weiyi=false;

30

z.dispose(); }

public class BHandler implements ActionListener {

public void actionPerformed (ActionEvent event) { if(event.getActionCommand()==\取 款\ Qukuan qu=new Qukuan(z,\取款业务\

else if(event.getActionCommand()==\修改密码\

Xiugai xiugai=new Xiugai(z,\修改密码\

else if(event.getActionCommand()==\存 款\

Cunkuan cun=new Cunkuan(z,\存款业务\

else if(event.getActionCommand()==\显示余额\Xianshi xianshi=new Xianshi(z,\显示余额\else if(event.getActionCommand()==\转 账\

Zhuanzhang zhuanzhang=new Zhuanzhang(z,\转账业务\

else if(event.getActionCommand()==\查询修改\

Chaxun chaxun=new Chaxun(z,\查询修改\

else if(event.getActionCommand()==\退 出\

{a.weiyi=false; z.dispose();}

else if(event.getActionCommand()==\注 销\

{

int b=Denlu.shanchu(a.Kahao.getText()); if(b==1) {

a.weiyi=false;

JOptionPane.showMessageDialog(Zhuye.this,\注销成功!\ z.dispose(); }

else if(b==2)

JOptionPane.showMessageDialog(Zhuye.this,\请取出剩余的钱在注销!\

else

JOptionPane.showMessageDialog(Zhuye.this,\系统错误!\ } } } }

有什么不懂的就联系我 QQ 1161451497

五 软件的整体规划

登录界面

31

用户业务界面

32

六 数据库设计 数据库名称:ren

表名:tablename 用户表(tablename) 字段名 UserID Username UserPW Userphone Usersex Useryue 类型 Varchar(20) Varchar(20) Varchar(20) Varchar(20) Varchar(10) Int 备注 用户卡号 用户名 用户密码 联系方式 性别 余额 属性 Key Not null Not null Not null Not null Not null

七 软件测试 测试数据截图

/******************************************************************************

登录界面(已有用户登录不能登录其他用户)

33

注册界面(有空文本框有提示)

用户主页(窗口关闭按钮不可以)

34

存款

取款(余额不足有提示)

35

本文来源:https://www.bwwdw.com/article/xbwd.html

Top