首页 > 精品范文库 > 11号文库
在银行柜台和ATM取款机取款时有哪些注意事项
编辑:心旷神怡 识别码:20-456643 11号文库 发布时间: 2023-05-09 09:04:26 来源:网络

第一篇:在银行柜台和ATM取款机取款时有哪些注意事项

安徽银行招聘网:http://ah.jinrongren.net/

在银行柜台和ATM取款机取款时有哪些注意事项

不要轻易的给来历不明的人转账汇款

您要注意保管好存折、卡等凭证及密码,不要将密码告诉别人,也不要轻易相信陌生电话和短信,不要轻易给来历不明的人转账。如有疑问请拨打邮储银行客户服务电话:95580。

在银行柜台和ATM取款机取款时有哪些注意事项? 您在银行柜台取款等待时应与取款人保持一定距离或听从大堂经理的安排,在取款时请注意保护好您的密码。在ATM取款机无法使用时,要与银行的自助电话联系,一般电话号码是9开头的五位,不会是手机或座机号码。

遗忘借记卡密码怎么办? 客户遗忘密码后,可在我行办理密码挂失业务,办理业务时您需提供账户对应的实名证件,有代理人经办的还需提供代理人实名证件。正式挂失有效期为七天,七天后需您本人持有效实名证件到原挂失受理网点进行密码重置。

存折、卡等银行凭证遗失了怎么办? 如您遗失了存单、存折等凭证,您可以向我行提出挂失申请,我行根据您的挂失请求,在一定时间内对您的账户进行止付处理,确保您的资金安全。对于紧急情况不便于第一时间到邮储银行网点申请挂失的,您可通过我行95580电话银行进行账户临时挂失,临时挂失有效期为5天,5天后您必须到邮储银行网点办理正式挂失,确保您的资金安全。

如果您的存折或卡消磁该如何处理? 您可凭账户对应的有效实名证件,到邮储银行网点办理补写磁业务或更换存折、卡业务。按扯汇款取款通知单丢失该怎么办? 如您不慎将取款通知单丢失,应在我行办理挂失手续。取款通知单挂失满7天后,我行将重新为您补发新的“中国邮政储蓄银行汇兑取款通知单”并可用新的取款通知单在任意联网网点办理取款手续。

办理汇款后如果发现收款人地址写错该怎么办? 您办理汇款后,如发现收款人姓名或地址写错, 可凭汇款收据和有效身份证件在我行申请办理改汇业务,更改收款人姓名或收款人地址。改汇按规定收取一定金额的手续费。

密码汇款遗忘取款密码该如何处理? 如果您遗忘了取款密码,凭汇款收据和本人有效身份证件在原收汇网点办理密码挂失。待密码挂失7天后办理密码重置,密码重置必须本人办理。

第二篇:ATM取款机常见故障及解决方法

一、ATM取款机常见故障及解决方法

ATM常见故障如能及时排除,可减少停机时间,因此遇到下列故障可按照相应步骤处理。

(一)用户打印机问题及处理方法

1、用户凭条卡在面板内

(1)检查凭条出口是否有异物堵塞;

(2)检查面板有无受力变形;

(3)拉出打印机检查传送部分有无异常,推入打印机重试;

(4)如仍卡纸, 需进行专业维修。

2、打印纸堵塞在切纸位置

(1)松开传送部件;

(2)拉动蓝色手柄,使打印头露出;

(3)清除堵塞的纸;

(4)查看打印机控制板上有无黄灯常亮;

(5)如无,重试打印机;

(6)如黄灯长亮,需进行专业维修。

3、凭条双倍长度

(1)检查打印纸上的黑色标记是否清晰;

(2)检查黑标方向是否正确;

(3)重试,如仍不正常, 需进行专业维修。

(二)流水打印机问题及处理方法

4、打印纸堵塞在切纸位置

(1)清除堵塞的纸;

(2)查看打印机控制板上有无黄灯常亮;

(3)如无,重试打印机;

(4)如黄灯长亮,需进行专业维修。

(三)读卡机问题及处理方法

1、读卡机堵塞

(1)按照关机程序关机;

(2)取出读卡机;

(3)查看读卡机内有无异物,有则取出;

(4)开机,执行读卡机清洗程序;

(5)重试读卡机。

2、卡不能插入

(1)按程序关机;

(2)取出读卡机,查看有无异常;

(3)如流水打印机上无读卡机故障信息,检查面板插卡口有无异常;

(4)检查读卡机口有无异常;

(5)装回,开机重试;如仍不正常, 需进行专业维修。

(四)吐钞机问题及处理方法

1、出钞不整齐

(1)拉出吐钞机,检查送钞皮带是否脱落;

(2)检查出钞口有无异常(如里面低,外面高);

(3)检查钱箱内钱币是否整齐;

(4)重试, 如仍不正常, 需进行专业维修。

2、只有挖钞声,钱不吐出来

(1)检查钱箱内是否有钱;

(2)检查废钞箱内的钱币质量;

(3)如上述正常,做加钞程序中的吐钞机诊断;

(4)如诊断不能通过,将钱箱换一个通道;

(5)再做吐钞机诊断;

(6)如仍不正常, 需进行专业维修。

3、吐钞机报“钱币堵塞”

(1)按程序关机;

(2)拉出吐钞机;

(3)查看有无钱币卡在上面传送带;

(4)查看有无钱币卡在侧面传送带;

(5)取出钱箱,查看通道内有无钱币堵塞;

(6)清除堵塞的钱币;

(7)重新装回钱箱,开机重试;

(8)如故障依旧,检查传感器;

(9)更换传感器或进行专业维修。

4、废钞箱卷帘门裂开

