首页 > 实用范文 > 应急预案
ATM机应急预案
编辑:烟雨蒙蒙 识别码:125-454111 应急预案 发布时间: 2023-05-08 01:21:06 来源:网络

第一篇:ATM机应急预案

自助银行及ATM突发事件

应急预案

一、预警预防

1、安排本网点员工和保安员,对附属自助银行、自助设备状况,ATM灯箱、插卡口、出钞口、密码键盘及防护罩等重点部位进行现场检查。每天班前、班后检查应以网点员工为主,检查情况录入网点内控自查系统。营业期间检查应以网点值勤保安为主。

2、加强客户宣传和引导。通过采取一定的宣传措施,提醒客户提高警惕,注意用卡安全,避免落入犯罪分子设下的陷阱。

二、预想场景一及应急处置

营业网点附属自助银行及ATM突发事件发生后,事发营业网点组长应迅速分析判断有关情况,启动本单位应急处置预案,指挥全体人员沉着冷静、灵活处置,及时报警、报告。

预想场景:发现异常

网点营业期间,网点员工在对附属自助银行、ATM现场检查中,发现ATM有张贴不明告示、出钞口被堵等不法分子作案的痕迹。

应急处置要点:

1、网点ATM机专管人员对异常事件应保护好现场,提示客户暂时不要使用该自助设备,立即向网点负责人报告。

2、负责人接到报告后,应对自助银行、ATM现场进行仔细检查,判断ATM确实被不法分子作案后,启动应急预案,通知总行保卫部。

3、网点负责人应组织员工检查其他附属自助设备情况,保护好现场,提示客户暂时不要使用该自助设备。

4、ATM机专管员应立即打印交易流水,确定作案时间段内所有交易的客户卡号,并对交易卡进行分类,分出我行卡和他行卡,报送上级主管业务部门。视情况拨打110报警电话。

5、保卫部应第一时间通知行领导,并启动应急预案,调阅查看监控录像,锁定不法分子作案时间段。

6、保卫部迅速派出工作人员到事发现场,协助网点、110处理事件。

7、将此次事件全过程、后果及影响的文字、图片资料备案,并上报行领导。

预想场景二:ATM案件

网点营业期间,保安员在安全巡查中发现一名(或多名)不法分子在网点附属自助设备上安装银行卡信息偷盗装置或暴力破坏自助设备意图窃取设备内资金,或接监控中心值班人员通知:有不法分子正在网点自助设备上安装银行卡信息偷盗装置。

应急处置要点:

1、后台监控人员发现情况后,迅速通知网点负责人;并上报总行保卫部。网点负责人应与保安隐蔽监视,在不清楚不法分子是否携带凶器的情况下,不要贸然靠近和采取行动;若确认不法分子未携带凶器的情况下,在可以制服不法分子时,果断用防卫器械围捕不法分子。

2、保卫部会立即上报行领导,启动紧急预案,视情况联系110警方;派出工作人员到达事发现场,立即调阅后台监控录像,确认犯罪份子的作案时间,保存资料、图片证据。

3、网点保安及工作人员若在制服不法分子的过程中,其若逃跑,应紧随追击,呼叫周围群众协助追捕。

4、如不法分子已经逃离现场,在保卫工作人员应指挥网点保安划出警戒线,保护好现场配合警方调查取证,提示客户暂时不要使用自助设备。

5、将此次事件全过程、后果及影响的文字、图片资料备案,并上报行领导。

三、应急处置注意事项:

营业网点附属自助银行及ATM突发事件,如处置措施不当,可能导致我行和客户资金被盗,并引发我行与客户之间的纠纷,给我行带来不利影响。营业网点附属自助银行及ATM突发事件发生后,如网点员工随意接受新闻媒体采访或粗暴拒绝新闻媒体采访,可能会给我行带来负面报道,影响我行声誉。为此,在处置过程中要注意以下事项:

1、发生附属自助银行及ATM突发事件,处置一定要迅速、及时,保障客户资金安全。

2、网点所有员工就网点突发事件内容不得接受任何媒体的采访,如遇有媒体采访,应婉言谢绝,请其联系上级单位。

第二篇:ATM突发事件应急预案

营业网点附属自助银行及 ATM突发事件应急预案

一、预警预防

1、安排本网点员工和保安员,对附属自助银行、自助设备状况,ATM灯箱、插卡口、出钞口、密码键盘及防护罩等重点部位进行现场检查。每天班前、班后检查应以网点员工为主,检查情况录入网点内控自查系统。营业期间检查应以网点值勤保安为主。

