当前位置:文档之家› 简单银行存取款系统java课设

简单银行存取款系统java课设

java课程设计专业数字媒体技术班级 1 2 1 4 0 1 题目简单银行存取款系统项目负责人明星指导教师 xxxxxxxx 2013年12月19日—2013年12月25日121401班Java课程设计报告书目录1、摘要 (2)1.1摘要 (2)1.2团队人员信息 (2)2、题目概况 (3)2.1题目简介 (3)2.2题目特色 (3)2.3任务分配 (4)3、功能介绍 (5)4、核心算法 (9)4.1初始界面与主界面 (9)4.2进入与退出 (10)4.3用户登录 (11)4.4存款 (12)4.5取款 (13)4.6查询 (14)4.7键盘输入与时间显示 (14)5、程序清单 (15)6、心得 (23)第1页共 23 页121401班Java课程设计报告书1、摘要第一次进行java课程设计,要与自己的团队自行设计一个系统,十分激动。

根据我们目前所掌握的知识,GUI了解不是太多,所以系统不采用单独的界面显示。

这虽然会显得系统过于简单,但是我们会在功能上挽回这方面的纰漏。

在经过多方渠道了解后,发现,java初学者的课程设计大多是“计算器”、“聊天”、“贪吃蛇”、“24点游戏”等多种小程序。

做银行系统的相对来说不是太多,为此我们准备做一个简单的银行存取款系统,既简单,又有挑战性的题目。

下面就跟随我一起进入我们的银行管理系统吧!团队人员信息:第2页共 23 页121401班Java课程设计报告书2、题目概况2.1、题目简介用纯粹的java语言实现简单银行存取款的功能,运用学到的知识实现预期要求。

在功能界面上,用清晰的操作提示与顺序,让用户用着顺心,看着舒心。

同时菜单的多项功能选择达到用户的需求。

在每项操作后都会有时间提示,以提供用户账户的安全信息。

2.2、题目特色我们的程序打破了以往这方面的繁琐操作,用简单、清晰而安全的界面功能实现它本身的作用。

让用户清晰明了的知道系统的功能,快速掌握操作要领,不会像以往的程序那样,让用户繁琐的操作,还不能了解操作要领。

所以我们用简单、清晰而安全的界面功能来满足用户的需要,实现系统的实际应用性。

第3页共 23 页121401班Java课程设计报告书2.3、任务分配由于团队人数较少,任务分担会有些重。

但是分工很明确,而且很有效率。

明确项目要实现的功能后,就迅速开展编写工作,不会出现人多思路乱,意见不一致,分配不合理与成员空闲的情况。

其中,明星,主要负责程序的编写,功能的实现,以及撰写报告书,明确的将程序的功能写清。

徐敬涵,主要负责界面的布局,搜集资料补充系统缺陷,并检查报告书的不足之处。

团队人员信息:第4页共 23 页121401班Java课程设计报告书3、功能介绍1、初始界面,清晰明了的登陆界面。

给人以舒适的感觉。

2、a)、键盘输入账号回车时,程序会自动退出系统。

输入密码。

输入错误出现提示第5页共 23 页121401班Java课程设计报告书b)、输入正确,出现选择对话框,并跳出菜单。

美观的布局,清晰的选项,给人以舒适之感。

第6页共 23 页121401班Java课程设计报告书3、功能菜单:a)、键盘输入1回车,会提示输入您的存款金额,键盘输入存款金额回车,界面会自动跳到主菜单,方便用户继续操作。

b)、键盘输入2回车,会提示输入您的取款金额,键盘输入取款金额回车,界面会自动跳到主菜单,方便用户继续操作。

第7页共 23 页121401班Java课程设计报告书c)、键盘输入3回车,界面会显示本年度年利率5%,本年度目前您所得利息为:"xxx" 元;本年度年利率5%,本年度目前您的本息为: "xxx" 元;2013年12月21日1:33:56重复操作后,金额显示均为本年度的本息。

4、键盘输入4回车,程序会自动跳出系统。

第8页共 23 页121401班Java课程设计报告书4核心算法4.1初始界面与主界面初始界面与主界面用输出文字的方式显示,并用switch语句控制选择。

用class KB这个类控制键盘输入。