(1)取出废钞箱卷帘门;

(2)如仅前三条裂开,裁下裂开的那条;

(3)装回卷帘门,即可;

(4)如已裁下三条以上,更换。

(五)其它故障

1、通讯不通

(1)按程序关机;

(2)检查通讯线是否插好;

(3)开机,注意系统上电启动时有无提示相关信息;

(4)请电信局检查线路;

(5)进行专业维修。

2、屏幕无显示

(1)关机;

(2)检查显示信号线是否接好;

(3)开机,观测是否有系统开机自检信息;

(4)如有,表明硬件无问题,重装软件;

(5)如无, 进行专业维修。

二、存取款机常见故障的原因及解决方法

1、磁条读写器吞卡

磁条读写器吞卡是由于以下四种情况造成:

(1)主机命令

(2)弹卡超时不取走

(3)用户操作超时

(4)插卡动作不当造成。

如果是主机命令或弹卡超时造成吞卡,客户会得到一张打印的客户凭条,凭条上有该卡的卡号和吞卡原因。

如果是由于插卡动作不当或操作超时不取造成吞卡,客户也同样能够得到一张客户凭条,但该凭条上面没有卡号和吞卡原因。

2、存款模块回收箱不空

当回收箱不空时,存款交易暂停,以避免其他客户操作而产生的帐务不清。以下情况存款进入回收箱。

有识别不出的钞票或用户中途取消操作的情况下,存款退回到入钞口,如果客户没有及时取走,机器将把入钞口上全部钞票打入回收箱。

客户钞票识别完毕,提交主机,在等待主机应答超时的情况下,把客户提交的存款打入回收箱,其面值总额应该与客户得到的客户凭条相符。

3、存款模块卡钞票

当钞票在中途卡住,存钞模块停止工作,只有排除故障之后,才能初始化继续。当卡住钞票,整个流水线全部停止。除了在钞票卡住的部位,请检查其前后流水线上是否有钞票在中间。如果有则请旋转绿色旋钮,把钞票取出。这时如果需要继续正常使用存款模块则需要重新启动应用,或者清除存款箱。

4、取款模块钞箱安放不当

取款模块的钞箱分为两种,回收箱和出钞箱,在使用出钞模块之前需要对各出钞箱进行序号设置,为钞箱编号。以尽量减小钞箱装错的可能性。当钞箱安装没有到位,或者顺序不符,系统能够检测到,并提示取款钞箱出错。这时需要重新安装钞箱,直到正确为止。

5、客户插卡后没有可做交易

金库门打开的情况下,只能进行管理员卡类交易。请检查金库门是否关闭好。

系统只有查询交易可以进行

系统缺少客户凭条打印纸,则仅提供查询服务。

6、没有存款功能

存款模块初始化失败,请拧动管理员钥匙,检查设备状态。

存款模块回收箱中有钞票,请检查存款模块中的回收箱。

存款功能在系统中没有设置,拧动管理员钥匙,修改系统参数为“存取款”或“仅存款”。

7、没有取款功能

取款模块初始化失败。

钞箱中钞票数量低于最低限制数量。

取款功能在系统中没有设置,拧动管理员钥匙,修改系统参数为“存取款”或“仅取款”。

三、存折补登机常见故障及处理方法

(一)存折打印机故障

1、磁条读写故障,表现为磁条读写失败

(1)原因分析1:有异物(如纸削)阻塞磁头的水平移动

解决方法:清除异物

(2)原因分析2:磁条读写磁头脏

解决方法:用异丙醇和酒精或随机配送的清洁卡清洗磁头

(3)原因分析3:打印机磁道读写参数与软件系统不匹配

解决方法:更改打印机的磁条读写参数或软件系统参数

(4)原因分析4:磁条读写电路故障

解决方法:更换磁条读写板

(5)原因分析5:磁条读写机械部分故障

解决方法:更换磁条读写组件

2、卡纸(折)、纸(折)进出困难或歪斜

(1)原因分析1:有异物阻塞进出纸槽

解决方法:清除异物

(2)原因分析2:打印机机架故障

解决方法:调整机架

3、打印机无打印动作,常见故障为放入存折后打印机无打印动作

(1)原因分析1:存折无补登项目

解决方法:无需处理

(2)原因分析2:打印机通信接口坏

解决方法:检查联机电缆是否损坏,如损坏更换之;更换打印机主板

(3)原因分析3:主机网络通信故障

解决方法:检查网络通讯部分

(4)原因分析4:多用户卡故障

解决方法:检查在Windows系统内多用户卡的IRQ值是否于BIOS设置值一致(推荐IRQ值取5);更换多用户卡

不能进折或打印头撞墙,或者开机打印头来回移动

原因分析:由于长时间使用,灰尘过多造成光电参数丢失

解决方法:此时请设置光电参数。具体操作如下:

(1)关闭电源,打开打印机的上盖;

(2)将打印头移到打印机的最左边;

(3)按住面板上的三个键,同时打开电源,机械动作停止后,关上机盖;

(4)按操作面板上的STATION1键两次,此时READY灯停止闪烁,并发出蜂鸣声;

(5)在进纸器槽中插入一张A4的纸并按一次STATION2键;

(6)当打印机退出纸张后,再插入一张A4纸,打印机打印出光电参数值。

(二)触摸屏故障

1、触摸屏无反映,常见故障为触摸屏幕鼠标无任何反映

(1)原因分析1:更换、移动、插拔触摸屏的联机接口后会造成触摸屏失效,这是由于触摸屏属于非即插即用产品,因此硬件上的改变都有可能引起触摸屏失效

解决方法:重新安装触摸屏驱动程序

