《Java CS架构企业管理软件设计综合实训_银行管理系统的设计与开发.doc》由会员分享,可在线阅读,更多相关《Java CS架构企业管理软件设计综合实训_银行管理系统的设计与开发.doc(51页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、银行管理系统设计与开发组 别:第二组成 员:课程名称:Java C/S架构企业管理软件设计综合实训-银行管理系统的设计与开发提交时间:2011年01月09日概 要本次实训报告依据标准实训报告模板编写,其基本内容包括概要、目录、前言、系统设计基础、系统分析、系统设计、系统实现、系统测试、软件使用说明书、结论、致谢、参考文献、个人小结等。其中涉及到的银行管理系统软件开发过程中要编写的一系列文档,比如说,需求分析报告、概要设计报告、详细设计报告、测试报告等。在编写这些报告的过程中,为了确保报告的正规性和完备性,都相当程度的借鉴了软件工程课程、数据库课程、软件测试课程的相关章节内容。银行管理系统使用说
2、明书的部分,详细介绍了该系统的实际使用方法和规则,以确保用户很容易就明白整个使用流程。报告最后的个人小结部分,小组成员都结合自己的亲身体会和感受认真编写,内容十分的丰富和真实。目 录前 言4第一章 系统设计基础51.1 设计银行管理系统的意图512 开发平台与系统设计模式5第二章 系统分析62.1 需求分析62.2 数据库设计7第三章 系统设计103.1 概要设计1032详细设计22第四章 系统实现25第五章 系统测试32第六章 软件使用说明书44结论45小组总结46致 谢47参考文献48附 录 综合实训项目个人小结49前 言本项目主要介绍了,使用Java语言编写程序的功能实现。Java是一种
3、完全面向对象的编程语言,本项目重点介绍了Java中的类、对象和方法的使用,内容包括在Java中构造管理员类、用户类和工作人员类,创建类的实例化对象,重载、重写以及Java语言的根类和接口等。本项目深入使用完成Java语言中字符串的实现;包、类库和Applet;GUI编程基础;Java的异常处理;本项目还使用了JDBC开发Java数据库程序。这些程序更进一步的体现了Java语言的实用性,本项目重点在Java程序开发中常使用的类,内容主要在接口的实现。本项目在我们组成员的共同努力和老师的细心指导下完成。作者都是Java专业的学生,在这期间查看许多相关的资料,了解掌握了Java开发的相关知识。第一章
4、 系统设计基础1.1 设计银行管理系统的意图随着我国信息产业发展迅速以及中国加入世界贸易组织,国内银行之间以及与外国银行之间的竞争也越来越激烈,怎样发展业务以吸引更多顾客是各银行面队的当务之急。而帐目管理是银行业务流程过程中十分重要且必备的环节之一,在银行业务流程当中起着相当重要的作用。现在银行的业务越来越多,吸引的客户也越来越多,银行的管理就越显重要。银行管理系统是针对银行的日常管理而设计。银行管理系统不仅要求操作方便而且要求界面简洁,它还需要实现帐目管理,用户查询和查询统计功能。针对上述情况和要求,采用软件工程的开发原理,依据软件流程过程规范,按照需求分析、概要设计、详细设计、程序编码、测
5、试等过程开发了一个银行账目管理系统。采用JAVA作为编程语言,使用工具eclipse3.1设计实现了银行管理系统,完成系统管理、帐目管理、查询统计、用户查询等功能。12 开发平台与系统设计模式此次实训是在我们学院的教4-421机房,联想硬盘保护系统完成的,我们的结构是C/S架构。第二章 系统分析2.1 需求分析1. 实现银行管理员的功能,要求完成以下功能:1)管理员的登陆(设本系统的管理员只有一个)2)修改个人密码修改工作人员信息( 号码,家庭住址)3)查询(查询某个用户的信息 ,工作人员信息)4)统计(银行信息及银行总客户数,总的金额)5)删除(删除用户需要注销的帐户信息;删除工作人员信息)
6、6)增加(系统生成帐户信息表与员工表由用户和工作人员填写)7) 设置利率(根据用户存款的类型设置利率)8) 添加工作人员9) 注销2. 实现客户对自己帐户的操作功能,要求完成以下功能:1) 用户的登陆(未登陆或登陆失败时不能执行用户帐户的操作)2) 开户(用户根据提示填写个人信息,包括用户的身份证号等)3) 修改密码(要求用户输入旧密码,确认后重新输入新密码)4) 存款(用户本人需要携带身份证,输入个人的密码进行存)5) 取款(用户需要携带身份证,输入密码与取款金额进行取款)6) 挂失(用户可以在网上银行挂失或打 通过人工服务挂失)7) 查询余额8) 转帐9) 记录(记录用户的帐户的历史帐单,
7、方便用户查阅)10) 查询明细(根据输入的帐户查询用户的明细账单)11) 注销3 实现银行工作人员的功能,要求完成以下功能:1) 登陆2) 修改个人密码3) 修改用户信息(工作人员只可以修改用户的 号码等信息)4) 查询(客户基本信息)5) 统计(客户总人数,与客户存、取款的总金额)6) 注销7) 人工服务(存款、取款 、转帐开户、修改客户密码等)2.2 数据库设计数据库中有四张表: 1) administratorinformation 表2) officeworkerinformation 表 3) customerinformation 表4) bankinformation表Admin
8、istratorinformation表的属性有:帐户姓名联系 家庭地址公司地址职位薪水身份证号密码Officeworkerinformation表属性有 :帐户姓名联系 家庭地址公司地址职位薪水身份证号密码Customerinformation表的属性有:帐户姓名联系 家庭住址公司地址所剩余额状态身份证号密码上次登录时间本次登录时间Bankinformation表的属性有:银行编码银行名称银行工作人员总数银行日利率银行月利率银行年利率银行所地地址第三章 系统设计3.1 概要设计1. 引言:(1)编写目的:本概要设计说明书的目的在于从总体设计的角度明确人口普查系统的功能和处理模式,完成接口设计
9、,把系统的功能需求分配给软件结构,形成软件的系统结构,使系统开发人员和产品管理人员明确产品功能,可以有针对性的进行系统开发、测试以及验收等各方面的工作为以后的详细设计打下基础。 本概要设计说明书的预期读者主要是用户代表、软件分析人员、开发管理人员和测试人员。(2)背景软件系统名称:银行管理系统提出者:王川(组长)开发者:姜园园、罗秋兰、张会用户:各大中小型企业银行运行网站:暂时未确定(3)参考资料发表文件:银行管理系统需求分析报告参考文件:来源:百度搜索标题:网上招聘系统概要设计文档文件编号:J00-B01-000113发表日期:2008-5-31出版单位:电子工业出版社(1)需求规定 本系统
10、的输入项目有管理员、工作人员、普通用户、银行的相关信息等,输出项目有普通用户的帐户余额、客户信息(2)运行环境硬件环境:台式或笔记本电脑(3)功能需求与程序的关系管理员:1)查询工作人员信信息:2)查询顾客信息:3)查询银行信息:5)增加新客户:6)增加新工作人员:7)增加新管理员:8)删除客户:9)删除工作人员:10)删除管理员:11)统计客户信息:12)修改个人信息:13)修改个人密码: 14)修改工作人员信息: 工作人员:1) 修改个人密码:2)修改客户信息:3)查询客户信息:4)统计业务信息:5)存款:6)取款:7)转帐:8)开户:9)修改客户密码:10)查询客户帐户余额:11)挂失:
11、12)解除挂失:13)解锁:用户:1)存款:2)取款:3)查询余额:4)转帐:5)修改密码:6)挂失:(4)人工处理过程信息的输入、修改、删除、查找等都需要人工来完成。(5)尚未解决的问题说明在概要设计过程中尚未解决而设计者认为在系统完成之前必须解决的各个问题。(1) 用户接口该软件主要是为了方便普通银行用户,在软件的设计中,我们主要提供了几个界面,我们是用Java的环境编写的,主要有类,接口等,在此就不一一举例。当界面显示出一些内容时,只要跟着提示就可以完成相应的操作。(2)外部接口该系统最大的优点在于可以随身带,只需要将该软件的代码拷贝在移动硬盘上就可以,不需要固定的安装在哪个电脑上,只要
12、该电脑上有Java的运行环境,就可以了。(3)内部接口这系统还有的好处就是系统自己内部的元素之间的安排,里面的元素都是一一对应的,可以按照用户的意愿完成想要达到的目的。(1) 运行控制运行系统分为26个部分,因此运行控制的方法步骤分为26种:1) 登陆界面输入管理员的帐号和密码管理员界面选择 查询按钮选择查询信息的类型并输入帐号 2) 登陆界面输入管理员的帐号和密码管理员界面选择设置利率按钮输入日、月、年利率3) 登陆界面输入管理员的帐号和密码管理员界面选择添加按钮选择添加人员类型输入详细信息4) 登陆界面输入管理员的帐号和密码管理员界面选择删除按钮选择删除人员类型5) 登陆界面输入管理员的帐
13、号和密码管理员界面选择统计按钮显示客户信息6) 登陆界面输入管理员的帐号和密码管理员界面选择修改个人信息按钮输入要修改的信息7) 登陆界面输入管理员的帐号和密码管理员界面选择修改个人密码按钮输入旧密码和新密码8) 登陆界面输入管理员的帐号和密码管理员界面选择工作人员信息按钮输入要修改的信息9) 登陆界面输入工作人员的帐号和密码工作人员界面选择修改个人密码按钮输入旧密码和新密码10) 登陆界面输入工作人员的帐号和密码工作人员界面选择修改客户信息按钮输入要修改的信息11) 登陆界面输入工作人员的帐号和密码工作人员界面选择查询客户信息按钮输入帐号和密码12) 登陆界面输入工作人员的帐号和密码工作人员
14、界面选择统计业务信息按钮13) 登陆界面输入工作人员的帐号和密码工作人员界面选择存款按钮输入帐号、密码、存款金额14) 登陆界面输入工作人员的帐号和密码工作人员界面选择取款按钮输入帐号、密码、取款金额15) 登陆界面输入工作人员的帐号和密码工作人员界面选择转帐按钮输入帐号、密码、转入帐号、转入金额16) 登陆界面输入工作人员的帐号和密码工作人员界面选择开户按钮输入新用户的详细信息17) 登陆界面输入工作人员的帐号和密码工作人员界面选择修改个人密码按钮输入旧密码和新密码18) 登陆界面输入工作人员的帐号和密码工作人员界面选择查询客户帐号余额按钮输入帐号和密码19) 登陆界面输入工作人员的帐号和密
15、码工作人员界面选择挂失按钮输入帐号和密码20) 登陆界面输入工作人员的帐号和密码工作人员界面选择解除挂失按钮输入帐号和密码21) 登陆界面输入普通用户的帐号和密码普通用户界面选择取款按钮输入取款金额22) 登陆界面输入普通用户的帐号和密码普通用户界面选择存款按钮输入存款金额23) 登陆界面输入普通用户的帐号和密码普通用户界面选择查询余额按钮24) 登陆界面输入普通用户的帐号和密码普通用户界面选择转帐按钮输入金额和转入帐号25) 登陆界面输入普通用户的帐号和密码普通用户界面选择修改密码按钮输入旧密码和新密码26) 登陆界面输入普通用户的帐号和密码普通用户界面选择挂失按钮(3) 运行时间步骤3)、
16、6)、8)、10)、16)占用时间资源多,其它步骤占用时间资源少。(1) 出错信息用一览表的方式说明每种可能的出错或故障情况出现时,系统输出信息的形式、含意及处理方法。ID出错情况含意处理方法1关键信息遗漏系统管理员、工作人员、用户关键信息遗漏会造成银行管理系统日常管理出现故障针对所遗漏信息进行调查并记录详细信息2电脑死机由于本系统的执行环境要求较高,计算机性能较低的可能无法准确完成本次输入输入人员和程序开发人员认真沟通,了解执行时所需要的最佳环境,以保证相关信息录入工作及时完成3无法输入信息本系统以代码形式实现,但是成员属性出错时则该信息就无法正常输入,造成录入人员工作效率低下,心情低落通知
17、本组成员,或者特定测试人员进行相应的测试,以达到正确输入相关信息(2) 补救措施说明故障出现后可能采取的变通措施,包括:1) 数据库准备数据精确、准确、完整2) 边录入边保存防止出现诸如电脑死机的意外情况发生3)电脑、网络等硬件设备保证正常使用4) 人员数量充足,及时准确录入信息5) 和调查人员保持联系,以防某些信息理解偏颇6) 和电脑方面的技术人员联系,电脑出现问题时能及时解决故障(3) 系统维护设计1) 系统维护(具体流程请参考图I)l 维护管理员l 系统监督员l 修改负责人 图I 维护组织2) 系统测试l 根据尽早测试原则,我们将和软件开发同时进行,本环节将由专业的测试人员跟踪测试,坚持
18、“第三方测试”原则,维护本系统顺利执行。l 利用专业测试知识和专门人员设计的测试用例3)系统完善系统的产生和使用都是针对某一个时段的,当然我们会根据时代的发展,不断发现系统存在的缺陷,与时俱进,同时根据顾客的需要不断提供相应的功能不断完善不断进步。32详细设计1引言 (1)编写目的本文档为银行管理系统详细设计说明书,主要用于为实现系统的功能而进行的系统详细设计说明,详细的说明了系统各软件组成模块的实现流程、功能、接口、编译、测试要点等内容,便于对系统的编码进行指导和约束。本文档供项目组全体成员及项目组组长,单元测试人员阅读。(2)定义银行管理系统应用软件:基本元素为构成银行存款及相关行为所必需
19、的各种部分。详细设计:通过这个阶段的工作将划分出组成系统的物理元素程序、文件、数据库、人工过程和文档等,但是每个物理元素仍然处于黑盒子级,这些黑盒子里的具体内容将在以后仔细设计。(3)背景项目名称:银行管理系统说明:现在的银行管理系统工作效率低,越来越不能满足广大人民群众的需要,人们希望能更方便更省时就可以办理银行业务;随着拥有多种银行卡的人群不断增长,人们急切希望有一种通用的银行卡以便随时随地在哪家银行都可以存款提款;现在计算机网络的高速发现使越来越多的人更喜欢在网购物、在家存款取款。在这样的背景下,很明显现在的银行管理系统已经不能满足人们越益增长的需求,急切需要建立一个新的、高效的、方便的
20、、互联的网上银行管理系统。(4)参考资料软件工程 张泊平 主编 北京交通大学出版社2. 系统的功能模块图银行管理系统系统管理员查询工作人员信息查询顾客信息查询银行信息设置利率增加新客户增加新工作人员修改工作人员信息 修改个人信息统计客户信息删除管理员删除工作人员删除客户修改个人密码新管增加理员工作人员用户修改个人密码修改客户信息查询客户信息统计业务信息前台存款前台取款前台转帐前台开户修改客户密码查询余额前台挂失前台解除挂失前台解锁存款取款查询余额转帐修改密码挂失3. 各模块的结构设计字段序列字段名称数据类型字段宽度小数位数关键字1帐户varchar30是2姓名varchar30否3身份证号va
21、rchar30否4联系 varchar30否5家庭住址varchar30否6公司地址varchar30否7薪水double2否8职位varchar30否9密码varchar30否administratorinformation表字段序列字段名称数据类型字段宽度小数位数关键字1帐户varchar30是2姓名varchar30否3身份证号varchar30否4联系 varchar30否5家庭住址varchar30否6公司地址varchar30否7密码varchar30否8所剩余额double2否9状态int否 customerinformation表字段序列字段名称数据类型字段宽度小数位数关键字1
22、帐户varchar30是2姓名varchar30否3身份证号varchar30否4联系 varchar30否5家庭住址varchar30否6公司地址varchar30否7薪水double2否8职位varchar30否9密码varchar30否 officeworkerinformation表字段序列字段名称数据类型字段宽度小数位数关键字1银行编码varchar30是2银行名称varchar30否3银行工作人员总数varchar30否4银行日利率double2否5银行月利率double2否6银行年利率double2否7银行所在地地址varchar30否Bankinformation表第四章 系统
23、实现工作人员界面设计代码:public class OfficeWorker extends JFrameimplements ActionListenerJLabel lb0 = new JLabel (个人信息维护);JButton jb1 = new JButton (修改个人密码);JButton jb2 = new JButton (注销);JLabel lb1 = new JLabel (网上业务办理);JButton jb3 = new JButton (修改客户信息);JButton jb4 = new JButton (查询客户信息);JButton jb5 = new JB
24、utton (统计业务信息);JLabel lb2 = new JLabel (营业厅业务办理);JButton jb15 = new JButton (存款);JButton jb6 = new JButton (取款);JButton jb7 = new JButton (转帐);JButton jb8 = new JButton (开户);JButton jb9 = new JButton (修改客户密码);JButton jb10 = new JButton (查询客户帐户余额);JButton jb11 = new JButton (查询明细);JButton jb12 = new
25、JButton (挂失);JButton jb13 = new JButton (解除挂失);JButton jb14 = new JButton (解锁);JTextArea jta1 = new JTextArea (); /中间面板的文本域 JPanel panel1 = new JPanel (); /左面的面板 JPanel panel2 = new JPanel ();/下面的面板 JPanel panel3 = new JPanel (); /中间面板 JScrollPane scrollpane = new JScrollPane ();/中间面板中的滚动面板 JLabel l
26、bscrollpane = new JLabel ();JPanel panel4 = new JPanel (); /右面面板JButton jb16 = new JButton (百度);JButton jb17 = new JButton (谷歌);JButton jb18 = new JButton (淘宝);JLabel lb3 = new JLabel (欢迎页面 我的帐户 在线理财管理 网上贷款 工商理财 网上保险 );JLabel lb =new JLabel(网上基金 网上国债 个人外汇业务 网上汇市 定期存款 网上期货);JLabel lb4=new JLabel(网站地图
27、 联系我们 网站声明 服务网点 返回主页 中国工商银行版权所有 京ICP证 030247号); JPanel panel=new JPanel();public OfficeWorker() /构造函数 super(网上银行业务办理);this.getContentPane();this.setSize(1000, 800);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);public void setLayout()this.setLayout(new BorderLayout();jb1.addActionListener(this)
28、 ; /把按钮“修改个人密码”注册为事件监听器jb2.addActionListener(this); /把按钮“注销”注册为事件监听器jb3.addActionListener(this); / 把按钮“修改用户信息”注册为事件监听器jb4.addActionListener(this); /把按钮“查询客户信息”注册为事件监听器jb5.addActionListener(this);/把按钮“统计业务”注册为事件监听器jb8.addActionListener(this); /把按钮“开户”注册为事件监听器jb9.addActionListener(this); /把按钮“修改客户密码”注
29、册为事件监听器jb10.addActionListener(this);/把按钮“查询客户帐户余额” 注册为事件监听器jb11.addActionListener(this); /把按钮“查询明细”注册为事件监听器jb12.addActionListener(this);/把按钮“挂失”注册为事件监听器jb13.addActionListener(this); /把按钮“解除挂失”注册为事件监听器jb14.addActionListener(this);/把按钮“解锁”注册为事件监听器jb6.addActionListener(this); jb7.addActionListener(this
30、); jb15.addActionListener(this); panel.setLayout(new GridLayout(18,1,10,10); /左面的布局面板 panel.add(lb0);/网格布局panel.add(jb1);panel.add(jb2);panel.add(lb1);panel.add(jb3);panel.add(jb4);panel.add(jb5);panel.add(lb2);panel.add(jb15);panel.add(jb6);panel.add(jb7);panel.add(jb8);panel.add(jb9);panel.add(jb1
31、0);panel.add(jb11);panel.add(jb12);panel.add(jb13);panel.add(jb14);GridBagLayout gbl=new GridBagLayout();GridBagConstraints gbc=new GridBagConstraints();panel1.setLayout(gbl); /上面的布局面板 addComponent(panel1,gbl,gbc,lb3,10,0,1,1,10,10);addComponent(panel1,gbl,gbc,lb,10,5,1,1,10,10);panel2.setLayout(gbl
32、); /下面的面板 addComponent(panel2,gbl,gbc,lb4,15,0,1,1,10,10);lbscrollpane.setText( 欢迎使用中国工商银行+n+网上自助银行);lbscrollpane.setForeground(Color.red);lbscrollpane.setFont(new Font(serif,Font.BOLD+Font.ITALIC,40);jta1.setText( 温馨提示:) ;jta1.setForeground(Color.LIGHT_GRAY);jta1.setEditable(false);jta1.setWrapStyl
33、eWord(true);jta1.setFont(new Font(华文行楷,Font.BOLD,25);String str=当您在网上进行交易时,请务必保证您帐号以及密码的安全.+n+请不要轻易将帐号和密码告知他人,以免遭受损失!+如果您在进行交+n+易时遇到困难,请随时与我们工作人员联系,我们将及时解决您的问题! ;jta1.append(str);panel3.setLayout(new GridLayout(3,1); /中间的面板 scrollpane.getViewport().add(jta1); /向滚动面板中加入文本域 panel3.add(lbscrollpane);pa
34、nel3.add(scrollpane);panel4.setLayout(gbl);addComponent(panel4,gbl,gbc,jb16,0,0,1,1,0,0);addComponent(panel4,gbl,gbc,jb17,0,1,1,1,0,0);addComponent(panel4,gbl,gbc,jb18,0,2,1,1,0,0);this.add(panel,BorderLayout.WEST);this.add(panel1,BorderLayout.NORTH);this.add(panel2,BorderLayout.SOUTH);this.add(pane
35、l3,BorderLayout.CENTER);this.add(panel4,BorderLayout.EAST);public voidaddComponent(JPanel panel ,GridBagLayout gbl,GridBagConstraints gbc,Component com,int x,int y,int arrows,int columns,int Weightx,int Weighty)gbc.gridx=x;gbc.gridy=y;gbc.gridheight=arrows;gbc.gridwidth=columns;gbc.weightx=Weightx;g
36、bc.weighty=Weighty ;gbl.setConstraints(com, gbc);panel.add(com);public void actionPerformed(ActionEvent e)if(e.getActionCommand().equals(修改个人密码)UpdatePersonalPassword updatepersonalpassword=new UpdatePersonalPassword();updatepersonalpassword.setLayout();updatepersonalpassword.show();else if(e.getAct
37、ionCommand().equals(注销)System.exit(0);else if(e.getActionCommand().equals(修改客户信息)UpdateCustomerInformation update=newUpdateCustomerInformation();update.setLayout();update.setVisible(true);else if(e.getActionCommand().equals(查询客户信息)OfficeWorker_CheckCustomerinformation frame=new OfficeWorker_CheckCus
38、tomerinformation();frame.setLayout();frame.show();else if(e.getActionCommand().equals(开户)AddNewUser frame=new AddNewUser();frame.setLayout();frame.show();else if(e.getActionCommand().equals(统计业务信息)tongjiYewuInformation tongji=new tongjiYewuInformation();tongji.setLayout();tongji.setVisible(true);els
39、e if(e.getActionCommand().equals(修改客户密码)Officeworker_updateCustomerpassword frame=new Officeworker_updateCustomerpassword();frame.setLayout();frame.show();else if(e.getActionCommand().equals(查询客户帐户余额)Officeworker_checkCustomerLeftmoney frame=new Officeworker_checkCustomerLeftmoney();frame.setLayout();frame.show();else if(e.getActionCommand().equals(挂失)OfficeWorker_GuaShi frame =new OfficeWorker_GuaShi();frame.setLayout();frame.show();else if(e.getActionCommand().equals(解除挂失)OfficeWorker_jieChuGuaShi frame =new OfficeWorker_jieChuGuaShi();frame.setLayout();frame