2、加强客户宣传和引导。通过采取一定的宣传措施,提醒客户提高警惕,注意用卡安全,避免落入犯罪分子设下的陷阱。

二、预想场景及应急处置

营业网点附属自助银行及ATM突发事件发生后,事发营业网点组长应迅速分析判断有关情况,启动本单位应急处置预案,指挥全体人员沉着冷静、灵活处置,及时报警、报告。预想场景:发现异常网点营业期间,网点员工在对附属自助银行、ATM现场检查中,发现ATM有张贴不明告示、出钞口被堵等不法分子作案的痕迹。

1、火警处置:

当火情初起,分行(部)紧急应急工作小组人员应及时到达现场,第一时间切断电源,用干粉灭火器扑灭火源和燃烧物,并有组织做好现场外围的安保工作。事后应对火情原因进行分析、总结,做好相关材料上报区分行管理组。

应对重大火情时,分行紧急应急工作小组人员应及时采取电话报警,做好人员分工安排,把灾情简要报告区分行“A TM机业务紧急情况处置领导小组”,求得上级外援,同时采取断电,进行外围扑救和安全管理,防止灾情发生时分行(部)人、财、物的更大损失。市分行“ATM机业务紧急情况处置领导小组”得到火灾报告后,及时与公安、消防联系,组织人员赶赴火灾发生地点进行救援,并加强现场外围的协调及安保工作。灾后进行组织分工,对ATM机火情分析总结,财产损失、人员伤亡等进行分类统计,与公安部门联合对灾情进行进一步调查确定,写出灾情报告资料上报市分行、市银监分局、公安局等单位。组织相关部门对ATM机灾后建设工作。

3、押运车辆应急处置

ATM机加钞押运车辆出现故障,不能修复的,解款人员及时向保卫部门报告,由保卫部调配备用押运车辆完成运工作。出现交通事故时,押运车辆的武装押运人员要加强对车辆及人员的安全警戒工作,及时保护现场,向分行保卫部报告求得援助,通过备用车辆转运处理及时化解安全风险。当押运车辆遭受抢劫时,武装押运人员快速响应,加强守卫,向110指挥中心发出警报,对抢劫犯罪嫌疑人鸣枪示警,当鸣枪示警不能阻止时,方可开枪制止。分行“ATM机业务紧急情况处置领导小组”得到报警后,与公安部门加强联系,对事件发生进行统计,做好事件的行车记录、人员调查报告工作,加强押运业务管理监督,加强安全防范总结,逐级完成对事件的相关资料上报。

预想场景:发现异常

网点营业期间,网点员工在对附属自助银行、ATM现场检查中,发现ATM有张贴不明告示、出钞口被堵等不法分子作案的痕迹。应急处置要点:

1、网点ATM 机专管人员对异常事件应保护好现场,提示客户暂时不要使用该自助设备,立即向网点负责人报告。

2、负责人接到报告后,应对自助银行、ATM现场进行仔细检查,判断ATM确实被不法分子作案后,启动应急预案,通知市行保卫部。

3、网点负责人应组织员工检查其他附属自助设备情况,保护好现场,提示客户暂时不要使用该自助设备。

4、ATM机专管员应立即打印交易流水,确定作案时间段内所有交易的客户卡号,并对交易卡进行分类,分出我行卡和他行卡,报送上级主管业务部门。视情况拨打110报警电话。

5、保卫部应第一时间通知行领导,并启动应急预案,调阅查看监控录像,锁定不法分子作案时间段。

6、保卫部迅速派出工作人员到事发现场,协助网点、110处理事件。

7、将此次事件全过程、后果及影响的文字、图片资料备案,并上报行领导。预想场景二:ATM案件

网点营业期间,保安员在安全巡查中发现一名(或多名)不法分子在网点附属自助设备上安装银行卡信息偷盗装置或暴力破坏自助设备意图窃取设备内资金,或接监控中心值班人员通知:有不法分子正在网点自助设备上安装银行卡信息偷盗装置。应急处置要点:

1、后台监控人员发现情况后,迅速通知网点负责人;并上报市行保卫部。网点负责人应与保安隐蔽监视,在不清楚不法分子是否携带凶器的情况下,不要贸然靠近和采取行动; 若确认不法分子未携带凶器的情况下,在可以制服不法分子时,果断用防卫器械围捕不法分子。

2、市行保卫部会立即上报行领导,启动紧急预案,视情况联系110警方;派出工作人员到达事发现场,立即调阅后台监控录像,确认犯罪份子的作案时间,保存资料、图片证据。