(2)原因分析2:重新安装、克隆操作系统,原因分析如上

解决方法:同上

(3)原因分析3:触摸屏硬件故障

解决方法:更换触摸屏控制卡、联机电缆

2、触摸屏不灵敏,常见故障为需要大力触摸才有反映

原因分析:屏幕灰尘过多,或者有水滴在屏幕上都会造成不灵敏

解决方法:清洁屏幕

触摸屏触摸的位置发生偏移

解决方法:打开控制面板,调用校准程序,根据提示点击3个圆点进行校准

(二)金属键盘故障

1、键反应过灵敏,当按下某一数字键时幕显示输入两个或多个相同数字

原因分析:在系统里设置按键重复时间过短

解决方法:打开“控制面板”里的“键盘”项,如图所示把红色部分按照图中调整即可

2、按键经常无反应,常见故障为多个数字按键无反应

(1)原因分析1:键盘使用时间长,键盘膜片失效

解决方法:更换键盘膜片

(2)原因分析2:键盘电缆松脱或者损坏

解决方法:检查接口是否松脱,电缆是否损坏,更换故障部分

3、整个键盘失效

(1)原因分析1:键盘控制板故障

解决方法:更换键盘控制卡

(2)原因分析2:PC机的键盘PS/2接口坏

解决方法:更换PC主板

(三)PC机及系统其他故障

1、不能开机

(1)原因分析1:PC机电源坏,常见故障为开机时CPU风扇不转动

解决方法:更换PC电源

(2)原因分析2:PC机主板、CPU、内存及其他板卡故障都可能造成不能开机

解决方法:用替换法确定损坏部件进行更换

打开主机电源后PC机不能自动开启,需手动开机

原因分析:BIOS中未设置自动上电开机功能

解决方法:手动开机进入BIOS设置界面,进入“Integrated Peripherals”(整合周边设备)设置项,把选项“Power on Function”设置为“BUTTON ONLY”,把选项“PWRON After PWR-Fail”设置为“On”。(注:上述操作主要针对微星的主板MS-6153,其他型号主板的设置请参考相应主板的说明书)

2、不能进入操作系统或业务画面

(1)原因分析1:硬盘产生坏区,无法正常启动Windows系统

解决方法:格式化C盘,重新安装Windows系统和应用程序

(2)原因分析2:系统中病毒

解决方法:使用杀毒软件清除病毒。

第三篇:银行ATM自动取款机需求分析报告

“银行ATM机自动取款系统”需求分析报告

一、引言 1.1 整体描述

本系统的名称为“银行ATM机自动取款系统”。系统的功能主要有:能够读取和存储客户的存款和取款信息,方便客户自由交易;在客户选定交易类型后,直接与客户进行现金交易,方便快捷。将客户最新的存取信息上传到银行的总存储系统,并自动更新系统中的客户信息,方便银行系统管理员对客户信息的管理。

1.2 各个事件流

1.取款

客户将银行卡插到卡槽中后,进入个人账户登录界面,客户输入密码后,点击“确认”,进入个人账户界面,点击“取款”,进入取款界面,选择取款金额,点击选中的数字按钮,进入等待界面,取出取款口的现金后,进入“是否打印凭条”界面,点击“是”,凭条从凭条口吐出,取出后,点击“退出”,取出银行卡;在进入“是否打印凭条”界面,点击“否”,直接进入退出界面,点击“退出”,取出银行卡。

2.账户与信息查询

银行系统管理员进入系统后,点击“查询客户账户信息”按钮;客户登录个人账号,将银行卡插到卡槽中后,进入登录界面,输入密码后,点击“确认”,进入个人账户界面,点击“查询”按钮。3.口令管理

客户将银行卡插入ATM机卡槽中,进入个人账户登录界面,输入密码,点击“确认”,进入个人账户界面,点击“修改密码”按钮,在口令修改页面输入新的密码,点击“确认”。

二、需求概述

2.1 市场需求

由于的各方面发展速度的大幅提高,几乎所有的银行都配备了不用繁琐的人工操作的ATM自动取款机。人们可以随时随地进行交易,不再受银行的服务时间的约束,取款时也为人们节省了很多时间,方便快捷。对于配有ATM自动取款机的银行,客户较多,系统需操作方便,信息读取与存储及时快速,方便客户进行自由交易和系统管理员对信息的管理。

2.2功能需求 本系统相应的需求有以下方面:

(1)能够读取和存储客户账户中的存取款信息,并方便有效地进行客户选择的交易操作。这主要包括以下内容:

① 自动调用银行总系统中客户原有信息

② 信息录入与修改。输入并保存客户的信息,每个客户是一条记录。

a 编号

b 客户姓名 c.支取密码 d.客户地址 e.客户电话 f.账户总金额;

③在存取款文件中,每次存取款是一条记录。

a.编号 b.日期 c.类别 d.存取数目 e.经办人。④类别

a定期1年存款 b.活期存款 c.取款

⑤并提供信息修改、删除的功能。

⑥存取款模拟:根据存取款信息生成存款与取款单,并修改客户的账户总金额。⑦查询与统计:根据客户信息查询指定时间段的资金明细、根据日期查存取款信息、统计某年的存取款信息。

(2)提供客户信息访问的权限和管理。其中包括: ①

客户访问普通信息的权限

② 银行系统管理员对客户信息的录入、更改和删除

本例中,我们通过一定的调研和分析得到“银行ATM机自动取款系统”的用例图,如下图所示:

2.3 安全性需求

