版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
大连科技学院java程序设计课程设计(B)题目 银行取款管理系统 学生姓名XXX专业班级计算机(Z13-1指导教师XXX职称讲师所在单位 信息科学系软件工程教研室 教学部主 完成日期2016年9月30日
课程设计报告单学号XXX 姓名 XXX专业班级计算机(Z)13-1考核项目评分备注1平时工作态度及遵守纪律情况(10分)2掌握基本理论、关键知识、基本技能的程度和阅读参考资料的水平(10分)3独立工作能力、综合运用所学知识分析和解决冋题能力及实际工作能力提咼的程度(20分)4完成课程设计说明书及软件的情况与水平(小组分工情况、规范性、整洁清楚、叙述完整性、思路清晰程度、工作量及实际运行情况和创新性)(60分)总评成绩(优、良、中、及格、不及格)指导教师签字:综合评定:(优、良、中、及格、不及格)指导教师签字:2016年9月30日java程序设计课程设计(B)》任务书一、课程设计任务及要求:任务:针对小型信息管理系统或若干综合性设计题目,选择一种软件开发模型,完成从需求分析、系统设计、系统实现,软件测试的全过程。要求:(1) 根据软件系统开发的一般原则,完成相应系统的功能设计,完成主要功能模块的程序实现并进行测试训练,给出代码运行结果和相应的设计文档。可以分组进行,但所有学生必须经历整个系统的开发全过程,以便加深对系统开发全过程的认识。(2)提交课程设计报告。(3)指标:要求完成课程设计报告3000字以上(约二十页);完成所设计的题目,设计题目的语句行数的和在200行语句以上。二、工作量2周(10个工作日)时间三、计划安排第1个工作日:查找相关资料、书籍,阅读示例文档,选择题目。第2个工作日-第4个工作日:设计程序结构、模块图。第5个工作日-第9个工作日:完成程序的编码,并且自己调试、测试。穿插进行课程设计报告的撰写。第10个工作日:上交课程设计报告,由教师检查软件测试效果、检查课程设计报告,给出学生成绩。指导教师签字:2016年9月19日目录TOC\o"1-5"\h\z题目: 1需求分析 1...概要设计 1...详细设计 2...编码 3...调试分析 1..1.测试结果及运行效果 1..1系统开发所用到的技术 1..3课程设计总结 1..4.参考文献 514附录全部代码 16题目:银行取款管理系统的设计与实现需求分析在传统的银行帐户管理中,其过程往往是很复杂的,繁琐的,帐户管理以入帐和出帐两项内容为核心,在此过程中又需要经过若干道手续,因为整个过程都需要手工操作,效率十分低下,且由于他们之间关联复杂,统计和查询的方式各不相同;且会出现信息的重复传递问题,因此该过程需要进行信息化,以利用计算机进行帐目管理。为了提高银行的办事效率,减低银行工作人员的办事效率,降低传统银行的出入账计算方式,因此急需开发一套信息化的方式,开发合适的系统就成为了解决这一问题的核心。概要设计根据以上所说的功能,银行取款管理系统应该有以下的功能:定、活期存款操作:在定期,活期的存款操作上,根据自己需要存放的金额进行存放,并填写需要存储的年限,点击确认,进行存款,在设计定、活期存款上,首先判断输入的现金数是否为负数,不为负继续存入,为负不存入,主要是 actionPerformed。函数实现,存款按钮与内层界面的确定按钮。取款操作:在取款操作上,根据自己所需要的金额进行取款,若银行里面的金额满足自己所取款的金额,则系统显示取款的金额,并显示剩余的金额,若银行里面的金额不满足自己所需的金额,则系统显示金额不足,不能取出相应的金额。该模块主要实现:账户中现金的取出,余额的扣除。借助函数get()函数实现。查询账户余额:在查询账户余额操作上,根据自己的存款,取款的操作,进行计算后,显示出银行账户的余额,该模块主要实现:当前账户现金加利息的查询以及输出,借助函数balance()实现。(4)计算当前利息:在计算当前利息操作上,根据在定、活期存款的选择的基础上,根据个人的选择,系统会自动算出利息。该模块只要实现:当前账户利息的查询机输出。借助函数lixid()与lixih()实现。
详细设计系统模块结构设计如图1-1所示:通过上图的功能分析,把整个系统划分为 6个模块:⑴存款操作。该模块主要实现:现金的存放,余额的累加。借助内外层两个actionPeformed()函数实现;取款操作。该模块主要实现:账户中现金的取出,余额的扣除。借助函数 get()函数实现;当前余额查询操作。该模块主要实现:当前账户现金加利息的查询以及输出, 借助函数balance()实现;当前利息查询操作。该模块只要实现:当前账户利息的查询机输出。借助函数lixid()与lixih()实现;定活期的设置。该模块主要实现:定期与活期存款的设定;利息的计算。借助界面以及里层的actionPeformed()函数实现。编码(一)存款操作:分析:首先判断输入的现金数是否为负数,不为负继续存入,为负不存入,主要是actionPeformed()函数实现,存款按钮与内层界面的确定按钮;该模块的具体代码如下所示。if(e.getSource()==button_queding)/单击确定按钮{doublecunkuanzhi=lnteger.parseInt(text_cunkuanshu.getText());存款数文本框字符串强制转换双精度型if(cunkuanzhi>0)〃存款操作{balance+=cunkuanzhi;//存款操作使余额值增加}JOptionPane.showMessageDialog(this,存款"+cunkuanzhi+"成功!");if(radio_dingqi.isSelected())〃定、活期单选框利息计算传送rlixi=dlixi();if(radio_huoqi.isSelected())rlixi=hlixi();}if(e.getSource()==button_cunkuan)/单击存款按钮{Stringdingqis[]={"0.25","0.5","1","2","3","5"};//组合框内容数组newMessageJDialog(dingqis);/新建MessageJDialog类对象}(二)取款操作:get()分析:先输入取款数,如果取款数大于余额,则取出账户中全部余额,否则继续取款,余额减少。该模块的具体代码如下所示。publicdoubleget() //取款操作,参数为取款金额,返回实际取到金额Stringpassword=JOptionPane.showlnputDialog(this,情输入取款数");doublequkuanzhi=Integer.parseInt(password);if(qukuanzhi>0){if(qukuanzhi<=this.balance)this.balance-=qukuanzhi; //取款操作使余额值减少else//账户余额不够所取时{qukuanzhi=this.balance+rlixi;//取走全部余额this.balance=0;JOptionPane.showMessageDialog(this您的余额不足,已为您取出全部余额!");}returnqukuanzhi; //返回实际取款额}return0;}查询余额:balance()分析涂额变量为成员变量balanee,直接返回balanca该模块的具体代码如下所示。publicdoublebalance() //查看账户余额{returnbalance+rlixi;}查询利息:lixid();lixih()分析;该模块主要实现利息的查询及输出。点击查询当前利息按钮,显示当前利息。主要方法是给出当前利息率,按订活期的不同选择不同的函数,用switch语句实现利息的选择计算。该模块的具体代码如下所示。publicdoubledlixi()//成员方法:计算定期利息{doublea=balance;doublec=dnianfeng;switch((int)(c*4))case1:return(a*0.0248*c);case2:return(a*0.0264*c);case4:return(a*0.028*c);case8:return(a*0.0352*c);case12:return(a*0.04*c);case20:return(a*0.044*c);default:return0;}}publicdoublehlixi()//成员方法:计算活期利息方法{doublehnianfeng=Double.parseDouble((text_huoqi.getText()));doublea=balance;doublec=hnianfeng;doubles=a*0.004*c;returns;}主界面的建立:bankJFame分析:该模块主要是整个系统的主界面。实现图形用户界面的输出,使用户更直观地去操作本系统。主要的组件有:三块面板;文本框;标签;按钮;该模块的具体代码如下所示。importjava.awt.event.*;importjava.awt.*;importjavax.swing.*;importjava.awt.FlowLayout;publicclassbankJFrameextendsJFrameimplementsActionListener{privateJTextFieldtext_zhanghao,text_kahao;定义账号,卡号文本行privateJButtonbutton_cunkuan,button_qukuan,button_yue,button_lixi;/定义存款,取款,查询余额按钮privatedoublebalanee;/成员变量--查看余额privatedoublerlixi;publicbankJFrame()super("银行存取款管理系统");//主窗口标题this.setBounds(300,240,400,150);/窗/口初弹出坐标及大小this.setResizable(false);/窗口大小不能改变this.setBackground(Color.lightGray);//颜色设置this.setLayout(newjava.awt.FlowLayout(FlowLayout.CENTER));//面板布局为居中this.setDefaultCloseOperation(EXIT_ON_CLOSE);JPanelpanel仁newJPanel();新建第一个面板this.getContentPane().add(panel1,"North");panel1.add(newJLabel(账户"));text_zhanghao=newJTextField("zj",6);text_zhanghao.setEditable(false);文本行不可编辑panel1.add(text_zhanghao);panel1.add(newJLabel(咔号"));//用户卡号标签及文本行text_kahao=newJTextField(,15);text_kahao.setEditable(false);/文本行不可编辑panel1.add(text_kahao);this.setVisible(true);//窗口可见JPanelpanel2=newJPanel();this.getContentPane().add(panel2,"South");面板布局及添加面板至主面板button_cunkuan=newJButton(存款");//存款按钮panel2.add(button_cunkuan);button_cunkuan.addActionListener(this);button_qukuan=newJButton("取款");//取款按钮panel2.add(button_qukuan);button_qukuan.addActionListener(this);button_yue=newJButton("查询当前余额");//查询当前余额按钮panel2.add(button_yue);button_yue.addActionListener(this);button」ixi=newJButton(”当前利息");//当前利息按钮panel2.add(button_lixi);button_lixi.addActionListener(this);this.setVisible(true);}publicvoidactionPerformed(ActionEvente)〃单击事件处理方法{if(e.getSource()==button_cunkuan)/单击存款按钮{Stringdingqis[]={"0.25","0.5","1","2","3","5"};//组合框内容数组newMessageJDialog(dingqis);/新建MessageJDialog类对象}if(e.getSource()==button_yue)/单击查询余额按钮{doublerelixi=balance();JOptionPane.showMessageDialog(this尊敬的zj先生,您的当前账户余额为:"+(relixi)+"元");}if(e.getSource()==button_qukuan)/单击取款按钮{doubleqk=get();JOptionPane.showMessageDialog(this取款"+qk+"元成功!");}if(e.getSource()==button_lixi)〃单击计算利息按钮{JOptionPane.showMessageDialog(this尊敬的zj先生,您的当前账户利息为:"+rlixi+"元");}}(五)内层界面的建立:MessageJDialog分析:该模块主要是为主界面而服务的一个子框架。在此框架中,可以是新的功能有:定期、活期的选择;定期,活期利息的计算,存款操作的实现;主要用到的组件及成员方法有:标签;文本框;单选框;组合框;按钮;该模块的具体代码如下所示。publicclassMessageJDialogextendsJFrameimplementsActionListener{JTextFieldtext_cunkuanshu,text_huoqi;/存款数与活期存款年份的输入JLabeljlabel_huoqi,jlabel_dingqi;//活期期限标签,定期期限标签JButtonbutton_queding;/确定按钮JRadioButtonradio_dingqi,radio_huoqi;//活、定期单选框JComboBoxbox_dingqi;//定期年份组合框doublednianfeng;〃内部成员变量定期年份的声明MessageJDialog(Stringdingqis[]){super("提示");this.setBounds(350,290,300,220);JPanelpanel1=newJPanel();panel1.add(newJLabel(请输入存款数(元):"));panel1.add(text_cunkuanshu=newJTextField("100",6));text_cunkuanshu.addActionListener(this);this.getContentPane().add(panel1);JPanelpanel_rb=newJPanel(newGridLayout(1,2));panel1.add(panel_rb);this.setVisible(true);ButtonGroupbgroup=newButtonGroup();radio_dingqi=newJRadioButton(”定期存款");bgroup.add(radio_dingqi);panel_rb.add(radio_dingqi);radio_dingqi.addActionListener(this);radio_huoqi=newJRadioButton("活期存款");bgroup.add(radio_huoqi);panel_rb.add(radio_huoqi);this.setVisible(true);radio_huoqi.addActionListener(this);JPanelpanel_rm=newJPanel();panel1.add(panel_rm);panel_rm.add(jlabel_dingqi=newJLabel("请选择定期期限(年)"));box_dingqi=newJComboBox(dingqis);box_dingqi.setEditable(true);box_dingqi.addActionListener(this);panel_rm.add(box_dingqi);this.setVisible(true);JPanelpanel_rn=newJPanel();panel1.add(panel_rn);panel_rn.add(jlabel_huoqi=newJLabel("请输入活期期限(年):"));panel_rn.add(text_huoqi=newJTextField("1",7));button_queding=newJButton('确定");panel1.add(button_queding);this.setVisible(true);button_queding.addActionListener(this);//注册文本编辑事件监听器}publicStringstr()//成员方法:获取文本框输入存款数字符串{Stringstr=text_cunkuanshu.getText();returnstr;}publicdoubledlixi()//成员方法:计算定期利息{doublea=balance;doublec=dnianfeng;switch((int)(c*4)){case1:return(a*0.0248*c);case2:return(a*0.0264*c);case4:return(a*0.028*c);case8:return(a*0.0352*c);case12:return(a*0.04*c);case20:return(a*0.044*c);default:return0;}}publicdoublehlixi()//成员方法:计算活期利息方法{doublehnianfeng=Double.parseDouble((text_huoqi.getText()));doublea=balance;doublec=hnianfeng;doubles=a*0.004*c;returns;}publicvoidactionPeformed(ActionEvente)//内部对话框类单击事件处理方法{if(radio_dingqi.isSelected())〃定期单选框选中{text_huoqi.setVisible(false);jlabel_huoqi.setVisible(false);jlabel_dingqi.setVisible(true);box_dingqi.setVisible(true);rlixi=dlixi();}elseif(radio_huoqi.isSelected())/活期单选框选中{jlabel_dingqi.setVisible(false);box_dingqi.setVisible(false);text_huoqi.setVisible(true);jlabel_huoqi.setVisible(true);rlixi=hlixi();}if(e.getSource()==button_queding)/单击确定按钮{doublecunkuanzhi=lnteger.parseInt(text_cunkuanshu.getText());存款数文本框字符串强制转换双精度型if(cunkuanzhi>0)〃存款操作{balance+=cunkuanzhi;//存款操作使余额值增加}JOptionPane.showMessageDialog(this存款"+cunkuanzhi+"成功!");if(radio_dingqi.isSelected())〃定、活期单选框利息计算传送rlixi=dlixi();if(radio_huoqi.isSelected())rlixi=hlixi();}if(e.getSource()==box_dingqi)//定期组合框的选择{Stringnianfeng=(String)box_dingqi.getSelectedItem();dnianfeng=Double.parseDouble(nianfeng);
调试分析在取款的过程中,若银行里面剩余的金额不足自己所取的金额,则应该显示余额不足,如图1-2所示:在进行编码的过程中,对于取款的金额方面,判断剩余的金额是否满足顾客索取的
金额时,判断的地方出了些小的额问题,但在最后和同学沟通之后,把问题解决了测试结果及运行效果程序运行时,则主界面显示如图1-3所示:当选择进行存款的按钮时,并选择定期存款时显示如图 1-4所示:请輸入存软数C元》二讪®定期存款0话期存款请谜择走期期眼(年)1 ▼确克图1-4存款的界面当点击确定的按钮时,显示如图1-5所示:当取款的时候,当输入100元时,显示界面如图1-6所示:当取出100元时,显示的界面如图1-7所示:① K^100.0元欣功2确定图1-7取款成功的界面当取款100元后点击查询余额时,显示结果如图 1-8所示:当点击当前利息的按钮时,显示如图1-9所示:系统开发所用到的技术jdk-1_5_0-windows-i586版本课程设计总结通过这次课程设计,使我灵活应用所学数据结构知识,独立完成问题分析,结合数据结构理论知识,编写程序求解指定问题。初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;提高综合运用所学的理论知识和方法独立分析和解决问题的能力;并用系统的观点和软件开发一般规范进行软件开发,巩固、深化学生的理论知识,提高编程水平,并在此过程中培养我们严谨的科学态度和良好的工作作风。熟练掌握数据的存储表示和基本操作的实现,能够利用存储设计算法解决简单的航空订票问题。同时在这学期的实验中,培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。在实验课上,我学会了很多学习的方法。而这是日后最实用的。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。这对于我的将来也有很大的帮助。以后,不管有多苦,我想我都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。就像中国提倡的艰苦奋斗一样,我都可以在实验结束之后变的更加成熟,会面对需要面对的事情,以及学会遇到问题,不急不慌,慢慢解决它。这次课程设计本人主要参与了系统实现以及系统测试,还有参与小组共同完成的编写代码、实现功能模块。历时两个星期终于在大家的一起努力下顺利完成了。虽然过程辛苦是不可避免,但收获还是令人感到尤其的欣慰。在这次的课程设计中不仅检验了我所学习的知识,也培养了我的实践能力,让我知道遇到一个问题,如何去寻找思路,如何去解决问题,最终完成整个事情。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。学会了合作,学会了宽容,学会了理解,也学会了做人与处世。课程设计是我们专业课程知识综合应用的实践训练,是我们迈向社会,从事职业工作前一个必不少的过程。实验过程中,也十分感谢实验指导老师马骏老师的指点与教导。这次课程设计不仅是对这学期所学知识的一种综合检验,而且也是对自己动手能力的一种提高,增强了自己实践能力。通过这次课程设计使我明白了自己知识还比较欠缺,只是学习书本知识还是远远不够的,自己不会的东西还有太多,学习需要自己长期的积累,在以后的学习、工作中都应该不断的学习,将课本的理论知识与生活中的实践知识相结合,不断提高自己文化知识和实践能力。参考文献Eric.Java编程思想[M].第4版.机械工业出版社,机械工业出版社•张峋,杨三成.关键技术:JSP与JDBC应用详解[M].中国铁道出版社,2010年11月.Weiss,MA.数据结构与算法分析:Java语言描述[M].第2版.机械工业萨师煊,王珊.《数据库系统概论》高等教育出版社,2002年2月⑸耿祥义,张跃平。《java2实用教程》第四版清华大学出版社2012年8月第4版附录全部代码importjava
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026贵州毕节织金县人民医院社会招聘合同制工作人员6人备考题库及参考答案详解
- 2026山东东诚投资发展有限公司招聘总经理助理5人备考题库及参考答案详解一套
- 2026甘肃兰州鸿瑄科技有限公司招聘19人备考题库含答案详解
- 2026吉林省吉高融资担保有限公司劳务派遣人员招聘10人备考题库及完整答案详解一套
- 2026湖北隆中实验室专职科研岗招聘备考题库附答案详解
- 2026年福建中共泉州市洛江区委宣传部招聘采编记者备考题库附答案详解
- 2026江苏南京市六合区精神病医院招聘编外卫技人员5人备考题库及一套完整答案详解
- 2026青海西宁市教师招聘4名备考题库及参考答案详解
- 2026陕西物流集团西安交通大学物流科创融合发展研究中心科研财务助理招聘1人备考题库及完整答案详解1套
- 2026上海市工业技术学校工作人员招聘8人备考题库(第二批)完整参考答案详解
- 2025年安全员之江苏省C1证(机械安全员)考试题库(含答案)
- 2026安全生产月主要负责人安全公开课
- 2026年(完整版)安全生产月知识竞赛题库(含答案)
- 2026年高考英语全国一卷真题试卷(+答案)
- 9.1 国家行政机关的性质和职权课件(共25张)
- 中央中国热带农业科学院院属单位2025年第一批招聘笔试历年典型考点题库附带答案详解
- 人教版一年级语文下册每课练习题
- 2026年《职业病防治法》宣传周主题宣传培训
- 2025年山东省济南市初二学业水平地生会考真题试卷(含答案)
- 公路水路交通固定资产投资完成情况统计报告
- 前突指挥应急通信保障工作制度
评论
0/150
提交评论