3、网点保安及工作人员若在制服不法分子的过程中,其若逃跑,应紧随追击,呼叫周围群众协助追捕。

4、如不法分子已经逃离现场,在保卫工作人员应指挥网点保安划出警戒线,保护好现场配合警方调查取证,提示客户暂时不要使用自助设备。

5、将此次事件全过程、后果及影响的文字、图片资料备案,并上报行领导。

三、应急处置注意事项:

营业网点附属自助银行及ATM突发事件,如处置措施不当,可能导致我行和客户资金被盗,并引发我行与客户之间的纠纷,给我行带来不利影响。营业网点附属自助银行及 ATM突发事件发生后,如网点员工随意接受新闻媒体采访或粗暴拒绝新闻媒体采访,可能会给我行带来负面报道,影响我行声誉。为此,在处置过程中要注意以下事项:

1、发生附属自助银行及ATM突发事件,处置一定要迅速、及时,保障客户资金安全。

2、网点所有员工就网点突发事件内容不得接受任何媒体的采访,如遇有媒体采访,应婉言谢绝,请其联系上级单位。

第三篇:ATM机自查报告

篇一:自助设备专项安全自查报告

同仁联社自助设备专项安全自查报告 为整体提升自助设备安全防护能力,根据《关于开展全省农村信用社自助设备专项安全检查的通知》(青信联〔2014〕171号)要求,结合同仁联社实际情况,根据同仁联社自助设备安全防范制度,开展了自助设备专项安全自查工作,现将有关情况汇报如下:

一、基本情况

截止目前,同仁联社安装自助设备共计7台,其中,穿墙式在行atm自助取款机4台,穿墙式在行存取款一体机2台,大堂式在行自助取款机1台。

二、自查工作情况

(一)《atm日常巡查登记簿》填写规范,做到一日三查,《青海省农村信用社自助设备现金差错登记簿》正确填写,《青海省农村信用社自助设备日常运行、维护登记簿》填写出现个别柜员漏盖私章,已及时现场整改。

(二)全辖自助设备均安装了24小时视频监控装置,对交易时的客户正面图像、进/出钞期间的图像、现金装填过程进行录像,回放图像清晰,无客户密码及保险柜密码操作图像,图像信息包括日期时间。

(三)设备管理人员变更按规定更换密码并记录,定期更换密码,备份密码按要求保管。

(四)钥匙使用完毕后,按要求入库保管;备用钥匙要求封存、保管;交接按要求进行记录。

(五)现金申领经会计主管确认后按现金领取流程操作、设备打印的加钞凭证及运行前测试凭证均由专人保管。

(六)加钞过程按要求做到全程监控,双人加钞,录像记录清晰,外置监控数据至少保存1个月,内置监控数据保存时间至少3个月。

(七)外来人员进出按要求进行了登记簿、运行日志备注栏注明维修情况;维修设备时,有我行员工全程陪同。

(十)按会计要求妥善保管流水日志纸。

(十一)机具清洁、周边无可疑装置和张贴物。按要求安装客户操作提示、安全用卡提示,做到规范整洁。

(十二)加钞时做到停机加钞、双人操作,密码钥匙分管;离行式设备采用换箱法加钞;现金清分做到在封闭环境中进行; 按要求将废钞箱、回收箱、存款箱、取款箱内现金进行分别清点,加钞完毕后做取款测试。

(十三)针对大堂式在行atm自助取款设备,未设置一米线,我社已整改完毕。

以上是同仁联社自助设备专项安全自查工作情况。今后,同仁联社还将加大力度开展自助设备专项安全自查工作,建立起切实有效的自助设备管理机制,确保自助设备安全、稳定地运行。

同仁县农村信用合作联社

二〇一四年六月二十日篇二:银行卡自查报告 宁强县农村信用合作联社

关于开展银行卡业务检查情况自查报告 省联社汉中办事处:

为确保我县农村信用社持续、合规稳健发展,根据陕农信联社发[2011]236号文件要求,我联社于2011年7月10日至7月20日,对全县农村信用社银行卡业务管理上、银行卡业务日常操作与防范银行卡业务风险工作进行了全面的自查,现将自查情况汇报如下:

一、领导重视,认识到位

二、分工明确,责任到人

联社银行卡业务大检查工作领导小组对各部室组织开展自查进行了分工,由业务部负责对银行卡业务规章制度落实、执行情况、银行卡跨行差错处理、风险控制防范情况、业务宣传、业务操作、特约商户管理、家乐卡业务方面的自查。财务会计部负责对卡片管理情况的自查。信息部负责对pos设备的管理、atm业务情况的自查。并根据各部门的自查结果形成书面报告。

