JAVA课程设计银行存取款管理系统
![JAVA课程设计银行存取款管理系统_第1页](https://file3.zhuangpeitu.com/fileroot3/2022-4/3/8987a9db-a51f-4c41-bcea-6cd24e2dbe00/8987a9db-a51f-4c41-bcea-6cd24e2dbe001.gif)
![JAVA课程设计银行存取款管理系统_第2页](/images/s.gif)
![JAVA课程设计银行存取款管理系统_第3页](/images/s.gif)
《JAVA课程设计银行存取款管理系统》由会员分享,可在线阅读,更多相关《JAVA课程设计银行存取款管理系统(20页珍藏版)》请在装配图网上搜索。
1、JAVA课程设计-银行存取款管理系统 课程设计 设计 题目:银行存取款管理系统 专业 方 向: 计算机科学与技术(网络工程) 年 级、班:2011级计算机科学与技术班 学生姓 名:杨梅 学生学 号: 指导教 师:马子睿 72013 年 12 月 25 日 目录一系统开发的背景1二、系统分析与设计1(一)系统功能要求1(二)系统模块结构设计1三、系统的设计与实现3(一)存款操作:3(二)取款操作:get()3(三)查询余额:balance4(四)查询利息:lixid;lixih4(五)主界面的建立:bankJFame5(五)内层界面的建立:MessageJDialog8四、系统测试12(一)测试
2、mainString args函数12(二)测试内层界面(内层对话框)12五、总结14六、附件(代码、部分图表)14 系统开发的背景 在传统的银行帐户管理中,其过程往往是很复杂的,繁琐的,帐户管理以入帐和出帐两项内容为核心,在此过程中又需要经过若干道手续,因为整个过程都需要手工操作,效率十分低下,且由于他们之间关联复杂,统计和查询的方式各不相同;且会出现信息的重复传递问题,因此该过程需要进行信息化,以利用计算机进行帐目管理。 为了提高银行的办事效率,减低银行工作人员的办事效率,降低传统银行的出入账计算方式,因此急需开发一套信息化的方式,开发合适的系统就成为了解决这一问题的核心。 二、系统分析与
3、设计系统功能要求 由于数据库系统还没有学习,所以只固定一账户,账户信息包括账户姓名与卡号。具体实现的功能主要有: 1.定、活期存款操作。 2.取款操作。 3.查询账户余额。 4.计算当前利息。系统模块结构设计 通过对系统功能的分析,学生综合测评系统功能如图一所示。 图一 银行存取款管理系统功能图 通过上图的功能分析,把整个系统划分为6个模块: 存款操作。该模块主要实现:现金的存放,余额的累加。借助内外层两个actionPerformed函数实现; 取款操作。该模块主要实现:账户中现金的取出,余额的扣除。借助函数get()函数实现; 当前余额查询操作。该模块主要实现:当前账户现金加利息的查询以及
4、输出,借助函数balance实现; 当前利息查询操作。该模块只要实现:当前账户利息的查询机输出。借助函数lixid与lixih实现; 定活期的设置。该模块主要实现:定期与活期存款的设定;利息的计算。借助界面以及里层的actionPerformed函数实现。 三、系统的设计与实现存款操作: 分析:首先判断输入的现金数是否为负数,不为负继续存入,为负不存入,主要是actionPerformed函数实现,存款按钮与内层界面的确定按钮; 该模块的具体代码如下所示。ife.getSourcebutton_queding/单击确定按钮double cunkuanzhiInteger.parseInttex
5、t_cunkuanshu.getText;/存款数文本框字符串强制转换双精度型if cunkuanzhi0/存款操作 balance+cunkuanzhi; /存款操作使余额值增加JOptionPane.showMessageDialogthis,存款+cunkuanzhi+成功!;ifradio_dingqi.isSelected/定、活期单选框利息计算传送rlixidlixi;ifradio_huoqi.isSelectedrlixihlixi; ife.getSourcebutton_cunkuan/单击存款按钮String dingqis0.25,0.5,1,2,3,5;/组合框内容数
6、组new MessageJDialogdingqis;/新建MessageJDialog类对象 取款操作:get() 分析:先输入取款数,如果取款数大于余额,则取出账户中全部余额,否则继续取款,余额减少。 该模块的具体代码如下所示。public double get /取款操作,参数为取款金额,返回实际取到金额 String passwordJOptionPane.showInputDialogthis,请输入取款数;double qukuanzhiInteger.parseIntpassword;if qukuanzhi0if qukuanzhithis.balance this.balan
7、ce- qukuanzhi;/取款操作使余额值减少else /账户余额不够所取时 qukuanzhi this.balance+rlixi; /取走全部余额 this.balance 0; JOptionPane.showMessageDialogthis,您的余额不足,已为您取出全部余额!;return qukuanzhi; /返回实际取款额return 0; 查询余额:balance 分析;余额变量为成员变量balance,直接返回balance。 该模块的具体代码如下所示。public double balance /查看账户余额 return balance+rlixi; (四)查询利
8、息:lixid;lixih 分析;该模块主要实现利息的查询及输出。点击查询当前利息按钮,显示当前利息。主要方法是给出当前利息率,按订活期的不同选择不同的函数,用switch语句实现利息的选择计算。 该模块的具体代码如下所示。public double dlixi/成员方法:计算定期利息double abalance;double cdnianfeng;switchintc*4case 1: returna*0.0248*c;case 2: returna*0.0264*c;case 4: returna*0.028*c;case 8: returna*0.0352*c;case 12: ret
9、urna*0.04*c;case 20: returna*0.044*c;default: return 0;public double hlixi/成员方法:计算活期利息方法double hnianfengDouble.parseDoubletext_huoqi.getText;double abalance;double chnianfeng;double sa*0.004*c;return s; (五)主界面的建立:bankJFame 分析:该模块主要是整个系统的主界面。实现图形用户界面的输出,使用户更直观地去操作本系统。主要的组件有:三块面板;文本框;标签;按钮; 该模块的具体代码如下
10、所示。import /.nt.*;import java.awt.*;import javax.swing.*;import /.wLayout;public class bankJFrame extends JFrame implements ActionListenerprivate JTextField text_zhanghao,text_kahao;/定义账号,卡号文本行private JButton button_cunkuan,button_qukuan,button_yue,button_lixi;/定义存款,取款,查询余额按钮private double balance;/成
11、员变量-查看余额private double rlixi;public bankJFramesuper银行存取款管理系统;/主窗口标题this.setBounds300, 240, 400, 150;/窗口初弹出坐标及大小this.setResizablefalse;/窗口大小不能改变/.htGray;/颜色设置this.setLayoutnew /.wLayoutFlowLayout.CENTER;/面板布局为居中this.setDefaultCloseOperationEXIT_ON_CLOSE;JPanel panel1new JPanel;/新建第一个面板/.panel1,North;
12、panel1.addnew JLabel账户;text_zhanghaonew JTextFieldzj,6;text_zhanghao.setEditablefalse;/文本行不可编辑panel1.addtext_zhanghao;panel1.addnew JLabel卡号;/用户卡号标签及文本行text_kahaonew JTextField6226272,15;text_kahao.setEditablefalse;/文本行不可编辑panel1.addtext_kahao;this.setVisibletrue;/窗口可见JPanel panel2new JPanel;/.panel
13、2,South;/面板布局及添加面板至主面板button_cunkuannew JButton存款;/存款按钮panel2.addbutton_cunkuan;button_cunkuan.addActionListenerthis;button_qukuannew JButton取款;/取款按钮panel2.addbutton_qukuan;button_qukuan.addActionListenerthis;button_yuenew JButton查询当前余额;/查询当前余额按钮panel2.addbutton_yue;button_yue.addActionListenerthis;
14、button_lixinew JButton当前利息;/当前利息按钮panel2.addbutton_lixi;button_lixi.addActionListenerthis;this.setVisibletrue;public void actionPerformedActionEvent e/单击事件处理方法ife.getSourcebutton_cunkuan/单击存款按钮String dingqis0.25,0.5,1,2,3,5;/组合框内容数组new MessageJDialogdingqis;/新建MessageJDialog类对象ife.getSourcebutton_yu
15、e/单击查询余额按钮double relixibalance;JOptionPane.showMessageDialogthis,尊敬的zj先生,您的当前账户余额为:+relixi+元;ife.getSourcebutton_qukuan/单击取款按钮double qkget;JOptionPane.showMessageDialogthis,取款+qk+元成功!;ife.getSourcebutton_lixi/单击计算利息按钮JOptionPane.showMessageDialogthis,尊敬的zj先生,您的当前账户利息为:+rlixi+元;(五)内层界面的建立:MessageJDia
16、log 分析:该模块主要是为主界面而服务的一个子框架。在此框架中,可以是新的功能有:定期、活期的选择;定期,活期利息的计算,存款操作的实现;主要用到的组件及成员方法有:标签;文本框;单选框;组合框;按钮; 该模块的具体代码如下所示。 public class MessageJDialog extends JFrame implements ActionListenerJTextField text_cunkuanshu,text_huoqi;/存款数与活期存款年份的输入JLabel jlabel_huoqi,jlabel_dingqi;/活期期限标签,定期期限标签JButton button_
17、queding;/确定按钮JRadioButton radio_dingqi,radio_huoqi;/活、定期单选框JComboBox box_dingqi;/定期年份组合框double dnianfeng;/内部成员变量定期年份的声明MessageJDialogString dingqissuper提示;this.setBounds350,290,300,220;JPanel panel1new JPanel;panel1.addnew JLabel请输入存款数(元):;panel1.addtext_cunkuanshunew JTextField100,6;text_cunkuanshu
18、.addActionListenerthis;/.panel1;JPanel panel_rbnew JPanelnew GridLayout1,2;panel1.addpanel_rb;this.setVisibletrue;ButtonGroup bgroupnew ButtonGroup;radio_dingqinew JRadioButton定期存款;bgroup.addradio_dingqi;panel_rb.addradio_dingqi;radio_dingqi.addActionListenerthis;radio_huoqinew JRadioButton活期存款;bgro
19、up.addradio_huoqi;panel_rb.addradio_huoqi;this.setVisibletrue;radio_huoqi.addActionListenerthis;JPanel panel_rmnew JPanel;panel1.addpanel_rm;panel_rm.addjlabel_dingqinew JLabel请选择定期期限(年);box_dingqinew JComboBoxdingqis;box_dingqi.setEditabletrue;box_dingqi.addActionListenerthis;panel_rm.addbox_dingqi
20、;this.setVisibletrue;JPanel panel_rnnew JPanel;panel1.addpanel_rn;panel_rn.addjlabel_huoqinew JLabel请输入活期期限(年):;panel_rn.addtext_huoqinew JTextField1,7;button_quedingnew JButton确定;panel1.addbutton_queding;this.setVisibletrue;button_queding.addActionListenerthis;/注册文本编辑事件监听器 public String str/成员方法:获取
21、文本框输入存款数字符串String strtext_cunkuanshu.getText;return str;public double dlixi/成员方法:计算定期利息double abalance;double cdnianfeng;switchintc*4case 1: returna*0.0248*c;case 2: returna*0.0264*c;case 4: returna*0.028*c;case 8: returna*0.0352*c;case 12: returna*0.04*c;case 20: returna*0.044*c;default: return 0;p
22、ublic double hlixi/成员方法:计算活期利息方法double hnianfengDouble.parseDoubletext_huoqi.getText;double abalance;double chnianfeng;double sa*0.004*c;return s;public void actionPerformedActionEvent e/内部对话框类单击事件处理方法ifradio_dingqi.isSelected/定期单选框选中text_huoqi.setVisiblefalse; jlabel_huoqi.setVisiblefalse; jlabel_d
23、ingqi.setVisibletrue;box_dingqi.setVisibletrue;rlixidlixi;else ifradio_huoqi.isSelected/活期单选框选中jlabel_dingqi.setVisiblefalse;box_dingqi.setVisiblefalse;text_huoqi.setVisibletrue;jlabel_huoqi.setVisibletrue;rlixihlixi;ife.getSourcebutton_queding/单击确定按钮double cunkuanzhiInteger.parseInttext_cunkuanshu.
24、getText;/存款数文本框字符串强制转换双精度型if cunkuanzhi0/存款操作 balance+cunkuanzhi; /存款操作使余额值增加JOptionPane.showMessageDialogthis,存款+cunkuanzhi+成功!;ifradio_dingqi.isSelected/定、活期单选框利息计算传送rlixidlixi;ifradio_huoqi.isSelectedrlixihlixi;ife.getSourcebox_dingqi/定期组合框的选择String nianfengString box_dingqi.getSelectedItem;dnian
25、fengDouble.parseDoublenianfeng; 四、系统测试测试mainString args函数测试主界面,测试结果如下图所示: 图二 主界面测试内层界面(内层对话框) 测试内层界面,测试结果如下: 图三 内层界面 图四 内层界面对话框 图五 查询余额界面 图六 当前利息查询界面 图七 取款界面 图八 取款异常提示对话框 图九 取款成功对话框 到此,测试完成,无异常。 五、总结本系统主要实现了银行普通业务的基本功能:存款;取款;查询余额;查询当前利息;这四个基本功能,同时利息中又加入了定期与活期存款,加大了程序难度,特别是界面与算法的结合中,遇到了许许多多的问题,列如在做利息
26、算法与内层界面、主界面的结合中,许多变量无法再内层中调出,最后只能采取把算法放在内层界面中的方法了,基本上这块阻碍了课程设计的进程。还有,各种强制转换,使得程序更为繁琐、复杂。但通过我一步步的修改,最终还是解决了众多问题。 通过这次课程设计,使我对java这门课程了解的更深,更透彻。对面向对象程序设计的基本思想有理一个大体的了解,对以后的学习有很大的帮助。但程序中还是有很多不足,但我相信,在以后的慢慢的学习中,我会把这门语言掌握的更好,东西做的会更好。为以后学别的程序设计语言打下良好的基础。 六、附件(代码、部分图表)import /.nt.*;import java.awt.*;import
27、 javax.swing.*;import /.wLayout;public class bankJFrame extends JFrame implements ActionListenerprivate JTextField text_zhanghao,text_kahao;/定义账号,卡号文本行private JButton button_cunkuan,button_qukuan,button_yue,button_lixi;/定义存款,取款,查询余额按钮private double balance;/成员变量-查看余额private double rlixi;public bankJ
28、Framesuper银行存取款管理系统;/主窗口标题this.setBounds300, 240, 400, 150;/窗口初弹出坐标及大小this.setResizablefalse;/窗口大小不能改变/.htGray;/颜色设置this.setLayoutnew /.wLayoutFlowLayout.CENTER;/面板布局为居中this.setDefaultCloseOperationEXIT_ON_CLOSE;JPanel panel1new JPanel;/新建第一个面板/.panel1,North;panel1.addnew JLabel账户;text_zhanghaonew J
29、TextFieldzj,6;text_zhanghao.setEditablefalse;/文本行不可编辑panel1.addtext_zhanghao;panel1.addnew JLabel卡号;/用户卡号标签及文本行text_kahaonew JTextField6226272,15;text_kahao.setEditablefalse;/文本行不可编辑panel1.addtext_kahao;this.setVisibletrue;/窗口可见JPanel panel2new JPanel;/.panel2,South;/面板布局及添加面板至主面板button_cunkuannew J
30、Button存款;/存款按钮panel2.addbutton_cunkuan;button_cunkuan.addActionListenerthis;button_qukuannew JButton取款;/取款按钮panel2.addbutton_qukuan;button_qukuan.addActionListenerthis;button_yuenew JButton查询当前余额;/查询当前余额按钮panel2.addbutton_yue;button_yue.addActionListenerthis;button_lixinew JButton当前利息;/当前利息按钮panel2.
31、addbutton_lixi;button_lixi.addActionListenerthis;this.setVisibletrue;public class MessageJDialog extends JFrame implements ActionListenerJTextField text_cunkuanshu,text_huoqi;/存款数与活期存款年份的输入JLabel jlabel_huoqi,jlabel_dingqi;/活期期限标签,定期期限标签JButton button_queding;/确定按钮JRadioButton radio_dingqi,radio_huo
32、qi;/活、定期单选框JComboBox box_dingqi;/定期年份组合框double dnianfeng;/内部成员变量定期年份的声明MessageJDialogString dingqissuper提示;this.setBounds350,290,300,220;JPanel panel1new JPanel;panel1.addnew JLabel请输入存款数(元):;panel1.addtext_cunkuanshunew JTextField100,6;text_cunkuanshu.addActionListenerthis;/.panel1;JPanel panel_rbn
33、ew JPanelnew GridLayout1,2;panel1.addpanel_rb;this.setVisibletrue;ButtonGroup bgroupnew ButtonGroup;radio_dingqinew JRadioButton定期存款;bgroup.addradio_dingqi;panel_rb.addradio_dingqi;radio_dingqi.addActionListenerthis;radio_huoqinew JRadioButton活期存款;bgroup.addradio_huoqi;panel_rb.addradio_huoqi;this.s
34、etVisibletrue;radio_huoqi.addActionListenerthis;JPanel panel_rmnew JPanel;panel1.addpanel_rm;panel_rm.addjlabel_dingqinew JLabel请选择定期期限(年);box_dingqinew JComboBoxdingqis;box_dingqi.setEditabletrue;box_dingqi.addActionListenerthis;panel_rm.addbox_dingqi;this.setVisibletrue;JPanel panel_rnnew JPanel;p
35、anel1.addpanel_rn;panel_rn.addjlabel_huoqinew JLabel请输入活期期限(年):;panel_rn.addtext_huoqinew JTextField1,7;button_quedingnew JButton确定;panel1.addbutton_queding;this.setVisibletrue;button_queding.addActionListenerthis;/注册文本编辑事件监听器 public String str/成员方法:获取文本框输入存款数字符串String strtext_cunkuanshu.getText;ret
36、urn str;public double dlixi/成员方法:计算定期利息double abalance;double cdnianfeng;switchintc*4case 1: returna*0.0248*c;case 2: returna*0.0264*c;case 4: returna*0.028*c;case 8: returna*0.0352*c;case 12: returna*0.04*c;case 20: returna*0.044*c;default: return 0;public double hlixi/成员方法:计算活期利息方法double hnianfeng
37、Double.parseDoubletext_huoqi.getText;double abalance;double chnianfeng;double sa*0.004*c;return s;public void actionPerformedActionEvent e/内部对话框类单击事件处理方法ifradio_dingqi.isSelected/定期单选框选中text_huoqi.setVisiblefalse; jlabel_huoqi.setVisiblefalse; jlabel_dingqi.setVisibletrue;box_dingqi.setVisibletrue;r
38、lixidlixi;else ifradio_huoqi.isSelected/活期单选框选中jlabel_dingqi.setVisiblefalse;box_dingqi.setVisiblefalse;text_huoqi.setVisibletrue;jlabel_huoqi.setVisibletrue;rlixihlixi;ife.getSourcebutton_queding/单击确定按钮double cunkuanzhiInteger.parseInttext_cunkuanshu.getText;/存款数文本框字符串强制转换双精度型if cunkuanzhi0/存款操作 ba
39、lance+cunkuanzhi; /存款操作使余额值增加JOptionPane.showMessageDialogthis,存款+cunkuanzhi+成功!;ifradio_dingqi.isSelected/定、活期单选框利息计算传送rlixidlixi;ifradio_huoqi.isSelectedrlixihlixi;ife.getSourcebox_dingqi/定期组合框的选择String nianfengString box_dingqi.getSelectedItem;dnianfengDouble.parseDoublenianfeng;public double get
40、 /取款操作,参数为取款金额,返回实际取到金额 String passwordJOptionPane.showInputDialogthis,请输入取款数;double qukuanzhiInteger.parseIntpassword;if qukuanzhi0if qukuanzhithis.balance this.balance- qukuanzhi;/取款操作使余额值减少else /账户余额不够所取时 qukuanzhi this.balance+rlixi; /取走全部余额 this.balance 0; JOptionPane.showMessageDialogthis,您的余额
41、不足,已为您取出全部余额!;return qukuanzhi; /返回实际取款额return 0; public double balance /查看账户余额 return balance+rlixi;public void actionPerformedActionEvent e/单击事件处理方法ife.getSourcebutton_cunkuan/单击存款按钮String dingqis0.25,0.5,1,2,3,5;/组合框内容数组new MessageJDialogdingqis;/新建MessageJDialog类对象ife.getSourcebutton_yue/单击查询余额按
42、钮double relixibalance;JOptionPane.showMessageDialogthis,尊敬的zj先生,您的当前账户余额为:+relixi+元;ife.getSourcebutton_qukuan/单击取款按钮double qkget;JOptionPane.showMessageDialogthis,取款+qk+元成功!;ife.getSourcebutton_lixi/单击计算利息按钮JOptionPane.showMessageDialogthis,尊敬的zj先生,您的当前账户利息为:+rlixi+元;public static void mainString args/框架bankJFrame主函数new bankJFrame;
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新人版英语八年级下册Unit5总复习ppt课件
- 新人教部编版一年级语文上第五单元ppt课件(全套)
- 高鸿业经济学基础第十五章-总需求-总供给模型-授课-河北工大宋建林课件
- 新人教版高中数学《等差数列前n项和》课件
- 新人教部编版五年级语文上册第六单元测试卷课件
- 高鸿业微观经济学课件第4章生产论
- 高鸿业--微观经济学-第一章课件
- 新人教版部编本五年级下册语文13 人物描写一组 ppt课件
- 新人教版高中化学必修第一册——电解质的电离ppt课件
- 新人教版部编教材二年级下册第一单元3《贝的故事》优质课教学ppt课件
- 高风险作业培训讲义_002
- 新人教版语文三年级下册第五单元全套ppt课件部编版
- 新人教版英语八年级上册第二单元全部ppt课件
- 《走一步再走一步》重点课件
- 新人教版语文一年级上册:识字1《天地人》课件