ATM管理系统(java-窗口界面完整版)
java课程设计ATM柜员机模拟程序
数据库连接:使用JDBC连接 数据库,进行数据查询
查询语句:编写SQL查询语句, 根据用户输入进行查询
结果展示:将查询结果以列表 或表格形式展示给用户
05
AT M 柜 员 机 的 数 据 库 设计
数据库表结构设计
用户表:存储用户信息,包括用户名、密码、余额等 交易表:记录用户的交易信息,包括交易时间、交易金额、交易类型等 账户表:存储账户信息,包括账户编号、账户类型、账户余额等 银行信息表:存储银行信息,包括银行名称、银行地址、银行电话等 系统日志表:记录系统操作日志,包括操作时间、操作人、操作内容等
网络中断等
性能测试与优化
测试方法:压力测 试、负载测试、稳 定性测试等
测试工具: JMeter、 LoadRunner等
优化目标:提高系 统响应速度、减少 资源消耗、提高系 统稳定性等
优化方法:代码优 化、数据库优化、 缓存优化等
调试过程与问题解决
测试环境搭建:安装Java开发环境,配置 数据库,安装模拟器等
06
AT M 柜 员 机 的 测试与调试
01 添加章节标题
02
AT M 柜 员 机 模 拟 程 序 概述
AT M 柜 员 机 的 基 本 功 能
存 款 : 用 户 可 以 将 现 金 存 入 AT M 柜 员 机 , 系统会自动识别并记录存款金额
转 账 : 用 户 可 以 通 过 AT M 柜 员 机 进 行 转 账操作,系统会自动记录转账信息
异地备份:将 备份数据存储 在异地,防止 自然灾害等意 外情况导致的
数据丢失
访问控制:设 置严格的访问 控制策略,防 止未授权访问
安全审计:定 期进行安全审 计,及时发现 并修复安全漏
ATM系统UML 7种图
UML建模语言7种图(以银行ATM系统为例)分类:JAVA2010-04-21 20:40 2911人阅读评论(0) 收藏举报uml语言活动作业优化1 用例图:描述了系统提供的一个功能单元。
以一种可视化的方式理解系统的功能需求,"角色"与系统内用例之间的关系。
本例中,参与者"银行储户"和ATM机。
简化后的ATM机仅有取款、存款及其余功能。
其余功能不做详细说明。
2 类图:显示系统的静态结构。
逻辑类、实现类,实现类就是程序员处理的实体。
类在类图上使用包含三个部分的矩形来描述,如图2所示。
最上面的部分显示类的名称,中间部分包含类的属性,最下面的部分包含类的操作(或者说"方法")。
本例中许多单个的帐户组成了帐户库,帐户具有帐户类型、帐户号、余额三个属性。
许多银行储户组成了储户库。
ATM系统包含了许多ATM机。
银行储户及ATM机两个类包含哪些属性,哪些操作,它们的可见性及操作的返回类型、参数个数、参数类型从类图上都一目了然。
通过类图不仅可以使设计者明确的表达自己的设计意图,也能帮助自己整理思路,充实及优化自己的设计。
3 序列图:显示具体用例(或者是用例的一部分)的详细流程。
它几乎是自描述的,并且显示了流程中中不同对象之间的调用关系,同时还可以很详细地显示对不同对象的不同调用。
序列图有两个维度:垂直维度以发生的时间顺序显示消息/调用的序列;水平维度显示消息被发送到的对象实例。
本例以时间为顺序描述了顾客在ATM机上取款时信息的流动情况,顺序图着重于对象间消息传递的时间顺序。
4 状态图:表示某个类所处的不同状态和该类的状态转换信息。
包括5个基本元素:初始起点,它使用实心圆来绘制;状态之间的转换,它使用具有开箭头的线段来绘制;状态,它使用圆角矩形来绘制;判断点,它使用空心圆来绘制;以及一个或者多个终止点,它们使用内部包含实心圆的圆来绘制。
本例描述了顾客在ATM机上进行操作会经历的几种状态,及各种状态之间转换的条件。
ATM管理系统(java_窗口界面完整版)
ATM管理系统引言:本系统采用JAVA语言并在eclipse环境下编写测试完成,涉及类的概念,以及面向对象的几大特性(继承,封装,多态,抽象),也有异常处理机制,采用集合(更好)存储账户数据,基本可以满足大多数BAM系统的相关实现。
JAVA类的面相对象的应用,拥有异常处理机制,不会因为输入错误而导致程序崩溃。
本系统各个类之间的相互关系,涉及继承、封装、多态、抽象,在多态中又涉及重载和重写,相关联系请关注代码注释。
可以实现数据保存功能,数据将保存在文件中(即当你注册了一个账户,下次再登录系统时,可以实现与上次最后的操作相衔接)。
最后账户号自动生成,比较符合现实。
1、软件需求分析1.1 市场需求由于的各方面发展速度的大幅提高,几乎所有的银行都配备了不用繁琐的人工操作的ATM自动取款机。
人们可以随时随地进行交易,不再受银行的服务时间的约束,取款时也为人们节省了很多时间,方便快捷。
对于配有ATM自动取款机的银行,客户较多,系统需操作方便,信息读取与存储及时快速,方便客户进行自由交易和系统管理员对信息的管理。
1.2 功能需求软件应包含取款、存款、转账、查询、修改密码等ATM机的主要功能。
2、程序结构本系统主要有7个类,即①Account(账户类)②SaveAccount(储蓄账户类):不能透支③CreditAccount(信用账户类):可以透支④Bank(银行类)⑤ATMOpenAccountFrame(开户窗口页面)⑥ATMLoginFrame(登录窗口页面)⑦ATMMainFrame(操作窗口页面)注:带有完善的相关信息提示弹出窗口 (见下面截图)类的具体属性级行为见代码3、功能介绍主要功能有:1.开户(储蓄账户—信用账户)2.查询账户余额3.存款4.取款5.转账(一个账户到另一个账户)4、软件设计7、运行时界面简示1.初始界面(账户登录)2.账户登录后界面3.相关信息提示一览(只列举一部分)1、查询:2、存款:3、取款:4、转账:4、用户开户界面:注意事项:1、本系统采用的编程环境是JDK1.7,jer7。
JAVA版ATM自动取款机程序
}
public void setPassword(String p) {
this.password=p;
}
public void setMoney(double m) {
this.money=m;
}
protected String getCode() {
M0p.setLayout(new FlowLayout());
M1p.setLayout(new FlowLayout());
M2p.setLayout(new FlowLayout());
M3p.setLayout(new FlowLayout());
M4p.setLayout(new FlowLayout());
return code;
}
protected String getPassword() {
return password;
}
public double getMoney() {
return money;
}
}
class ATM extends JFrame implements ActionListener
}
//登录后的初始界面
public void init(){
contentpane.remove(Mpane);
Mpane = new JPanel();
JPanel M0p = new JPanel();
JPanel M1p = new JPanel();
JPanel M2p = new JPanel();
Jb2 = new JButton("ATM取款");
JAVA课程设计---银行存取款管理系统[1]
课程设计设计题目:银行存取款管理系统专业 (方向):计算机科学与技术(网络工程)年级、班:2011级计算机科学与技术班学生姓名:杨梅学生学号:12011247435指导教师:马子睿2013 年12月25日目录一系统开发的背景 (1)二、系统分析与设计 (1)(一)系统功能要求 (1)(二)系统模块结构设计 (1)三、系统的设计与实现 (3)(一)存款操作: (3)(二)取款操作:GET() (3)(三)查询余额:BALANCE() (4)(四)查询利息:LIXID();LIXIH() (4)(五)主界面的建立:BANK JF AME (5)(五)内层界面的建立:M ESSAGE JD IALOG (8)四、系统测试 (12)(一)测试MAIN(S TRING ARGS[])函数 (12)(二)测试内层界面(内层对话框) (12)五、总结 (14)六、附件(代码、部分图表) (14)一系统开发的背景在传统的银行帐户管理中,其过程往往是很复杂的,繁琐的,帐户管理以入帐和出帐两项内容为核心,在此过程中又需要经过若干道手续,因为整个过程都需要手工操作,效率十分低下,且由于他们之间关联复杂,统计和查询的方式各不相同;且会出现信息的重复传递问题,因此该过程需要进行信息化,以利用计算机进行帐目管理。
为了提高银行的办事效率,减低银行工作人员的办事效率,降低传统银行的出入账计算方式,因此急需开发一套信息化的方式,开发合适的系统就成为了解决这一问题的核心。
二、系统分析与设计(一)系统功能要求由于数据库系统还没有学习,所以只固定一账户,账户信息包括账户姓名与卡号。
具体实现的功能主要有:1.定、活期存款操作。
2.取款操作。
3.查询账户余额。
4.计算当前利息。
(二)系统模块结构设计通过对系统功能的分析,学生综合测评系统功能如图一所示。
图一银行存取款管理系统功能图通过上图的功能分析,把整个系统划分为6个模块:1、存款操作。
ATM(JAVA课程设计)
ATM柜员机模拟程序摘要使用图形用户界面。
当输入给定的卡号和密码(初始卡号为123456和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:查询余额:初始余额为50000元ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。
ATM存款:不能出现负存款。
修改密码:只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。
我所设计的ATM柜员机主要是由登录页面模块还由选择服务模块组成,其中选择服务模块又由取款模块、查询余额模块、修改密码模块、退卡模块组成。
一个系统界面的好坏直接影响到用户的操作,界面设计要求样式美观、简单明了、方便易操作。
我设计的界面主要分为窗体、菜单、按钮和文本输入框几个部分,分别执行相应的操作。
.关键字:图形用户界面;ATM;柜员机;模拟程序;模块;}ATM machines simulation programAbstractUse the graphical user interface. When the input given card number and password (initial card number for 123456 and password for 123456), the system can login ATM machines system, users can according to the following rules:Inquires the balance: initial balance is 50000 yuan ATM withdrawals: every time a multiple of the amount of, the total will not more than 5000 yuan, the amount of withdrawals allows no overdraft.ATM deposits: can't negative deposits.Change the password: only the correct password is old, the new password accords with a requirement, and two enter the same case can be modified successfully password.!I designed by ATM machines is mainly composed of the login page module by choice service module is, selecting the service module by withdrawals and module, inquires module, modify the password balance module, return card modules. A system interface has a direct influence on the user's operation, interface design requirements style beauty, simple and clear, make the operation easy. I design interface are divided into form, menu, button and text input box sectionsKeywords:graphical user interface; ATM; Automated Teller Machine; simulation program; module;1 系统需求分析功能需求分析本ATM柜员机的主要功能如下所述:要求使用图形用户界面。
java编写的简单atm系统
import java.util.Scanner;public class Atm {public static void main(String[] args) {Atm qk=new Atm();qk.AtmSystem();}public void AtmSystem(){Scanner input=new Scanner(System.in);int i=0;int amount=0;String password="";System.out.println("请输入密码:");password=input.next();while(!"111111".equals(password)){i++;System.out.println("密码错误,请重新输入密码:");password=input.next();if(i==2){System.out.println("密码连续三次输入错误,请取卡...");break;}}if("111111".equals(password)){System.out.println("请输入交易金额(100的整数倍)");amount=input.nextInt();while((amount!=0)&&(amount!=100)&&(amount!=200)&&(amount!=300)&&(amo unt!=400)&&(amount!=500)&&(amount!=600)&&(amount!=700)&&(amount!=800)&& (amount!=900)&&(amount!=1000)){System.out.println("请重新输入交易金额(100的整数倍)");amount=input.nextInt();}switch(amount/100){case 0:System.out.println("0交易");break;case 1:System.out.println("交易100元");System.out.println("交易完成,请取卡");break;case 2:System.out.println("交易200元");System.out.println("交易完成,请取卡");break;case 3:System.out.println("交易300元");System.out.println("交易完成,请取卡");break;case 4:System.out.println("交易400元");System.out.println("交易完成,请取卡");break;case 5:System.out.println("交易500元");System.out.println("交易完成,请取卡");break;case 6:System.out.println("交易600元");System.out.println("交易完成,请取卡");break;case 7:System.out.println("交易700元");System.out.println("交易完成,请取卡");break;case 8:System.out.println("交易800元");System.out.println("交易完成,请取卡");break;case 9:System.out.println("交易900元");System.out.println("交易完成,请取卡");break;case 10:System.out.println("交易1000元");System.out.println("交易完成,请取卡");break;default:System.out.println("");}}}}。
java课程设计-ATM柜员机模拟程序
感谢您的耐心观看
汇报人:
添加标题
操作选择:用户选择 要进行的操作
添加标题
操作执行:执行用户 选择的操作,如存款、 取款、转账等
添加标题
操作结果:显示操作 结果,如存款成功、 取款成功、转账成功 等
添加标题
用户退出:用户选择 退出系统,结束程序
程序运行环境
操作系统: Windows、 Linux、Mac
OS等
开发环境: Java
登录按钮:点击登录,验证用户名和密 码
界面美化:使用美观的图标和颜色,提 高用户体验
账户管理模块实现
账户创建: 用户输入 账户信息, 系统自动 生成账户
账户查询: 用户输入 账户号, 系统返回 账户信息
账户修改: 用户输入 账户号和 修改信息, 系统更新 账户信息
账户删除: 用户输入 账户号, 系统删除 账户信息
系统从用户账户 中扣除存款金额
系统将存款金额 存入用户账户
查询余额模块实现
系统从数据库中获取用户银 行卡余额信息
系统将余额信息显示在界面 上
用户输入银行卡号,系统验 证银行卡号是否正确
用户可以查看自己的账户余 额
ATM柜员机模拟程序测 试
测试用例设计
不足:在程序实现过程中遇到了一些困难,如算法优化、界面设计等
展望:希望在未来的学习中,能够更深入地了解Java编程,提高编程能力,实现 更复杂的程序设计
对未来改进和发展的建议
增加用户界面友 好性,提高用户 体验
优化算法,提高 程序运行效率
增加安全机制, 确保用户数据安 全
拓展功能,如支 持在线支付、转 账等
转账:用户可以将资金从一个账户转移到另一个账户。
添加项标题
java面向对象版ATM管理系统
这段时间闲的没事接了一个课程设计,具体就是学完java基础入门语法和面向对象(封装,继承,多态)之后需要做一个模拟ATM的管理系统,功能包括注册登陆、存取查功能。
前后思考加实现用了半天时间去完善修改实现此系统,一方面是对自己以前所学知识的回顾以及综合运用,另一方面也是给新人指条路,毕竟学习确实不易,还是希望大家少走弯路。
Java基础语法和面向对象的重点在此简单罗列以下,各位小伙伴查漏补缺,看自己哪块知识有漏洞去加深学习巩固下知识------》》》变量、运算符、循环、函数、数组、面向对象、this、super、static 、final、成员变量局部变量、构造函数、函数重载、重写/覆写、封装、继承、多态、抽象、接口。
其中尤为重要的是接口,无论是以后工作还是学习最常用最重要的就是接口,做项目各成员分工之后各自实现自己的部分,最后对接一下接口就OK了,所以说接口无论是在面向对象中还是在以后的开发中都很重要。
通俗来讲接口举个例子,电脑的USB接口可以对接鼠标、键盘、硬盘、数据线等等,对接的对象不同实现的功能就不同,在实际开发中每个人的功能是不一样的,实现了接口的对接即实现了此功能的植入调用。
好了,接下来是开始今天的项目展示和思路分析,话不多说开始!首先思路要清晰,我们需要什么,要做什么,有什么用,了解清楚才好下手。
具体分为存取成员信息变量类、登陆注册类、存查取类、菜单类以及测试类。
各个功能模块实现独立分开,详细介绍如下:Account类:用于存取用户成员变量信息Menu类:主菜单即登陆注册菜单,以及登陆成功后的存取查操作菜单RegisAndLogin类:包括登陆和注册方法Operation类:登陆成功后的存取查方法AtmTest类:功能测试类重点:该系统最重要的是要把账户类作为参数去传递,因为要实现操作的变量信息随时能够接收到,举个例子,如果不把账户类作为参数,在注册信息成功后再去登陆是绝对不可能的,因为变量复赋值后的值是传递不过去的,其他类和方法接收不到。
JAVA_ATM机课程设计报告
在这次系统设计过程中,我把详细设计介绍如下:配置好环境,编译程序,当程序运行后,首先看到的页面银行管理系统页面,它的运行效果图,如图2所示:图2银行管理系统首界面登陆页面模块设计:定义了文本框类的对象tf1,tf2。
主要是用于输入单行的文本;文本区调用public String getText()方法,获取用户想要的字符串。
用来判断输入的密码和卡号是否正确,如果不正确的话,则弹出密码或卡号错误的警告框,并用dispose()关掉窗口。
此模块相应的详细源代码见附录部分,部分代码如下:box1= Box.createVerticalBox;box1.add(new Label("请输入你的卡号")); //输入卡号box1.add(Box.createVerticalStrut(8));box1.add(new Label("请输入你的密码"));//输入密码选择服务模块设计:在选择服务模块中,有各种ATM的服务功能,只要用户在该界面中选择按钮,它就会弹出各个相应的界面。
每一个按钮都有监听器,在选择了按钮后,java.awt.event中的ActionEvent类创建一个事件对象,并将它传递给方法public void actionPerformed(ActionEvent e)中的参数e,监视器就会知道所发生的事件,对此事件进行处理。
其中的详细源代码请参见附录部分,部分代码如下:this.setLayout(null);this.setLayout(new GridLayout(6,1));4.1系统运行效果进入系统按钮进入输入卡号页面,运行效果图,如图3所示:图3 输入卡号界面输入卡号后,点击确定时系统会判断是否存在此卡号,如果不存在此卡号,系统则会自动提醒用户此卡号不存在,请重新输入,如果输入的是正确的卡后,则进入输入密码界面,其运行效果图,如图4所示:图4 输入密码界面输入不正确,则会提醒你密码不正确,请重新输入,当输入正确密码后,点击确定进入系统主界面,运行效果图,如图5所示:图5 系统主界面界面在主界面中包含了6个主要功能,只要用户在该界面中选择按钮,它就会弹出各个相应的界面。
ATM自助取款机系统java代码(大全)
ATM自助取款机系统java代码(大全)第一篇:ATM自助取款机系统java代码(大全)public void actionPerformed(ActionEvent e)//界面显示控制 {String IC_Number=“";String password=”“;String IC_No=”“;z30.setVisible(false);floatleftmoney=0;floatmoneys=0;float mon=0;float money1=0;float money2=0;if(true){int No_50=0,No_100=0;String strin=”select NO_50,NO_100 from ATM ATM_ID='123456789'“;ResultSetrsSQLSelect=executeQuery(stri n);try{ if(rsSQLSelect.next()){No_50=Integer.parseInt(rsSQLSelect.getString(”NO_50“));No_100=Integer.parseInt(rsSQLSelect.getString(”NO_100“));where}}catch(Exception er){System.out.println(”查询ATM机信息出错!“);}if(No_50==0&&No_100==0){z1.setVisible(false);t1.setText(”对不起,本ATM自动取款机暂停服务!“);cl.show(c,”1“);}}cl.show(c,”1“);if(e.getSource()==z1){t3.setText(”“);text1.setText(”“);cl.show(c,”2“);}if(e.getSource()==z4||e.getSource()==z6||e.getSource()==z1 1||e.getSource()==z16||e.getSource()==z18||e.getSource()==z22) { closeDBConnectio n();cl.show(c,”1“);}if(e.getSource()==z2){ closeDBConnection();System.exit(0);}if(e.getSource()==z3){ IC_Number=text1.getText().trim();if(getname(IC_Number)){z5.setVisible(true);pw1.setVisible(true);t4.setVisible(true);pw1.setText(”“);t5.setText(”“);cl.show(c,”3“);}else{t3.setText(”您输入的卡号不存在,请重新输入!“);cl.show(c,”2“);}}if(e.getSource()==z5){password=pw1.getText().trim();IC_Number=text1.getText().tr im();if(!login(IC_Number,password)){t5.setText(”您输入的密码错误,请重新输入!“);pw1.setText(”“);n--;cl.show(c,”3“);}else{t5.setText(”“);cl.show(c,”4“);}if(n<0){n=2;t5.setText(”您已经三次输入错误密码,谢谢您的使用,欢迎下次光临!“);z5.setVisible(false);pw1.setVisible(false);t4.setVisible(false);cl.show(c,”3“);}}if(e.getSource()==z7){t33.setText(”“);cl.show(c,”5“);}if(e.getSource()==z8)//余额查询 { DBAccess d=new DBAccess();String str3=”“;String stri=”“;IC_Number=text1.getText().trim();t29.setText(IC_Number);leftmoney=getmoney(IC_Number);t30.setText(Float.toString(leftmoney));stri=”selectbank_name from IC,bank where IC.bank_NO=bank.bank_NO and IC_ID='“+IC_Number+”'“;ResultSetrsSQLSelect=d.executeQu ery(stri);try{if(rsSQLSelect.next()){str3=rsSQLSelect.getString(”bank_name“);//mit();}} catch(Exception er){}t32.setText(str3);cl.show(c,”10“);}if(e.getSource()==z9){t23.setText(”“);cl.show(c,”9“);}if(e.getSource()==z10){t28.setText(”“);cl.show(c,”11“);}if(e.getSource()==z12){ DBAccess d=new DBAccess();IC_Number=text1.getText().trim();fetchmoney=Integ er.parseInt(text2.getText());if(fetchmoney<=0){t9.setText(”取款金额非法!请重新输入!“);text2.setText(”“);cl.show(c,”6“);return;}if(fetchmoney>1000){t9.setText(”每次交易金额最大为1000元!“);text2.setText(”“);cl.show(c,”6“);return;}if(fetchmoney%50!=0){t9.setText(”取款金额只能为50的倍数!“);text2.setText(”“);cl.show(c,”6“);return;} leftmoney=getmoney(IC_Number);if(fetchmoney>leftmoney){t9.setText(”您的余额不足,请重新输入取款金额!“);text2.setText(”“);cl.show(c,”6“);return;}int No_50=0,No_100=0,x_50=0,x_100=0,mo=0;String str1=”select NO_50,NO_100 from ATM where ATM_ID='123456789'“;ResultSetrsSQLSelect=d.executeQuery(s tr1);try{ if(rsSQLSelect.next()){No_50=Integer.parseInt(rsSQLSelect.getString(”NO_50“));No_100=Integer.parseIn t(rsSQLSelect.getString(”NO_100“));}}catch(Exception er){System.out.println(”查询ATM机信息出错!“);}x_100=fetchmoney/100;if(No_100{ mo=fetchmoney-No_100*100;x_50=mo/50;if(x_50>No_50){t9.setText(”取款机现钞不足!“);text2.setText(”“);cl.show(c,”6“);return;}else{No_50=No_50-x_50;No_100=0;}}else{No_100=No_100-x_100;x_50=(fetchmoney-x_100*100)/50;if(x_50>No_50){t9.setText(”取款机50面值现钞不足!“);text2.setText(”“);cl.show(c,”6“);return;}else{No_50=No_50-x_50;}}String str2=”update ATM set NO_50=“+No_50+” where ATM_ID='“+ATM_id+”'“;String str3=”update ATM set NO_100=“+No_100+” whereATM_ID='“+ATM_id+”'“;d.executeUpdate(str2);d.executeUpd ate(str3);setmoney(fetchmoney,IC_Number);t12.setText(Float.toString(fetchmoney));cl.show(c,”7“);text2.setText(”");第二篇:ATM取款机java课程设计黄淮学院JAVA 课程设计报告题目:《ATM柜员机》课程设计学院:信息工程学院专业:计算机科学与技术指导老师:二0一三年六月目录课程设计过程概述.......................................................................................3 2 课程设计题目描述和基本设计要求...........................................................3 3 系统需求分析...............................................................................................3 3.1 功能需求分析···················································································· 3 3.2 其他需求分析.................................................................................... 4 4 系统设计........................................................................................................4 4.1 总体设计........................................................................................... 4 4.2 ATM柜员机界面设计......................................................................... 5 4.3 各功能模块设计.. (7)4.3.1 登陆页面模块设计............................................................. 7 4.3.2 选择服务模块设计............................................................. 8 4.3.3 取款模块设计..................................................................... 9 4.3.4 修改密码模块设计............................................................. 9 4.3.5 退卡模块设计. (10)4.4 异常处理情况说明.......................................................................... 10 5 系统实现与测试.........................................................................................11 6 课程设计总结.............................................................................................13 6.1 遇到的问题及解决办法.................................................................. 13 6.2 心得体会......................................................................................... 14 参考文献..........................................................................................................15 附录 (15)ATM初始账号:000000初始密码:123456ATM柜员机课程设计过程概述2013年6月,JAVA课程设计在1#楼六楼机房进行,持续时间为两周。
java_ATM界面设计代码
A TM取款机界面代码package A TM;import java.awt.BorderLayout;import java.awt.Button;import java.awt.Color;import java.awt.FlowLayout;import java.awt.Frame;import java.awt.GridLayout;import java.awt.Panel;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextArea;import javax.swing.JTextField;/*** 写一个A TM界面* 显示A TM界面* 作者:* 版本:0.0.1* 日期:2010.3.24*/class A TM_Interface extends JFrame {JPanel pan1; // 定义面板pan1JPanel pan2; // 定义面板pan2JPanel pan3; // 定义面板pan3JPanel pan4; // 定义面板标签1JButton[] bt_dt; // 定义数组btJButton[] bt_text; // 定义数组bt1JButton bt1,bt2,bt3,bt4,bt5,bt6,bt7,bt8,bt9; // 定义按钮JTextArea txt; // 定义文本框JLabel lab1; // 定义标签String[] str = {"1","2","3","4","5","6","7","8","9",".","0","00"}; // 定义数字数组String[] str1 = {">>>>",">>>>",">>>>","查询","取款"}; // 定义文字数组GridLayout gl = new GridLayout(4,2,8,8); // 定义网格g1GridLayout g2 = new GridLayout(5,2); // 定义网格g2GridLayout g3 = new GridLayout(5,2); // 定义网格g3A TM_Interface(){pan1 = new JPanel(); // 数字页面pan2 = new JPanel(); // 文本面板pan3 = new JPanel(); // 文字面板pan4 = new JPanel(); // 标签面板bt1 = new JButton(">>>>"); // 定义按钮1bt2 = new JButton(">>>>"); // 定义按钮2bt3 = new JButton(">>>>"); // 定义按钮3bt4 = new JButton("插卡"); // 定义按钮4bt5 = new JButton("取卡"); // 定义按钮5bt6 = new JButton("确定"); // 定义按钮6bt7 = new JButton("清除"); // 定义按钮7bt8 = new JButton(""); // 定义按钮8bt9 = new JButton(""); // 定义按钮9pan1.setLayout(gl); // 添加网格1pan3.setLayout(g3); // 添加网格3pan4.setLayout(g2); // 添加网格2bt_dt = new JButton[str.length];bt_text = new JButton[str1.length];txt = new JTextArea(10,20); // 设置文本区域的大小//lab1 = new JLabel("11111111");pan2.setBackground(Color.yellow); // 设置面板2为黄色txt.setEnabled(false); // 设置文本为可读pan2.add(txt); // 添加文本框for(int i=0;i<str.length;i++){bt_dt[i] = new JButton(str[i]); // 创建按钮数组bt_dt[i].setActionCommand(str[i]);bt_dt[i].addActionListener(new btn());pan1.add(bt_dt[i]); // 增加按钮}for(int i=0;i<str1.length;i++){bt_text[i] = new JButton(str1[i]); // 创建按钮数组bt_text[i].setActionCommand(str1[i]);bt_text[i].addActionListener(new btn());pan3.add(bt_text[i]); // 增加文字按钮}add(pan2,BorderLayout.CENTER); // 在面板2上添加文本区域add(pan3,BorderLayout.WEST); // 在面板3上添加按钮数组add(pan4,BorderLayout.EAST); // 在面板4上添加按钮pan4.add(bt1); // 添加按钮1pan4.add(bt2); // 添加按钮2pan4.add(bt3); // 添加按钮3pan4.add(bt4); // 添加按钮4pan4.add(bt5); // 添加按钮5add(pan1,BorderLayout.SOUTH); // 添加按钮并放置按钮方位pan1.add(bt8); // 添加按钮6pan1.add(bt9); // 添加按钮7pan1.add(bt6); // 添加按钮8pan1.add(bt7); // 添加按钮9}// 插卡// 输入密码// 判断密码// 取款// 查询// 取卡// 显示面板class btn implements ActionListener{ //设置监听@Overridepublic void actionPerformed(ActionEvent e) {String getbt1_name = e.getActionCommand();}}public void show_frame(){//setSize(700,550);pan1.setBackground(Color.yellow);pack();//spuer(jf);setTitle("A TM取款机");setVisible(true);}public static void main(String[] args){A TM_Interface in = new A TM_Interface();in.show_frame(); // 运行显示页面}}。
atm机银行项目java图形界面)
package erland;/*** 欢迎界面* @author Administrator**/public class Welcomeland extends JFrame{JPanel p1;private JButton btn1;Label label;static JframUserLand jf=null;public Welcomeland(String arg0) throws HeadlessException { super(arg0);setSize(800, 600);p1 = new JPanel();label=new Label("XX银行欢迎登陆!");btn1 = new JButton("登陆");btn1.addActionListener(new MyActionListner());p1.add(btn1);p1.add(label);setContentPane(p1);public static void main(String[] args) {Welcomeland myJframe = new Welcomeland("XX银行欢迎登陆!");myJframe.setVisible(true);}class MyActionListner implements ActionListener {@Overridepublic void actionPerformed(ActionEvent arg0) {Object o = arg0.getSource();if (o == btn1) {jf=new JframUserLand("XX银行欢迎登陆!");jf.pack();setVisible(false);jf.setVisible(true);}}}}package erland;im/*** 登陆界面* @author Administrator**/public class JframUserLand extends JFrame {private JButton btn1, btn2;static JTextField t1;static JPasswordField t2;JPanel p1;public JframUserLand(String arg0) throws HeadlessException { super(arg0);setSize(800, 600);p1 = new JPanel();Frame f = new Frame("用户登录");f.setLayout(new GridLayout(4, 2));btn2 = new JButton("确认");btn2.addActionListener(new MyActionListner());t1 = new JTextField("输入用户名", 15);t2 = new JPasswordField("输入密码", 15);f.add(new Label("用户名:", Label.CENTER));p1.add(t1);f.add(new Label("密码:", Label.CENTER));p1.add(t2);p1.add(btn2);setContentPane(p1);this.setVisible(true);}class MyActionListner implements ActionListener {@Overridepublic void actionPerformed(ActionEvent arg0) {Object o = arg0.getSource();if (o == btn2) {InputStreamReader isr;try {isr = new InputStreamReader(new FileInputStream("person.txt"));BufferedReader Ia = new BufferedReader(isr);String a = Ia.readLine();String b = Ia.readLine();Ia.close();if (JframUserLanJframBank jBank = new JframBank("XX银行欢迎登陆!");jBank.setVisible(true);jBank.pack();setVisible(false);jBank.setVisible(true);}} else {JframUserLand jframUserLand = new JframUserLand("XX银行欢迎登陆!");jframUserLand.setVisible(true);jframUserLand.pack();setVisible(false);jframUserLand.setVisible(true);}} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}}package com.action;impo/*** 主界面* @author Administrator**/public class JframBank extends JFrame {private BTN1 bt1 = null;static BTN2 bt2 = null;static BTN3 bt3 = null;static BTN4 bt4 = null;private JButton btn1, btn2, btn3, btn4, btn5;JPanel p1;public JframBank(String arg0) throws HeadlessException { super(arg0);setSize(600, 400);p1 = new JPanel();btn1 = new JButton("查询");btn1.addActionListener(new J());btn2 = new JButton("取款");btn2.addActionListener(new J());btn3 = new JButton("存钱");btn3.addActionListener(new J());btn4 = new JButton("转账");btn4.addActionListener(new J());btn5 = new JButton("退出");btn5.addActionListener(new J());p1.add(btn1);p1.add(btn2);p1.add(btn3);p1.add(btn4);p1.add(btn5);setContentPane(p1);this.setVisible(true);}class J implements ActionListener {public void actionPerformed(ActionEvent arg0) { Object o = arg0.getSource();if (o == btn1) {bt1 = new BTN1("查询");bt1.pack();setVisible(false);bt1.setVisible(true);}if (o == btn2) {bt2 = new BTN2("取款");bt2.pack();setVisible(false);bt2.setVisible(true);}if (o == btn3) {bt3 = new BTN3("存款");bt3.pack();setVisible(false);bt3.setVisible(true);}if (o == btn4) {bt4 = new BTN4("转账");bt4.pack();setVisible(false);bt4.setVisible(true);}if (o == btn5) {Welcomeland wel = new Welcomeland("XX银行欢迎登陆!");wel.setVisible(true);wel.pack();setVisible(false);wel.setVisible(true);}}}public BTN1 getBt1() {return bt1;}}package com.action;/*** 查询界面** @author Administrator**/public class BTN1 extends JFrame {private JButton btn1, btn2;static JTextField t1;private JPanel b1 = new JPanel();private JframBank jfb = null;public BTN1(String arg0) throws HeadlessException {super(arg0);setSize(300, 200);t1=new JTextField(15);b1.setName("查询");btn1 = new JButton("查询余额");btn1.addActionListener(new B());btn2 = new JButton("退出");btn2.addActionListener(new B());b1.add(btn1);b1.add(btn2);b1.add(t1);setContentPane(b1);this.setVisible(true);}public JTextField getT1() {return t1;}class B implements ActionListener {public void actionPerformed(ActionEvent arg0) { Object o = arg0.getSource();if (o == btn1) {Query query = new Query();query.query(jfb);}if (o == btn2) {jfb=new JframBank("XX银行欢迎登陆!");jfb.setVisible(true);jfb.pack();setVisible(false);}}}}package com.action;import ja/*** 取款界面* @author Administrator**/public class BTN2 extends JFrame{private JButton btn1,btn2;JTextField t1;JPanel b1=new JPanel();JframBank jfb=null;public BTN2(String arg0) throws HeadlessException { super(arg0);setSize(300, 200);b1.setName("取款");btn1 =new JButton("取款");btn1.addActionListener(new B());btn2 =new JButton("退出");btn2.addActionListener(new B());t1=new JTextField(15);t1.addActionListener(new B());b1.add(btn1);b1.add(btn2);b1.add(t1);setContentPane(b1);this.setVisible(true);}class B implements ActionListener{public void actionPerformed(ActionEvent arg0) { Object o = arg0.getSource();if(o==btn1){// Withdraw withdraw=new Withdraw();try {Withdraw.Withdrawl();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}else{jfb=new JframBank("XX银行欢迎登陆!");jfb.setVisible(true);jfb.pack();setVisible(false);jfb.setVisible(true);}}}}package com.action;t.ActionListener;/*** 存款界面* @author Administrator*/public class BTN3 extends JFrame{private JButton btn1,btn2;JTextField t1;JPanel b1=new JPanel();JframBank jfb=null;public BTN3(String arg0) throws HeadlessException { super(arg0);setSize(300, 200);b1.setName("存款");btn1 =new JButton("存款");btn1.addActionListener(new B());btn2 =new JButton("退出");btn2.addActionListener(new B());t1=new JTextField(15);t1.addActionListener(new B());b1.add(btn1);b1.add(btn2);b1.add(t1);setContentPane(b1);this.setVisible(true);class B implements ActionListener{public void actionPerformed(ActionEvent arg0) { Object o = arg0.getSource();if(o==btn1){Save save=new Save();save.save();}else{jfb=new JframBank("XX银行欢迎登陆!");jfb.setVisible(true);jfb.pack();setVisible(false);jfb.setVisible(true);}}}}package com.action;/*** 转账界面* @author Administrator*/public class BTN4 extends JFrame{private JLabel l1,l2;private JButton btn1,btn2;JTextField t1,t2;JPanel b1=new JPanel();JframBank jfb=null;public BTN4(String arg0) throws HeadlessException { super(arg0);setSize(150, 200);b1.setName("转账");btn1 =new JButton("转账");btn1.addActionListener(new B());btn2 =new JButton("退出");btn2.addActionListener(new B());l1=new JLabel("转账账号:");t1=new JTextField(10);t1.addActionListener(new B());l2=new JLabel("转账金额:");t2=new JTextField(10);t2.addActionListener(new B());b1.add(btn1);b1.add(btn2);b1.add(l1);;b1.add(t1);b1.add(l2);b1.add(t2);setContentPane(b1);this.setVisible(true);}class B implements ActionListener{public void actionPerformed(ActionEvent arg0) { Object o = arg0.getSource();if(o==btn1){Transfer transfer = new Transfer();try {transfer.Tran(jfb);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}else{jfb=new JframBank("XX银行欢迎登陆!");jfb.setVisible(true);jfb.pack();setVisible(false);jfb.setVisible(true);}}}}package com.action;/*** 查询* @author Administrator**/public class Query {public void query(JframBank jframBank){try {BufferedReader Ia=new BufferedReader(new InputStreamReader(new FileInputStream("1.txt")));try {String a=Ia.readLine();Ia.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}package com.action;/*** 存款* @author Administrator**/public class Save {public void save(){BufferedReader br = null;try {InputStreamReader isr =new InputStreamReader(newFileInputStream("1.txt"));BufferedReader ia=new BufferedReader(isr);String a=ia.readLine();ia.close();int c = Integer.parseInt(a); //c数据信息对应a 原金额int d = Integer.parseInt(s); //d数据信息对应s 存入金额if (d>0) {int e=c+d;String f = String.valueOf(e); //int转换成stringOutputStreamWriter osw =new OutputStreamWriter(new FileOutputStream("1.txt"));BufferedWriter bw =new BufferedWriter(osw);bw.write(f);bw.close();Savesuccess ss=new Savesuccess("");ss.setVisible(true);}else{WithdraWerror w=new WithdraWerror("");w.setVisible(true);}} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}package com.action;public class Savesuccess extends JFrame{private JPanel b1=new JPanel();Label label;public Savesuccess(String arg0) throws HeadlessException { setSize(300,200);label=new Label("存款成功,请退出!");b1.add(label);setContentPane(b1);}}package com.action;/*** 转账* @author Administrator**/public class Transfer {public void Tran(JframBank jframBank) throws IOException{ InputStreamReader isr =new InputStreamReader(new FileInputStream("1.txt"));BufferedReader Ia=new BufferedReader(isr);String a=Ia.readLine();Ia.close();int d = Integer.parseInt(a); //d数据信息对应a 原金额int c = Integer.parseInt(b); //c对应为输入的金额转账金额if (c>=0) {if (d>c) {int e=d-c; //剩余金额String f = String.valueOf(e); //int转换成stringInputStreamReader isr2 =new InputStreamReader(new FileInputStream("2.txt"));BufferedReader Ib=new BufferedReader(isr2);String g=Ib.readLine();int h = Integer.parseInt(g); //把转账账号的金额转成string类型h=h+c;String j = String.valueOf(h);FileWriter fw=new FileWriter("1.txt");fw.write(f);fw.flush();FileWriter fw1=new FileWriter("2.txt");fw1.write(j);fw1.flush();Ib.close();TransferSuccess ts=new TransferSuccess("");ts.setVisible(true);}else{TransferError tr=new TransferError("");tr.setVisible(true);}}else{WithdraWerror wi=new WithdraWerror("");wi.setVisible(true);}}}package com.action;public class TransferError extends JFrame{private JPanel b1=new JPanel();Label label;private JButton btn1;public TransferError(String arg0) throws HeadlessException { setSize(300,200);label=new Label("存款成功,请退出!");b1.add(label);setContentPane(b1);}}package com.action;public class TransferSuccess extends JFrame{private JPanel b1=new JPanel();Label label;private JButton btn1;public TransferSuccess(String arg0) throws HeadlessException { setSize(300,200);label=new Label("转账成功,请退出!");b1.add(label);setContentPane(b1);}}package com.action;/*** 取款* @author Administrator**/public class Withdraw {public static void Withdrawl() throws IOException{InputStreamReader isr =new InputStreamReader(new FileInputStream("1.txt"));BufferedReader Ia=new BufferedReader(isr);String a=Ia.readLine();Ia.close();int c = Integer.parseInt(a); //c数据信息对应a 原金额int d=Integer.parseInt(s); //d数据信息对应b 取款金额Ia.close();//判断输入的数是否为正数if (d>0) {int e=c-d;if (e>=0) {String f = String.valueOf(e);FileWriter fw2=new FileWriter("1.txt");fw2.write(f);fw2.flush();WithdrawSuccess wi=new WithdrawSuccess("");wi.setVisible(true);}else {TransferError t=new TransferError("");t.setVisible(true);}}else{WithdraWerror w=new WithdraWerror("");w.setVisible(true);}}}package com.action;public class WithdraWerror extends JFrame{private JPanel b1=new JPanel();Label label;public WithdraWerror(String arg0) throws HeadlessException {setSize(300,200);label=new Label("输入不合法,请退出重新输入!");b1.add(label);setContentPane(b1);}}package com.action;public class WithdrawSuccess extends JFrame{private JPanel b1=new JPanel();Label label;public WithdrawSuccess(String arg0) throws HeadlessException { setSize(300,200);label=new Label("取款成功,请退出!");b1.add(label);setContentPane(b1);}}。
java实现简单atm系统
java实现简单atm系统博客班级作业要求< >作业⽬标编写⼀个ATM管理系统,语⾔不限,要求应包括以下主要功能:(1)开户,销户(2)查询账户余额(3)存款(4)取款(5)转账(⼀个账户转到另⼀个账户)等...学号3190704108先创建⼀个接⼝account.对atm的主要功能做⼀个叙述package easyatm;public abstract class account {private String accountId;//⽤户账号private String accountName;//⽤户姓名private String accountPwd;//⽤户密码private double accountIdBalance;//账户余额private String accountPersonId;//⽤户⾝份号码private String accountPho;public account() {}public account(String accountId,String accountName,String accountPwd,double accountIdBalance,String accountPersonId,String accountpho) { this.accountId=accountId;this.accountName=accountName;this.accountPwd=accountPwd;this.accountIdBalance=accountIdBalance;this.accountPersonId=accountPersonId;this.accountPho=accountPho;}public String getaccountId() {return accountId;}public void setaccountId(String accountId) {this.accountId=accountId;}public String getaccountName() {return accountId;}public void setaccountName(String accountName) {this.accountName=accountName;}public String getaccountPwd() {return accountPwd;}public void setaccountPwd(String accountPwd) {this.accountPwd=accountPwd;}public double getaccountIdBalance() {return accountIdBalance;}public void setaccountIdBalance(double accountIdBalance) {this.accountIdBalance=accountIdBalance;}public String getaccountPersonId() {return accountId;}public void setaccountPersonId(String accountPersonId) {this.accountPersonId=accountPersonId;}public String getaccountPho() {return accountPho;}public void setaccountPho(String accountPho) {this.accountPho=accountPho;}//取款public double dospit(double money) {if(money>0) {this.accountIdBalance-=money;}return this.accountIdBalance;}//存款public double withdraw(double money) {if(money>0) {this.accountIdBalance+=money;}return this.accountIdBalance;}//转账public double tranaccount(account otheraccout,double money) {otheraccout.accountIdBalance+=money;this.accountIdBalance-=money;return this.accountIdBalance;}public static void main(String[] args) {}}再创建⼀个普通类operate、package easyatm;import java.util.Scanner;public class operate extends account {static void choice (int choice) {operate user1=new operate();account user2=(account)new operate();switch(choice) {case 1://设置个⼈账户System.out.println("请填写基本⽤户信息");Scanner scan1=new Scanner(System.in);System.out.println("请输⼊你的姓名:");String name=scan1.next();user1.setaccountName(name);System.out.println("请输⼊你的⾝份证号:");Scanner scan2=new Scanner(System.in);String personId=scan2.next();user1.setaccountPersonId(personId);System.out.println("填写你的⼿机号码作为账号:");Scanner scan3=new Scanner(System.in);String pho=scan3.next();user1.setaccountPho(pho);System.out.println("请设置你的密码:");Scanner scan4=new Scanner(System.in);String pwd=scan4.next();user1.setaccountPwd(pwd);break;case 2://取款System.out.println("请输⼊你的取款⾦额:");Scanner scan5=new Scanner(System.in);String change1=scan5.next();int money1=Integer.valueOf(change1);System.out.println("你的账户余额:"+user1.dospit(money1)); break;case 3://存款System.out.println("请输⼊你的存款⾦额:");Scanner scan6=new Scanner(System.in);String change2=scan6.next();int money2=Integer.valueOf(change2);System.out.println("你的账户余额:"+user1.withdraw(money2)); break;case 4://查询账户余额System.out.print("你的存款⾦额为:");System.out.println(user1.getaccountPersonId());break;case 5://转账System.out.println("请输⼊你需要转账⾦额:");Scanner scan7=new Scanner(System.in);String change3=scan7.next();double money3=Double.valueOf(change3);user1.dospit(money3);user2.withdraw(money3);System.out.println("你转账成功,请注意查询");break;case 6://消除账户System.out.println("请输⼊你的账户:");Scanner scan8=new Scanner(System.in);scan8.next();System.out.println("请输⼊你的密码:");Scanner scan9=new Scanner(System.in);scan9.next()System.out.println("账户,密码输⼊正确,销户成功");break;}}public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println("1;注册个⼈账户");System.out.println("2:取款");System.out.println("3:存款");System.out.println("4:查询账户余额");System.out.println("5:转账");System.out.println("6:消除账户");System.out.println("请选择你需要操作:");Scanner scan8=new Scanner(System.in);String change4=scan8.next();int oper=Integer.valueOf(change4);while(oper!=0) {choice(oper);System.out.println("请选择你需要操作");Scanner scan9=new Scanner(System.in);String change5=scan8.next();oper=Integer.valueOf(change5);}}}任务内容计划完成需要的时间(min)计划完成需要的时间(min)计划1010估计这个任务需要多少时间,并规划⼤致⼯作步骤100110开发300400需求分析(包括学习新技术)20090⽣成设计⽂档10510设计复审1010代码规范3525具体设计020任务内容计划完成需要的时间(min)计划完成需要的时间(min)具体编码00代码复审1010测试(⾃我测试,修改代码,提交修改)1015报告00测试报告00计算⼯作量500600事后总结,并提出过程改进计划3030总结感想:真正到了来⽤的时候,才发现⾃⼰的不⾜,虽然⽤了,最适合编译系统的java语⾔,但是⾃⼰的实⼒有限,只是实现了简单的⼀些功能,要实现更多的功能⾃⼰可能就不会了。
JavaATM自动取款机
Java课程设计报告项目: ATM自动取款机姓名:学号: 10592127班级: 10级网络一班分数:项目说明目录第一部分、项目整体概述………………………………………………页第二部分、数据库信息描述……………………………………………页第三部分、自己承担部分的实验报告………………………………页第四部分、心得体会……………………………………………………页一、项目整体概述我们的ATN机系统设计的实现根据结构程序设计原理,将每个模块的功能用相应的标准语句表示出来。
包括代码设计、数据库设计、用户界面设计、处理过程设计。
代码设计是指把系统管理对象数字化或字符化,便于计算机的处理。
遵照代码设计的原则:合理性、简明性、系统性、稳定性、可扩充性、标准化、便于识别和记忆。
数据库设计指对系统所采用的数据模式、子模式、应用程序、数据库等根据用户的具体要求进行分析和设计。
它也是管理信息系统设计的重要组成部分。
数据库设计的基本原则是尽可能提高数据组织的相对独立性,简化其结构,即用规范化方法设施数据存储的结构,提高数据的可维护性、完整性、一致性。
通过收集和分析用户需求,确定了数据库要保存的信息。
我们这次实训课设计的ATM机,主要应用java图形用户界面开发的知识,主要界面有欢迎界面,登陆界面,选择业务界面和退出,其中选择业务界面又包括修改密码,取款服务和查询余额。
能让人们通过我们的设计完成想要的操作。
为人们带来方面。
(1)模拟ATM柜员机程序;(2)欢迎界面点击Login(登录)跳到登陆界面,点击quit(退出)则退出。
(3)登陆界面包括输入卡号和密码,不正确时则不能进入提示没有该用户名称或密码错误,请核对后重新输入。
当密码和用户名都正确时则进入选择服务界面。
(4)选择页面可以选择修改密码,查询余额,和取款3个服务。
(2)修改密码。
当用户需要修改密码时,可以用这个功能,新密码不能为空,确定密码时不能为空,旧密码必须正确,且新密码和确定密码两次输入相同的情况下才可以成功修改密码。
用Java实现简单ATM机功能
⽤Java实现简单ATM机功能本⽂实例为⼤家分享了Java实现简单ATM机功能的具体代码,供⼤家参考,具体内容如下项⽬介绍基于⼤家使⽤银⾏卡在ATM机取款操作,进⾏相对应ATM机操作流程的实现。
项⽬功能1、注册功能:根据⽤户输⼊的账号密码申请⼀张银⾏卡,存储在银⾏卡类型的数组中(⼀张银⾏卡对应⼀个有效⽤户)。
2、登录功能:登陆失败:重新登陆或注册登陆成功:对登陆的这张银⾏卡可以进⾏⼀下操作:存款、取款、查余额、转账、退卡功能。
项⽬知识点3、java基本语法的使⽤4、⼀维数组5、函数调⽤,封装6、Java类和对象项⽬实现思路7、设计并实现系统的相关打印界⾯:注册、登陆、登陆后操作8、登录系统必须输⼊正确的卡号和密码,输⼊错误时提⽰⽤户重新登陆。
9、实现取款、存款、查余额等功能。
难点对⾯向对象编程的理解,以及静态变量和实例变量的理解。
⼆者区别:实例变量:跟对象有关,⼀个对象⼀份实例变量静态变量:跟对象⽆关,⼀个类⼀份静态变量源代码1.ATM类public class ATM {private static boolean flag = true;private int id;private int passwd;private BankCard bankCard;private static Bank bank;/* 不写跳1空异常*/public ATM(){bank = new Bank();}Scanner scanner = new Scanner(System.in);public void start(){int chioce;while (flag == true){System.out.println("请选择: 1.注册 2.登录 3.退出");chioce = scanner.nextInt();switch(chioce){case 1:System.out.println("请输⼊账号和密码:");id = scanner.nextInt();passwd = scanner.nextInt();register(id,passwd);break;case 2:System.out.println("请输⼊账号和密码:");id = scanner.nextInt();passwd = scanner.nextInt();login(id,passwd);break;case 3:flag = false;break;}}}//注册private void register(int id, int passwd) {//检查此卡号是否存在if(bank.contains(id)){System.out.println("此卡号已存在,注册失败!");}else{bankCard = new BankCard(id,passwd);bank.add(bankCard);System.out.println("注册成功!");}}//登录private void login(int id, int passwd) {//检查此卡号是否存在if(bank.login(id,passwd)){System.out.println("登陆成功!");//登陆成功返回卡的信息bankCard = bank.getcard(id,passwd);//调⽤ ATM功能函数function(bankCard);}else{System.out.println("登陆失败!请重新登录");}}//ATM功能函数private void function(BankCard bankCard) {double money;int count = 0;int chioce;while (flag == true){System.out.println("请选择: 1.存款 2.取款 3.查余额 4.转账 5.退卡"); chioce = scanner.nextInt();switch(chioce){case 1:System.out.println("请输⼊存款⾦额:");money = scanner.nextDouble();bank.setMoney(bankCard,money);System.out.println("存款成功!");break;case 2:System.out.println("请输⼊取款⾦额:");money = scanner.nextDouble();if(bank.getMoney(bankCard,money)){System.out.println("取款成功!");}else{System.out.println("余额不⾜取款失败!");}break;case 3:System.out.println("余额为:"+bank.getBalance(bankCard)); break;case 4:System.out.println("请输⼊转账的账号:");while(flag){count = scanner.nextInt();//检查此卡号是否存在if(!bank.contains(count)){System.out.println("此卡号不存在,请重新输⼊:");} else{flag =false;}}System.out.println("请输⼊转账的⾦额:");money = scanner.nextDouble();if(bank.transfer(bankCard,bank.getcard1(count),money)){System.out.println("转账成功!");}else{System.out.println("余额不⾜,转账失败!");}break;//莫名结束??case 5:flag = false;break;}}}}2.Bank类public class Bank {private BankCard[] cards;private static int cardsnum = 0;// private static double cardsmoney = 0.0;private static final int INITSIZE = 10;public Bank(){cards = new BankCard[INITSIZE];}//查询卡是否存在public boolean contains(int id) {for(int i=0;i<cardsnum;i++){if (cards[i].getId() == id){return true;}}return false;}//登录public boolean login(int id,int passwd) {for(int i=0;i<cardsnum;i++){if (cards[i].getId() == id && cards[i].getPasswd() == passwd){return true;}}return false;}//添加⼀张银⾏卡public void add(BankCard card) {//判断存卡的数组是否已满if(cards.length == cardsnum){//数组已满执⾏扩容操作cards = Arrays.copyOf(cards,cards.length+(cards.length>>1));}//银⾏卡存⼊银⾏卡类型数组cards[cardsnum] = card;//银⾏卡数+1cardsnum++;}//输⼊卡号,密码返回银⾏卡public BankCard getcard(int id, int passwd){for(int i=0;i<cardsnum;i++){if (cards[i].getId() == id && cards[i].getPasswd() == passwd){return cards[i];}}return null;}//存款public boolean setMoney(BankCard card,double money){return card.setMoney(money);}//取款public boolean getMoney(BankCard card,double money){return card.getMoney(money);}//查余额public double getBalance(BankCard card){return card.getBalance();}//转账public boolean transfer(BankCard card, BankCard tempcard, double money){ if( card.getMoney(money)){tempcard.setMoney(money);return true;}return false;}//输⼊卡号,密码返回银⾏卡public BankCard getcard1(int id){for(int i=0;i<cardsnum;i++){if (cards[i].getId() == id){return cards[i];}}return null;}}3.BankCard类public class BankCard {private int id;private int passwd;private double money;public BankCard(int id, int passwd) {this.id = id;this.passwd = passwd;}public int getId() {return id;}public void setId(int id) {this.id = id;}public int getPasswd() {return passwd;}public void setPasswd(int passwd) {this.passwd = passwd;}public boolean getMoney(double money) {if(this.money>=money){this.money -= money;return true;}else{return false;}}public boolean setMoney(double deposit) {this.money += deposit;return true;}public double getBalance(){return this.money;}}以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
Java 课程设计银行存取款管理系统
兰州商学院陇桥学院工学系课程设计报告设计题目:银行存取款管理系统系别:工学系专业 (方向):信息管理与信息系统年级、班: 2011级信息管理与信息系统班2013 年7 月5 日目录一、系统开发的背景 (3)二、系统分析与设计 (4)(一)系统功能要求: (4)(二)系统模块结构设计 (4)1、存款系统模块,该模块主要实现:用户的存款要求; (5)2、取款模块,该模块主要实现:用户的取款要求; (5)3、余额查询模块,该模块主要实现:用户完成各项存取款后的余额查询业务; (5)4、利率模块,该模块主要实现:用户完成各项业务后,对账户余额利率的查询; (5)5、转账模块,该模块主要实现:用户对其存款的转账业务; (5)6、退出模块,业务完成,退出系统。
(5)三、系统的设计与实现 (6)(一)登录界面 (6)(二)主菜单界面 (8)(三)各模块的具体实现 (12)四、系统测试 (15)(一)登录界面: (15)(二)主菜单界面: (16)(三)各操作界面: (16)五、总结 (18)六、附件(代码、部分图表) (18)银行存取款管理系统一、系统开发的背景随着社会经济的发展,信息化程度的不断深入,银行的传统业务己愈来愈不能满足银行客户的需要。
现今,人们的金融意识、科技意识己经有了很大的提高,在紧张忙碌的生活中,己越来越来不习惯每月奔忙于各银行营业柜台之问去排队缴各种各样的费用了;同时,各种经营单位如电信、移动、供电、煤气、自来水、证券等等一是为了提高服务质量、方便客户,二是为了减轻自己日趋繁重的工作量,纷纷委托银行为其开展代收代付业务:同时,随着我国加入世贸组织的日益临近,我国的银行业将面临更加激烈的同业竞争,如何提供更多的金融产品和更优质的服务,如何吸引更多的客户,如何利用计算机技术加强银行帐户信息管理、进行银行业务再造,提高银行的工作效率和业务竟争能力是摆在各家银行面前的一个迫切需要解诀的问题。
随着代理业务不断发展,业务品种越来越多,各项业务做法互有差异,这就对银行的电子化水平和相应的管理水平提出了更高的要求。
面向对象程序设计JavaATM银行系统
南华大学计算机科学及技术学院课程设计报告(2008 ~2009学年度第一学期)课程名称面向对象程序设计—Java 课程设计名称ATM银行系统组长包伟辉学号20064440147组员李阳学号20064440119组员包月涛学号20064440146专业计算机专业班级计算机061班地点宏辰7-103教师谭敏生目录一、系统分析31.1 系统概述31.2.系统需要解决的主要问题31.3.系统应具备的基本功能31.4. 系统设计开发工具及环境4二、系统设计52.1.概要设计52.1.1 设计思想62.1.2 系统功能模块划分62.1.3 ATM系统各模块图62.1.4 数据库的逻辑设计72.2详细设计82.2.1 管理员窗体模块组成82.2.2 管理员模块窗体界面及相应代码9 2.2.3 用户窗体模块组成172.2.4 用户模块窗体界面及相应代码18三、设计小结23四、参考文献:23一、系统分析在信息高速发展的当今时代,ATM自动取款机已在日常生活中普遍存在,ATM是Automatic Teller Machine的缩写,意思是自动柜员机,因大部分用于取款,又称自动取款机。
它是一种高度精密的机电一体化装置,利用磁性代码卡或智能卡实现金融交易的自助服务,代替银行柜台人员的工作。
可提取现金、查询存款余额、进行账户之间资金划拨、余额查询等工作;还可以进行现金存款(实时入账)、支票存款(国内无)、存折补登、中间业务等工作。
持卡人可以使用信用卡或储蓄卡,根据密码办理自动取款、查询余额、转账、现金存款,存折补登,购买基金,更改密码等业务。
要实现这样一个系统,首先应该进行需求分析,这样才能令设计出的软件满足用户的各项功能。
下面就对在线考试系统的设计进行需求分析1.1系统概述ATM系统分为前台和后台,前台用于用户的登录以实现用户的取款、存款、转账、查询、修改、取卡等功能;后台用于管理员管理和维护用户的信息实现的功能为开户、销户、查询、修改用户的各种信息。
教你用JavaSwing实现自助取款机系统
教你⽤JavaSwing实现⾃助取款机系统⼀、系统介绍系统功能1.登录系统2.查询余额3.取款4.存款5.转账6.修改密码7.退出系统JDK版本:1.8存储数据形式:TXT存储数据⼆、系统展⽰1.登录页2.主页3.取款4.存款5.转账6.修改密码三、部分代码LoginJFrame.javapackage atmJFrame.myJFrame;import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;//登录界⾯继承MyJFramepublic class LoginJFrame extends MyJFrame {public LoginJFrame() {super("欢迎使⽤ATM机");// 设置窗体可关闭setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置组件init();// 界⾯可视化setVisible(true);}// 初始化界⾯private void init() {// 创建⾯板对象,并定义为空布局JPanel jp = new JPanel(null);// 添加标签JLabel jl1 = new JLabel("账号:");JLabel jl2 = new JLabel("密码:");// 设置标签字体jl1.setFont(FONT_SIZE_20);jl2.setFont(FONT_SIZE_20);// 设置标签在⾯板中的位置jl1.setBounds(100, 100, 70, 70);jl2.setBounds(100, 250, 70, 70);// 添加⽂本框JTextField jtf = new JTextField(20);// 添加密码⽂本框JPasswordField jpf = new JPasswordField(20);// 设置⽂本框位置jtf.setBounds(200, 115, 200, 40);jpf.setBounds(200, 265, 200, 40);// 添加按钮JButton jb = new JButton("登录");// 设置按钮⽂字⼤⼩jb.setFont(FONT_SIZE_20);// 设置按钮位置及⼤⼩jb.setBounds(250, 400, 100, 50);// 设置⾯板背景颜⾊jp.setBackground(Color.YELLOW);// 内部类进⾏事件处理jb.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// 获取输⼊的账号和密码String userName = jtf.getText();String userPassword = new String(jpf.getPassword());// 验证是否正确boolean aBoolean = atm.login(userName, userPassword);if (aBoolean) {// 登录成功dispose();// 关闭登录界⾯// 打开功能界⾯new WorkingJFrame();} elseshowMessageDialog("账号或密码错误");// 调⽤⽗类弹窗⽅法}});// 添加组件jp.add(jl1);jp.add(jtf);jp.add(jl2);jp.add(jpf);jp.add(jb);// 窗体添加⾯板add(jp);}public static void main(String[] args) {new LoginJFrame();// 先创建登录界⾯}}CentreJFrame.javapackage atmJFrame.myJFrame;import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.regex.Matcher;import java.util.regex.Pattern;//中间窗⼝,存钱、取钱、转账、修改密码界⾯的⽗类public class CentreJFrame extends MyJFrame {// 空布局⾯板,⾃⼰设置组件位置及⼤⼩protected JPanel jp = new JPanel(null);// 输⼊⾦额标签protected JLabel jl = new JLabel("请输⼊⾦额:");// 输⼊⾦额⽂件框protected JTextField jtf = new JTextField(20);// 确认、取消按钮protected JButton jb1 = new JButton("确认");protected JButton jb2 = new JButton("取消");// 转账时转账账号标签protected JLabel jLabel = new JLabel("请输⼊转账账号:");// 转账时转账账号⽂本框protected JTextField jTextField = new JTextField(20);// 修改密码时新密码标签protected JLabel jLabelCP = new JLabel("请输⼊新密码(只能为数字):"); // 修改密码时新密码⽂本框protected JTextField jTextFieldCP = new JTextField(20);// 提醒⽤户输⼊⾦额为100的倍数private JLabel jle = new JLabel("( 提⽰:只能输⼊100的倍数 )"); public CentreJFrame(String str) {super(str);// 判断要进⾏的操作if (str.equals("转账"))init1();else if (str.equals("修改密码"))init2();elseinit();one();// 最后调⽤共有}// 取钱和取钱特有组件private void init() {// 输⼊⾦额标签,设置字体,位置及⼤⼩jl.setFont(FONT_SIZE_25);jl.setBounds(100, 100, 200, 100);// 输⼊⾦额⽂本框jtf.setBounds(300, 250, 200, 50);// 添加输⼊⾦额标签和输⼊⾦额⽂本框jp.add(jl);jp.add(jtf);setJLE();}// 转账特有组件private void init1() {init();// 输⼊账户标签jLabel.setFont(FONT_SIZE_25);jLabel.setBounds(100, 10, 200, 40);// 输⼊账户⽂本jTextField.setBounds(300, 80, 200, 50);// 添加输⼊账户标签和输⼊账户⽂本jp.add(jLabel);jp.add(jTextField);}// 修改密码特有组件private void init2() {// 输⼊新密码标签jLabelCP.setFont(FONT_SIZE_25);jLabelCP.setBounds(50, 100, 400, 70);// 输⼊新密码⽂本框jTextFieldCP.setBounds(300, 215, 200, 40);// 添加输⼊新密码标签和输⼊新密码⽂本框jp.add(jLabelCP);jp.add(jTextFieldCP);}// 共有组件及操作private void one() {// 按钮设置jb1.setFont(FONT_SIZE_20);jb2.setFont(FONT_SIZE_20);jb1.setBounds(300, 350, 100, 50);jb2.setBounds(450, 350, 100, 50);jp.add(jb1);jp.add(jb2);jp.setBackground(Color.GREEN);jb1.addActionListener(listener);jb2.addActionListener(listener);// 添加到窗体add(jp);setVisible(true);}// 设置提⽰private void setJLE() {jle.setFont(FONT_SIZE_10);jle.setBounds(100, 180, 300, 50);jp.add(jle);}// 创建监听器private ActionListener listener = new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// 按钮被点击后String actionCommand = e.getActionCommand();// 获取按钮上的字switch (actionCommand) {case "确认":change();break;case "取消":new WorkingJFrame();// 创建功能界⾯dispose();// 关闭此界⾯break;}}};// 点击确认按钮执⾏的操作,⼦类重写覆盖实现各⾃功能protected void change() {}// 正则表达式判断输⼊是否为数字protected boolean isNumber(String str) {Pattern pattern = pile("[0-9]*");Matcher isNum = pattern.matcher(str);if (!isNum.matches())return false;return true;}}CunMoneyJFrame.javapackage atmJFrame.myJFrame;//存钱界⾯public class CunMoneyJFrame extends CentreJFrame {public CunMoneyJFrame() {super("存钱");}protected void change() {String s = jtf.getText();if (isNumber(s)) {Double money = Double.parseDouble(s);boolean b = atm.saveMoney(money);if (b)showMessageDialog("您的钱钱已存⼊\n您的账户余额为:" + atm.getMoney1()); elseshowMessageDialog("您输⼊有误");} elseshowMessageDialog("您输⼊有误");jtf.setText("");}}GiveMoneyJFrame.javapackage atmJFrame.myJFrame;//转账界⾯public class GiveMoneyJFrame extends CentreJFrame {public GiveMoneyJFrame() {super("转账");}protected void change() {String s = jTextField.getText();boolean b = atm.anotherUser(s);if (b) {// 获取输⼊⾦额String s1 = jtf.getText();if (isNumber(s1)) {// 如果输⼊是数字Double money = Double.parseDouble(s1);atm.giveMoney(money);showMessageDialog("钱已转⼊\n您的账户余额为:" + atm.getMoney1());} elseshowMessageDialog("您输⼊有误");} elseshowMessageDialog("您输⼊有误");new WorkingJFrame();// 创建功能界⾯dispose();// 关闭此界⾯}}QuMoneyJFrame.javapackage atmJFrame.myJFrame;//取钱界⾯public class QuMoneyJFrame extends CentreJFrame {public QuMoneyJFrame() {super("取钱");}protected void change() {String s = jtf.getText();if (isNumber(s)) {Double money = Double.parseDouble(s);boolean b = atm.quMoney(money);if (b) {showMessageDialog("请收好您的钱\n您的账户余额为:" + atm.getMoney1());} elseshowMessageDialog("您输⼊有误");} elseshowMessageDialog("您输⼊有误");jtf.setText("");}}到此这篇关于教你⽤Java Swing实现⾃助取款机系统的⽂章就介绍到这了,更多相关Java Swing⾃助取款机内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
系统源码:
Account类
package com.qx;
importjavax.swing.JOptionPane;
/**
* 账户类:包含两种账户类型-->1.储蓄账户2.信用账户
*/
public abstractclassAccount {
ﻩ//属性
ﻩprotectedlongid;
ﻩprotectedStringpassword;
packagecom.qx;
import javax.swing.JOptionPane;
/**
* 储蓄账户类
ATM管理系统(java-窗口界面完整版)
———————————————————————————————— 作者:
———————————————————————————————— 日期:
ﻩ
BAM银行账户管理系统(ATM管理系统)
本系统采用JAVA语言并在eclipse环境下编写测试完成,涉及类的概念,以及面向对象的几大特性(继承,封装,多态,抽象),也有异常处理机制,采用集合(更好)存储账户数据,基本可以满足大多数BAM系统的相关实现,且代码内标注大量注释,读者可以很轻松地理解相关逻辑,大家可以开心参考。
2、本系统代码涉及到包,所以如果报名不一致就会报错,解决方法:修改一下包名即可
3、建议把各个类写在同一个包下面,且每一个类单独写一个java文件,如下图:
ﻩ4、在运行程序前,需要在项目下面新建一个account.txt(用来保存数据)文件(如上图),并在其中写入至少一个账户信息,(如下图,其中每项代表的意思,请读者参照代码内的注释),否则在初始化的时候会因为找不到账户信息,从而产生异常。
系统简介:
特点:采用窗口界面风格,而不是传统的命令行、控制台运作模式
1、JAVA类的面相对象的应用,拥有异常处理机制,不会因为输入错误而导致程序崩溃
2、主要有7个类,即①Account(账户类)
②SaveAccount(储蓄账户类):不能透支
③CreditAccount(信用账户类):可以透支
④Bank(银行类)
ﻩ */
public void deposit(doublemoney){ﻩbaຫໍສະໝຸດ ance +=money;ﻩ
}
/**
ﻩ*取款(取款方式由账户类型决定,所以设为抽象方法,相应的Account类应设为抽象类)
*/
publicabstractvoid withdraw(double money);
ﻩ
}
SavingAccount类
ﻩﻩ2.账户登录后界面
ﻩﻩ3.相关信息提示一览(只列举一部分)
1、查询:ﻩﻩﻩﻩ2、存款:
3、取款:
4、转账:
4、用户开户界面:
注意事项:
1、本系统采用的编程环境是JDK1.7,jer7。所以,运行代码需要保持电脑上所装的JDK为1.7以上版本,如有报错,只需换个高一点的版本即可。注意:第一次装JDK,要配置环境变量(请查阅相关资料,比较简单)
⑤ATMOpenAccountFrame(开户窗口页面)
⑥ATMLoginFrame(登录窗口页面)
⑦ATMMainFrame(操作窗口页面)
ﻩ带有完善的相关信息提示弹出窗口见下面截图
类的具体属性级行为见代码
3、各个类之间的相互关系,涉及继承、封装、多态、抽象,在多态中又涉及重载和重
写,请读者注意相关联系(关注注释)
4、可以实现数据保存功能,数据将保存在文件中(即当你注册了一个账户,下次再登
陆系统时,可以实现与上次最后的操作相衔接)
ﻩ 5、账户号自动生成,比较符合现实
6、主要功能有:1.开户
ﻩﻩﻩ 2.查询账户余额
ﻩﻩﻩ3.存款
ﻩﻩﻩﻩ 4.取款
ﻩﻩ5.转账(一个账户到另一个账户)等……
7、运行时界面简示
ﻩﻩ1.初始界面(账户登录)
protected Stringname;
ﻩprotected String personId;
protectedString accountType;
ﻩ
protecteddoublebalance;
ﻩ//构造方法
ﻩpublic Account(){
super();
}
ﻩpublicAccount(long id,Stringpassword,String name,StringpersonId,
ﻩthis.password =password;
ﻩ}
ﻩpublicStringgetName() {
returnname;
}
ﻩpublicvoid setName(String name){
ﻩﻩthis.name=name;
ﻩ}
publicString getPersonId(){
ﻩreturnpersonId;
}
ﻩ//getXxx,setXxx方法
publiclonggetId(){
ﻩreturn id;
ﻩ}
publicvoidsetId(longid){
ﻩthis.id = id;
ﻩ}
ﻩpublicStringgetPassword(){
ﻩﻩreturn password;
}
ﻩpublicvoidsetPassword(String password){
this.accountType = accountType;
ﻩ}
ﻩpublicdouble getBalance(){
ﻩﻩreturnbalance;
ﻩ}
ﻩpublic void setBalance(doublebalance){
ﻩthis.balance = balance;
}
ﻩ/**
ﻩ*存款
ﻩﻩStringtype,doublebalance){
ﻩsuper();
ﻩthis.id= id;
this.password=password;
ﻩﻩthis.name= name;
ﻩﻩthis.personId=personId;
ﻩﻩthis.accountType= type;
ﻩthis.balance=balance;
ﻩ}
ﻩpublic voidsetPersonId(String personId){
ﻩthis.personId =personId;
ﻩ}
ﻩpublic StringgetAccountType() {
ﻩreturn accountType;
}
publicvoid setAccountType(String accountType) {