三、自查结果

一、基本情况

经陕西省银监局批准,2007年11月5日,陕西省农村信用社第一个银行卡品牌“陕西信合富秦卡”在宁强县农村信用社开始正式发行。通过各种营销手段和发卡措施,截止2010年8月末全县共发行富秦卡27421张,安装atm机5台,pos机7台。

二、银行卡业务开展情况

(一)采取有效措施,加大富秦卡推广力度

1、实行富秦卡发卡优惠政策,减免客户用卡手续费,吸取客户开卡,提高客户用卡积极性。富秦卡的推广全县统一对客户开卡、用卡进行优惠,具体优惠政策如下:免收每张5元的开卡费用和每年10元的年费,以充分发挥农信社营业网点多,鼓励客户使用富秦卡办理省内资金结算业务,让客户真正感受到富秦卡的便利和优惠政策带来的好处。

2、相互配合,确保富秦卡业务的顺利推广。富秦卡是全省农村信用社统一的银行卡品牌,各社注意维护了富秦卡的整体形象,加强相互之间的配合与协作,形成全县业务推广和市场营销合力。杜绝不受理跨地市、跨联社富秦卡业务的行为,更不能随意调整富秦卡业务收费标准,严禁损害陕西信合富秦卡品牌形象的行为,要让持卡人在全省享受到无障碍、无差别的用卡服务。县联社进一步明确结算纪律,加大对拒绝受理富秦卡业务的单位和个人的处罚力度;并公开投诉举报电话,对拒收、拒办富秦卡业务的相关人员进行责任追究。

3、充分发挥“10106262”全省统一电话客服系统功能。电话客服系统的开通,可实现自动查询,人工服务和咨询,手机短信,电话传真服务和业务投诉受理等基本服务功能。能够为持卡人解决在跨地区使用富秦卡遇到的紧急情况,扩大富秦卡服务外延。

(二)加大富秦卡的宣传力度,营销“陕西信合富秦卡”品牌 全县农村信用社富秦卡宣传工作取得明显效果,全县悬挂宣传横幅28幅,通过移动公司群发宣传短信1万余条,各营业网点发送富秦卡宣传资料1万余份,通过柜台宣传等多种方式,大力营销了陕西信合富秦卡这一品牌。例如:燕子砭信用社在镇政府开展的“学习十七大精神及12.4法制宣传日”宣传现场会上,设立了富秦卡宣传点,给广大农民现场讲解富秦卡业务知识,并散发富秦卡宣传手册600余份;代家坝信用社在集市街道醒目位置张贴富秦卡宣传标语40余条;在县人行组织的金融机构“12.4法制宣传”活动中,联社工作人员结合信用社自身业务向广大群众散发传单、手册,宣传讲解金融法规、政策,并向广大群众耐心讲解“富秦卡”的功能和特点,增强了广大群众对陕西信合富秦卡的了解。今年要继续加大富秦卡宣传工作,需要各社广泛开展户外宣传、街头宣传、柜台宣传等多种手段,自主开展各种宣传活动。联社也将通过广播、电视等新闻媒体进行富秦卡业务的宣传,并制作户外大型广告一幅,进一步营销“陕西信合富秦卡”品牌。

(三)加快自助设备投放建设

在全县农村信用社安装atm机5台,弥补柜面营业终了客户无法取款的弊端,全天向持卡人提供金融服务,减少持卡人跨行自助取款手续费支出,提高富秦卡服务满意度,为持卡人提供更加优质周到的用卡服务,在丰富银行卡业务服务功能的同时,进一步提升“陕西信合”服务形象。

三、强化银行卡业务管理,有效防范业务风险

为了保障富秦卡业务的长足发展,必须着眼富秦卡业务管理的实际需要,从推广措施制度、管理制度建设、风险防范等方面提高业务管理水平,实现富秦卡业务推广和管理协调发展,将陕西信合富秦卡做大做强。

(一)强化内部管理,规范操作流程

随着银行卡业务的不断发展及银行卡业务种类不断增加,各信用社充分认识加强银行卡业务管理的重要性,明确银行卡业务管理各个环节的工作责任,确保辖内银行卡业务稳健开展。联社不定期对各信用社银行卡业务的开展情况进行检查,规范银行卡业务操作流程,切实发挥对各信用社银行卡业务的管理和指导作用,加大对违反制度的信用社和个人的处罚,确保全县银行卡业务健康有序开展。