//初始选择页面System.out.println("*******************");System.out.println("*****请输入账号:*****");System.out.println("*******************");System.out.println("请选择:");//菜单页面System.out.println("请选择要执行的操作:");System.out.println("*******************");System.out.println("1. 存款");System.out.println("2. 取款");System.out.println("3. 查询");System.out.println("4. 退出");System.out.println("*******************\n");System.out.println("请选择:");//菜单界面的switch语句switch(c){case 1:this.saveMoney(leftmoney);//存款break;case 2:this.getMoney(leftmoney);//取款break;第9页共 23页121401班Java课程设计报告书case 3:this.Interest(leftmoney);//余额break;case 4:flag=false;System.out.println("\n*********欢迎下次光临!*********");//退出System.exit(0);break;default:System.out.println("没有该选项,请重新选择!");break;}4.2进入与退出进入就是创建对象,调用run()方法。

case 1:while(true){System.out.println("欢迎光临!\n");ba.run();break;}退出就是调用System.exit(0);方法强行退出。

第10页共 23 页121401班Java课程设计报告书4.3用户登录//顾客登录class Cust{public void ID(){new KB();int ct = KB.nextInt();switch(ct){case 1111:this.Cust1();break;case 2222:this.Cust2();break;case 3333:this.Cust3();break;default:System.out.println("没有该用户,请重新选择!");Cust c = new Cust();c.ID();}}第11页共 23 页121401班Java课程设计报告书4.4存款定义saveMoney()方法,用while、if语句实现存款功能,用for语句防止重复操作后,利息累加的问题。

for(int i=0;i<10;i++){while (true){System.out.println("请输入您存款的金额:");new KB();double m1=KB.nextInt();if(m1>0){this.leftmoney+=m1;//操作正确,存入资金break;}else{System.out.println("您存款的金额不正确,请重新输入!\n");}}this.Calendar();//打印时间,调用Calendar()break;}num++;第12页共 23 页121401班Java课程设计报告书4.5取款定义getMoney()方法,用while、if语句实现取款功能,用for语句防止重复操作后,利息累加的问题。

for(int i=0;i<10;i++){while (true){System.out.println("请输入您取款的金额:");new KB();int m1=KB.nextInt();if(m1>0){if(m1<this.leftmoney)this.leftmoney-=m1;//操作正确,扣除取出的资金elseSystem.out.println("对不起,您账户余额不足!请查询后在进行取款!\n");break;}else{System.out.println("您取款的金额不正确,请重新输入!\n");}}this.Calendar();//打印时间,调用Calendar()break;}num++;第13页共 23 页121401班Java课程设计报告书4.6查询用if语句算利息与本息并控制,防止重复操作引起利息累加的问题。

if(num==1){InterestMoney = savemoney*0.05;//按5%利率算取利息this.leftmoney += InterestMoney;//本息}4.7键盘输入与时间显示1、键盘输入,定义class KB类,控制键盘输入。

//键盘输入class KB{static Scanner s = new Scanner(System.in);static int nextInt(){return s.nextInt();}}2、调用calendar方法显示时间public void Calendar() {//显示并计算存储时间Calendar c1 = Calendar.getInstance();//下面打印当前时间System.out.println(c1.get(java.util.Calendar.YEAR)+"年"+(c1.get(java.util.Calendar.MONTH)+1)+"月"+c1.get(java.util.Calendar.DAY_OF_MONTH)+"日"+c1.get(java.util.Calendar.HOUR)+":"+c1.get(java.util.Calendar .MINUTE)+":"+c1.get(java.util.Calendar.SECOND));}第14页共 23 页121401班Java课程设计报告书5、程序清单import java.awt.BorderLayout;import java.awt.Button;import java.awt.Frame;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowEvent;import java.awt.event.WindowListener;import java.util.Calendar;import java.util.Scanner;import java.awt.event.WindowAdapter;import javax.swing.JButton;import javax.swing.JPanel;import java.applet.Applet;import java.awt.*;import java.awt.Color;public class BankSystem {public static void main(String []args){//2013/12/24 星期二 18:58:49修改//顾客初始化System.out.println("*******************");System.out.println("****请输入账号:****");System.out.println("*******************");BankAccount ba = new BankAccount();Cust c = new Cust();c.ID();//GUIFrame frame = new Frame("欢迎光临数媒银行!");Button b1 = new Button("银行业务");Button b2 = new Button("欢迎光临数媒银行!");Button b3 = new Button("退出");第15页共 23 页121401班Java课程设计报告书//增加事件处理器b1.addActionListener(new BankAccount());//与ActionEvent e关联b3.addActionListener(new Exit());//与ActionEvent e关联//Java中的组件若想添加事件处理器,都会使用形如addXxxListener 的方法来添加。

相关主题