《JAVA课程设计银行管理系统.pdf》由会员分享,可在线阅读,更多相关《JAVA课程设计银行管理系统.pdf(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、.大 连 科 技 学 院 java程序设计课程设计(B)题 目 银行取款管理系统 学生姓名 姚伟奇专业班级 计算机(Z)13-1 指导教师 李红 职 称 讲师 所在单位 信息科学系软件工程教研室 教学部主任 王立娟 完成日期 2016 年 9 月 30 日 .课程设计报告单 学号 32 姓名 姚伟奇 专业班级 计算机(Z)13-1 考 核 项 目 评分 备注 1 平时工作态度及遵守纪律情况 (10 分)2 掌握基本理论、关键知识、基本技能的程度和阅读参考资料的水平 (10 分)3 独立工作能力、综合运用所学知识分析和解决问题能力及实际工作能力提高的程度 (20 分)4 完成课程设计说明书及软件
2、的情况与水平(小组分工情况、规范性、整洁清楚、叙述完整性、思路清晰程度、工作量及实际运行情况和创新性)(60 分)总评成绩 综 合 评 定:(优、良、中、及格、不及格)指导教师签字:2016 年 9 月 30 日 .java 程序设计课程设计(B)任务书 一、课程设计任务及要求:任务:针对小型信息管理系统或若干综合性设计题目,选择一种软件开发模型,完成从需求分析、系统设计、系统实现,软件测试的全过程。要求:(1)根据软件系统开发的一般原则,完成相应系统的功能设计,完成主要功能模块的程序实现并进行测试训练,给出代码运行结果和相应的设计文档。可以分组进行,但所有学生必须经历整个系统的开发全过程,以
3、便加深对系统开发全过程的认识。(2)提交课程设计报告。(3)指标:要求完成课程设计报告 3000 字以上(约二十页);完成所设计的题目,设计题目的语句行数的和在 200 行语句以上。二、工作量 2 周(10 个工作日)时间 三、计划安排 第 1 个工作日:查找相关资料、书籍,阅读示例文档,选择题目。第 2 个工作日第 4 个工作日:设计程序结构、模块图。第 5 个工作日第 9 个工作日:完成程序的编码,并且自己调试、测试。穿插进行课程设计报告的撰写。第 10 个工作日:上交课程设计报告,由教师检查软件测试效果、检查课程设计报告,给出学生成绩。指导教师签字:2016 年 9 月 19 日.目录
4、题目:.1 1.需求分析.1 2.概要设计.1 3.详细设计.2 4.编码.3 5.调试分析.11 6.测试结果及运行效果.11 7.系统开发所用到的技术.13 8.课程设计总结.14 参考文献.145 附录 全部代码.16 .题目:银行取款管理系统的设计与实现 1.需求分析 在传统的银行帐户管理中,其过程往往是很复杂的,繁琐的,帐户管理以入帐和出帐两项内容为核心,在此过程中又需要经过若干道手续,因为整个过程都需要手工操作,效率十分低下,且由于他们之间关联复杂,统计和查询的方式各不相同;且会出现信息的重复传递问题,因此该过程需要进行信息化,以利用计算机进行帐目管理。为了提高银行的办事效率,减低
5、银行工作人员的办事效率,降低传统银行的出入账计算方式,因此急需开发一套信息化的方式,开发合适的系统就成为了解决这一问题的核心。2.概要设计 根据以上所说的功能,银行取款管理系统应该有以下的功能:(1)定、活期存款操作:在定期,活期的存款操作上,根据自己需要存放的金额进行存放,并填写需要存储的年限,点击确认,进行存款,在设计定、活期存款上,首先判断输入的现金数是否为负数,不为负继续存入,为负不存入,主要是 actionPerformed()函数实现,存款按钮与内层界面的确定按钮。(2)取款操作:在取款操作上,根据自己所需要的金额进行取款,若银行里面的金额满足自己所取款的金额,则系统显示取款的金额
6、,并显示剩余的金额,若银行里面的金额不满足自己所需的金额,则系统显示金额不足,不能取出相应的金额。该模块主要实现:账户中现金的取出,余额的扣除。借助函数 get()函数实现。(3)查询账户余额:在查询账户余额操作上,根据自己的存款,取款的操作,进行计算后,显示出银行账户的余额,该模块主要实现:当前账户现金加利息的查询以及输出,借助函数 balance()实现。(4)计算当前利息:在计算当前利息操作上,根据在定、活期存款的选择的基础上,根据个人的选择,系统会自动算出利息。该模块只要实现:当前账户利息的查询机输出。借助函数 lixid()与 lixih()实现。.3.详细设计 系统模块结构设计如图
7、 1-1 所示:银行存款管理系统存款操作取款操作查询余额计算当前利息活期定期 图 1-1 银行系统功能图 通过上图的功能分析,把整个系统划分为 6 个模块:(1)存款操作。该模块主要实现:现金的存放,余额的累加。借助内外层两个actionPerformed()函数实现;(2)取款操作。该模块主要实现:账户中现金的取出,余额的扣除。借助函数 get()函数实现;(3)当前余额查询操作。该模块主要实现:当前账户现金加利息的查询以及输出,借助函数 balance()实现;(4)当前利息查询操作。该模块只要实现:当前账户利息的查询机输出。借助函数lixid()与 lixih()实现;(5)定活期的设置
8、。该模块主要实现:定期与活期存款的设定;利息的计算。借助界.面以及里层的 actionPerformed()函数实现。4.编码 (一)存款操作:分析:首先判断输入的现金数是否为负数,不为负继续存入,为负不存入,主要是actionPerformed()函数实现,存款按钮与内层界面的确定按钮;该模块的具体代码如下所示。if(e.getSource()=button_queding)/单击确定按钮 double cunkuanzhi=Integer.parseInt(text_cunkuanshu.getText();/存款数文本框字符串强制转换双精度型 if(cunkuanzhi0)/存款操作 b
9、alance+=cunkuanzhi;/存款操作使余额值增加 JOptionPane.showMessageDialog(this,存款+cunkuanzhi+成功!);if(radio_dingqi.isSelected()/定、活期单选框利息计算传送 rlixi=dlixi();if(radio_huoqi.isSelected()rlixi=hlixi();if(e.getSource()=button_cunkuan)/单击存款按钮 String dingqis=0.25,0.5,1,2,3,5;/组合框内容数组 new MessageJDialog(dingqis);/新建 Mess
10、ageJDialog 类对象 (二)取款操作:get()分析:先输入取款数,如果取款数大于余额,则取出账户中全部余额,否则继续取款,余额减少。该模块的具体代码如下所示。public double get()/取款操作,参数为取款金额,返回实际取到金额 String password=JOptionPane.showInputDialog(this,请输入取款数);double qukuanzhi=Integer.parseInt(password);.if(qukuanzhi0)if(qukuanzhi0)/存款操作 balance+=cunkuanzhi;/存款操作使余额值增加 JOptio
11、nPane.showMessageDialog(this,存款+cunkuanzhi+成功!);if(radio_dingqi.isSelected()/定、活期单选框利息计算传送 rlixi=dlixi();if(radio_huoqi.isSelected()rlixi=hlixi();if(e.getSource()=box_dingqi)/定期组合框的选择 String nianfeng=(String)box_dingqi.getSelectedItem();dnianfeng=Double.parseDouble(nianfeng);.5.调试分析 在取款的过程中,若银行里面剩余的
12、金额不足自己所取的金额,则应该显示余额不足,如图 1-2 所示:图 1-2 显示余额不足的界面 在进行编码的过程中,对于取款的金额方面,判断剩余的金额是否满足顾客索取的金额时,判断的地方出了些小的额问题,但在最后和同学沟通之后,把问题解决了 6.测试结果及运行效果 (1)程序运行时,则主界面显示如图 1-3 所示:图 1-3 程序主界面的显示效果 (2)当选择进行存款的按钮时,并选择定期存款时显示如图 1-4 所示:.图 1-4 存款的界面 当点击确定的按钮时,显示如图 1-5 所示:图 1-5 显示存款成功的界面 当取款的时候,当输入 100 元时,显示界面如图 1-6 所示:图 1-6 输
13、入存款金额的界面 .当取出 100 元时,显示的界面如图 1-7 所示:图 1-7 取款成功的界面 (3)当取款 100 元后点击查询余额时,显示结果如图 1-8 所示:图 1-8 账户余额的界面 (4)当点击当前利息的按钮时,显示如图 1-9 所示:图 1-9 账户利息显示界面 7.系统开发所用到的技术 jdk-1_5_0-windows-i586 版本 .8.课程设计总结 通过这次课程设计,使我灵活应用所学数据结构知识,独立完成问题分析,结合数据结构理论知识,编写程序求解指定问题。初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;提高综合运用所学的理论知识和方法独立
14、分析和解决问题的能力;并用系统的观点和软件开发一般规范进行软件开发,巩固、深化学生的理论知识,提高编程水平,并在此过程中培养我们严谨的科学态度和良好的工作作风。熟练掌握数据的存储表示和基本操作的实现,能够利用存储设计算法解决简单的航空订票问题。同时在这学期的实验中,培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。在实验课上,我学会了很多学习的方法。而这是日后最实用的。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。这对于我的将来也有很大的帮助。以后,不管有多苦,我想我都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。就像中国提倡的艰苦奋斗一样,我都可以在实验结束之后变的更
15、加成熟,会面对需要面对的事情,以及学会遇到问题,不急不慌,慢慢解决它。这次课程设计本人主要参与了系统实现以及系统测试,还有参与小组共同完成的编写代码、实现功能模块。历时两个星期终于在大家的一起努力下顺利完成了。虽然过程辛苦是不可避免,但收获还是令人感到尤其的欣慰。在这次的课程设计中不仅检验了我所学习的知识,也培养了我的实践能力,让我知道遇到一个问题,如何去寻找思路,如何去解决问题,最终完成整个事情。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。学会了合作,学会了宽容,学会了理解,也学会了做人与处世。课程设计是我们专业课程知识综合应用的实践训练,是我们迈向社会,从事职业工作
16、前一个必不少的过程。实验过程中,也十分感谢实验指导老师马骏老师的指点与教导。这次课程设计不仅是对这学期所学知识的一种综合检验,而且也是对自己动手能力的一种提高,增强了自己实践能力。通过这次课程设计使我明白了自己知识还比较欠缺,只是学习书本知识还是远远不够的,自己不会的东西还有太多,学习需要自己长期的积累,在以后的学习、工作中都应该不断的学习,将课本的理论知识与生活中的实践知识相结合,不断提高自己文化知识和实践能力。.参考文献 1 Eric.Java 编程思想M.第 4 版.机械工业出版社,机械工业出版社.2 张峋,杨三成.关键技术:JSP 与 JDBC 应用详解M.中国铁道出版社,2010 年
17、 11 月.3 Weiss,MA.数据结构与算法分析:Java 语言描述M.第 2 版.机械工业 4 萨师煊,王珊.数据库系统概论高等教育出版社,2002 年 2 月 5 耿祥义,张跃平。java2 实用教程第四版清华大学出版社 2012 年 8 月第 4 版 .附录 全部代码 import java.awt.event.*;import java.awt.*;import javax.swing.*;import java.awt.FlowLayout;public class bankJFrame extends JFrame implements ActionListener priva
18、te JTextField text_zhanghao,text_kahao;/定义账号,卡号文本行 private JButton button_cunkuan,button_qukuan,button_yue,button_lixi;/定义存款,取款,查询余额按钮 private double balance;/成员变量-查看余额 private double rlixi;public bankJFrame()super(银行存取款管理系统);/主窗口标题 this.setBounds(300,240,400,150);/窗口初弹出坐标及大小 this.setResizable(false
19、);/窗口大小不能改变 this.setBackground(Color.lightGray);/颜色设置 this.setLayout(new java.awt.FlowLayout(FlowLayout.CENTER);/面板布局为居中 this.setDefaultCloseOperation(EXIT_ON_CLOSE);JPanel panel1=new JPanel();/新建第一个面板 this.getContentPane().add(panel1,North);panel1.add(new JLabel(账户);text_zhanghao=new JTextField(zj,
20、6);text_zhanghao.setEditable(false);/文本行不可编辑 panel1.add(text_zhanghao);panel1.add(new JLabel(卡号);/用户卡号标签及文本行 text_kahao=new JTextField(622627199310150612,15);text_kahao.setEditable(false);/文本行不可编辑 panel1.add(text_kahao);this.setVisible(true);/窗口可见 JPanel panel2=new JPanel();this.getContentPane().add
21、(panel2,South);/面板布局及添加面板至主面板 button_cunkuan=new JButton(存款);/存款按钮 panel2.add(button_cunkuan);.button_cunkuan.addActionListener(this);button_qukuan=new JButton(取款);/取款按钮 panel2.add(button_qukuan);button_qukuan.addActionListener(this);button_yue=new JButton(查询当前余额);/查询当前余额按钮 panel2.add(button_yue);bu
22、tton_yue.addActionListener(this);button_lixi=new JButton(当前利息);/当前利息按钮 panel2.add(button_lixi);button_lixi.addActionListener(this);this.setVisible(true);public class MessageJDialog extends JFrame implements ActionListener JTextField text_cunkuanshu,text_huoqi;/存款数与活期存款年份的输入 JLabel jlabel_huoqi,jlabe
23、l_dingqi;/活期期限标签,定期期限标签 JButton button_queding;/确定按钮 JRadioButton radio_dingqi,radio_huoqi;/活、定期单选框 JComboBox box_dingqi;/定期年份组合框 double dnianfeng;/内部成员变量定期年份的声明 MessageJDialog(String dingqis)super(提示);this.setBounds(350,290,300,220);JPanel panel1=new JPanel();panel1.add(new JLabel(请输入存款数(元):);panel
24、1.add(text_cunkuanshu=new JTextField(100,6);text_cunkuanshu.addActionListener(this);this.getContentPane().add(panel1);JPanel panel_rb=new JPanel(new GridLayout(1,2);panel1.add(panel_rb);this.setVisible(true);.ButtonGroup bgroup=new ButtonGroup();radio_dingqi=new JRadioButton(定期存款);bgroup.add(radio_d
25、ingqi);panel_rb.add(radio_dingqi);radio_dingqi.addActionListener(this);radio_huoqi=new JRadioButton(活期存款);bgroup.add(radio_huoqi);panel_rb.add(radio_huoqi);this.setVisible(true);radio_huoqi.addActionListener(this);JPanel panel_rm=new JPanel();panel1.add(panel_rm);panel_rm.add(jlabel_dingqi=new JLabe
26、l(请选择定期期限(年));box_dingqi=new JComboBox(dingqis);box_dingqi.setEditable(true);box_dingqi.addActionListener(this);panel_rm.add(box_dingqi);this.setVisible(true);JPanel panel_rn=new JPanel();panel1.add(panel_rn);panel_rn.add(jlabel_huoqi=new JLabel(请输入活期期限(年):);panel_rn.add(text_huoqi=new JTextField(1,
27、7);button_queding=new JButton(确定);panel1.add(button_queding);this.setVisible(true);.button_queding.addActionListener(this);/注册文本编辑事件监听器 public String str()/成员方法:获取文本框输入存款数字符串 String str=text_cunkuanshu.getText();return str;public double dlixi()/成员方法:计算定期利息 double a=balance;double c=dnianfeng;switch(
28、int)(c*4)case 1:return(a*0.0248*c);case 2:return(a*0.0264*c);case 4:return(a*0.028*c);case 8:return(a*0.0352*c);case 12:return(a*0.04*c);case 20:return(a*0.044*c);default:return 0;public double hlixi()/成员方法:计算活期利息方法 double hnianfeng=Double.parseDouble(text_huoqi.getText();double a=balance;double c=h
29、nianfeng;double s=a*0.004*c;return s;public void actionPerformed(ActionEvent e)/内部对话框类单击事件处理方法 if(radio_dingqi.isSelected()/定期单选框选中 .text_huoqi.setVisible(false);jlabel_huoqi.setVisible(false);jlabel_dingqi.setVisible(true);box_dingqi.setVisible(true);rlixi=dlixi();else if(radio_huoqi.isSelected()/活
30、期单选框选中 jlabel_dingqi.setVisible(false);box_dingqi.setVisible(false);text_huoqi.setVisible(true);jlabel_huoqi.setVisible(true);rlixi=hlixi();if(e.getSource()=button_queding)/单击确定按钮 double cunkuanzhi=Integer.parseInt(text_cunkuanshu.getText();/存款数文本框字符串强制转换双精度型 if(cunkuanzhi0)/存款操作 balance+=cunkuanzhi
31、;/存款操作使余额值增加 JOptionPane.showMessageDialog(this,存款+cunkuanzhi+成功!);if(radio_dingqi.isSelected()/定、活期单选框利息计算传送 rlixi=dlixi();if(radio_huoqi.isSelected()rlixi=hlixi();if(e.getSource()=box_dingqi)/定期组合框的选择 String nianfeng=(String)box_dingqi.getSelectedItem();dnianfeng=Double.parseDouble(nianfeng);.publ
32、ic double get()/取款操作,参数为取款金额,返回实际取到金额 String password=JOptionPane.showInputDialog(this,请输入取款数);double qukuanzhi=Integer.parseInt(password);if(qukuanzhi0)if(qukuanzhi=this.balance)this.balance-=qukuanzhi;/取款操作使余额值减少 else /账户余额不够所取时 qukuanzhi=this.balance+rlixi;/取走全部余额 this.balance=0;JOptionPane.showM
33、essageDialog(this,您的余额不足,已为您取出全部余额!);return qukuanzhi;/返回实际取款额 return 0;public double balance()/查看账户余额 return balance+rlixi;public void actionPerformed(ActionEvent e)/单击事件处理方法 if(e.getSource()=button_cunkuan)/单击存款按钮 String dingqis=0.25,0.5,1,2,3,5;/组合框内容数组 new MessageJDialog(dingqis);/新建 MessageJDia
34、log 类对象 if(e.getSource()=button_yue)/单击查询余额按钮 .double relixi=balance();JOptionPane.showMessageDialog(this,尊敬的 zj 先生,您的当前账户余额为:+(relixi)+元);if(e.getSource()=button_qukuan)/单击取款按钮 double qk=get();JOptionPane.showMessageDialog(this,取款+qk+元成功!);if(e.getSource()=button_lixi)/单击计算利息按钮 JOptionPane.showMessageDialog(this,尊敬的 zj 先生,您的当前账户利息为:+rlixi+元);public static void main(String args)/框架 bankJFrame 主函数 new bankJFrame();