由于银行ATM机自动取款系统的客户量很大,所以在对客户账户信息的导入和交易操作要保证速度。在客户进行交易操作的过程中又要保证事务的完整性。在整个系统中,需要完整的权限控制,以防止某些人恶意地攻击系统,修改系统中的原始记录。同时对于数据库中的数据需要定时备份,防止系统数据丢失。此外,系统要求用户在登录时需要密码验证。

三、故障处理

在正常情况下,应该不出现错误,一旦发生意外,比如:不识别银行卡、输入取款金额后现金吐不出来、取款后ATM自动取款机为将信息上传到总系统中等等,也应保证客户账户信息不受损坏。

第四篇:看着银行ATM自助取款机的屏幕上

错把自己的钱存到别人卡里怎么办

看着银行ATM自助取款机的屏幕上,显示着有一笔5000元的现金入账。租住在金花路某小区的冯国光长长地舒了一口气,这件事总算解决了,7个月来,我也终于可以睡个踏实觉了。他高兴地说:

这件事还要从今年5月份的一天说起:那天下午冯国光来到某银行金花路支行的柜台前,准备将自己打工存下的5000元现金存起来。存钱的过程很顺利,冯国光从包里掏出一张银行储蓄卡和现金一起递给柜台工作人员。可是等银行工作人员拿出存款凭单,让冯国光签字确认的时候他发现了个大问题,凭条上显示的账户名称,不是我的名字,而是一个叫刘强的人。冯国光说当时他一下子就懵了。因为这个刘强他根本就不认识他,咋把钱存到了别人的卡上?在银行工作人员的询问下,冯国光才慢慢回忆起来这张银行卡是他从自己租住屋的床底下捡来的。因为他也有一张这个银行的借记卡所以还以为是自己不小心掉到床底下去的就直接把卡放到了自己的钱包里。

冯国光这下总算明白了自己把钱存到了别人卡上我该怎么办?冯国光顿时手足无措,只能一再要求银行的工作人员将这笔钱转存到自己卡上,银行工作人员了解到误存的事情经过后,表示按规定必须输入正确的密码才能取钱,或者找到银行卡的户主来取这笔钱,否则存入他人卡上的款项银行也无权处置

我不知道密码,最后只能先申请银行把这笔业务冻结之后,冯国光多次找这家银行和刘强,希望能把钱追回来,可一直没有解决,钱也不知所踪。无奈之下冯国光只好将这家银行和刘强起诉至新城区法院要求银行和刘强返还这笔存款。法院审理认为冯国光误持刘强的储蓄卡办理存款,属于民事法律行为中的重大误解,冯国光要求返还这笔存款符合法律规定,最终法院判决由刘强向冯国强返还5000元现金,银行协助办理。这就发生了文中开头的那一幕。

新城区法院民事审判庭王法官提醒说,市民在捡到别人丢失或者废弃的银行卡时,应该及时交到发卡银行尤其要注意在存款的过程中应仔细核对账号名称,账号数字以及存入金额等信息,避免此类事件的发生。他说如果误将钱款存入他人账户要注意收集相关证据。如打印交易凭条,同时向银行反映情况并申请财产保全保证钱款安全。

中国农业银行一位姓席的工作人员表示,万一在银行柜台或者通过ATM机存款和转账时发生失误,将钱存到他人账户时,市民应该在第一时间告知银行,可以找银行的工作人员协助处理,也可以拨打银行客服电话寻求帮助,同时必须向公安机关报案,由警方处理。如果对方拒不还款就必须通过司法程序解决,同时他提醒说持卡人可以在银行卡背面的签名栏里签上自己的名字,这样既可以提醒并避免拿错卡,另一方面也方便银行工作人员进行核对。

第五篇: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

初始密码:123456

ATM柜员机 课程设计过程概述

2013年6月,JAVA课程设计在1#楼六楼机房进行,持续时间为两周。这次课程设计的主要目的是结合面向对象程序设计课程,培养我们面向对象软件开发的思维,初步了解软件开发的一般流程,提高用JAVA编程的实际动手能力并增强大家对面向对象的了解。这次课程设计的主要内容是独立用JAVA语言开发一个小的应用程序。我们开发了一个ATM柜员机。课程设计题目描述和基本设计要求

我设计的ATM柜员机主要是由各个Windows窗口组成,它是由登录页面、选择服务、取款、查询余额、修改密码和退卡等功能。它的各种按钮的事件和功能可以简单的模拟ATM柜员机的要求。3 系统需求分析 3.1 功能需求分析

本ATM柜员机的主要功能如下所述:

要求使用图形用户界面。当输入给定的卡号和密码(初始卡号为000000和密码为123456)时,系统能登录ATM柜员机系统,用户可

以按照以下规则进行:

 查询余额:初始余额为50000元

 ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。 ATM存款:不能出现负存款。

 修改密码:只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。

3.2 其他需求分析(1)性能描述

实时性好、灵活性强、易于不同年龄阶段的人操作。(2)设计约束 开发工具:MyEclipse 运行环境:Windows XP、Window 7 能实现用户所定义的各项需求。(3)界面要求

以Windows窗口形式显示,标题栏为ATM柜员机名称,右上角有最小化按钮、最大化按钮、关闭按钮,不同的窗口中有不同的按钮和选择菜单。4 系统设计 4.1 总体设计

我所设计的ATM柜员机主要是由登录页面模块还由选择服务模块组

成,其中选择服务模块又由取款模块、查询余额模块、修改密码模块、退卡模块组成。其功能结构图如下所示:

图1 ATM功能结构示意图 4.2 ATM柜员机界面设计

我们觉得一个系统的界面应该要简单明了,当然样式美观就更好了。我设计的界面主要是由窗体组成,操作简单。而每一个窗口则执行相应的功能。