(二)加强制度学习,提高业务素质

各网点按省联社汉中办事处印发“陕西省农村信用社富秦卡柜面操作手册”和“陕西农村信用社银行卡培训资料”中的《陕西信合富秦卡(借记卡)章程(草案)》、《陕西信合富秦卡(借记卡)业务管理办法(暂行)》、《陕西信合富秦卡(借记卡)业务操作规程(暂行)》、《陕西信合富秦卡(借记卡)会计核算及资金清算办法(试行)》、《陕西信合富秦卡(借记卡)卡片管理办法(暂行)》、《陕西信合富秦卡(借记卡)内部安全管理制度(暂行)》、《陕西信合富秦卡(借记卡)业务风险防范措施(暂行)》、《农民工银行卡特色服务业务操作规程》、《陕西省农村信用社银行卡业务差错处理管理办法(暂行)》九个制度及办法规范和约束发卡操作,做到业务拓展,制度先行,以严密、科学的制度强化富秦卡业务管理,保证管理有依据,操作有规范,执行有标准,风险能控制,实现富秦卡业务顺利稳健开展。

(三)富秦卡业务风险防范

银行卡业务发展非常迅速,随之而来的犯罪活动也相当猖獗。我县富秦卡业务刚刚起步,缺乏相应的风险管理经验。因此,从现在开始就要把风险防范工作与业务推广工作并举,牢固树立风险防范意识,将人防与技防手段紧密结合,提高富秦卡风险抵御能力。

1、要求各社高度重视发卡业务的合规性管理,本着审慎经营原则,发卡网点必须要求客户如实填写《陕西信合富篇三:xx银行自助设备专项安全自查报告

xx分行自助设备专项安全自查报告 为整体提升自助设备安全防护能力,根据《xx银监分局办公室关于转发开展业务库专项安全检查暨自助设备专项安全检查后续整改工作的通知》(银监办发〔2015〕75号)文件相关要求,结合我行实际情况,根据我行自助设备安全防范制度,开展了自助设备专项安全自查工作,现将有关情况汇报如下:

一、基本情况

截止目前,我行自助设备的统计情况如下:

1、自助设备网点:总共有33个自助设备网点,其中6个在行式自助网点、27个离行式自助网点。

2、自助设备机具数量:总共有59台自助设备,其中单取款机21台,存取款一体机(crs)33台,查询机3台,自助封包机2台。

二、自查工作情况

1、我行的自助设备机具的维护、清机、加钞、清分、卫生保洁全部外包给广电运通金融电子有限公司,由广电运通派驻员工到我行进行专项服务。自助设备日常管理职责归属我分行运营管理部,由运营管理部对自助银行的工作进行监督、检查、指导。

2、我行自助设备均安装了24小时视频监控装置,对交易时的客户正面图像、进/出钞期间的图像、现金装填过程进行录像,回放图像清晰,图像信息包括日期时间。

3、设备管理人员变更按规定更换密码并记录,每季度定期更换密码,备份密码按要求保管。

4、钥匙使用完毕后,按要求入库保管;备用钥匙要求封存、保管;交接按要求进行记录。

5、设备打印的加钞凭证及运行前测试凭证均由专人保管。

6、加钞过程按要求做到全程监控,双人加钞,录像记录清晰,外置监控数据至少保存1个月,内置监控数据保存时间至少3个月。

7、外来人员进出按要求进行了登记簿、运行日志备注栏注明维修情况;维修设备时,有我行员工全程陪同。

8、按会计要求妥善保管流水日志纸。

9、机具清洁、周边无可疑装置和张贴物。按要求安装客户操作提示、安全用卡提示,做到规范整洁。

10、加钞时做到停机加钞、双人操作,密码钥匙分管;现金清分做到在封闭环境中进行; 按要求将废钞箱、回收箱、存款箱、取款箱内现金进行分别清点,加钞完毕后做取款测试。

二、自查中存在的问题及整改情况

1、在检查中发现个别atm自助网点内部的电灯损坏、空调漏水等问题,已经安排电工全部维修完毕。

2、xx支行的自助设备没有焊接,现在已经焊接了地板钢条,但atm机身与地板钢条没有焊接,需要再做一次焊接,已安排师傅进行整改,计划于2015年7月底前将所有自助机具的焊接问题全部整改完毕。

以上是我分行自助设备专项安全自查工作情况。今后,我分行还将加大力度开展自助设备专项安全自查、整改工作,建立起切实有效的自助设备管理机制,确保自助设备安全、稳定地运行。

