银行存取系统设计与实现总体设计_第1页
银行存取系统设计与实现总体设计_第2页
银行存取系统设计与实现总体设计_第3页
银行存取系统设计与实现总体设计_第4页
银行存取系统设计与实现总体设计_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课 程 设 计 说 明 书 课程名称: JAVA 设计题目: 银行存取系统设计与实现 学 院: 计算机科学与信息工程学院 学号姓名:李培伦马真真杨佩佩 140310101 赵悦 专业班级: 软件工程 指导教师: 冯贺 2016年 12月 23日0课 程 设 计 任 务 书设计题目银行存取系统设计与实现 学生姓名李培伦马真真赵悦杨佩佩所在学院计算机科学与信息工程学院专业、年级、班14级软件工程设计要求:软件的功能包括:取款时客户的身份密码验证、取款的数值限定、客户的余额查询、客户的存款信息;学生应完成的工作:a在运行此

2、程序时,如果取款,首先进行客户的密码的输入。如果错误,提示要重新输入,没有输入次数的限制。如果正确,则进行系统的取款模块,客户进行应答。b在客户进入到主界面时,查询时,也需要对客户身份通过密码验证,以保障客户的帐号。c当客户所取数目大于当前余额时,系统会提示错误。因为该系统时对银行存取款业务系统的模拟,所以有些银行业务不能本系统进行。参考文献阅读:1 郭宁. 软件工程使用教程. 北京:人民邮电出版社,20112 韩万江,等. 软件项目管理案例教程.北京:机械工业出版社,20053 何志勇等.软件工程基于项目的面向对象研究方法. 北京:机械工业出版社,20094 萨师煊 王珊 数据库系统概论 高

3、等教育出版社 5 刘中兵 王者归老java web 电子工业出版社 2011工作计划:2016.12.12-2016.12.18 第一周:获取软件需求,并完善软件设计文档2016.12.19-2016.12.22 第二周:进一步完善软件设计,并进行软件设计和软件开发任务下达日期: 2016年 12月 12 日 任务完成日期: 2016年 12月 23 日指导教师(签名): 学生(签名): 银行存取系统设计与实现摘 要: 随着时代的发展,计算机在各行各业中得到广泛的应用,尤其在工作大,重复劳动的领域中,计算机的自动化管理能力更是得到发挥。该系统涉及的简单银行存取款模拟系统是以Java语言为开发语

4、言,能够解决用行对客户信息管理等一系列问题,实现客户开设账户、存款、取款、明细查询等操作。经过测试表明该系统运行稳定且各项功能都能正确运行,基本达到预期的要求。 关键词:软件工程 存取 java 数据库1目 录1.设计背景51.1需求背景51.2项目背景51.3建设目标51.4软硬件环境51.5设计约束与要求62.设计方案62.1系统设计思路62.2系统框架设计62.3.系统技术需求62.4业务流程分析73.方案实施73.1平台与技术路线83.3数据库设计83.4代码设计与项目搭建94.结果与结论 114.1部分功能演示114.2.设计总结 175.收获与致谢 176.参考文献 187.附件1

5、81. 设计背景1.1需求背景随着信息技术的发展,办公自动化的普及,如何快速,高效,便捷的为银行用户服务、管理用户的账户受到了高度的关注;因此为了解决这个问题我们研究这个系统以满足银行需求! 在传统的银行账户管理中,其过程往往是很复杂的,繁琐的,账户管理以入账和出账两项内容为核心,在此过程中又需要经过若干道手续,因为整个过程都需要手工操作,效率十分低下,且由于他们之间关联复杂,统计和查询的方式各不相同,且会出现信息的重复传递问题,因此该过程需要进行信息化,以利用计算机进行账目管理。本系统的名字是银行存取系统。 1.2项目背景a. 该项目为软件工程课程设计,由本小组合作开发;b该软件系统目前市面

6、上已有类似产品,可将他们作为一部分进行需求分析,以 求最终得到的文档更为完善。1.3建设目标本系统目的是解决学校和学生的成绩查询和课程选择功能,能够按照学生的成绩进行统计、排名等工作,为学生和校方管理员提供尽可能的方便。1.4软硬件环境软件环境:本系统可以运行于具有JDK环境的操作系统,包括window操作系统及Linux操作系统。系统采用java语言编写。硬件环境:本系统对硬件没有特别的需求,普通用户的个人计算机上都可以运行本软件系统。1.5设计约束与要求系统设计语言:java编码要求:系统代码编写要遵从统一的编码模式。2.设计方案2.1系统设计思路本系统主要完成个银行存取系统功能,包括:注

