第一篇:银行atm取款机系统
ATM自动取款机系统界面需求分析报告
1. 项目背景及基本描述
ATM自动取款机系统作为银行信息化管理的一部分,已经相当普及了。相比传统的手工操作,大大提高了银行的工作效率,同时降低人力、财力、物力的浪费,使得取款,转账等一些银行的日常业务形成一种规范有序的流程,减少信息交流的烦琐过程及其带来的开销,实现银行管理的规范化、自动化。
2. 用户分析
使用该系统的用户包括两类:管理员和客户。
管理员 :系统的超级用户,其对系统的操作包括开户、销户、修改密码。此类用户对计算机有一定的深入了解,对数据库的操作也有一定的基础,其亦可能是此类软件较熟悉的用户,这类用户有能力进行一些复杂的操作,比较数据备份,备份路径等。由于数据库保存着所有客户信息情况,在设计时对这类操作应尽量增加确认操作,以对话框的形式询问是否进行操作。
客户:系统的普通用户,其对系统的操作包括取款、存款、查询余额、转账、修改密码等。此类用户的计算机水平一般较低,系统对其操作的要求不应过高,比如菜单项就放在较为突出的地方,方便其操作,尽可能减少输入的数据与次数,避免因操作过多而出现的失误,同时相应菜单应设置带提示性的图标,提交后应弹出提示信息。
3. 系统功能需求
ATM自动取款机系统相关的主要对象有:
用户:使用ATM自动取款机进行现金交易。进行取款、查询余额、设置密码、转账等操作。 ATM系统:对用户的需求进行接收,通过与数据库的交互,根据对用户应用服务的响应,更新数据库中用户的信息。
银行数据库:对用户的所有信息进行存储更新。 因此,可以把系统具体功能描述如下:
管理员:开户,销户,修改密码。
客户:取款,存款,查询余额,转账,修改密码。 主要功能:
取款:用户按照系统输入要求输入取款金额即可取出相应金额的现金。 查询余额:用户可以查看账户所剩现金余额。
修改密码:如果用户想要修改当前密码,通过系统可以设置新密码。
转账:用户可以通过该功能将自己账户上的金额转到其他账户
4. 界面需求 4.1界面风格
用户界面统一设计,保证界面文字、颜色、图案等的一致性;符合美学标准。整洁、美观、错落有致。 4.1.1文字
字体使用适当,一般两到三种为谊;使用清晰易读的文字。 4.1.2 颜色
颜色使用适当;选择使用户长期使用不易疲劳的颜色,如灰色。 遵循对比原则,深色背景使用浅色文字;浅色背景使用深色文字。 4.1.3图案
图案的一致性、使用的恰当性、形象性、见图知意、大小合理。 4.1.4界面布局
合理的界面布局,保证习惯,平衡,屏幕不能拥挤,屏幕总体覆盖度最好不要超过40%;而组合框中覆盖度不要超过62%(Mayhew 1992年试验结果)。
有效组合,在逻辑上关联的项目在屏幕上应当加以组合,以显示其关联性。反之任何项目之间毫不相关的项目应当分隔开。在项目集合间用间隔对其进行分组/或用方框也同样可做到这一点。
保持习惯,屏幕组织自上而下、自左而右。 4.1.5区域排列
区域排列合理,排列整齐;一般的标签右对齐,编辑框左对齐。 4.1.6数据对齐方式
数据对齐要恰当,字符左对齐,数字右对齐。
4.2 操作方式
操作方式遵循Microsoft标准。在没有鼠标的情况下应该保证用户可以方便使用软件;回车键具备Tab健功能;方向健功能可以使用;用直观,标准的快捷建;界面间切换方便;对用户不能访问的功能统一采用灰掉而不是移走;使用非破坏性的缺省按钮,对于保存、删除之类的按钮不用缺省按钮;在操作焦点处排列功能按钮;菜单/工具条设计合理,弹出菜单不应该是唯一功能;主要功能应放于工具条;菜单层次少于4层。
4.3交互信息
提示信息的一致性,措词适当;用清晰简单无二意的文字表述功能。
当程序运行时间较长时,用进度条给于提示。 用状态栏提示当前操作。
4.4 输入
控制输入量,在输入时只输入基本信息,非基本信息应在系统中通过基本信息计算生成。
输入设计中应采用多种输入校验和有效性验证技术,尽量采用下拉选择框,让用户选择;减少输入错误。
避免额外步骤,在输入设计中应尽量避免不必要的输入步骤,当步骤不能省略时应仔细验证现有步骤是否完备、高效。
简化输入过程,不能因为校验而是输入复杂化。 便于填写、便于归档、保证精度。
4.5 输出
对输出数据要保证精度。
输出尽可能采用多种形式,如声音、图像,各种图形 报表尽可能的满足用户的各种需要,最好能实现报表制定义。
5.小组成员
组长:**(23号)
组员:***(29号) ***(51号) ****(59号)
6.工作分配
***(23号):写开题报告及后期报告 **(23号):软件功能策划及后期工作 **(29号):界面设计 **(51号):界面设计 ***(59号):界面设计
7.项目进度计划安排
第3周~第4周:写需求分析报告 第4周~第5周:设计方案
第5周~第9周:设计
第9周~第10周:写界面设计报告 第10周~第11周:测试、评估
第二篇:银行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取款机java课程设计
黄
淮
学
院
JAVA 课程设计报告
题
目: 《ATM柜员机》课程设计
学
院:
信 息 工 程 学 院
专
业:
计算机科学与技术
指导老师:
二0一三年六月
目
录
1 课程设计过程概述 ....................................................................................... 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柜员机
1 课程设计过程概述
2013年6月,JAVA课程设计在1#楼六楼机房进行,持续时间为两周。这次课程设计的主要目的是结合面向对象程序设计课程,培养我们面向对象软件开发的思维,初步了解软件开发的一般流程,提高用JAVA编程的实际动手能力并增强大家对面向对象的了解。这次课程设计的主要内容是独立用JAVA语言开发一个小的应用程序。我们开发了一个ATM柜员机。
2 课程设计题目描述和基本设计要求
我设计的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自动取款机C++课程设计
C++课程设计
学校: 惠州学院
题目: 设计ATM自动取款机系统 系别: 电子科学系 班级: 11电信2班 学号: 110703229 姓名: 王志勇
2014年4月21日
一、课程设计目的及要求
1.1设计目的
1.提高和加强学生的计算机应用与软件开发能力,使学生由初学者向专业的程序员过渡。
2.培养学生独立分析问题、解决问题、查阅资料以及自学能力,以适应计算机产业日新月异发展的形势。
3.学习和掌握础。 C++程序设计方法以及上机调试技巧,为今后学习其它专业课程打好基
1.2 ATM自动取款机设计要求
1.实现ATM取款机的基本功能,如给用户提供开户、查询余额、取款、修改密码、吃卡、退出系统等服务,可根据实际情况添加(如缴费、转账等服务)。
2.对于用户要求输入相应的帐号和密码,如果三次出错则将卡吃掉并打印出相应凭条。
若输入的取款金额超出账户余额,则提示用户输入有误并提供更正功能
二、课程设计具体实现
2.1.1总体设计
根据C++类的基本知识和类的基本性质去实现ATM自动取款机基本功能;
ATM自动取款系统开户用户登录退出存款取款查询余额修改密码转账退出系统
2.1.2详细设计
1.登陆模块
主要完成功能为:当用户开始使用本系统,进入登陆模块。屏幕显示菜单提示,用户可根据需要选择相应功能。具体如下:开户 、用户登录、退出系统;用户登录里面还有存款 、取款 、查询余额 、修改密码 、转账等功能
主要适用技术:登陆函数主要是使用了循环函数和do while函数,还有许多的成员函OpenAccount()、SaveMoney()、TakeMoney()、Inquiry()、Changepsw()、Transfer();Menus(); 关键代码如下: void main();主函数;
do{} while(1);//循环结构语句 switch(i);case 1: default: UserLogin();//用户登录界面函数 Menus(); //用户操作函数 bank k;//默认构造函数 OpenAccount();break;//开户
SaveMoney();break;//存款 TakeMoney();break;//取款 Inquiry();break;//查询余额 Changepsw();break;//修改密码 Transfer();break;//转账
2.开户模块
主要完成功能为:进入开户模块。屏幕显示菜单提示,可根据要求依次输入姓名、身份证号、卡号、密码和预存款金额,完成以上操作之后,屏幕上显示恭喜您,开户成功;主要适用技术:开户函数使用了基本函数;
主要代码如下:void OpenAccount()//开户函数
3.存款模块
主要完成功能为:当开始使用本系统,进入存款模块。屏幕显示菜单提示,根据要求依 主要使用技术:存款函数使用了循环语句函数、判断函数和选择函数 主要代码如下:
void SaveMoney()//存款函数
4.取款模块
主要完成功能为:进入取款模块。如果全款金额小于或者等于卡上余额,则取款进行,否则重新输入取款金额。取款成功后显示卡上余额
主要适用技术:存款函数使用了循环语句函数、判断函数和选择函数 主要代码如下:
void TakeMoney()//取款函数
5.查询余额
主要完成功能为:进入查询余额模块。屏幕显示菜单提示,屏幕上将显示你的余额,然后进入修改密码模块;
主要适用技术:存款函数使用了循环语句函数、判断函数和选择函数 主要代码如下:
voidInquiry()//查询余额函数
6.修改密码
主要完成功能为:进入修改密码模块。屏幕显示菜单提示,根据要求依次输卡号和密码,如果卡号和原始密码正确,则将进行修改密码的步骤,先输入原始密码,然后再输入新密码,之后确认新密码,确认正确之后,密码修改成功,接下来进入转账模块; 主要适用技术:存款函数使用了循环语句函数、判断函数和选择函数 主要代码如下:
void Changepsw()//修改密码函数
for(int i=1;i<=N;i++) else //循环结果语句 exit(1);//结束函数
7.转账模块
主要完成功能为:进入转账模块。输入所要转账的账号并输入转账金额,如果转账金额小于余额,转账成功输出卡上余额,
主要适用技术:存款函数使用了循环语句函数、判断函数和选择函数 主要代码如下:
voidTransfer()//转账函数
8.退出系统模块
主要完成功能为:退出ATM自动取款系统,用条件if(i==7) break;或exist(1)实现。
三、源程序代码
#include #include #include #include class Bank { public: Bank():cardID(123),SFZ(123),psw(123),money(100) {char name[20]="wangzhiyong";};
//默认构造函数,并初始化
void UserLogin();
//用户登录声明
void OpenAccount();
//开户函数声明
void Menus();
//用户操作函数声明
void SaveMoney();
//存款函数声明
void TakeMoney();
//取款函数声明
void Inquiry();
//查询函数声明
void Transfer();
//转账函数声明
void Changepsw();
//修改密码函数声明 private:
char name[20];
long cardID;
double SFZ;
long psw;
int money; }; void Bank::UserLogin()
//用户登录函数定义 { long ID; long psw1; cout<>ID; cout<<"请输入您的密码:"<>psw1; if(ID==cardID &&psw1==psw) { Menus(); } else { cout<<"您的卡号或者密码错误,请重新输入!"<>ID; cout<<"请重新输入您的密码:"<>psw1; } if(ID==cardID &&psw1==psw) { Menus(); } else { cout<<"温馨提示:密码错误,卡已被吃掉(打印出凭条,您的卡已经暂停一切业务):"<
//用户操作函数定义 { int a; do{ cout<<"1.存款 "; cout<<"2.取款 "; cout<<"3.查询余额 "; cout<<"4.修改密码 "; cout<<"5.转账 "; cout<<"6.退出系统 "; cout<<"请输入您要办理业务的序号:"; cin>>a; switch(a) { case 1: SaveMoney();break;
case 2: TakeMoney();break;
case 3:
Inquiry();break;
case 4: Changepsw();break;
case 5: Transfer();break;
case 6: exit(0);break;
default:{cout<<"你的输入有误,请输入1-7之间的整数! ";} } for(int j=0;j<=20;j++) cout<<"**"; cout<
{ cout<<"欢迎开户:"<
cout<<"请输入您的姓名:"<
cin>>name; cout<<"请输入身份证号码:"<>SFZ; cout<<"请输入您的卡号:"<
号:"<>cardID; cout<<"请输入您的密码:"<>psw; cout<<"请输入您的预存金额:"<
//存款
//取款 //查询余额
//修改密码 //转账 //退出
//开户函数定义
//cout<<"请输入您的卡
cin>>money; cout<<"恭喜您,开户成功!"<
//存款函数定义
{int money1; cout<<"欢迎您使用取款业务"<>money1; money=money+money1; cout<<"存款成功,卡上余额为:"<
void Bank::TakeMoney()
{ int money1; cout<<"欢迎您使用取款业务 "; cout<<"每次取款不能超过5000元"<>money1; if(money1>5000) { cout<<"每次取款不能超过5000元"<>money1; } if(money>=money1) { money=money-money1; cout<<"取款成功,您卡上余额为:"<
cout<<"取款金额超出账户余额,请重新输入取款金额:"; cin>>money1; money=money-money1; cout<<"取款成功,您卡上余额为:"<
义 { cout<<"欢迎进行查询余额业务 "; cout<<"卡上余额为:"<
//取款函数定义
//查询余额函数定
void Bank::Transfer()
//转账函数定义 { long ID2; int money1; cout<<"欢迎使用转账业务 "<>ID2; cout<<"请输入您要转账的金额:"<>money1; if(money1>5000) { cout<<"每次取款不能超过5000元"<>money1; } if(money>=money1) { money=money-money1; cout<<"转账成功,您卡上余额为:"<
cout<<"金额超出账户余额,请重新输入取款金额:"; cin>>money1; money=money-money1; cout<<"转账成功,您卡上余额为:"<
修改密码函数定义 { long ID; long psw1; long psw2; cout<<"欢迎使用修改密码业务 "<>ID; cout<<"请输入您的密码:"<>psw1; if(ID==cardID && psw1==psw) { cout<<"请输入您的原始密码:"<
//
cin>>psw1; cout<<"请输入您的新密码:"<>psw2; cout<<"确认新密码:请重新输入新密码:"<>psw2; psw=psw2; cout<<"修改密码成功!"<>psw1; if(psw1==psw) { cout<<"请输入您的新密码:"<>psw2; cout<<"确认新密码:请输入新密码:"<>psw2; psw=psw2; cout<<"修改密码成功!"<
ICBC
"<>i; if(i==3) break; switch(i) { case 1: k.OpenAccount();break;
case 2: k.UserLogin();break;
default:{cout<<"你的输入有误,请输入1-3之间的整数! ";} } for(int j=0;j<=20;j++) cout<<"**"; cout<
//开户函数调用//用户登录
四、总结
在为期二周的课程设计中,我体会颇多,学到很多东西,通过完成C++程序设计的任务,使我熟练和掌握了这学期所学的有关visual c++6.0中的一些主要知识点和应用点,比如面向对象中的类的定义、类的实现、对象的定义、类的继承、类的多态性等等;还有面向过程的许多基础知识,结构体的基本类型,基本应用、结构体的堆栈基础知识等等。应用程序的设计和创建,经历了平时在课堂中和考试中,决不会有的重重难题和问题,这些问题,并不是我们平时只靠课本,就可以轻易解决的。所以,锻炼了我们面对难题,自己思索,自己探索,自己查资料发现问题、解决问题的独断能力。
时间总是过得很快,转眼间C++课程设计就要结束了,通过这次课程设计,我们学会了很多,也懂得了很多,知道自己的C++只是哈有很大的提高空间。感谢老师,是您让我们知道了这些,是您一次次的帮助我们那些被我们收拾的面目全非的程序,让我们的程序起死回生;感谢老师,是您让我们看到自己的差距,看到了自己的基础知识还很薄弱,还有许多的只是我们还不懂,我们需要再接再厉去提高自己;感谢老师,是您让我们懂得了原来C++的许多程序原来是很深奥很深奥的,原来C++的许多程序是可以那样完成的,还有调试还可以是以那种形式去调试的;总之感谢您老师,是我们的C++有了进一步的提高,谢谢您老师,你们辛苦了。
“实践是检验真理的唯一标准”。没有实践,就不会发现和深刻体会它的真实所在。只有通过检验的真理,在自己的心里,才会认可它的真实性。C++程序设计的完成,使我们懂得了真理的重要性,理论和实际的相结合,才能真正把握所学和所掌握的知识。理论的拥有并不能代表我们的实力和能力,一切的事件和其成功都是理论和实践的结合。总之,我们学习和掌握的知识,只有通过实际应用,才能真正的理解和掌握,才能更好的去应用理论的拥有并不能代表我们的实力和能力,一切的事件和其成功都是理论和实践的结合。我们学习和掌握的知识,只有通过实际应用,才能真正的理解和掌握,才能更好的去应用。
第五篇:农村信用社自动取款机(ATM)管理办法
第一章总则
第一条为规范泰安市农村信用社自助银行网点(以下简称自助银行)的管理,完善其服务功能,树立良好社会形象;保障自助银行顺利建设、安全运行,根据中国人民银行《商业银行设立同城营业网点管理办法》、《银行卡业务管理办法》和《银行卡跨行业务吞没卡处理办法》的有关规定,制定本办法。
第二条自助银行是指农村信用社在营业场所以外设立的,以计算机系统和通信系统等高新科技手段为依托,以银行卡的广泛应用为基础,为客户提供存款、取款、贷款、转帐、查询、货币兑换和对帐单打印等金融业务的24小时服务,可以实现部分银行柜面业务由持卡人自己处理的自助设施。
第三条自助银行包括具有独立营业场所,提供上述金融业务的自助银行,和不具有独立营业场所,仅提供取款、转帐、查询服务的自动取款机(ATM)两类。
第四条自助银行的相关硬件设备分以下三种:
(一)现金类金融设备,包括自动取款机(ATM)、自动存款机(CDM)、外币兑换机(FEM)、现金存取款机(CRS)和夜间金库等;
(二)非现金类金融设备,包括存折补登机、对帐单打印机、多媒体信息查询机、自动保管箱系统等。
(三)附属设备,包括门禁系统、监控系统、防盗报警系统、自动灭火系统、宣传和照明的设施等。
第二章设立要求
第五条农村信用社设立自助银行应具备下列条件:
(一)已开办信通卡业务,并加入了中国银联网络;
(二)具有与综合业务网络系统联网的条件;
(三)具有合格的营业场所、安全防范设备及与业务有关的其他设施;
(四)具有合格的管理人员和专业技术人员;
(五)具有严格的人员控制管理制度并能切实执行
(六)中国人民银行规定的其他条件。
第六条自助银行的选址要求:
(一)人员流动性强、商业高度密集、正常营业时间外自助服务需求量大;
(二)具有良好的广告宣传效应;
(三)符合中国人民银行设立自助银行的其他要求。
第七条设立自助银行,要执行山东省农村信用社联合社(以下简称省联社)的统一装饰标准,突出农村信用社特色,强化宣传效果。
第八要自助银行的名称统一冠以“中国农村信用社”+“24小时自助银行服务”。自助银行要张贴银行联网标志、银行卡用卡常识和客户服务电话等。
第三章ATM设置审批
第九条农村信用社设立自助银行,由县级农村信用合作社联全社(以下称申请人)逐级向省联社提交相关申请文件,经省联社同意后,再按有关规定向中国人民银行监管行报批或备案。
第十条省联社按以下原则进行审批;
(一)合理布局、确有效益;
(二)与当地银行业发展服务水平和经营状况相适应;
(三)符合当地社区对金融自助服务的需求。
第十一条申请人向省联社提交申请报告,须附以下资料:
(一)申请人的基本情况和对拟设自助银行的投资情况;
(二)拟配置的机型、数量及提供的服务种类;
(三)拟设地点的市场分析,包括目标市场、服务需求、竞争状况、发展前景等;
(四)拟负责自助银行日常管理的机构和人员;
(五)安全监控方案及维护措施;
(六)已经设立的自助银行的数量、布局和运营情况;
(七)其他资料。
第十二条申请人申请设立具有独立营业场所的自助银行,须首先经省联社审核同意后,并发给书面批准文件,然后向中国人民银行监管行提出申请,获得批准后,方可筹建、开业。 第十三条申请人设置只提供取款、转帐和查询服务的自动取款机(ATM),须首先向省联社提交本办法第十一条所列文件,由省联社备案,省联社自收到上述文件之日起十五个工作日内无异议的,申请人再向中国人民银行监管行备案,中国人民银行监管行在规定日期内无异议的,申请人方可设置自动取款机(ATM)。
第四章ATM业务管理
第十四条办事处网络中心要有专人负责自助银行软硬件设施的配置和管理;县联社计算机网络中心要有专人负责自助银行的日常维护。县联社计算机网络中心的自助银行维护人员情况要在市网络中心备案。
第十五条各级管理维护人员对自助银行所做的维护与检查等工作要在工作日志中进行记录。
第十六条信用社要为自助银行配备专职或兼职的操作员,具体负责自助银行设备加钞加纸、网点环境卫生及其他日常工作。操作员的配备要满足自助银行的日常管理要求,并符合分工合作、相互制约的原则。
第十七条市网络中心要制定相关的操作规程,并对操作员进行岗前培训;操作员经培训合格后方可上岗。自助银行操作员情况在县联社备案。
第十八条信用社要建立自助银行操作员交接登记制度,操作员临时更换或调动,要在内勤主任的监督下进行交接,并详细登记。
第十九条操作员要分别掌管房屋钥匙和管理卡,由信用社内勤主任和操作员双人封存后入库保管;备用的机箱钥匙、保险柜钥匙、钞箱钥匙由信用社内勤主任和操作员双人封存后上交联社入库保管。保险柜密码和管理卡密码要定期更换,严防泄密。
第二十条信用社要建立《自助银行运行日志》,由操作员将自助银行相关设施每天的运行情况和其他情况进行详细登记,县联社计算机网络中心的自助银行管理员对登记情况定期进行检查。
第二十一条信用社对自助银行的现金类金融设备要视同营业柜员进行管理,操作员对清钞、加钞、取钞的余额变动情况要进行详细登记。
第二十二条操作员在清查现金类金融设备钞箱余额和加钞、取钞过程中,必须坚持双人操作,并严格按照操作规程进行,不得随意更改及颠倒规程。
第二十三条营业柜员必须每日记录现金类金融设备收付情况,并登记《自助银行运行日志》。信用社对每机每月至少检查库存一次,县联社会计或稽核部门对辖内自助银行每机每季度至少检查库存一次,并进行详细记录。
第二十四条现金类金融设备如果发生长款或短款,相关部门和负责人要通过查看临近录象资料、检查《自助银行运行日志》、检查金融设备日志等手段尽快查明原因,并区别情况,及时作出处理。长款和短款的时间、金额、原因、处理结果等内容要详细记录,属于软件原因的,要将相关情况逐级上报省联社。
第二十五条现金类金融设备如发生吐钞或吞钞,信用社须根据客户提供的银行卡、客户凭条和有效的身份证件进行受理。受理后,必须查看金融设备日志和综合业务网络系统提供的相关资料,清点设备现金余额并查看监控录像,确认后按有关规定进行柜台兑付或账务调整。 第二十六条如果发生吞卡,操作员要在《自助银行吞没卡登记簿》中进行登记,并严格按照省联社和银联股份有限公司的有关规定进行处理。
第二十七条金融设备交易所产生的有关凭证和报表要每天打印,并按照档案管理的有关规定进行保管;现金类金融设备日志是记录自助设备工作情况的重要依据,要保持其连续性,并建档登记,保管期限为5年。
第二十八条自助银行的金融设备要符合国家规定的有关技术规范。
第二十九条无独立营业场所的自助银行要有良好的监控系统、防盗报警设施和照明设施;有独立营业场所的自助银行要有严密的门禁系统、远程监控系统、防盗报警系统、自动灭火系统、不间断电源(UPS)和良好的照明设施。
第三十条监控系统和门禁系统要保证24小时不间断正常运行,监控录像和门禁数据记录至少保存30天。
第三十一条市网络中心对可能出现的异常情况要制定出应急方案,以确保自助银行安全、正常运行。
第三十二条市网络中心负责自助银行金融设备及相关软件的管理和操作员培训等工作,会计稽核部门负责其帐务、帐款的核查,保卫部门负责其安全管理。各部门要各负其责,密切配合。
第三十三条市网络中心要对辖内的自助银行每年至少检查两次,检查情况要全面记录,发现问题要及时解决。
第五章违规处罚
第三十四条发生以下情况要对相关责任人进行处罚并限期整改:
(一)用电环境和设施存在安全隐患的;
(二)相关设备不齐全或不符合标准的;
(三)人员配备达不到要求的;
(四)在设备运行和现金管理上违规操作的;
(五)发现问题未按规定及时上报的;
(六)吞卡、吞钞、帐务差错、设备故障问题未及时解决的;
(七)未按要求建立各种登记簿或未按要求进行登记的;
(八)其他违反规定的。
第三十五条市网络中心应根据实际情制定出具体的处罚办法。
第六章附则
第三十六条本办法未尽事宜,按照国家有关法律、法规和中国人民银行、中国银联股份有限公司省联社的有关规定执行。
第三十七条本办法由山东省农村信用社联合社泰安办事处负责制定、解释,修改亦同。 第三十八条本办法自下发之日起开始执行
【银行atm取款机系统】相关文章:
atm取款机维修04-08
uml建模atm取款机04-08
银行atm自动设备查账04-11
海南大学附近银行 ATM04-10
银行atm机跨行转账09-25
银行atm转账手续费09-25
银行卡异地存取款07-26
银行卡异地取款手续费05-06
银行卡异地存取款常识05-06
各银行跨行取款手续费12-08