中国xx银行xx分行 二〇一五年七月二十二日

第四篇:ATM机申请报告

关于*****支行在*****处

安装ATM机的请示

***支行:

为提升经营范围、拓展商圈,树立兰*****形象,经过我行充分市场调查,拟在*****安装ATM存取款机各一台,现将具体情况汇报如下:

****汽配城,周边商户众多,临街商铺繁华,已全面形成了成熟的商业社区,同时该市场商户有三百六十多户,经营人员有一千余人,并且70%以上的商户拥有**的POS机。该区域周边无一家金融服务网点,我行经过考察调研,为满足经营户及周边居民的强烈要求,方便大家的日常金融需求,申请在*****安装ATM存取款机各一台。

如有意向,甲方与我行进一步确定房屋租金。ATM机安装后,我行将进一步开展电子银行业务,积极推广开办POS机及网上银行、手机银行等电子渠道产品的营销活动,将带动电子银行业务快速发展。

妥否,请批示。

*****

2016年3月15日

第五篇:java ATM机

ATM柜员机

目 录 课程设计过程概述.................................................................................1 2 课程设计题目描述和基本设计要求.......................................................1 3 系统需求分析.........................................................................................1 3.1 功能需求分析 ················································································ 1 3.2 其他需求分析 ················································································ 1 4 系统设计................................................................................................2 4.1 总体设计 ························································································ 2 4.2 ATM柜员机界面设计 ···································································· 3 4.3 各功能模块设计············································································· 4

4.3.1 登陆页面模块设计 ··························································· 4 4.3.2 选择服务模块设计 ··························································· 5 4.3.3 取款模块设计 ·································································· 7 4.3.4 修改密码模块设计 ··························································· 8 4.3.5 退卡模块设计 ·································································· 9

4.4 异常处理情况说明 ········································································· 9 5 系统实现与测试...................................................................................10 6 课程设计总结.......................................................................................12 6.1 遇到的问题及解决办法 ······························································· 12 6.2 心得体会 ······················································································ 12 参考文献..................................................................................................13 附录..........................................................................................................13

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

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

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

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

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

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

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

 ATM存款:不能出现负存款。

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

3.2 其他需求分析

(1)性能描述

实时性好、灵活性强、易于不同年龄阶段的人操作。(2)设计约束

开发工具:JCrator ProV3.5.0 运行环境:Windows 2000以上 能实现用户所定义的各项需求。(3)界面要求

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

我所设计的ATM柜员机主要是由登录页面模块还由选择服务模块组成,其中选择服务模块又由取款模块、查询余额模块、修改密码模块、退卡模块组成。其功能结构图如下所示:

图1

ATM功能结构示意图

4.2 ATM柜员机界面设计

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

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

(1)窗体的设计

窗体整个框架使用Frame类构造,Frame有自己的外边框和自己的标题,创建Frame时可以指定其窗口标题,我创建的窗口标题是各个不同功能的模块的名字,比如说查询余额,还有取款等。相应源代码为:WindowBox(String s,Account act){super(“ATM柜员机”);}、Selection(String s,Account act){ } 向Frame窗口中添加组件使用add()。例如:button1 = new Button(“存款”);p1.add(button1);this.add(p1);super(s);每个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 getText()方法,获取用户想要的字符串。用来判断输入的密码和卡号是否正确,如果不正确的话,则弹出密码或卡号错误的警告框,并用dispose()关掉窗口。此模块相应的部分源代码为:

public void actionPerformed(ActionEvent e){

Account act;String card;

String pwd;

act=new Account(“000000”,“Devil”,“123456”,50000);//初始化

/*选择各种服务*/ if(e.getSource()== button1){

String number1,number2;

number1=tf1.getText();

number2=tf2.getText();/*判断密码和卡号是否正确*/

if((act.get_Code().equals(number1))&&(act.get_Password().equals(number2))){

dispose();

/*卡号和密码都正确则进入功能选择窗口*/

}

Selection s = new Selection(“选择服务”,act);

}else{

}

dispose();

ErrorWarn ew = new ErrorWarn(“消息!”,act);

/*退卡*/ 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);button1 = new Button(“存款”);p1.add(button1);this.add(p1);button2 = new Button(“取款”);

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

public void windowClosing(WindowEvent e){

});System.exit(0);} button2.addActionListener(this);button3.addActionListener(this);button4.addActionListener(this);button5.addActionListener(this);//setLayout(new GridLayout());setBounds(150,150,200,200);setVisible(true);validate();public void actionPerformed(ActionEvent e){ if(e.getSource()==button2){//取款 dispose();

}

}

} GetBalance gb = new GetBalance(“取款”,act);