7、册,登录,存取,转账,查改,注销账号,功能。用户登录时,程序要从已有的用户系统资料数据表中读出用户名和密码,并检验该密码与用户输入的密码是否匹配,从而转到相应权限的页面。也可现行注册在登录。2.2系统框架设计本系统主要分为以下几个功能模块:登录模块、注册模块、客户端端模块这样三大部分。其中客户端中含有:用户查询更改信息、转账、存款、转账、注销,修改密码,显示余额 ;2.3系统技术需求稳定性:本系统为银行存取管理系统,多为查询、修改、删除、添加数据等操作,要求数据的稳定性好。可靠性:个人财务信息十分重要,要求系统数据能够较好存储,数据尽量最少出现错误。安全性:登录系统需要输入密码,可保证个人信息

8、安全。 开始2.4业务流程分析用户选择“登录”或“注册”注册成功 注册登录密码是否正确输入用户名和密码用户是否存在 用户不存在 N Y 密码错误 N 进入主页面 Y 结束 3. 方案实施3.1平台与技术路线本系统开发语言为java语言,平台选择具有JDK环境的操作系统,数据库选择MySQL数据库简单方便。3.2功能模块架构本系统主要为用户设计,未设置管理员,用户可自行注册,以及进行存,取,查改,转账,注册,注销,显示余额,修改密码操作。 用户 显示余额修改密码查改注销注册取款转账存款3.3数据库设计本系统数据库采用mysql,主要建了一张用户信息表,其中包括用户的账号、密码、姓名、性别、手机号

9、、账户余额,其中用户账号为主键。3.3代码设计与项目搭建(1)登录主界面:定义类A来实现主界面的显示,用SignIn类中的checkUser(String k,String m)方法链接数据库核对用户名和密码是否正确,如果正确返回1,如果卡号不存在返回2,如果读取数据库失败返回3。(2)用户注册:定义类Register来实现注册界面的显示,定义SignIn类,用中的zhucezh(String name,String sex,String kahao,String mima,String phone)方法链接数据库,将新用户添加入数据库。(3)用户主页:定义类APan来实现主页界面的显示,主页

10、中包括业务有取款、存款、转账、修改密码、查询余额和查询修改信息,最后有退出按钮(不能使用窗口关闭按钮退出主页,一个用户登录其他用户不能登录)。取款:定义类Withdraw来实现取款窗口的显示,用SignIn类中的qukuan(long k,long j)方法链接数据库操作数据。存款:定义类Deposit来实现存款窗口的显示,用SignIn类中的cunkuan(long k,long j)方法链接数据库操作数据。转账:定义类Transfer来实现转账窗口的显示,用SignIn类中的zhuanzhang(long k,long j)方法链接数据库操作数据。修改密码:定义类Modify来实现修改密码

11、窗口的显示,用SignIn类中的gaimi(String y,String x)方法链接数据库操作数据。查询余额:定义类Display来实现查询余额窗口的显示,用SignIn类中的chaxun()方法链接数据库操作数据。查询修改:定义类Query来实现查改窗口的显示,用SignIn类中的chagai(String name,String sex,String phone)方法链接数据库操作数据。注销:使用静态方法shanchu(String id)实现,注销时如果余额不为0,提示“取出余额在注销”。 4. 结果与结论4.1部分功能演示登录界面(已有用户登录不能登录其他用户) 注册界面(有空文本

12、框有提示) 登录成功界面(有空文本框有提示) 存款取款(余额不足有提示)转账(余额不足、卡号不存在都有提示窗口)查询修改(卡号不可修改)4.2设计总结该系统的主要功能模仿自动取款机,用户可自行操作自己的信息,但未设置管理信息的管理员。在个人信息如此重要的年代,这样做不是很妥当。系统本身还存在有很多的缺陷,在今后的使用过程中我们团队会再接再厉,努力使我们自己开发的系统更加稳定健壮。5. 收获与致谢通过这次课程设计,我们小组成员都收益颇丰。首先十分感谢高老师在这半年里悉心教导,结合结合自身经历给我们讲解了许多软件公司里边的实例以及毕业后进入公司后的注意事项,这对我们同学来说是一笔巨大的财富。与此期

13、间,我们在短时间内学习到了很多东西,包括软件从无到有的过程以及数据库的使用,这同样要感谢学校给我们提供的舒适设计环境,良好的学习环境,以及优秀的教师资源以及网络上的资源。在这段时间,让我们学到了很多东西,不仅使我在理论上对软件行业有了全新的认识,在实践能力上也得到了提高,真正地做到了学以致用,对我来说受益非浅。除此以外,我还学会了如何更好地与别人沟通,如何更好地去陈述自己的观点,如何说服别人认同自己的观点。第一次亲身感受到理论与实际的相结合,让我大开眼界。也是对以前所学知识的一个初审吧!这次课程设计非常的正规,对我们以后毕业论文的撰写以及日后的工作都有很大帮助。作为一名大三的学生,对计算机工程