一个系统界面的好坏直接影响到用户的操作,界面设计要求样式美观、简单明了、方便易操作。我设计的界面主要分为窗体、菜单、按钮和文本输入框几个部分,分别执行相应的操作。(1)窗体的设计

窗体整个框架使用Frame类构造,Frame有自己的外边框和自己的标题,创建Frame时可以指定其窗口标题,我创建的窗口标题是各个不

同功能的模块的名字,比如说查询余额,还有取款等。相应源代码为: 向Frame窗口中添加组件使用add()。例如:button1 = new Button(“存款”);p1.add(button1);this.add(p1);每个Frame在其右上角都有三个控制图标,分别代表将窗口最小化、窗口最大化和关闭的操作,其中最小化和最大化操作Frame可自动完成,而关闭窗口操作实现需要书写有关的代码,在我的程序中我采用的是对WINDOWS_CLOSING事件做出响应,调用dispose()方法关闭窗口。Frame也可以引发WindowsEvent类代表的窗口事件。相应源代码为:

addWindowListener(new WindowAdapter()//窗口侦听器,以从此窗口接收窗口事件

{public void windowClosing(WindowEvent e)//处理窗口关闭事件 { System.exit(0);} });}(2)窗体的主要结构的设计

我所设计的窗口的主要结构的特点就是每个窗口都对应着一个特定的功能。比如说报各种各样的错,还有各种查询余额、取款、选择服务等,所以它们都是由各种按钮和文本框,标签组成的,而联系各个窗体成为一个整体的就是各个按钮的监听事件。所以整个设计就趋向简单化了。

为了定义各个按钮所对应的命令和操作,首先需要将各个按钮注册给实现了动作事件的监听接口ActionListener的监听者,然后为监听者定义actionPerformed(ActionEvent e)方法,在这个方法中调用e.getSource()或e.getActionCommand()来判断用户点击的菜单子项,并完成这个菜单子项定义的操作。4.3 各功能模块设计 4.3.1 登陆页面模块设计

与ATM柜员机打交道比较多的,也是大家对安全比较关心的问题:密码。所以第一个界面就是要输入密码和卡号才能继续服务。我定义了文本框类的对象tf1,tf2。是用于输入单行的文本;文本区调用public String getPassword()方法,获取用户想要的字符串。用来判断输入的密码和卡号是否正确,如果不正确的话,则弹出密码或卡号错误的警告框,并用dispose()关掉窗口。此模块相应的部分源代码为:

public void actionPerformed(ActionEvent e){ Account act;act=new Account(“000000”,“HuangHuai”,“123456”,50000);//初始化

/*选择各种服务*/ if(e.getSource()== button1){ String number1,number2;//输入的两个卡号和密码的变量

number1=tf1.getText().toString();number2 = new String(tf2.getPassword());

/*判断两次输入的卡号和密码是否正确*/

if((act.getCode().equals(number1))&&(act.getPassword().equals(number2))){

dispose();

new Selection(“选择服务”,act);}else{

JOptionPane.showMessageDialog(this, “密码或帐号错误!”,“账户提

示信息”,JOptionPane.ERROR_MESSAGE);

dispose();

new WindowBox(“ATM”);

} }

if(e.getSource()==button2){

System.exit(0);

dispose();//退出

} } 4.3.2 选择服务模块设计

在选择服务模块中,有各种ATM的服务功能,只要用户在该界面中选择按钮,它就会弹出各个相应的界面。每一个按钮都有监听器,在选择了按钮后,java.awt.event中的ActionEvent类创建一个事件对象,并将它传递给方法public void actionPerformed(ActionEvent e)中的参数e,监视器就会知道所发生的事件,对此事件进行处理。其中的部分源代码为:

p.add(new Label(“请选择你要的服务”));

this.add(p);/*各种服务功能*/

buttonCUN = new Button(“ 存 款 ”);

p1.add(buttonCUN);

this.add(p1);

buttonQU = new Button(“ 取 款 ”);

p2.add(buttonQU);

this.add(p2);

buttonCHA = new Button(“ 查询余额 ”);

p3.add(buttonCHA);

this.add(p3);

buttonTUI = new Button(“ 退 出 ”);

p4.add(buttonTUI);

this.add(p4);

buttonGAI = new Button(“ 修改密码 ”);

4.3.3 取款模块设计

在取款模块中,和其他的界面也是同样的结构。也是有一个文本框和一个按钮还有标签组成的。用户在文本框中输入他想取的数额,但是必须是100的倍数,而且每一次最多只能取5000块。当然了取款的时候也不能超过卡里的余额,再就是卡里的余额不可以为负,否则就会弹出报错的窗口。其方法为:

public String withdrawMoney(double money){

String str = null;

if(money<=0){

str = “取款数目须是正数!”;}else{

if(getMoney()<0){//判断余额是否为负

str=“余额为负数!”;

}else if(money<=getMoney()){

if((money%100!=0)||(money>=5000)){//取钱数为100的倍数或不大于5000

str= “取款数目须是一百的整数倍!”;

}else{

setBalance(money);

str = “取款成功:余额为”+getMoney();

}

}else{

str = “余额不足!”;

}

} return str;} 4.3.4 修改密码模块设计

在修改密码模块中,首先你必须要输入你的旧密码是否正确,否则就会报错。再一个就是要两次输入你的新密码,且两次药匹配,否则也会报错,然后再重新回到修改密码的界面。在修改密码时用到的方法为:

/*判断旧密码是是否正确*/ if(pwd2.equals(pwd1)){

if(pwd3.equals(pwd4)){//判断两次输入的新密码是个匹配

act.changePassword(pwd3);//启用新的密码

dispose();

JOptionPane.showMessageDialog(this, “修改密码成功!”);

new Selection(“选择”,act);//返回选择服务窗口

}else{

this.setVisible(true);

dispose();

JOptionPane.showMessageDialog(this, “两次输入要修改的密码不同,更新密码失败!”);

new Selection(“选择”,act);

} }else{

this.setVisible(false);

dispose();

JOptionPane.showMessageDialog(this, “输入密码错误,更新密码失败!”);

new Selection(“选择”,act);} } 4.3.5 退卡模块设计

在退卡模块设计中,这个方法就更加的简单了,它只是用了if(e.getSource()==buttonTUI){//退出

System.exit(0);

dispose();

} 这个方法就可以实现了,这里就不再多说了。4.4 异常处理情况说明

(1)打开、保存文件时的异常处理 需要处理的异常:IOException(2)数据库访问时的异常处理 需要处理的异常:SQLException

(3)加载类时的异常处理

需要处理的异常:ClassNotFindException,当应用程序试图使用Class类中的forName方法通过字符串名加载类时,但是没有找到具有指定名称的类的定义。(4)加载URL时的异常

需要处理的异常:MalformedURLException,抛出这一异常指示出现了错误的 URL。或者在规范字符串中找不到任何合法协议,或者无法分析字符串。5 系统实现与测试

(1)打开MyEclipse,编译运行程序后,将会看到如下的界面,如图2所示。如果输入的密码或卡号不正确的话就会报下图的错误。

图2 主界面—登陆页面

(2)选择服务界面效果

当输入的密码和卡号正确,单击确定后就会进入到选择服务的界面,如图3所示。然后就可以选择所需要的服务了。

图3 选择服务界面

(3)取款界面,如图4所示。

图4 取款界面

当输入的钱数不是100的倍数或每一次大于5000时就会报图5的错误。

图5 输入错误

当取款时如果超过卡里的余额的话就会报图6的错误。

图6 输入错误2(4)查询余额界面,如图7所示。

图7 查询余额界面

(5)修改密码界面,如下图所示。

经过测试,所有的功能基本上都实现了,而且运行正常。6 课程设计总结

6.1 遇到的问题及解决办法

在此次课程设计中,我遇到了一些问题,如:对于面向对象的方法了解不够透彻,运用到实际的软件开发中存在着困难;对于Java语言,只学习到了一些最基本的知识,这导致编写程序时经常出现一些语法错误,而且要在短时间内用Java语言来设计一个具体的系统是一个较大的挑战;还有对于正规开发一个系统的流程不熟悉,适应起来比

较慢,编写各个模块相对应的操作时,自己感觉难以动手,这表明所学的知识不能灵活运用到实际中。

对于以上的问题,自己有清楚的认识,解决办法是需要大量阅读相关的书籍,对于书上以及网站上下载的资料中的Java实例必须有清楚的理解,还有就是多跟精通此方面的老师和同学交流,取其精华。对于实际动手能力与系统开发的流程的适应,必须多进行实际的练习与操作,才能有大的进步。6.2 心得体会

在这次的学课程设计中,我主要运用了Java语言的界面设计、异常处理、、Awt控件、Swing控件,输入输出流等,综合运用了Java语言。我深刻感受到了面向对象语言中类库的强大功能,掌握了运用Java中的类实现某些基本功能,并学会了自己查询使用类的方法,为以后的面向对象语言的自学奠定了基础。

通过这两个礼拜的课程设计我真的学到了很多的东西,当然这也和我的同学的帮助是离不开的。好了,下面就谈一下我在这些天的体会吧: 在这次的课程设计中,主要是运用JAVA语言来编写一个小的应用程序,当然还可以用其他的技术来辅助了。在这个小应用程序当中,我用了Java外还用了Swing控件。输入输出流等技术。由于以前学的不是很扎实,而且还有些知识我们都是没有学过的,这就要求我们去查相关的书籍,还有就是和同学之间的交流。正因为这样,才锻炼了我的自学的能力,还有就是加深了我对各个知识点的认识,并且提高了我对专业的学习的兴趣,为我以后的学习打下了基础。此外,我还

感受到了面向对象语言的类库的强大的功能,掌握了运用JAVA中的类实现某些基本功能,并学会了自己查询使用类的方法,也就是要会用API文档,为以后更好的学习面向对象语言奠定了基础。通过将近两周的努力,这次课程设计终于结束了,在这个过程当中,我学到了很多的知识,同时也感谢我的同学的帮助和指导。在以后的学习当中,我会更加努力的学习好专业知识,并将所学的知识用于实践当中去,以便牢固掌握知识。参考文献

[1] 王萌,刘婧,来宾著.JAVA程序设计[M]北京 冶金工业出版社,2004 [2] 黄聪明 精通 JAVA2程序设计[M]北京:清华大学出版社,2004.4 [3] 王文涛,袁海燕 JAVA实用程序设计100例[M]北京:人民邮电出版社,2005.5 [4] 雍俊海 JAVA程序设计[M]北京:清华大学出版社,2006.8 [5] 刘宝林 JAVA程序设计与案例[M]北京:高等教育出版社,2006.11 附录

Account类:

package cn.com.account;/** * 帐户

* 该类为实现客户信息及部分功能 */

public class Account {

private String code = null;//信用卡号 private String name = null;//客户姓名 private String password= null;//客户密码 private double money = 0.0;//卡里金额

public Account(){

}

public Account(String code,String name,String password,double money){

} public String getCode(){//取得卡号

return code;} public String getName(){//取得名字

return name;} /**

* 取得密码 * @return */

public String getPassword(){ } /**

* 重置秘密的方法 */

public void changePassword(String pwd){ }

public double getMoney(){//取得余额

return money;} /**

* 得到剩余的钱的数目 */

private void setBalance(double mon){ } money-= mon;password = pwd;return password;this.code=code;this.name=name;this.password=password;this.money=money;this.code = “123456”;this.password = “123456”;

} /** * 取款设置 * 若成功显示余额 * 不成功显示提示信息 */

public String withdrawMoney(double money){ String str = null;if(money<=0){ str = “取款数目须是正数!”;}else{

if(getMoney()<0){//判断余额是否为负

str=“余额为负数!”;}else if(money<=getMoney()){

if((money%100!=0)||(money>=5000)){//取钱数为100的倍数 str= “取款数目须是一百的整数倍!”;}else{

setBalance(money);str = “取款成功:余额为”+getMoney();} 或不大于5000

}else{

str = “余额不足!”;}

} return str;} /** * 存款设置 * 若成功显示余额 * 不成功显示提示信息 */

public String depositMoney(double money){

} String str = null;

if(money<0){ str =“存款数目须是正数!”;}else{ setBalance(-money);str = “存款成功:余额为”+getMoney();} return str;ChangePassword类:

package cn.com.frameui;import cn.com.account.Account;import javax.swing.*;import java.awt.*;import java.awt.event.*;@SuppressWarnings(“serial”)public class ChangePassword extends Frame implements ActionListener{

Panel panel1 = new Panel();Panel panel2 = new Panel();Panel panel3 = new Panel();Panel panel = new Panel();//TextField tf4,tf5,tf6;JPasswordField tf4,tf5,tf6;Button button;Account act;ChangePassword(String s,Account act){

super(s);this.act=act;

tf4 = new JPasswordField(6);tf5 = new JPasswordField(6);tf6 = new JPasswordField(6);button = new Button(“确定”);button.addActionListener(this);/*建立新密码*/

panel1.add(new Label(“请输入你的旧密码:”));panel1.add(tf4);panel2.add(new Label(“请输入你的新密码:”));panel2.add(tf5);panel3.add(new Label(“请再次输入新密码:”));panel3.add(tf6);panel.add(button);this.add(panel1);this.add(panel2);this.add(panel3);this.add(panel);setLayout(new GridLayout(4,1));setBounds(200,200,300,200);this.setVisible(true);/**

* 窗口事件, 判断窗口是否关闭 */

this.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){

System.exit(0);

}

}

} });/**

* 判断事件源,看条件是否成立再修改密码 */