if(e.getSource()==button3){//查询余额

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

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

}

ChangePassword cp = new ChangePassword(“修改密码”,act);dispose();System.exit(0);dispose();Query q =new Query(“查询余额”,act);dispose();4.3.3 取款模块设计

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

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

/*判断余额是否为负*/

if(act.get_Money()<0){

dispose();

ErrorWarn4 ew4 = new ErrorWarn4(“消息!”,act);

}

/*判断取款数额是否小于卡里余额*/ else if(money<=act.get_Money()){

/*取款的数额必须是100的倍数且每次最多只能取5000块*/

if((money%100!=0)||(money>=5000)){

}

act.set_Balance(money);//重新设置卡里的余额 this.setVisible(false);

dispose();

ErrorWarn6 ew6 = new ErrorWarn6(“消息!”,act);

/*取款后就再次进入选择界面*/

}

Selection s = new Selection(“选择服务”,act);

//dispose();

}else if(money>act.get_Money()){

}

dispose();

ErrorWarn5 ew5 = new ErrorWarn5(“消息!”,act);4.3.4 修改密码模块设计

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

/*判断旧密码是是否正确*/ if(pwd2.equals(act.get_Password())){ /*判断两次输入的密码是否匹配*/ if(pwd3.equals(pwd4)){

/*如果都正确的话就设置新密码*/

act.setPassword(pwd3);

dispose();

Selection s = new Selection(“选择”,act);

}else{

dispose();

ErrorWarn2 ew2 = new ErrorWarn2(“消息”,act);

}

}else{

this.setVisible(false);

ErrorWarn3 ew1 = new ErrorWarn3(“消息”,act);

dispose();}

4.3.5 退卡模块设计

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

System.exit(0);

dispose();} 这个方法就可以实现了,这里就不再多说了。

4.4 异常处理情况说明

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

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

(4)加载URL时的异常

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

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

图2 主界面—登陆页面

(2)选择服务界面效果

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

图3 选择服务界面

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

图4 取款界面

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

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

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

图7 查询余额界面

经过测试,所有的功能基本上都实现了,而且运行正常。

课程设计总结

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 附录

import javax.swing.*;import java.awt.*;import javax.swing.border.*;import java.awt.event.*;import java.io.*;

/*登陆页面首窗口*/ class WindowBox extends Frame implements ActionListener{

Box baseBox,box1,box2;TextField tf1,tf2;Button button1;Button button2;WindowBox(String s){//构造方法 super(s);

tf1 = new TextField(6);

tf2 = new TextField(6);

box1= Box.createVerticalBox;box1.add(new Label(“请输入你的卡号”));//输入卡号 box1.add(Box.createVerticalStrut(8));box1.add(new Label(“请输入你的密码”));//输入密码 box2=Box.createVerticalBox();box2.add(tf1);//box2.add(new TextField(16));box2.add(Box.createVerticalStrut(8));box2.add(tf2);//box2.add(new TextField(16));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,200,175);setVisible(true);public void actionPerformed(ActionEvent e){ Account act;String card;

String pwd;

act=new Account(“000000”,“Devil”,“123456”,50000);//初始化

/*选择各种服务*/ if(e.getSource()== button1){

String number1,number2;//输入的两个卡号和密码的变量

number1=tf1.getText();

number2=tf2.getText();

/*判断两次输入的卡号和密码是否正确*/ if((act.get_Code().equals(number1))&&(act.get_Password().equals(number2))){

dispose();

Selection s = new Selection(“选择服务”,act);

}else{

dispose();

ErrorWarn ew = new ErrorWarn(“消息!”,act);//报输入密码或卡号不正确

}

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

}

System.exit(0);dispose();//退出 } }

/*主函数*/ class ATM{

}

/*选择服务*/ import java.awt.*;import java.awt.event.*;class Selection extends Frame implements ActionListener{

Button button1,button2,button3,button4,button5;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(){} Selection(String s,Account act){

super(s);this.act=act;this.setLayout(null);

public static void main(String [] args){ } new WindowBox(“登录页面”);

this.setLayout(new GridLayout(6,1));p.add(new Label(“请选择你要的服务”));this.add(p);

/*各种服务功能*/

button1 = new Button(“存款”);p1.add(button1);this.add(p1);button2 = new Button(“取款”);p2.add(button2);this.add(p2);button3 = new Button(“查询余额”);p3.add(button3);this.add(p3);button4 = new Button(“退出”);p4.add(button4);this.add(p4);button5 = new Button(“修改密码”);p5.add(button5);this.add(p5);this.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){

});System.exit(0);} button2.addActionListener(this);button3.addActionListener(this);button4.addActionListener(this);button5.addActionListener(this);

}

} setBounds(150,150,200,200);setVisible(true);validate();public void actionPerformed(ActionEvent e){

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

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

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

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

}