14、有了一定的认识,但深知自己才疏学浅,希望以后可以通过自己的努力取得自身更大的提高。 6. 参考文献1郑人杰,软件工程概论(第2版).机械工业出版社,20162 刘小洪,邹鹏. 商业银行客户关系价值管理模型研究J.管理科学,2005,18(3):57-603 郭宁. 软件工程使用教程. 北京:人民邮电出版社,20114 韩万江,等. 软件项目管理案例教程.北京:机械工业出版社,20055 何志勇等.软件工程基于项目的面向对象研究方法. 北京:机械工业出版社,20096 萨师煊 王珊 数据库系统概论 高等教育出版社7. 附件1. APan.javaPackage hehe;import javax

15、.swing.*;import java.awt.*;import java.awt.event.*;public class APan extends JFrame static TextField Kahao=new TextField(20);static JPasswordField Mima=new JPasswordField(15);static boolean weiyi=false;public APan()JFrame f=new JFrame("银行管理系统");f.setBounds(200,100,700,600);f.setDefaultClos

16、eOperation(JFrame.EXIT_ON_CLOSE);f.setResizable(false); Container c=getContentPane(); /必须继承JFrame类c.setLayout(null); c.setBackground(Color.gray);/不采用任何布局方式f.add(c);JLabel label1=new JLabel("欢迎您进入银行管理系统"); JLabel label2=new JLabel("银 行 卡 号:"); JLabel label3=new JLabel("银行卡密码:

17、"); label1.setFont(new Font("Serif",Font.BOLD,40);label1.setForeground(Color.WHITE);/label1.setBounds(300,200,400,300); /改变标签位置 错误label2.setFont(new Font("Serif",Font.BOLD,20);label2.setForeground(Color.WHITE);label3.setFont(new Font("Serif",Font.BOLD,20);label3.se

18、tForeground(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.setB

19、ounds(0,0,700,200); /改变面板位置 错误p1.setBackground(Color.GRAY);p1.add(label1);p2.setBounds(0,200,700,50); p2.setBackground(Color.GRAY);p2.add(label2);p2.add(Kahao);p3.setBounds(0,250,700,50); p3.setBackground(Color.gray);p3.add(label3);p3.add(Mima);p4.setBounds(0,350,700,70); /改变面板位置 错误p4.setBackground(

20、Color.GRAY);p4.add(button1);p4.add(button2);c.add(p1);c.add(p2);c.add(p3);c.add(p4);f.setVisible(true); public static void main(String args)APan b=new APan();public class BHandler implements ActionListener public void actionPerformed (ActionEvent event) if(event.getActionCommand()="注册")Reg

21、ister zhuce=new Register();/zhuce.validate();else if(event.getActionCommand()="登录") if(SignIn.checkUser(Kahao.getText(),Mima.getText()=1&&weiyi=false) weiyi=true; JOptionPane.showMessageDialog(APan.this,"登录成功!");Homepage zhu=new Homepage(); else if(weiyi=true) JOptionPane

22、.showMessageDialog(APan.this,"请先退出已经登录的用户!"); else JOptionPane.showMessageDialog(APan.this,"密码错误,请重新输入!"); else 2. Deposit.javapackage hehe;import javax.swing.*;import java.awt.*;import java.awt.event.*;public class Deposit extends JDialog TextField jine=new TextField(10);public

23、Deposit(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("Serif",Font.BOLD,20);JLabel label2=new JLa

24、bel("金额:");label2.setFont(new Font("Serif",Font.BOLD,13);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(

25、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=SignIn.cunkuan(Integer.parseInt(APan.Kahao.getText(),Integer.parseInt(jine.getText()

26、;if(i=1)JOptionPane.showMessageDialog(Homepage.z,"成功存款"+jine.getText()+"元!");dispose();elseJOptionPane.showMessageDialog(Homepage.z,"Cunkuan系统故障,请稍后在试!");elseJOptionPane.showMessageDialog(Homepage.z,"请输入存款金额!");3. Disply.javapackage hehe;import javax.swing.*;i

27、mport hehe.Query.BHandler;import java.awt.*;import java.awt.event.*;public class Disply extends JDialogTextField yue=new TextField(10);long i=0;public Disply(JFrame m,String s)super(m,s);setBounds(400,250,400,150); setVisible(true); setModal(false); setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE)

28、; setResizable(false); setLayout(null); JLabel label1=new JLabel("您的余额为:"); label1.setFont(new Font("宋体",Font.BOLD,13); JLabel label2=new JLabel("元。"); label2.setFont(new Font("宋体",Font.BOLD,13); yue.setEditable(false); JButton button1=new JButton("确认&quo

29、t;);BHandler h=new BHandler();button1.addActionListener(h);JPanel p1=new JPanel(); JPanel p2=new JPanel(); p1.setBounds(0,30,400,50);p1.add(label1);p1.add(yue);p1.add(label2);p2.setBounds(300,80,100,50);p2.add(button1);add(p1);add(p2); i=SignIn.chaxun();if(i>=0)yue.setText(String.valueOf(i);elseJ

30、OptionPane.showMessageDialog(Homepage.z,"Xianshi系统故障,请稍后在试!"); setVisible(true); public class BHandler implements ActionListener public void actionPerformed (ActionEvent event) dispose();4. Homepage.javapackage hehe;import javax.swing.*;import java.awt.*;import java.awt.event.*;public clas

31、s Homepage extends JFrame static JFrame z=new JFrame("银行管理系统"); public Homepage() 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=

32、getContentPane(); c.setLayout(null); c.setBackground(Color.LIGHT_GRAY); z.add(c); JLabel label1=new JLabel("个人账户"); JLabel label2=new JLabel("请选择您的业务"); label1.setFont(new Font("Serif",Font.BOLD,40); label1.setForeground(Color.WHITE); label2.setFont(new Font("Serif

33、",Font.BOLD,35); 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 but

34、ton6=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

35、(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(); JPanel p8=new JPanel(); JPanel p9=new

36、 JPanel(); p1.setBounds(0,0,700,70); p1.setBackground(Color.LIGHT_GRAY); p1.add(label1); p2.setBounds(0,70,350,100); p2.setBackground(Color.LIGHT_GRAY); p2.add(label2); p3.setBounds(0,170,200,80); p3.setBackground(Color.LIGHT_GRAY); p3.add(button1); p4.setBounds(500,170,200,80); p4.setBackground(Col

37、or.LIGHT_GRAY); p4.add(button2); p5.setBounds(0,250,200,80); p5.setBackground(Color.LIGHT_GRAY); p5.add(button3); p6.setBounds(500,250,200,80); p6.setBackground(Color.LIGHT_GRAY); p6.add(button4); p7.setBounds(0,330,200,80); p7.setBackground(Color.LIGHT_GRAY); p7.add(button5); p8.setBounds(500,330,2

38、00,150); p8.setBackground(Color.LIGHT_GRAY); p8.add(button6); p9.setBounds(0,480,700,50); p9.setBackground(Color.LIGHT_GRAY); 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 cl

39、ose() APan.weiyi=false; z.dispose(); public class BHandler implements ActionListener public void actionPerformed (ActionEvent event) if(event.getActionCommand()="取 款") new Withdraw(z,"取款业务"); else if(event.getActionCommand()="修改密码") new Modify(z,"修改密码"); else

40、if(event.getActionCommand()="存 款") new Deposit(z,"存款业务"); else if(event.getActionCommand()="显示余额") new Disply(z,"显示余额"); else if(event.getActionCommand()="转 账") new Transfer(z,"转账业务"); else if(event.getActionCommand()="查询修改") new

41、Query(z,"查询修改"); else if(event.getActionCommand()="退 出") APan.weiyi=false; z.dispose(); else if(event.getActionCommand() = "注 销") int b=SignIn.shanchu(APan.Kahao.getText(); if(b=1) APan.weiyi = false; JOptionPane.showMessageDialog(Homepage.this,"注销成功!"); z.dis

42、pose(); else if(b=2) JOptionPane.showMessageDialog(Homepage.this,"请取出剩余的钱在注销!"); else JOptionPane.showMessageDialog(Homepage.this,"Zhuye系统错误!"); 5. Modify.javapackage hehe;import javax.swing.*;import hehe.Transfer.BHandler;import java.awt.*;import java.awt.event.*;public class Mo

43、dify extends JDialogTextField ymima=new TextField(20);TextField xmima=new TextField(20);public Modify(JFrame m,String s) super(m,s); setBounds(400,250,400,300); setVisible(true); setModal(false); setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); setResizable(false); setLayout(null); /不用任何布局 JLabel

44、 label1=new JLabel("修改密码"); label1.setFont(new Font("宋体",Font.BOLD,20); JLabel label2=new JLabel("原密码:");label2.setFont(new Font("宋体",Font.BOLD,13);JLabel label3=new JLabel("新密码:");label3.setFont(new Font("宋体",Font.BOLD,13);JButton button1=

45、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.setBoun

46、ds(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 (ActionEven

47、t event) int i;if(event.getActionCommand()="确认"&&!(ymima.getText().equals("")&&!(xmima.getText().equals("")i=SignIn.gaimi(ymima.getText(), xmima.getText();if(i=1)JOptionPane.showMessageDialog(Homepage.z,"修改密码成功,请重新登录!");dispose();Homepage.close();else if(i=2)JOptionPane.showMessageDialog(Homepage.z,"原密码错误!");elseJOptionPane.showMessageDialog(Homepage.z,"Xiugai系统故

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论