public void actionPerformed(ActionEvent e){ if(e.getSource()==button){ String pwd2,pwd3,pwd4,pwd1;char [] p2,p3,p4;pwd1 = act.getPassword();p2=tf4.getPassword();p3=tf5.getPassword();p4=tf6.getPassword();

pwd2 = new String(p2);pwd3 = new String(p3);pwd4 = new String(p4);

if(pwd2.equals(pwd1)){

if(pwd3.equals(pwd4)){//判断两次输入的新密码是个匹配

act.changePassword(pwd3);//启用新的密码 dispose();JOptionPane.showMessageDialog(this, “修改密码成功!”);new Selection(“选择”,act);//返回选择服务窗口 }else{ this.setVisible(true);dispose();JOptionPane.showMessageDialog(this, “两次输入要修改的密码不同, new Selection(”选择“,act);}

this.setVisible(false);dispose();JOptionPane.showMessageDialog(this, ”输入密码错误,更新密码失更新密码失败!“);}else{ 败!”);

new Selection(“选择”,act);} } }

GetBalance类:

package cn.com.frameui;import cn.com.account.*;import javax.swing.*;

import java.awt.*;import java.awt.event.*;@SuppressWarnings(“serial”)public class GetBalance extends Frame implements ActionListener{

Box baseBox, box1,box2;Button button;TextField tf;Account act;public GetBalance(String s,Account act){//构造函数

super(s);

}

public void actionPerformed(ActionEvent e){

double money;String str = null;/*

* 取款判定 */ this.act=act;button=new Button(“确定”);Panel panel = new Panel();Panel panel1 = new Panel();tf = new TextField(6);this.setLayout(new GridLayout(2,1));panel1.add(new Label(“请输入你想取钱的数目”));panel1.add(tf);panel.add(button);this.add(panel1);this.add(panel);button.addActionListener(this);this.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){ }

System.exit(0);});setBounds(200,200,300,200);this.setVisible(true);

