JAVA课程设计银行存取款管理系统Word文档下载推荐.docx
《JAVA课程设计银行存取款管理系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《JAVA课程设计银行存取款管理系统Word文档下载推荐.docx(32页珍藏版)》请在冰点文库上搜索。
![JAVA课程设计银行存取款管理系统Word文档下载推荐.docx](https://file1.bingdoc.com/fileroot1/2023-5/7/9a30e399-75ae-4dde-b0c3-2badbdd02d7d/9a30e399-75ae-4dde-b0c3-2badbdd02d7d1.gif)
借助内外层两个actionPerformed()函数实现;
2、取款操作。
账户中现金的取出,余额的扣除。
借助函数get()函数实现;
3、当前余额查询操作。
当前账户现金加利息的查询以及输出,借助函数balance()实现;
4、当前利息查询操作。
该模块只要实现:
当前账户利息的查询机输出。
借助函数lixid()与lixih()实现;
5、定活期的设置。
定期与活期存款的设定;
利息的计算。
借助界面以及里层的actionPerformed()函数实现。
三、系统的设计与实现
(一)存款操作:
分析:
首先判断输入的现金数是否为负数,不为负继续存入,为负不存入,主要是actionPerformed()函数实现,存款按钮与内层界面的确定按钮;
该模块的具体代码如下所示。
if(e.getSource()==button_queding)//单击确定按钮
{
doublecunkuanzhi=Integer.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.showInputDialog(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()
分析;
余额变量为成员变量balance,直接返回balance。
该模块的具体代码如下所示。
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:
}
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;
//定义存款,取款,查询余额按钮
privatedoublebalance;
//成员变量--查看余额
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);
JPanelpanel1=newJPanel();
//新建第一个面板
this.getContentPane().add(panel1,"
North"
panel1.add(newJLabel("
账户"
));
text_zhanghao=newJTextField("
zj"
6);
text_zhanghao.setEditable(false);
//文本行不可编辑
panel1.add(text_zhanghao);
卡号"
//用户卡号标签及文本行
text_kahao=newJTextField("
622627199310150612"
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_lixi=newJButton("
当前利息"
//当前利息按钮
panel2.add(button_lixi);
button_lixi.addActionListener(this);
publicvoidactionPerformed(ActionEvente)//单击事件处理方法
if(e.getSource()==button_cunkuan)//单击存款按钮
if(e.getSource()==button_yue)//单击查询余额按钮
doublerelixi=balance();
JOptionPane.showMessageDialog(this,"
尊敬的zj先生,您的当前账户余额为:
+(relixi)+"
元"
if(e.getSource()==button_qukuan)//单击取款按钮
doubleqk=get();
+qk+"
元成功!
if(e.getSource()==button_lixi)//单击计算利息按钮
尊敬的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);
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);
JPanelpanel_rn=newJPanel();
panel1.add(panel_rn);
panel_rn.add(jlabel_huoqi=newJLabel("
请输入活期期限(年):
panel_rn.add(text_huoqi=newJTextField("
7));
button_queding=newJButton("
确定"
panel1.add(button_queding);
button_queding.addActionListener(this);
//注册文本编辑事件监听器
publicStringstr()//成员方法:
获取文本框输入存款数字符串
Stringstr=text_cunkuanshu.getText();
returnstr;
publicdoubledlixi()//成员方法:
publicvoidactionPerformed(ActionEvente)//内部对话框类单击事件处理方法
if(radio_dingqi.isSelected())//定期单选框选中
text_huoqi.setVisible(false);
jlabel_huoqi.setVisible(false);
jlabel_dingqi.setVisible(true);
box_dingqi.setVisible(true);
elseif(radio_huoqi.isSelected())//活期单选框选中
jlabel_dingqi.setVisible(false);
box_dingqi.setVisible(false);
text_huoqi.setVisible(true);
jlabel_huoqi.setVisible(true);
if(e.getSource()==button_queding)//单击确定按钮
if(e.getSource()==box_dingqi)//定期组合框的选择
Stringnianfeng=(String)box_dingqi.getSelectedItem();
dnianfeng=Double.parseDouble(nianfeng);
四、系统测试
(一)测试main(Stringargs[])函数
测试主界面,测试结果如下图所示:
图二主界面
(二)测试内层界面(内层对话框)
测试内层界面,测试结果如下:
图三内层界面
图四内层界面对话框
图五查询余额界面
图六当前利息查询界面
图七取款界面
图八取款异常提示对话框
图九取款成功对话框
到此,测试完成,无异常。
五、总结
本系统主要实现了银行普通业务的基本功能:
存款;
取款;
查询余额;
查询当前利息;
这四个基本功能,同时利息中又加入了定期与活期存款,加大了程序难度,特别是界面与算法的结合中,遇到了许许多多的问题,列如在做利息算法与内层界面、主界面的结合中,许多变量无法再内层中调出,最后只能采取把算法放在内层界面中的方法了,基本上这块阻碍了课程设计的进程。
还有,各种强制转换,使得程序更为繁琐、复杂。
但通过我一步步的修改