ChangePassword cp = new ChangePassword(“修改密码”,act);dispose();System.exit(0);dispose();Query q =new Query(“查询余额”,act);dispose();dispose();GetBalance gb = new GetBalance(“取款”,act);

/*class Test4{ public static void main(String [] args){

Selection s = new Selection(“选择”);}

}*/ /*取款功能*/ import javax.swing.*;import java.awt.*;import javax.swing.border.*;import java.awt.event.*;class GetBalance extends Frame implements ActionListener{

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

super(s);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){

于5000

}

});

}

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

//System.out.println(e.getActionCommand());double money;

money = Double.parseDouble(tf.getText().trim());if(e.getSource()==button){

if(act.get_Money()<0){//判断余额是否为负

}

dispose();

ErrorWarn4 ew4 = new ErrorWarn4(“消息!”,act);else if(money<=act.get_Money()){//取钱的数额不大于余额 if((money%100!=0)||(money>=5000)){//取钱数为100的倍数或不大

}

dispose();

ErrorWarn6 ew6 = new ErrorWarn6(“消息!”,act);

act.set_Balance(money);//重置余额 this.setVisible(false);

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

//dispose();}else if(money>act.get_Money()){判断取款数额是否大于余额

} /*

}

}

}

dispose();

ErrorWarn5 ew5 = new ErrorWarn5(“消息!”,act);public static void main(String[] args){

}

/*修改密码功能*/ import javax.swing.*;import java.awt.*;import javax.swing.border.*;import java.awt.event.*;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;Button button;Account act;ChangePassword(String s,Account act){ super(s);

GetBalance test = new GetBalance(“dfdf”);} GetBalance gb = new GetBalance(“取款”);

this.act=act;

tf4 = new TextField(6);tf5 = new TextField(6);tf6 = new TextField(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,250,250);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;

pwd2 = tf4.getText();

pwd3 = tf5.getText();

pwd4 = tf6.getText();

} if(pwd2.equals(act.get_Password())){//判断旧密码是否正确

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

act.setPassword(pwd3);//启用新的密码 dispose();Selection s = new Selection(“选择”,act);//返回选择服务窗口

}else{

//this.setVisible(true);

//ErrorWarn2 ew = new ErrorWarn2(“消息”,act);

dispose();}

ErrorWarn2 ew2 = new ErrorWarn2(“消息”,act);}else{

this.setVisible(false);

}

ErrorWarn3 ew1 = new ErrorWarn3(“消息”,act);

dispose();/*查询余额功能*/

import javax.swing.*;import java.awt.*;import javax.swing.border.*;import java.awt.event.*;class Query extends Frame implements ActionListener{

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

super(s);this.act = act;

button=new Button(“确定”);//TextField tf = new TextField(6);Panel panel1 = new Panel();Panel panel = new Panel();panel1.add(new Label(“你的余额为: ” + act.get_Money()));//查询余额的方法 //panel1.add(tf);

button.addActionListener(this);panel.add(button);this.add(panel);this.add(panel1);this.setLayout(new GridLayout(2,1));this.addWindowListener(new WindowAdapter(){

});public void windowClosing(WindowEvent e){

}

System.exit(0);setBounds(200,200,150,150);

} } setVisible(true);public void actionPerformed(ActionEvent e){

} if(e.getSource()==button){

dispose();Selection s = new Selection(“选择服务”,act);//返回选择服务窗口 } /*账户*/ import java.io.*;

/*该类为实现客户信息及部分功能*/ class Account { private String code

=null;

//信用卡号

private String name

=null;

//客户姓名

private String password=null;

//客户密码

private double money

=0.0;

//卡里金额

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

this.code=code;

this.name=name;

this.password=password;

this.money=money;}

public String get_Code(){//取得卡号

return code;}

public String get_Name(){//取得名字

return name;}

public String get_Password(){//取得密码

return password;}

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

return money;}

/*得到剩余的钱的数目*/ protected void set_Balance(double mon){

money-= mon;} /*重置秘密的方法*/ public String setPassword(String pwd){

} } password = pwd;return password;

ATM机应急预案
TOP