if(tf.getText().toString().equals(“")){ str = ”取款数目不能为空!“;}else{

} money = Double.parseDouble(tf.getText().toString());str = act.withdrawMoney(money);

JOptionPane.showMessageDialog(this, str,”取款提示信息“,JOptionPane.PLAIN_MESSAGE);

} this.setVisible(false);new Selection(”选择服务“,act);}

Query类:

package cn.com.frameui;import cn.com.account.*;import java.awt.*;import java.awt.event.*;@SuppressWarnings(”serial“)public class Query extends Frame implements ActionListener{

Button button;Account act;public Query(String s,Account act){//构造函数

super(s);

this.act = act;

button=new Button(”确定“);

Panel panel1 = new Panel();Panel panel = new Panel();panel1.add(new Label(”你的余额为: “ + act.getMoney()));//查询余额的方法

this.add(panel1);this.add(panel);

button.addActionListener(this);panel.add(button);

this.setLayout(new GridLayout(2,1));this.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){

}

}

}

System.exit(0);});setBounds(200,200,200,150);setVisible(true);public void actionPerformed(ActionEvent e){

} if(e.getSource()==button){ dispose();new Selection(”选择服务“,act);//返回选择服务窗口

} Selection类:

package cn.com.frameui;import cn.com.account.*;import java.awt.*;import java.awt.event.*;@SuppressWarnings(”serial“)public class Selection extends Frame implements ActionListener{

Button buttonCUN,buttonQU,buttonCHA,buttonTUI,buttonGAI;Panel p1 = new Panel();Panel p2 = new Panel();Panel p3 = new Panel();Panel p4 = new Panel();Panel p5 = new Panel();Panel p = new Panel();Account act;

public Selection(){} public Selection(String s,Account act){

super(s);this.act=act;this.setLayout(null);this.setLayout(new GridLayout(6,1));p.add(new Label(”请选择你要的服务“));this.add(p);buttonCUN = new Button(” 存 款 “);p1.add(buttonCUN);this.add(p1);buttonQU = new Button(” 取 款 “);p2.add(buttonQU);/*各种服务功能*/

} this.add(p2);buttonCHA = new Button(” 查询余额 “);p3.add(buttonCHA);this.add(p3);buttonTUI = new Button(” 退 出 “);p4.add(buttonTUI);this.add(p4);buttonGAI = new Button(” 修改密码 “);p5.add(buttonGAI);this.add(p5);this.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){ System.exit(0);} });buttonCUN.addActionListener(this);buttonQU.addActionListener(this);buttonCHA.addActionListener(this);buttonTUI.addActionListener(this);buttonGAI.addActionListener(this);setBounds(150,150,300,200);setVisible(true);validate();public void actionPerformed(ActionEvent e){

if(e.getSource()==buttonCUN){//存款

dispose();new SetBalance(”存款款“,act);

}else if(e.getSource()==buttonQU){//取款

dispose();new GetBalance(”取款“,act);

}else if(e.getSource()==buttonCHA){//查询余额

dispose();new Query(”查询余额“,act);

}else if(e.getSource()==buttonTUI){//退出

System.exit(0);dispose();

}

} }else if(e.getSource()==buttonGAI){//修改密码

dispose();new ChangePassword(”修改密码“,act);

} SetBalance类:

package cn.com.frameui;import cn.com.account.*;import javax.swing.*;import java.awt.*;import java.awt.event.*;@SuppressWarnings(”serial“)public class SetBalance extends Frame implements ActionListener{

Box baseBox, box1,box2;Button button;TextField tf;Account act;public SetBalance(String s,Account act){//构造函数

super(s);

}

public void actionPerformed(ActionEvent e){ this.act=act;button=new Button(”确定“);Panel panel = new Panel();Panel panel1 = new Panel();tf = new TextField(6);this.setLayout(new GridLayout(2,1));panel1.add(new Label(”请输入你想存款的数目“));panel1.add(tf);panel.add(button);this.add(panel1);this.add(panel);button.addActionListener(this);this.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){ }

System.exit(0);});setBounds(200,200,300,200);this.setVisible(true);

double money;String str = null;if(tf.getText().toString().equals(”“)){ str = ”存款数目不能为空!“;}else{

} money = Double.parseDouble(tf.getText().toString());str = act.depositMoney(money);

JOptionPane.showMessageDialog(this, str,”存款提示信息“,JOptionPane.INFORMATION_MESSAGE);

} dispose();this.setVisible(false);new Selection(”选择服务“,act);} WindowBox类:

package cn.com.frameui;import cn.com.account.Account;import javax.swing.*;

import java.awt.*;import java.awt.event.*;/**

* 登陆页面首窗口 */

@SuppressWarnings(”serial“)public class WindowBox extends Frame implements ActionListener{

box1= Box.createVerticalBox();box1.add(new Label(”请输入您的卡号“));//输入卡号 box1.add(Box.createVerticalStrut(8));box1.add(new Label(”请输入您的密码“));//输入密码 box2=Box.createVerticalBox();Box baseBox,box1,box2;TextField tf1;JPasswordField tf2;Button button1;Button button2;public WindowBox(String s){//构造方法

super(s);tf1 = new TextField(6);tf2 = new JPasswordField(6);

} box2.add(tf1);

box2.add(Box.createVerticalStrut(8));box2.add(tf2);

baseBox=Box.createHorizontalBox();baseBox.add(box1);baseBox.add(Box.createHorizontalStrut(10));baseBox.add(box2);add(baseBox);button1= new Button(”确定“);//加入按钮 button1.addActionListener(this);add(button1);

button2 = new Button(”退卡“);//退卡按钮 button2.addActionListener(this);add(button2);setLayout(new FlowLayout());/*监听器*/

this.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){ System.exit(0);} });setBounds(120,125,300,200);setVisible(true);public void actionPerformed(ActionEvent e){ Account act;act=new Account(”000000“,”HuangHuai“,”123456“,50000);//初始化

/*选择各种服务*/

if(e.getSource()== button1){ String number1,number2;//输入的两个卡号和密码的变量 number1=tf1.getText().toString();number2 = new String(tf2.getPassword());

/*判断两次输入的卡号和密码是否正确*/

if((act.getCode().equals(number1))&&(act.getPassword().equals(num dispose();ber2))){ new Selection(”选择服务“,act);}else{

JOptionPane.showMessageDialog(this, ”密码或帐号错误!“,”账户提示信息“,JOptionPane.ERROR_MESSAGE);dispose();

new WindowBox(”ATM“);} }

if(e.getSource()==button2){

System.exit(0);

dispose();//退出

} } }

package cn.com.test;import cn.com.frameui.*;public class ATM { /**

* 主测试程序

* @param args

*/

public static void main(String[] args){

new WindowBox(”ATM");} }

在银行柜台和ATM取款机取款时有哪些注意事项
TOP