ATM自动取款机C++课程设计

时间:2019-05-13 20:19:57下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《ATM自动取款机C++课程设计》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《ATM自动取款机C++课程设计》。

第一篇: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.存款n”;cout<<“2.取款n”;cout<<“3.查询余额n”;cout<<“4.修改密码n”;cout<<“5.转账n”;cout<<“6.退出系统n”;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之间的整数!n”;} } 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<<“欢迎您使用取款业务n”;cout<<“每次取款不能超过5000元”<>money1;if(money1>5000){ cout<<“每次取款不能超过5000元”<>money1;} if(money>=money1){ money=money-money1;cout<<“取款成功,您卡上余额为:”<

cout<<“取款金额超出账户余额,请重新输入取款金额:”;cin>>money1;money=money-money1;cout<<“取款成功,您卡上余额为:”<

义 { cout<<“欢迎进行查询余额业务n”;cout<<“卡上余额为:”<

//取款函数定义

//查询余额函数定

void Bank::Transfer()

//转账函数定义 { long ID2;int money1;cout<<“欢迎使用转账业务n”<>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<<“欢迎使用修改密码业务n”<>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之间的整数!n”;} } for(int j=0;j<=20;j++)cout<<“**”;cout<

//开户函数调用//用户登录

四、总结

在为期二周的课程设计中,我体会颇多,学到很多东西,通过完成C++程序设计的任务,使我熟练和掌握了这学期所学的有关visual c++6.0中的一些主要知识点和应用点,比如面向对象中的类的定义、类的实现、对象的定义、类的继承、类的多态性等等;还有面向过程的许多基础知识,结构体的基本类型,基本应用、结构体的堆栈基础知识等等。应用程序的设计和创建,经历了平时在课堂中和考试中,决不会有的重重难题和问题,这些问题,并不是我们平时只靠课本,就可以轻易解决的。所以,锻炼了我们面对难题,自己思索,自己探索,自己查资料发现问题、解决问题的独断能力。

时间总是过得很快,转眼间C++课程设计就要结束了,通过这次课程设计,我们学会了很多,也懂得了很多,知道自己的C++只是哈有很大的提高空间。感谢老师,是您让我们知道了这些,是您一次次的帮助我们那些被我们收拾的面目全非的程序,让我们的程序起死回生;感谢老师,是您让我们看到自己的差距,看到了自己的基础知识还很薄弱,还有许多的只是我们还不懂,我们需要再接再厉去提高自己;感谢老师,是您让我们懂得了原来C++的许多程序原来是很深奥很深奥的,原来C++的许多程序是可以那样完成的,还有调试还可以是以那种形式去调试的;总之感谢您老师,是我们的C++有了进一步的提高,谢谢您老师,你们辛苦了。

“实践是检验真理的唯一标准”。没有实践,就不会发现和深刻体会它的真实所在。只有通过检验的真理,在自己的心里,才会认可它的真实性。C++程序设计的完成,使我们懂得了真理的重要性,理论和实际的相结合,才能真正把握所学和所掌握的知识。理论的拥有并不能代表我们的实力和能力,一切的事件和其成功都是理论和实践的结合。总之,我们学习和掌握的知识,只有通过实际应用,才能真正的理解和掌握,才能更好的去应用理论的拥有并不能代表我们的实力和能力,一切的事件和其成功都是理论和实践的结合。我们学习和掌握的知识,只有通过实际应用,才能真正的理解和掌握,才能更好的去应用。

第二篇:C++编写的ATM自动取款机模拟程序分析

// ************************************ // * * // * function.h * // * * // ************************************ #include

class consumer;class ATM // ATM取款机 { public: ATM(consumer& cn):cnsm(cn){ } void welcome();// 登陆界面

bool check_passwd(char n[],char pwd[]);// 核对密码

void change_passwd();// 修改密码 void fetchmoney();// 取款

void information();// 查询信息 void exitATM();// 退出系统

void functionshow();// 功能界面 void lock();// 锁机 private: int times;// 记录密码输入次数 consumer& cnsm;};class consumer // 用户 { public: friend class ATM;consumer(char Name[],char Num[], float Money,char Password[]);protected: char* get_name();// 取得姓名 char* get_num();// 取得卡号 char* get_passwd();// 取得密码 float get_money();// 取得余额

void set_passwd(char pwd[]);// 设置密码

void set_money(float m);// 取钱 private: char passwd[8];// 用户密码 char name[20];// 用户姓名 char num[20];float money;};

// ************************************ // * * // * consumer类的成员&&函数 * // * * // ************************************

#include“function.h” #include

consumer::consumer(char Name[], char Num[],float Money,char Password[]){ strcpy(name,Name);

strcpy(num,Num);money=Money;strcpy(passwd,Password);}

float consumer::get_money(){ return money;}

char* consumer::get_name(){ return name;}

char* consumer::get_num(){ return num;}

char* consumer::get_passwd(){ return passwd;}

void consumer::set_money(float m){ money-=m;} void consumer::set_passwd(char pwd[]){ strcpy(passwd,pwd);}

// ************************************ // * * // * ATM类的成员&&函数 * // * * // ************************************

#include “function.h” #include #include void ATM::welcome(){ times=0;cout<<“$ 欢迎使用若雪银行ATM自动取款机!~!”<”;cin>>n;while(n<1||n>4){ cout<<“请输入正确的操作序号!”<”;cin>>n;} switch(n){ case 1: change_passwd();break;case 2: fetchmoney();break;case 3: information();break;case 4: exitATM();break;} }while(true);} void ATM::change_passwd(){ char pwd[8],repwd[8];times=0;do { cout<>pwd;if(!check_passwd(cnsm.get_num(),pwd))times++;else break;}while(times<3);if(times==3)lock();int t=0;do { cout<<“请输入新密码:”;cin>>pwd;cout<<“请再输入一次新密码:”;cin>>repwd;if((t=strcmp(pwd,repwd))!=0)cout<<“你输入的两次密码不一样,请重新输入!”<”<>m;while(m<=0){ cout<<“请输入正确的数字!”< ”;cin>>m;} if(cnsm.get_money()-m<0){ cout<<“对不起,你的余额不足!” < ”;cin>>ch;while(ch!='n'&&ch!='N'&&ch!='Y'&&ch!='y'){ cout<<“$ >”;cin>>ch;} }while(ch=='y'||ch=='Y');} void ATM::information(){ cout<<“**********************************”< #include“function.h” void main(){ consumer c1(“jim”,“12345”,5200.3f,“123”);// 先构造一个用户 ATM atm(c1);atm.welcome();}

第三篇:uml 描述ATM自动取款机系统

ATM自动取款机系统

ATM自动取款机(automatic teller machine)是银行在银行营业大厅、超市、商业机构、机场、车站、码头和闹市区设置的一种小型机器,利用一张信用卡大小的胶卡上的磁带〔或芯片卡上的芯片〕记录客户的基本户口资料,让客户可以透过机器进行提款、存款、转帐等银行柜台服务。这里介绍使用Rational Rose工具为ATM自动取款机系统进行建模。

5.1需求分析

ATM自动取款机系统的需求分析简述如下:

(1)客户将银行卡插入读卡器,读卡器识别卡的真伪,并在显示器上提示输入密码。(2)客户通过键盘输入密码,取款机验证密码是否有效。如果密码错误提示错误信息,如果正确,提示客户进行选择操作的业务。

(3)客户根据自己的需要可进行存款、取款、查询账户、转账、修改密码的操作。(4)在客户选择后显示器进行交互提示和操作确认等信息。(5)操作完毕后,客户可自由选择打印或不打印凭条。

(6)银行职员可进行对ATM自动取款机的硬件维护和添加现金的操作。

5.2系统建模

在系统建模以前,我们首先需要在Rational Rose 2003中创建一个模型。并命名为“ATM自动取款机系统”,该名称将会在Rational Rose 2003的顶端出现,如下图5-1所示。

图 5-1创建项目系统模型

5.2.1创建系统用例模型

创建系统用例的第一步是确定系统的参与者。考试成绩管理系统的参与者包含以下三种:

(1)客户(2)银行职员(3)信用系统 三个参与者如图5-2所示。

图5-2 系统参与者

然后,我们根据参与者的不同分别画出各个参与者的用例图。

1.客户用例图:客户在本系统中可以进行取款、存款、转账、查询余额、修改密码和还款的相关操作,通过这些活动创建的客户用例图如图5-3所示。

图5-3 客户用例图

图5-4 银行职员用例图

2.银行职员用例图:银行职员在本系统中能够进行硬件维护、修改密码和添加现金的相关操作,通过这些活动创建的银行职员用例图如图5-4所示。

5.2.2创建系统静态模型

从前面的需求分析中,我们可以依据主要的九个类对象:ATM自动提款机、客户、银行职员、信用系统、数据库连接、银行账户、ATM屏幕、ATM键盘和ATM读卡器创建完整的类图如图5-5所示。

图 5-5 系统类图

5.2.3创建系统动态模型

系统的动态模型可以使用交互作用图、状态图和活动图来进行描述。

5.2.3.1 创建序列图和协作图

客户取款的活动步骤分为:(1)客户插入银行卡(2)读卡机读取卡号(3)初始化屏幕(4)读卡机打开账户并提示输入密码(5)用户输入密码(6)验证密码(7)屏幕提示选择操作(8)用户选择取款操作(9)银行账户扣除钱款(10)吐钱机提供钱和收据(11)用户取钱并退卡。根据以上步骤创建的序列图和协助图,如下图5-6和图5-7所示。

图5-6 客户取款序列图

图5-7 客户取款协作图

5.2.3.2 创建活动图

我们还可以利用系统的活动图来描述系统的参与者是如何协同工作的。ATM自动取款机系统中,根据用户开立新账户的步骤,我们可以创建活动图如下图5-12所示。

图5-12 系统活动图

图5-13 系统状态图

5.2.3.3 创建状态图

在ATM自动取款机系统中,有明确状态转换的类是银行账户,从账户的打开到账户关闭的过程,状态会发生明显的变化。创建后的系统状态图如下图5-13所示。

5.2.4创建系统部署模型

对系统的实现结构进行建模的方式包括两种,即构件图和部署图。ATM自动取款系统的构件图我们通过构件映射到系统的实现类中,说明该构件物理实现的逻辑类,在本系统中,我们可以对银行账户、信用系统、客户、ATM屏幕、ATM取款机、ATM键盘、银行职员、读卡器和数据库服务器分别创建对应的构件进行映射。ATM自动取款机系统的构件图如图5-14所示。

.图 5-14系统构件图

图5-15 系统部署图

ATM自动取款机系统的部署图描绘的是系统节点上运行资源的安排。包括了四个节点,分别是:ATM客户端、地区ATM服务器、银行数据库服务器和打印机。创建后的部署图如图5-15所示。

第四篇: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)管理办法

农村信用社自动取款机(ATM)管理办法

第一章总则

第一条为规范泰安市农村信用社自助银行网点(以下简称自助银行)的管理,完善其服务功能,树立良好社会形象;保障自助银行顺利建设、安全运行,根据中国人民银行《商业银行设立同城营业网点管理办法》、《银行卡业务管理办法》和《银行卡跨行业务吞没卡处理办法》的有关规定,制定本办法。

第二条自助银行是指农村信用社在营业场所以外设立的,以计算机系统和通信系统等高新科技手段为依托,以银行卡的广泛应用为基础,为客户提供存款、取款、贷款、转帐、查询、货币兑换和对帐单打印等金融业务的24小时服务,可以实现部分银行柜面业务由持卡人自己处理的自助设施。

第三条自助银行包括具有独立营业场所,提供上述金融业务的自助银行,和不具有独立营业场所,仅提供取款、转帐、查询服务的自动取款机(ATM)两类。

第四条自助银行的相关硬件设备分以下三种:

(一)现金类金融设备,包括自动取款机(ATM)、自动存款机(CDM)、外币兑换机(FEM)、现金存取款机(CRS)和夜间金库等;

(二)非现金类金融设备,包括存折补登机、对帐单打印机、多媒体信息查询机、自动保管箱系统等。

(三)附属设备,包括门禁系统、监控系统、防盗报警系统、自动灭火系统、宣传和照明的设施等。

第二章设立要求

第五条农村信用社设立自助银行应具备下列条件:

(一)已开办信通卡业务,并加入了中国银联网络;

(二)具有与综合业务网络系统联网的条件;

(三)具有合格的营业场所、安全防范设备及与业务有关的其他设施;

(四)具有合格的管理人员和专业技术人员;

(五)具有严格的人员控制管理制度并能切实执行

(六)中国人民银行规定的其他条件。

第六条自助银行的选址要求:

(一)人员流动性强、商业高度密集、正常营业时间外自助服务需求量大;

(二)具有良好的广告宣传效应;

(三)符合中国人民银行设立自助银行的其他要求。

第七条设立自助银行,要执行山东省农村信用社联合社(以下简称省联社)的统一装饰标准,突出农村信用社特色,强化宣传效果。

第八要自助银行的名称统一冠以“中国农村信用社”+“24小时自助银行服务”。自助银行要张贴银行联网标志、银行卡用卡常识和客户服务电话等。

第三章ATM设置审批

第九条农村信用社设立自助银行,由县级农村信用合作社联全社(以下称申请人)逐级向省联社提交相关申请文件,经省联社同意后,再按有关规定向中国人民银行监管行报批或备案。

第十条省联社按以下原则进行审批;

(一)合理布局、确有效益;

(二)与当地银行业发展服务水平和经营状况相适应;

(三)符合当地社区对金融自助服务的需求。

第十一条申请人向省联社提交申请报告,须附以下资料:

(一)申请人的基本情况和对拟设自助银行的投资情况;

(二)拟配置的机型、数量及提供的服务种类;

(三)拟设地点的市场分析,包括目标市场、服务需求、竞争状况、发展前景等;

(四)拟负责自助银行日常管理的机构和人员;

(五)安全监控方案及维护措施;

(六)已经设立的自助银行的数量、布局和运营情况;

(七)其他资料。

第十二条申请人申请设立具有独立营业场所的自助银行,须首先经省联社审核同意后,并发给书面批准文件,然后向中国人民银行监管行提出申请,获得批准后,方可筹建、开业。第十三条申请人设置只提供取款、转帐和查询服务的自动取款机(ATM),须首先向省联社提交本办法第十一条所列文件,由省联社备案,省联社自收到上述文件之日起十五个工作日内无异议的,申请人再向中国人民银行监管行备案,中国人民银行监管行在规定日期内无异议的,申请人方可设置自动取款机(ATM)。

第四章ATM业务管理

第十四条办事处网络中心要有专人负责自助银行软硬件设施的配置和管理;县联社计算机网络中心要有专人负责自助银行的日常维护。县联社计算机网络中心的自助银行维护人员情况要在市网络中心备案。

第十五条各级管理维护人员对自助银行所做的维护与检查等工作要在工作日志中进行记录。

第十六条信用社要为自助银行配备专职或兼职的操作员,具体负责自助银行设备加钞加纸、网点环境卫生及其他日常工作。操作员的配备要满足自助银行的日常管理要求,并符合分工合作、相互制约的原则。

第十七条市网络中心要制定相关的操作规程,并对操作员进行岗前培训;操作员经培训合格后方可上岗。自助银行操作员情况在县联社备案。

第十八条信用社要建立自助银行操作员交接登记制度,操作员临时更换或调动,要在内勤主任的监督下进行交接,并详细登记。

第十九条操作员要分别掌管房屋钥匙和管理卡,由信用社内勤主任和操作员双人封存后入库保管;备用的机箱钥匙、保险柜钥匙、钞箱钥匙由信用社内勤主任和操作员双人封存后上交联社入库保管。保险柜密码和管理卡密码要定期更换,严防泄密。

第二十条信用社要建立《自助银行运行日志》,由操作员将自助银行相关设施每天的运行情况和其他情况进行详细登记,县联社计算机网络中心的自助银行管理员对登记情况定期进行检查。

第二十一条信用社对自助银行的现金类金融设备要视同营业柜员进行管理,操作员对清钞、加钞、取钞的余额变动情况要进行详细登记。

第二十二条操作员在清查现金类金融设备钞箱余额和加钞、取钞过程中,必须坚持双人操作,并严格按照操作规程进行,不得随意更改及颠倒规程。

第二十三条营业柜员必须每日记录现金类金融设备收付情况,并登记《自助银行运行日志》。信用社对每机每月至少检查库存一次,县联社会计或稽核部门对辖内自助银行每机每季度至少检查库存一次,并进行详细记录。

第二十四条现金类金融设备如果发生长款或短款,相关部门和负责人要通过查看临近录象资料、检查《自助银行运行日志》、检查金融设备日志等手段尽快查明原因,并区别情况,及时作出处理。长款和短款的时间、金额、原因、处理结果等内容要详细记录,属于软件原因的,要将相关情况逐级上报省联社。

第二十五条现金类金融设备如发生吐钞或吞钞,信用社须根据客户提供的银行卡、客户凭条和有效的身份证件进行受理。受理后,必须查看金融设备日志和综合业务网络系统提供的相关资料,清点设备现金余额并查看监控录像,确认后按有关规定进行柜台兑付或账务调整。第二十六条如果发生吞卡,操作员要在《自助银行吞没卡登记簿》中进行登记,并严格按照省联社和银联股份有限公司的有关规定进行处理。

第二十七条金融设备交易所产生的有关凭证和报表要每天打印,并按照档案管理的有关规定进行保管;现金类金融设备日志是记录自助设备工作情况的重要依据,要保持其连续性,并建档登记,保管期限为5年。

第二十八条自助银行的金融设备要符合国家规定的有关技术规范。

第二十九条无独立营业场所的自助银行要有良好的监控系统、防盗报警设施和照明设施;有独立营业场所的自助银行要有严密的门禁系统、远程监控系统、防盗报警系统、自动灭火系统、不间断电源(UPS)和良好的照明设施。

第三十条监控系统和门禁系统要保证24小时不间断正常运行,监控录像和门禁数据记录至少保存30天。

第三十一条市网络中心对可能出现的异常情况要制定出应急方案,以确保自助银行安全、正常运行。

第三十二条市网络中心负责自助银行金融设备及相关软件的管理和操作员培训等工作,会计稽核部门负责其帐务、帐款的核查,保卫部门负责其安全管理。各部门要各负其责,密切配合。

第三十三条市网络中心要对辖内的自助银行每年至少检查两次,检查情况要全面记录,发现问题要及时解决。

第五章违规处罚

第三十四条发生以下情况要对相关责任人进行处罚并限期整改:

(一)用电环境和设施存在安全隐患的;

(二)相关设备不齐全或不符合标准的;

(三)人员配备达不到要求的;

(四)在设备运行和现金管理上违规操作的;

(五)发现问题未按规定及时上报的;

(六)吞卡、吞钞、帐务差错、设备故障问题未及时解决的;

(七)未按要求建立各种登记簿或未按要求进行登记的;

(八)其他违反规定的。

第三十五条市网络中心应根据实际情制定出具体的处罚办法。

第六章附则

第三十六条本办法未尽事宜,按照国家有关法律、法规和中国人民银行、中国银联股份有限公司省联社的有关规定执行。

第三十七条本办法由山东省农村信用社联合社泰安办事处负责制定、解释,修改亦同。第三十八条本办法自下发之日起开始执行

下载ATM自动取款机C++课程设计word格式文档
下载ATM自动取款机C++课程设计.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    ATM(自动取款机)的用例图

    ATM(自动取款机)的用例图、类图、顺序图、状态图、活动图及协作图 1 用例图 参与者"银行储户"和ATM机。简化后的ATM机仅有取款、存款及其余功能。其余功能不做详细说明。 银......

    银行ATM自动取款机需求分析报告

    “银行ATM机自动取款系统”需求分析报告 一、 引言 1.1 整体描述 本系统的名称为“银行ATM机自动取款系统”。系统的功能主要有:能够读取和存储客户的存款和取款信息,方便客......

    ATM自动取款机系统(界面需求分析报告)

    ATM自动取款机系统界面需求分析报告 1. 项目背景及基本描述 ATM自动取款机系统作为银行信息化管理的一部分,已经相当普及了。相比传统的手工操作,大大提高了银行的工作效率,同时......

    自动取款机 调查研究

    银行自动取款机调查研究银行:中国农业银行 取款机类别:触屏式自动存取款机(ATM是Automatic Teller Machine的缩写) 主要功能有:提取现金、实时存款、余额查询、更改密码、进行账......

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

    一、 ATM取款机常见故障及解决方法 ATM常见故障如能及时排除,可减少停机时间,因此遇到下列故障可按照相应步骤处理。(一) 用户打印机问题及处理方法1、用户凭条卡在面板内 (1)检......

    java实训 ATM取款机

    ATM取款机课程设计报告 姓名: 学号: 专业: 班级: ATM取款机 1 课程设计过程概述 2009年6月,JAVA游戏开发课程设计在实验楼三楼机房进行,持续时间为两周。这次课程设计的主要......

    自动取款机报修流程

    自动取款机报修流程 为了提高自助设备的运行效率和快速解决设备的故障,提高设备管理员的管理水平,监督维修公司的维修时效性,特制定本报修流程。 1、网点自助设备管理员发现自......

    ATM机C++代码

    #include #include #include class consumer; class ATM // ATM取款机 { public: friend class consumer; { } void welcome(); // 登陆界面 bool check_passwd(char......