每个人都曾试图在平淡的学习、工作和生活中写一篇文章。写作是培养人的观察、联想、想象、思维和记忆的重要手段。写范文的时候需要注意什么呢?有哪些格式需要注意呢?以下是小编为大家收集的优秀范文,欢迎大家分享阅读。
atm软件工程课程设计 atm机程序设计篇一
调查时间 4月1日
调查地点:通州西门附近银行网点
业务实践:使用银行网点的atm机进行查询存取款业务 去超市购物用pos机刷卡消费 观察多媒体自助终端 在自助银行用
电话银行查询银行卡余额
自动柜员机,即atm,是指银行在不同地点设置一种小型机器,利用一张信用卡大小的胶卡上的磁带记录客户的基本户口资料(通常就是银行卡),让客户可以透过机器进行提款、存款、转帐等银行柜台服务。操作 1 提款
按卡上箭头所示方向将卡插入插卡处。
在键盘上输入密码后,按“输入”键。依照屏幕上显示的栏目,按屏幕左侧“提款”键。
输入所需取款金额,核对后按“输入”键。
取回提款卡及“客户通知书”。
点收从提款机吐出的现钞。2 查询
插卡、输入密码后,按:“输入”键。
依照屏幕显示的栏目,按屏幕右侧的“查询”键。
屏幕上将显示您的帐面余额,可用余额以及当日自动提款机上可用余额。屏幕返回后,按屏幕右侧的“取卡”键,取回提款卡。3 更改密码
按卡上箭头所示方向将卡插入插卡处。
在键盘上输入密码后,按“输入”键。
依照屏幕显示的栏目,按屏幕左侧“更改密码”键。
在键盘上输入新密码(六位数字,屏幕显示六个“*”)后,按“输入”键。
再输入一次新密码,以确认新密码正确与否,若两次输入不一致,则密码不更新;若密码被更改,则屏幕上显示“新密码已被接纳”。
取回提款卡及“客户通知书”。
请您注意:
操作时,每一步骤请勿超过30秒钟。
当您的提款旧卡退出时,请即抽出,如退出一半的提款卡又被直接推入,或超过30秒钟不取卡,柜员机将吞没提款卡。
如密码输入错误,柜员机将要求您重新输入,连续三次输入错误,柜员机将自动将卡吞没。
如遇提款卡被柜员机吞进,请您凭身份证到发卡行领取。
如遇取款交易完成但钱款未从柜员机中吐出,请携带身份证及“客户通知书”速于信用卡部联系。
密码遗忘:请持身份证到市中行信用卡部办理。
提款卡应避免接触磁性物质。atm机的好处
1、服务延伸。自助设备有效的延伸了银行服务的时间,银行一般都是有固定的上班时间,在银行营业网点下班的时候,自助设备可以有效的延长营业时间,给客服提供有效的金融服务。
2、降低银行营运成本。大家都知道,银行业的薪水是非常高的,而据不完全统计,一台自助设备每年提供的金融服务量远超一名柜员一年提供的服务量,而成本却只是柜员的1/20。
3、提供增值服务。许多自助设备可以跟第三方系统连接,完成诸如交水电费、电信费等功能,极大方便了群众的需求
4、减少柜面营业压力。根据调查,在自助设备完成一次取款或者存款交易,所需的时间仅仅是在柜面人工操作的1/10(这还不计算等候排序的时间)我国自助设备应用现状和发展趋势
自20世纪80年代出现第一台atm以来,我国自助设备经过20多年的发展,全国保有量已接近30万台,成为了银行维护客户、延伸服务、打造品牌的重要渠道之一。本文对我国自助设备的运用现状和发展趋势进行了简要分析。
一、我国自助设备的使用现状
国内银行最早在1987年引入atm,其初衷并不是为了分流客户,而是为了树立银行高科技、现代化的崭新形象,加之当时银行卡发行很少,自助设备更像是银行宣传的一个“噱头”,使用效果很不理想。20世纪90年代中后期,各家银行开始将银行卡作为个人金融业务的发展重点,atm等自助设备也得以高速发展。此后,银联网络的诞生和windows系统在自助设备上的应用,扫除了不同品牌不同银行间业务办理的障碍,自助设备迎来了发展的黄金期。1.自助设备的类型
目前,国内自助设备主要分为自动取款机(atm)、存取款一体机、自助服务终端三大类,为客户提供7×24小时的取款、存款、转账、查询、代缴费等服务,个别银行还应用了自助发卡机、ic圈存机等自助设备,服务种类基本涵盖了银行网点所能提供的全部零售银行服务。
2.自助设备的布放
在我国,自助设备多布放于银行网点内部。随着商业银行的股改上市,在网点之外布放单台设备及建立离行式自助银行成为近年来自助设备发展的一个趋势,据不完全统计,离行式自助设备已超过全部设备总量的20%。
从全国范围来看,自助设备更多的集中在东部沿海地区,中西部地区的城市,尤其是非省会城市地区,分布较少,其发展仍有很大的空间。3.自助设备对银行的意义
①分流网点压力。在国外,自助设备基本替代了银行网点,大部分交易都在自助设备上完成,而我国的银行网点常常人满为患,客户分流仍有很长的路要走。
②拓展银行服务。离行式自助设备延伸了银行服务的范围,其资金投入较新设网点大大降低,而7×24小时的服务特点,更是满足了白天无时间办理业务的客户群体的需要。
③创新盈利模式。随着自助设备服务功能的不断拓展,异地交易、跨行交易、代缴费等业务给银行带来的手续费收入不断增加,自助设备已经可以实现盈利,而由其带来的人力成本节约、客户满意度提升等替代效益则更为可观。
④应对同业竞争和提升银行形象。自助银行的建立与发展,不仅为客户带来了便利的服务,更在一定程度上打造了银行新的形象。
二、我国自助设备推进使用中遇到的问题
自助设备经过20多年的发展,已成为客户办理银行业务的重要渠道之一。但在使用过程中,也暴露出了较多的问题。1.针对自助设备的刑事犯罪屡禁不止
⑴加装读卡器和摄像装置,盗取客户银行卡磁条信息和密码,通过克隆客户卡片的方式,盗取客户银行卡资金。⑵通过张贴虚假告示并伪造自助设备故障,待客户拨打告示上的电话时,以银行工作人员的身份要求客户告知卡号及密码,或以保证客户资金安全为由,让客户向指定账户转账,骗取客户资金。⑶封堵出钞口,造成自助设备无法出钞的假象,待客户误以为设备故障离开或寻找银行工作人员之际,取出卡在出钞口内的钞票。⑷趁客户办理业务时,偷窥客户密码,待客户业务办理完成尚未取卡之际,以地上掉钱为由,调包银行卡,而后盗取客户资金。⑸夜间在自助银行内部趁客户取钱之际,实施抢劫、伤害等恶性刑事犯罪。
⑹布放山寨atm,盗取客户银行卡信息及密码。
⑺对自助设备进行打、砸、切割等破坏,这种破坏手段主要存在于业务发展初期,目前很少发生。
2.日常管理已成为自助设备发展中的一大瓶颈
随着自助设备的快速布放,许多大城市单家银行布放的设备均超过100台,有些地方超过1000台。而在银行内部,自助设备的日常管理往往分散于零售、科技、营运等不同部门,这势必会对日常管理和维护工作带来一定困难。同时,这几年设备的爆发式增长,使得以往对自助设备的管理维护经验落伍过时,研究如何更有效的管理快速增长的自助设备已成为商业银行面临的一大课题,这在几大国有股份制银行中显得更为迫切。3.客户对自助设备的认识仍有偏差
银行卡业务的快速发展,客观上推进了持卡人对自助设备的使用,但大多数人对atm的认识仍停留在可以取款、查询的层面,存款、转账、代缴费、基金买卖等功能则知之甚少,这从绝大部分交易为取款交易的数据统计中就可见一斑。另外,客户在自助设备上办理交易的自我风险防范意识也亟待加强。
三、对进一步推进自助设备应用的一些建议 1.加强风险防范,为客户营造安全放心的业务环境
⑴强化针对持卡人的用卡安全防范宣传,如输入密码时用手遮挡、不可相信虚假告示、遇有情况不要马上离开而原地拨打银行客服电话等,从源头降低不法分子作案的机率。
⑵通过应用指纹(动脉)认证、钞票识别、抖动读卡、更新验钞模块等技术,开发设备防犯罪软件,用科技手段,促业务健康发展。⑶构建联网集中监控系统,并加大设备巡查,尤其是夜间的巡查力度,做到针对自助设备犯罪的早预防、早发现、早处理。2.优化自助设备的布放选址
较之国外离行式atm布放比例超过70%,我国离行式atm的发展还有很大的空间。利用gis系统,细分客户群体,增加繁华街道、商场、居民小区、车站等人流量大的区域的设备布放,在增加一个客户服务渠道的同时,也打造一个营销宣传的渠道。3.强化自助设备的日常管理
走专业化的管理道路,集中自助设备日常管理中的清点清分、清机加钞、账务处理、状态监控等主要环节,将故障维护交由专业的维保公司负责,用现代化的管理手段推进自助设备的规范使用。4.丰富自助设备的服务功能
不断拓展atm等自助设备的交易功能,在丰富金融服务功能的同时,研究非金融类服务在自助设备上的应用,切实满足客户全方位的服务需求。
5.加大客户宣传力度
通过flash短片、海报、网点大堂经理引导等多种方式,加大atm等自助设备的服务功能宣传,通过客户体验、交易抽奖、费率优惠等多种形式,积极引导客户对自助设备的主动使用。
四、自助设备未来应用的设想
纵观国外atm等自助设备的发展历程,可以预见,随着银行网络的持续优化、银行卡业务的快速发展、客户金融服务理念的不断提升,在不久的将来,国内自助设备将迎来其发展的井喷期。1.设备布局合理化 设备数量快速增长,每百万人拥有设备数量持续提高,除大城市外,中小城市及农村市场设备布放率和使用率不断提升,自助银行尤其是离行式自助银行成为银行服务的最重要渠道之一。随着设备布放主体的放开,非银行类机构加快自助设备的布放力度,自助设备网络建设日渐完善,业务交易量呈现爆发式增长。2.服务功能丰富化
无卡折存取款交易全面推出,公私转账全面开通,ic卡业务交易成为另一支柱,代购机/车票、订花、下载音乐等非金融类服务得以广泛应用,在自驾汽车上不下车办理业务成为常态,自助设备成为银行业务办理、营销宣传、拓展客户的重要渠道。3.安全防范科技化
静脉识别、钞票记忆、环境动态对比分析、防欺诈软件的全面应用以及动态密码锁、指纹开锁等科技手段的创新应用,从内外部两个方面持续提升自助设备安全使用规范,设备安全性得到有效保证。4.运营模式多样化
除银行负责本行atm等自助设备日常运营管理工作外,第三方运营商将成为银行自助设备运营管理的重要力量之一,同时承担多家银行现金清分、钞票押运、清机加钞、故障维护等运营管理工作。另外,银行与第三方机构合作,由第三方负责设备购买、安装、维护等工作,银行负责设备冠名的双方共赢的新模式将迎来发展良机。5.盈利能力显著化
atm等自助设备交易功能的不断丰富和收费机制的市场化进程加快,自助设备的直接创收能力将得以显著体现,自助设备在成为客户服务、营销宣传主渠道的同时,也必将成为银行盈利创收的重要渠道之一。
当前,不法分子针对银行自助设备的违法犯罪活动呈明显上升趋势。鉴于这种情况,强化自助设备管理,着力打造安全的用卡环境是非常重要的。
为了确保自助设备的安全运行,该行根据实际情况,出台自助设备安全管理工作指导意见,着力建立自助设备安全管理长效机制:一是为保障自助银行监控、报警等硬件设施时时处于良好状态,积极探索创新安全巡查方式和方法,研究不法分子的作案规律和特点,提高重点时段的巡查次数,有针对性地做好超前防范工作。二是营业机构坚持每日“一查二巡三到位”,即每天早上班前对自助设备前端有否异常情况进行检查,上班期间保安每隔20分钟一次巡查,确保夜间巡查时间、人员、责任三到位,有效保证自助设备的安全运营。三是积极研究自助设备作案规律,提前做好风险防范。对现有自助设备发案情况进行一次梳理分类,对多发地段自助设备落实专人,盯死看牢;对一般地段定时巡回检查;对夜间客流量较少的自助设备要采用图像自动检测巡查方法,通过远程对讲、巡逻、守候三为一体联动监控。主动分析和及时掌控不法分子新的作案规律和特点,针对新的作案形式和手段,研究制定防范措施,堵塞隐患和漏洞。四是完善自助设备管理考核机制,列入安全运营考核。
坚持客户利益无小事,为加强自助设备安全防范,积极开展全市的自助设备巡查活动。一是关注重点时段。营业网点的营业时间内由网点保安员每20分钟巡查一次;非营业时间由县(市)支行保卫部门根据当地的社会治安状况决定组织若干巡查小组;鹿城区范围内由市分行监察保卫部统一组织,对于附行式与离行式进行分时段监控,主要以远程监控中心为主,巡查队为辅的时实监控和巡查,晚上的两个重点时段由远程监控中心与巡逻队相结合的方式进行监控与巡查。二是关注重点区域。对附行式、离行式自助设备进行全面巡查和时实监控,特别是案件频发区域和治安情况比较复杂、客流量大的自助设备,采取特殊手段,如白天增派保安人员执勤、夜间蹲点守候以及保安公司巡逻等方式方法。三是关注重点机型。重点检查近期案件多发的老式迪堡型、未加装密码键盘防窥罩、读卡器异型口的自助设备。四是关注重点部位。重点检查自助银行门口是否加装了假的门禁读卡器,自助设备插卡口、出钞口、键盘和自助设备上方的灯箱是否有微型摄像机等;自助设备及自助银行区是否有非法张贴的宣传单、告示;自助设备上是否有曾粘贴作案机具的强力胶残留痕迹。
同时,通过灵活多样方式、方法开展检查,一是营业网点大堂经理或营业经理每天早、中、晚三次检查,特别是开门前自助设备检查和异常情况的监控回放;二是监控室值班和应急处置人员一定要落实到位;三是巡查人员同监控中心紧密配合,做到巡查与守候相结合,画面盯梢与动态分析相结合,责任分工与考核奖励相结合,提高巡查效率,增强巡查效果。此外,建行温州分行加大客户安全用卡的宣传力度,提高客户风险防范意识。通过案情分析与总结客户在用卡过程中容易出现的风险点,加强对营业网点人员、银行卡营销人员的安全防范教育工作,并通过他们对持卡人开展安全用卡宣传,提高客户的自我防范能力。同时在工作中帮助、提醒持卡人养成良好的自助设备用卡习惯,即先确认自助机具无异常后再使用,在使用过程中保护好自己的密码,操作密码时尽可能用手遮挡。并根据防控工作时事动态,在自助设备大门出入口明显处统一制作警方温馨提示,告知客户用卡的注意事项和掌握当前犯罪新动向,确保客户利益不受损失。
atm软件工程课程设计 atm机程序设计篇二
西安邮电学院
学院名称学生姓名专业名称班级软件工程报告
计算机学院
网络工程
: : : :
part a: • what is software engineering(se)软件工程是一门工程学科,涉及软件生产的各个方面,从最初的系统描述一直到使用后的维护,都属于其学科范畴。软件工程人员运用的是系统的、有组织的的工作方法,这种方法对于制作高质量的软件是最有效的。
• how many different parts in se development(1).问题的定义以及规划;(2).需求分析;(3).软件设计;(4).程序编码;(5).软件测试;(6).软件维护。
• what is software processes 软件过程是指制作软件产品的一组活动及其结果。所有的软件工程都包含:(1).软件描述;(2)软件开发;
(3)软件的有效性验证;(4)软件进化。
• software development(technology and method)软件工程方法是一种软件开发的结构化方法,其目的在于提高软件质量的同时,使其性价比较高。结构化分析方法(demarco,1978)和jsd方法(jackson,1983)在20世纪70年代首次开发出来,这些方法旨在识别系统中基本的功能模块,面向功能的方法现在仍被广泛应用。在20世纪80到90年代,booch(1994)和rumbaugh(1991)等人又提出了面向对象的方法。现在这些不同的方法已经被集成了一种方法——统一建模语言(uml)。
• project and project management
软件项目管理者和其他的工程项目管理者的工作性质是相同的,然而,软件工程管理与其他的工程管理相比,在很多方面是有显著的区别的。(1).软件产品是无形的;(2).没有标准的软件过程;
(3).大型软件项目常常是“一次性”项目。
一、需求分析
由于经济社会发展速度的大幅提高,几乎所有的银行都配备了不用繁琐的人工操作的atm自动取款机。人们可以随时随地进行交易,不再受银行的服务时间的约束,取款时也为人们节省了很多时间,方便快捷。
这个项目的开发是为银行提供一套高效稳定可靠的终端服务平台,为储户登录,存款,取款,查询,打印凭条等操作提供便利,尤其是在atm机出现故障的情况下,提供了故障恢复的功能。
二、软件设计
本系统相应的需求有以下方面:
(1)能够读取和存储客户账户中的存取款信息,并方便有效地进行客户选择的交易操作。这主要包括以下内容:
① 自动调用银行总系统中客户原有信息 ② 银行客户账户中的信息的查询、读取 ③ 客户操作的识别,及信息的录入、更新、存储
(2)能够将客户输入的信息及时上传到银行总系统中,并将客户原有信息进行自动更新。这其中主要包括以下内容:
① 汇总客户更新的信息,直接上传到银行总系统中 ② 抽调银行总系统中客户原有信息,并进行修改
③ 将银行总系统中客户原有信息更新为客户最新输入的信息,并存储(3)提供客户信息访问的权限和管理。其中包括: ① 客户访问普通信息的权限
② 银行系统管理员对客户信息的录入、更改和删除
需要补充说明的几点有:
(1)数据保存:需要长期保存的数据信息有
① 客户信息:客户开通银行账户的基本信息 ② 账户信息:客户在银行的存取款信息(2)系统用户:银行系统管理员和客户
① 银行系统管理员:对atm机中的信息可进行录入、更改和删除等操作 ② 客户:在atm机上可进行存取交易操作
系统的总体规划
登陆界面否验证是选择操作界面是查询存款取款是否出现故障否否是是否故障恢复成功打印是是否打印凭条否否是否交易结束是退卡
客户端流程
三、软件开发与运行维护
由于本人水平有限以及时间仓促,暂时用c语言来实现,后期的运行维护也尚未展开。
#include “stdio.h” /*读取文件 将内容存放到内存*/ #include “stdlib.h” #include “string.h” fscanf(fp,“#%s %s %fn”,atm[m].zhan#include “conio.h” ghao,atm[m].password,&atm[m].allmon ey);int no=0,m,n=0;fclose(fp);/*记录用户账号次序变量*/ file *fp,*fp1;struct atmsystem { char zhanghao[9];
/*账号*/ char password[11];
/*密码*/ float allmoney;
/*总金额*/ }atm[30],atmtemp;/*定义30个帐户与一个临时帐户*/
main()
/*主函数*/ { void kaihu();
/*声明开户函数*/ int check();
/*声明密码验证函数*/ void service();
/*声明服务菜单函数*/ void zhuanzhang();
/*声明转帐函数*/ void changepw();
/*声明更改密码函数*/ void quit();/*声明退出函数*/ char a;/*菜单选择用的变量*/ if((fp=fopen(“”,“r”))==null)/*打开文件*/ {
printf(“file cannot be openedn”);
system(“pause”);
return 0;} for(m=0;!feof(fp);m++)/*关闭文件*/ no=m+1;for(;;)
/*循环主菜单*/ { system(“cls”);
/*设置清屏*/ printf(“***********welcome to atm system*************nn”);
printf(“please select: a new er systemn”);/*输出主菜单*/
printf(“-------------n”);
scanf(“%c”,&a);
/*接收一个数字字符*/
if(a=='1')
/*判断是否是1*/
{
printf(“setting user informationn”);
kaihu();
/*调用新开户的函数*/
printf(“npress any key to continue”);
getch();
system(“cls”);
/*设置清屏*/
}
else if(a=='2')
/*判断是否是2*/
{
if(check()==1)/*调用检查账户函数*/
service();/*认证后 开始服务*/
else 已经存在,请重新输入*/
{
getch();
printf(“nsorry,you
break;have been wrong for 3 times.”);
}
else if(n==29)quit();/*输入的帐户不存在,开建新帐户*/ }
flag=1;
} }
else if(a=='3')
if(flag==1)break;
/*判断是否是3*/ quit();/*退出*/ }
system(“pause”);return 0;} void kaihu()
/*定义新开帐户函数*/ { int i,j,flag=0;char pw,ch1;float money;char ch[7];
if(no<=30)/*判断是否有空间创建帐户*/ { for(;;){ printf(“please enter your account id:(less than 8 characters)n”);
scanf(“%s”,&ao);
/*接收一个字符串*/ if(strcmp(ao,“exit”)==0)exit(1);for(n=0;n<30;n++)/*验证输入的帐户和密码*/ { if(strcmp(atm[n].zhanghao,ao)==0)/*如果输入的帐户已经存在*/
{
printf(“naccount already exists, please you want to exit,please enter 'exit' when you enter any key to ”);
/*帐户/*跳出检查*/ }
printf(“n”);
for(j=0;j<3;j++){ i=0;
printf(“please enter your password:(less than 10 characters)n”);
pw=getch();
while(pw!='r')/*接收密码*/ {
if(pw=='b')
{
printf(“b b”);
--i;
} else
{
putchar('*');
rd[i++]=pw;
} pw=getch();
} rd[i]='';printf(“n”);printf(“please re-enter password”);/*再次输入密码*/ printf(“n”);
i=0;ch1=getch();while(ch1!='r'){
if(ch1=='b')
{
printf(“b b”);
--i;} else
{
putchar('*');
ch[i++]=ch1;}
} else printf(“sorry, there can't ch1=getch();have more account.n”);} } ch[i]='';
printf(“n”);int check()
if(strcmp(rd,ch)==0)
/*定义检查函数*/ /*两次输入密码一样,继续*/
{
strcpy(atm[no-1].zhanghao,ao);
/*创建新账号*/
strcpy(atm[no-1].password,rd);
atm[no-1].allmoney=0;
/*金额的初始值为0*/
for(;;)
{
printf(“please enter the amount in the first time:n”);
scanf(“%f”,&money);
if(money>0)/*判断是否输入错误*/
{
atm[no-1].allmoney+=money;
/*总金额等于总金额加上初次存入金额*/
break;
}
else printf(“wrong !n”);
}
printf(“---------------------n”);
printf(“information:nid:%snamount:%.2fn”,atm[no-1].zhanghao,atm[no-1].allmoney);
printf(“---------------------n”);
no++;/*帐户自增*/
break;
}
else printf(“please re-enter have 3 times to try!n”);
} { int i,j,flag=0;
/*设变量*/ char pw;for(j=0;j<3;j++)
/*让密码输入循环*/ { i=0;printf(“please enter your account id:n”);
scanf(“%s”,&ao);
/*输入账号*/ printf(“please enter your password:n”);
pw=getch();while(pw!='r'){ if(pw=='b')
{
printf(“b b”);
--i;
} else
{
putchar('*');
rd[i++]=pw;
}
pw=getch();} rd[i]='';printf(“n”);for(n=0;n<30;n++)/*验证输入的帐户和密码*/ if(strcmp(atm[n].zhanghao,ao)==0&&strcmp(atm[n].password,rd)==0)/*如果输入的帐户和密码相同*/
{
printf(“n----------------authentication successful----------------nn”);
/*认证成功*/
flag=1;
/*而且标志为1*/ printf(“tyour choice:”);
break;scanf(“%d”,&a);
/*跳出内循环*/ /*输入选择*/
} if(a==1)
if(flag==1)break;
/*跳出外循环*/ if(flag==0)
/*如果验证密码不通过*/
printf(“authentication failed!please re-enter and can not be much of an error in three times!nn”);/*认证失败!请重新输入,不容许多于三次的错误!*/
} return flag;} void service()
/*声明服务菜单函数*/ { int a;
/*设定输入选择的变量*/ int flag=0;float cq,q;/*设cq存入金额的变量,q取款金额的变量*/ for(;;){ system(“cls”);
printf(“please select..............................id:%snn”,atm[n].zhanghao);
printf(“t------------------n”);
/*输出语句-子菜单*/ printf(“t services--------------------n”);printf(“ service----------------------n”);printf(“er----------------------------n”);printf(“ password---------------------n”);printf(“ the account information-------n”);printf(“ out-----------------------------n”);printf(“t------------------nn”);/*如果选择1*/
{
for(;;)
{
printf(“please enter the amount you want deposited:”);
/*请输入您要存入的金额*/
scanf(“%f”,&cq);
/*输入存款的金额*/
if(cq>0)
{
atm[n].allmoney+=cq;
/*余额等于余额加上存款*/
break;
}
else printf(“wrong !n”);
}
printf(“------------------n”);
printf(“nthe amount of your deposit:%.2fntotal amount of money are:%.2fn”,cq,atm[n].allmoney);/*输出存款和余额*/
printf(“------------------n”);
printf(“npress any key to continue”);
getch();
system(“cls”);
/*设置清屏*/
} else if(a==2)
/*如果选择2*/
{
for(flag=0;;)
/*加入循环*/
{
if(flag)
break;/*跳出循环*/
for(;;)
{
printf(“please enter the amount of money you want:”);
scanf(“%f”,&q);
/*输入您要取款的金额*/
if(q>0)
{
if(q>atm[n].allmoney)
/*如果取款金额大于余额*/
{
printf(“you have not enough balance!n”);
/*输出“余额不足”,继续循环*/
}
else
/*否则*/
{
atm[n].allmoney-=q;
/*余额等于原余额减去取款金额*/
printf(“-----------------------n”);
printf(“nthe amount of money you want are:%.2fnthe balance are:%.2fn”,q,atm[n].allmoney);/*输出取款金额和余额*/
printf(“-----------------------n”);
printf(“npress any key to continue”);
getch();
system(“cls”);
/*设置清屏*/
flag=1;
break;
/*并跳出循环*/
}
}
else printf(“wrong !n”);
}
} } else if(a==3)
/*如果选择3*/
{ zhuanzhang();
/*调用转账函数*/
printf(“npress any key to continue”);
getch();
system(“cls”);
/*设置清屏*/
}
else if(a==4)
/*如果选择4.修改密码*/ {
changepw();
/*调用修改密码的函数*/ printf(“npress any key to continue”);
getch();
system(“cls”);
/*设置清屏*/ }
else if(a==5)
/*如果选择5*/
{
printf(“---------------------n”);
printf(“id:%sn”,atm[n].zhanghao);
/*输出清单:账号*/
printf(“psaaword:******n”);
/*输出密码*/
printf(“balance: %.2fn”,atm[n].allmoney);
/*输出金额*/
printf(“---------------------n”);
printf(“press any key to continuen”);
getch();
system(“cls”);
/*设置清屏*/
}
else if(a==6)
/*如果选择是6*/
{
break;
}
} } void zhuanzhang()
/*定义转帐函数*/ { int i,flag=0,m;float s;
for(i=0;i<3;i++){
printf(“enter the account id to be transferred to:”);
/*输入您要转入帐号*/
scanf(“%s”,ao);for(m=0;m<30;m++)
if(strcmp(atm[m].zhanghao,ao)==0)/*如果输入的帐户存在*/
{
flag=1;
/*而且标志为1*/
break;
/*跳出内循环*/
} if(flag==1)break;/*跳出外循环*/ if(flag==0)printf(“nenter the account id is re-enter and can not be much of an error in three times!n”);} for(;;){
if(flag==1)printf(“nenter the amount you want transferred to:”);
/*输入您要转入的金额*/ else
break;scanf(“%f”,&s);
/*输入转入的金额*/ if(s>0){
if(atm[n].allmoney
/*如果转出的金额大于余额*/
printf(“you have not enough balance!n”);
/*输出“余额不足”,并继续循环*/
else
{
atm[n].allmoney-=s;
/*转出的账户金额等于余额减去转出的金额*/
atm[m].allmoney+=s;
/*转入的账户金额等于余额加上转入的金额*/
printf(“n------------------n”);
printf(“successful transfer!n”);
printf(“your account balance are:%.2fn”,atm[n].allmoney);/*输出余额*/
printf(“------------------n”);
break;
}
} else printf(“wrong !n”);
} } void changepw()
/*定义修改密码的函数*/ { int i,j,p;char ch,ch1,ch2;char aa[11],cc[11],dd[11];
/*设定变量aa为输入原密码cc密码*/ for(;;)
/*循环*/ { i=0;printf(“nplease enter the original password:”);
/*请输入原密码*/ ch=getch();while(ch!='r'){ if(ch=='b')
{
printf(“b b”);
--i;
} else
{
aa[i++]=ch;putchar('*');} ch=getch();} aa[i]='';
/*输入原密码*/ printf(“n”);if(strcmp(aa,atm[n].password)==0)
/*判断输入的密码是否与原密码相同*/
{
p=0;
j=0;
printf(“nplease enter your new password:”);
/*请输入您的新密码*/
ch1=getch();
/*输入设定新密码*/
while(ch1!='r')
{
if(ch1=='b')
{
printf(“b b”);
--j;
} else
{
cc[j++]=ch1;
putchar('*');}
ch1=getch();
}
cc[j]='';
printf(“n”);
printf(“please re-enter the password:”);
ch2=getch();
while(ch2!='r')
{
if(ch2=='b')
{
printf(“b b”);
--p;
} else
{
dd[p++]=ch2;
putchar('*');}
ch2=getch();
}
dd[p]='';
printf(“n”);
if(strcmp(cc,dd)==0)
{
strcpy(atm[n].password,cc);
/*将新密码复盖旧密码*/
printf(“------------------n”);
printf(“nyour password has been successfully modifiedn”);
/*您的密码已修改成功*/
printf(“------------------n”);
break;
/*跳出循环*/
}
} else
/*判断密码为不想同*/
{
printf(“nyou enter the password is not correctn”);
/*您输入的密码不正确,并且继续循环*/
printf(“*******please re-enter********n”);
printf(“npress any key to continue”);
getch();
system(“cls”);/*设置清屏*/
} } }
void quit(){
remove(“”);/*删除旧文件*/
fp1=fopen(“”,“w+”);/*重新写入文件*/
for(n=0;n
fprintf(fp1,“#%s %s %fn”,atm[n].zhanghao,atm[n].password,atm[n].allmoney);
fclose(fp1);
printf(“ngood bye!nthank you for using!n”);
getch();
exit(1);
/*跳出系统*/ }
atm软件工程课程设计 atm机程序设计篇三
《c/s项目实训》
课程设计报告
题 目: atm模拟银行
学生姓名(学号): 代小龙(20***1)安梓玮(20***7)侯硕(20***5)
专 业: 信息管理与信息系统
班 级: 18信管(一)班
指导教师: 申晨
信息管理与工程系
2019年01月02日
基于java的atm模拟银行开发与设计
摘要:
自动取款机又称atm,意思是自动柜员机,因大部分用于取款,又称自动取款机。它是一种利用磁性代码卡或智能卡实现金融交易的自助服务,代替银行柜面人员的工作。可提取现金、查询存款余额、进行账户之间资金转账、余额查询等工作;还可以进行现金存款(实时入账)、中间业务等工作。持卡人可以根据密码办理自动取款、查询余额、转账、现金存款,更改密码,缴纳手机话费等业务。我们在这次课程设计上运用了java以及 sql server 2012进行设计。.该系统是站在用户的角度来实现取款,存款,转账,修改密码,定期存款,查询余额多个页面的实现,页面的实现满足了银行基本的业务需求,使银行工作规范化,自动化,在系统页面设计方面,我们使得系统的功能操作简单,用户体验较好。
窗体底端
关键字:atm模拟机,用户,管理员,页面设计,java,sql server,eclipse集成开发环境下开发系统
目 录 项目简介与分工 1
1.1 项目简介 1
1.1.1 系统开发需求 1
1.1.2系统具体事务 1
1.1.3 系统开发环境要求 1
1.2 项目分工 2 项目设计方案 3 项目功能实现 4
3.1数据库的实现 4
3.2主要功能实现 5
3.2.1主界面 5
3.2.2普通用户存款界面 9
3.2.3用户转账 11
3.2.4手机缴费 16
3.2.5用户取款 19
3.2.6冻结 24
3.2.7开户 26
3.2.8销户 30项目总结及展望 33 心得体会 34
参 考 文 献 35 项目简介与分工
1.1 项目简介
本系统采用java语言编写测试完成,基本上在字符界面下模拟了atm系统的相关实现。主要模拟银行atm机系统功能,主要有查阅、转账、取款、存款、添加用户、删除用户、修改密码、冻结用户,管理员解冻、手动手机费缴费等功能
1.1.1 系统开发需求
随着市场经济的发展,经济信息化程度的不断深入,银行的传统业务己愈来
愈不能满足银行客户的需要。同时,随着国内银行机构的大量增加,我国的银行业面临更加激烈的同业竞争,如何提供更多的金融产品和更优质的服务,如何吸引更多的客户,如何利用计算机技术加强银行帐户信息管理,提高银行的工作效率和业务竟争能力是摆在各家银行面前的一个迫切需要解诀的问题。随着信息技术对银行业的渗透和促进,银行卡业务近年来得到“迅猛发展,银行卡发卡量、交易量大幅激增,atm设备数量也随之增加。
1.1.2系统具体事务
用户:用户存款、取款、转账、余额信息查询、修改密码、手机话费的缴费并与数据库实时同步。
管理员:对用户账号的冻结以及解冻并询问是否修改密码、开户与销户、与数据库实时同步。
1.1.3 系统开发环境要求.操作系统:windows系统
.开发语言:java、sql server
.数据库:sqlserver2012
.软件:eclipse
1.2 项目分工
代小龙:管理员的开户,销户,冻结,用户明细,jdbc的连接
安梓玮:存款,转账,查询余额,电话缴费,撰写报告
侯硕:取款,用户界面美化,撰写报告 项目设计方案
实现atm机的基本功能,包括:查询余额、存款、取款、转账、用户明细、手机缴费以及管理员开户、销户等操作,等基本功能;
查询余额:连接数据库,根据与数据库内数据相同的正确的用户名和密码登录查询对应的余额;转账,存取款的金额必须为100或者是100的整数倍,操作完成后会实时更新数据库内相应的内容。
修改密码:在旧密码相同的情况下,新密码和确认密码也相同的情况下,密码修改完成。
转账:可以转账任何金额,但是当转账金额小于余额时,转账失败。
手机缴费:需要缴费的手机号需时已经存在的,可以存任意金额。
管理员操作的基本功能包括对银行卡开户、销户、冻结、解冻、修改管理员密码等的操作,并在数据库内实时更新。项目功能实现
card表:主要是用户银行卡的信息,包括账号、密码、余额、是否被冻结、存款余额,其中account是varchar型的主键。
details表:主要是户主名account,日期和资金明细。
gly表:包含所有管理员的信息。并对管理员的account设为主键。
3.2.1登录界面package atm_client;
import ;
import yout;
import event;
import listener;
import edreader;
import ption;
import treamreader;
import riter;
import dress;
import ;
import nhostexception;
import n;
import ;
import ;
import npane;
import ;
import ordfield;
import ield;
import ;
import gly;
public class login extends jframe {
jtextfield tfaccount;
jpasswordfield tfpwd;
jbutton btok,btcancel,btgly;
card currcard;
cardgly currcardgly;
private int count=0;
public void init(){
//界面
jlabel iaccount,ipwd,itag;
iaccount= new jlabel(”账号:“);
ipwd= new jlabel(”密码:“);
itag=new jlabel(”欢迎登录atm系统“);
tfaccount = new jtextfield();
tfpwd =new jpasswordfield();
btok=new jbutton(”普通登录“);
btgly=new jbutton(”管理员登录“);
btcancel =new jbutton(”取消“);
t(new font(”“,_baseline, 20));
t(new font(”“,_baseline, 12));
t(new font(”“,_baseline, 12));
t(new font(”“,_baseline, 12));
it(new font(”“,_baseline, 18));
tft(new font(”“,_baseline, 18));
t(new font(”“,_baseline, 18));
t(new font(”“,_baseline, 18));
jpanel panelone = new jpanel(null);
que(false);
nds(120,15,350,30);
nds(40, 270, 100, 40);
nds(160,270,100,40);
nds(280,270,100,40);
nds(160,100,160,40);
nds(90,105,80,40);
nds(90, 165,80, 40);
nds(160,160,160,40);
(itag);
(ipwd);
(iaccount);
(btcancel);
(btgly);
(btok);
(tfaccount);
(tfpwd);
(panelone);
le(”精神小伙银行“);
nds(700, 250, 450, 400);
ible(true);
//监听
//普通用户登录
ionlistener(new actionlistener(){
@override
public void actionperformed(actionevent e){
// todo auto-generated method stub
string account=tft();
string pwd=new string(sword());
bufferedreader br=null;
printwriter pw=null;
string strecho=”“;
try {
socket s=new socket(ame(”127.0.0.1“), 8009);
br=new bufferedreader(new inputstreamreader(utstream()));
pw=new printwriter(putstream());
(”loginrn“);
(account+”rn“);
(pwd+”rn“);
();
strecho=ne();
if((”1“)){
ssagedialog(, ”对不起,您的账号有误!“);
tft(”“);
t(”“);
}else if((”2“)){
float money =loat(ne());
string dongjie=ne();
string name=ne();
currcard=new card(account,pwd,money,dongjie,name);
ssagedialog(, ”欢迎登录河北金苑银行!“);
.dispose();
new mainframe(br,pw,currcard).init();
}else if((”3“)){
count++;
if(count==3){
ssagedialog(, ”对不起,密码错误3次,您的卡已被冻结!请联系管理员“);
(”dongjiern“);
();
.dispose();
}else {
ssagedialog(,”密码错误,请重新输入“);
string c=f(count);
(c+”rn“);
();
}
}else if((”4“)){
ssagedialog(,”对不起,您的卡已被冻结,请联系管理员“);
.dispose();
}
} catch(unknownhostexception e1){
// todo auto-generated catch block
tacktrace();
} catch(ioexception e1){
// todo auto-generated catch block
tacktrace();
}
}
});
//管理员登录
ionlistener(new actionlistener(){
@override
public void actionperformed(actionevent e){
// todo auto-generated method stub
string account=tft();
string pwd=new string(sword());
bufferedreader br=null;
printwriter pw=null;
string strecho=”“;
try {
socket s=new socket(ame(”127.0.0.1“), 8009);
br=new bufferedreader(new inputstreamreader(utstream()));
pw=new printwriter(putstream());
(”glyrn“);
(account+”rn“);
(pwd+”rn“);
();
strecho=ne();
if((”9“)){
ssagedialog(, ”对不起,您的账号有误!“);
tft(”“);
t(”“);
}else if((”8“)){
ssagedialog(,”您已经以管理员身份登录!“);
.dispose();
new mainframegly(br,pw,currcardgly).init();
}else if((”7“)){
ssagedialog(,”您的密码错误“);
}
} catch(unknownhostexception e1){
// todo auto-generated catch block
tacktrace();
} catch(ioexception e1){
// todo auto-generated catch block
tacktrace();
}
}
});
ionlistener(new actionlistener(){
@override
public void actionperformed(actionevent e){
// todo auto-generated method stub
.dispose();
}
});
}
public static void main(string[] args){
new login().init();
}
}
3.2.2普通存款界面package atm_client;
import ;
import event;
import listener;
import edreader;
import ption;
import riter;
import n;
import ;
import ;
import npane;
import ;
import ield;
import ;
import ;
public class save extends jframe implements actionlistener{
// 存款界面按钮
jtextfield tfmoney;
private jbutton bt000,bt001,bt002,bt003,bt004,bt005,bt006,bt007,bt008,bt009;
private jbutton bt100,bt200,bt300,bt500,bt1000;
private jbutton btok,btcancel,btretry;
bufferedreader br;
printwriter pw;
card currcard;
public save(bufferedreader br,printwriter pw,card currcard){
=br;
=pw;
rd=currcard;
}
public void init(){
jpanel paneltake = new jpanel(null);
kground(new color(119,119,253));
jlabel lblqukuan = new jlabel(”请输入您的存款数:“);
(lblqukuan);
nds(115, 20, 150, 30);
lblqukuan=new jlabel(”提示:只能是100元或100元的整数倍。“);
(lblqukuan);
nds(115, 50, 300, 30);
tfmoney=new jtextfield(12);
bled(false);
(tfmoney);
nds(115,90,200,30);
bt100=new jbutton(”100“);
(bt100);
ionlistener(this);
nds(45,190,60,30);
bt200=new jbutton(”200“);
(bt200);
ionlistener(this);
nds(115,190,60,30);
bt300=new jbutton(”300“);
(bt300);
ionlistener(this);
nds(185,190,60,30);
bt500=new jbutton(”500“);
(bt500);
ionlistener(this);
nds(255,190,60,30);
bt1000=new jbutton(”1000“);
(bt1000);
ionlistener(this);
nds(325,190,65,30);
bt001=new jbutton(”1“);
(bt001);
ionlistener(this);
nds(45,230,60,30);
bt002=new jbutton(”2“);
(bt002);
ionlistener(this);
nds(115,230,60,30);
bt003=new jbutton(”3“);
(bt003);
ionlistener(this);
nds(185,230,60,30);
bt004=new jbutton(”4“);
(bt004);
ionlistener(this);
nds(255,230,60,30);
bt005=new jbutton(”5“);
(bt005);
ionlistener(this);
nds(325,230,65,30);
bt006=new jbutton(”6“);
(bt006);
ionlistener(this);
nds(45,270,60,30);
bt007=new jbutton(”7“);
(bt007);
ionlistener(this);
nds(115,270,60,30);
bt008=new jbutton(”8“);
(bt008);
ionlistener(this);
nds(185,270,60,30);
bt009=new jbutton(”9“);
(bt009);
ionlistener(this);
nds(255,270,60,30);
bt000=new jbutton(”0“);
(bt000);
ionlistener(this);
nds(325,270,65,30);
btok=new jbutton(”确定“);
(btok);
ionlistener(this);
nds(70,140,80,30);
btretry=new jbutton(”重输“);
(btretry);
ionlistener(this);
nds(175,140,80,30);
btcancel=new jbutton(”返回“);
(btcancel);
ionlistener(this);
nds(280,140,80,30);
le(”存款!“);
(paneltake);
e(435,350);
ible(true);
ation(500, 250);
}
@override
public void actionperformed(actionevent arg0){
// todo auto-generated method stub
if(rce()==bt100||rce()==bt200||rce()==bt300||rce()==bt500||rce()==bt1000)
t(ioncommand());
else if(rce()==bt000||rce()==bt001||rce()==bt002||rce()==bt003||rce()==bt004||rce()==bt005||rce()==bt006||rce()==bt007||rce()==bt008||rce()==bt009){
t(t()+ioncommand());
}else if(rce()==btok){
int savemoney=nt(t());
if(savemoney%100!=0){
ssagedialog(, ”对不起,您输入的金额不符合规定!“);
t(”“);
}
else{
//发送新的账户信息给服务器
(”savern“);
(savemoney+”rn“);
();
//等待响应,更新当前登录账号
string strecho=”“;
try {
strecho = ne();
if((”success“)){
ey(ey()+savemoney);
ssagedialog(null, ”恭喜你成功存款“+savemoney+”元n当前账户余额为:“+ey());
t(”“);
} else if((”failure“)){
ssagedialog(,”存款失败“);
}
} catch(ioexception e){
// todo auto-generated catch block
tacktrace();
}
}
}else if(rce()==btcancel){
.dispose();
new mainframe(br,pw,currcard).init();
}else if(rce()==btretry){
t(”“);
}
}
}
3.2.3用户转账界面package atm_client;
import yout;
import event;
import listener;
import edreader;
import ption;
import riter;
import n;
import ;
import ;
import npane;
import ;
import ield;
import ;
public class trans extends jframe {
jtextfield taccount,tmoney;
jbutton btok,btcancel;
jlabel laccount,lmoney;
bufferedreader br;
printwriter pw;
card currcard;
public trans(bufferedreader br,printwriter pw,card currcard){
=br;
=pw;
rd=currcard;
}
public void init(){
jpanel paneltrans=new jpanel(null);
out(new gridlayout(3,2));
laccount =new jlabel(”账户:“);
lmoney =new jlabel(”金额:“);
btok = new jbutton(”确定“);
btcancel = new jbutton(”取消“);
taccount=new jtextfield();
tmoney = new jtextfield();
(laccount);
(taccount);
(lmoney);
(tmoney);
(btok);
(btcancel);
(paneltrans);
le(”转账!“);
e(300,160);
ation(500, 250);
ible(true);
//aultcloseoperation(_on_close);
ionlistener(new actionlistener(){
@override
public void actionperformed(actionevent e){
// todo auto-generated method stub
if(tt().equals(”“)){
ssagedialog(, ”请输入账号“);
}else if(t().equals(”“)){
ssagedialog(, ”请输入金额“);
}else {
(”transrn“);
(tt()+”rn“);
(t()+”rn“);
();
string strecho=”“;
try {
strecho=ne();
if((”success“)){
ey(ey()-loat(t()));
ssagedialog(, ”转账成功“);
}else if((”1“)){
ssagedialog(, ”账号不存在“);
}else if((”2“)){
ssagedialog(,”不能向自己转账“);
}else if((”3“)){
ssagedialog(,”余额不足“);
}else if((”fuilure“)){
ssagedialog(,”转账失败“);
}
} catch(ioexception e1){
// todo auto-generated catch block
tacktrace();
}
}
}
});
ionlistener(new actionlistener(){
@override
public void actionperformed(actionevent e){
// todo auto-generated method stub
.dispose();
}
});
}
}
3.2.4手机缴费package atm_client;
import yout;
import event;
import listener;
import edreader;
import ption;
import riter;
import n;
import ;
import ;
import npane;
import ;
import ield;
import ;
public class communi extends jframe{
jtextfield tnumber,tmoney;
jbutton btok,btcancel;
jlabel inumber,lmoney;
bufferedreader br;
printwriter pw;
card currcard;
public communi(bufferedreader br,printwriter pw,card currcard){
=br;
=pw;
rd=currcard;
}
public void init(){
jpanel paneltrans=new jpanel(null);
out(new gridlayout(3,2));
inumber =new jlabel(”账户:“);
lmoney =new jlabel(”金额:“);
btok = new jbutton(”确定“);
btcancel = new jbutton(”取消“);
tnumber=new jtextfield();
tmoney = new jtextfield();
(inumber);
(tnumber);
(lmoney);
(tmoney);
(btok);
(btcancel);
(paneltrans);
le(”手机缴费!“);
e(300,160);
ation(500, 250);
ible(true);
//aultcloseoperation(_on_close);
ionlistener(new actionlistener(){
@override
public void actionperformed(actionevent e){
// todo auto-generated method stub
if(t().equals(”“)){
ssagedialog(, ”请输入手机号“);//导入类——消息对话框
}else if(t().equals(”“)){
ssagedialog(, ”请输入金额“);
}else {
(”communirn“);
(t()+”rn“);
(t()+”rn“);
();
string strecho=”“;
try {
strecho=ne();
if((”success“)){
ey(ey()-loat(t()));
ssagedialog(, ”充值成功“);
e();
}else if((”1“)){
ssagedialog(, ”手机号不存在“);
}else if((”2“)){
ssagedialog(,”余额不足“);
}else if((”fuilure“)){
ssagedialog(,”充值失败“);
}
} catch(ioexception e1){
// todo auto-generated catch block
tacktrace();
}
}
}
});
ionlistener(new actionlistener(){
@override
public void actionperformed(actionevent e){
// todo auto-generated method stub
e();
}
});
}
}
3.2.5用户取款package atm_client;
import ;
import event;
import listener;
import edreader;
import ption;
import riter;
import n;
import ;
import ;
import npane;
import ;
import ield;
import ;
import ;
public class take extends jframe implements actionlistener{
// 取款界面按钮
jtextfield tfmoney;
private jbutton bt000,bt001,bt002,bt003,bt004,bt005,bt006,bt007,bt008,bt009;
private jbutton bt100,bt200,bt300,bt500,bt1000;
private jbutton btok,btcancel,btretry;
bufferedreader br;
printwriter pw;
card currcard;
public take(bufferedreader br,printwriter pw,card currcard){
=br;
=pw;
rd=currcard;
}
public void init(){
jpanel paneltake = new jpanel(null);
kground(new color(119,119,253));
jlabel lblqukuan = new jlabel(”请输入您要取的钱数:“);
(lblqukuan);
nds(115, 20, 150, 30);
lblqukuan=new jlabel(”提示:只能是100元或100元的整数倍。“);
(lblqukuan);
nds(115, 50, 300, 30);
tfmoney=new jtextfield(12);
bled(false);
(tfmoney);
nds(115,90,200,30);
bt100=new jbutton(”100“);
(bt100);
ionlistener(this);
nds(45,190,60,30);
bt200=new jbutton(”200“);
(bt200);
ionlistener(this);
nds(115,190,60,30);
bt300=new jbutton(”300“);
(bt300);
ionlistener(this);
nds(185,190,60,30);
bt500=new jbutton(”500“);
(bt500);
ionlistener(this);
nds(255,190,60,30);
bt1000=new jbutton(”1000“);
(bt1000);
ionlistener(this);
nds(325,190,65,30);
bt001=new jbutton(”1“);
(bt001);
ionlistener(this);
nds(45,230,60,30);
bt002=new jbutton(”2“);
(bt002);
ionlistener(this);
nds(115,230,60,30);
bt003=new jbutton(”3“);
(bt003);
ionlistener(this);
nds(185,230,60,30);
bt004=new jbutton(”4“);
(bt004);
ionlistener(this);
nds(255,230,60,30);
bt005=new jbutton(”5“);
(bt005);
ionlistener(this);
nds(325,230,65,30);
bt006=new jbutton(”6“);
(bt006);
ionlistener(this);
nds(45,270,60,30);
bt007=new jbutton(”7“);
(bt007);
ionlistener(this);
nds(115,270,60,30);
bt008=new jbutton(”8“);
(bt008);
ionlistener(this);
nds(185,270,60,30);
bt009=new jbutton(”9“);
(bt009);
ionlistener(this);
nds(255,270,60,30);
bt000=new jbutton(”0“);
(bt000);
ionlistener(this);
nds(325,270,65,30);
btok=new jbutton(”确定“);
(btok);
ionlistener(this);
nds(70,140,80,30);
btretry=new jbutton(”重输“);
(btretry);
ionlistener(this);
nds(175,140,80,30);
btcancel=new jbutton(”返回“);
(btcancel);
ionlistener(this);
nds(280,140,80,30);
le(”取款!“);
(paneltake);
e(435,350);
ible(true);
ation(500, 250);
}
@override
public void actionperformed(actionevent arg0){
// todo auto-generated method stub
if(rce()==bt100||rce()==bt200||rce()==bt300||rce()==bt500||rce()==bt1000)
t(ioncommand());
else if(rce()==bt000||rce()==bt001||rce()==bt002||rce()==bt003||rce()==bt004||rce()==bt005||rce()==bt006||rce()==bt007||rce()==bt008||rce()==bt009){
t(t()+ioncommand());
}else if(rce()==btok){
int takemoney=nt(t());
if(ey()
ssagedialog(, ”对不起,您的余额不足!“);
t(”“);
}else if(takemoney%100!=0){
ssagedialog(, ”对不起,您输入的金额不符合规定!“);
t(”“);
}
else{
//发送新的账户信息给服务器
(”takern“);
(takemoney+”rn“);
();
//等待响应,更新当前登录账号
string strecho=”“;
try {
strecho = ne();
if((”success“)){
ey(ey()-takemoney);
ssagedialog(null, ”恭喜你成功取款“+takemoney+”元n当前账户余额为:“+ey());
t(”“);
} else if((”failure“)){
ssagedialog(,”取款失败“);
}
} catch(ioexception e){
// todo auto-generated catch block
tacktrace();
}
}
}else if(rce()==btcancel){
e();
}else if(rce()==btretry){
t(”“);
}
}
}
}
3.2.6冻结
package atm_client;
import ;
import event;
import listener;
import edreader;
import ption;
import riter;
import n;
import ;
import ;
import npane;
import ;
import ield;
import gly;
public class dongjie extends jframe implements actionlistener{
jbutton btok,btcancel;
jtextfield account,name;
bufferedreader br;
printwriter pw;
cardgly currcardgly;
public dongjie(bufferedreader br,printwriter pw,cardgly currcardgly){
=br;
=pw;
rdgly=currcardgly;
}
public void init(){
jlabel iaccount,iname,itag;
iaccount =new jlabel(”账号“);
iname=new jlabel(”用户名“);
itag=new jlabel(”请输入要冻结的账号及用户名“);
account =new jtextfield();
name =new jtextfield();
btok=new jbutton(”确定“);
btcancel=new jbutton(”取消“);
t(new font(”“,_baseline, 20));
t(new font(”“,_baseline, 12));
t(new font(”“,_baseline, 12));
it(new font(”“,_baseline, 18));
t(new font(”“,_baseline, 18));
t(new font(”“,_baseline, 18));
it(new font(”“,_baseline, 18));
jpanel panelone = new jpanel(null);
que(false);
nds(80,15,350,30);
nds(80, 270, 100, 40);
nds(240,270,100,40);
nds(160,100,160,40);
nds(90,105,80,40);
nds(90, 165,80, 40);
nds(160,160,160,40);
ionlistener(this);
ionlistener(this);
(itag);
(iname);
(iaccount);
(btcancel);
(btok);
(account);
(name);
(panelone);
le(”代小龙+安梓玮+侯硕“);
nds(700, 250, 450, 400);
ible(true);
}
@override
public void actionperformed(actionevent arg0){
// todo auto-generated method stub
if(rce()==btok){
if(t().equals(”“)||t().equals(”“)){
ssagedialog(,”用户名和账号不能为空“);
}else {
(”dongjiern“);
(t()+”rn“);
(t()+”rn“);
();
n(t()+t());
try {
string strecho=ne();
if((”9“)){
ssagedialog(, ”账号不存在,请重新输入“);
t(”“);
t(”“);
}else if((”7“)){
ssagedialog(, ”冻结成功“);
e();
new ask(br, pw, currcardgly).init();
}else if((”5“)){
ssagedialog(, ”用户名错误“);
t(”“);
}else if((”6“)){
ssagedialog(, ”您的账号已被冻结“);
e();
}else if((”8“)){
ssagedialog(, ”冻结失败“);
}
} catch(ioexception e){
// todo auto-generated catch block
tacktrace();
}
}
}else if(rce()==btcancel){
e();
}
}
}
3.2.7开户package atm_client;
import ;
import event;
import listener;
import edreader;
import ption;
import riter;
import n;
import ;
import ;
import npane;
import ;
import ordfield;
import ield;
import gly;
public class open extends jframe implements actionlistener{
jtextfield tfname;//文本框
jtextfield tfmoney;
jpasswordfield tfpwd;//密码框
jpasswordfield tfpwd1;
jbutton btok,btcancel;
cardgly currcardgly;
bufferedreader br;
printwriter pw;
public open(bufferedreader br,printwriter pw,cardgly currcardgly){
=br;
=pw;//文本字节流写入
rdgly=currcardgly;
}
//初始化
public void init(){
jlabel iname;//标签组件
jlabel imoney;
jlabel ipwd,ipwd1;
jlabel itag=new jlabel(”请输入要开户用户的基本信息“);
ipwd=new jlabel(”密码:“);
ipwd1=new jlabel(”确认密码“);
iname=new jlabel(”姓名:“);
imoney=new jlabel(”预存金额“);
tfname=new jtextfield();
tfmoney=new jtextfield();
btok=new jbutton(”确定“);
btcancel=new jbutton(”取消“);
tfpwd=new jpasswordfield();
tfpwd1=new jpasswordfield();
t(new font(”“,_baseline, 20));
it(new font(”“,_baseline, 18));
t(new font(”“,_baseline, 18));
tft(new font(”“,_baseline, 18));
t(new font(”“,_baseline, 18));
t(new font(”“,_baseline, 18));
t(new font(”“,_baseline, 18));
t(new font(”“,_baseline, 18));
t(new font(”“,_baseline, 18));
t(new font(”“,_baseline, 12));
t(new font(”“,_baseline, 12));
jpanel panelone = new jpanel(null);
que(false);//设置控件透明
nds(80,15,350,30);
nds(70,85,80,40);
nds(200,80,160,40);
nds(70, 135, 80, 40);
nds(200, 130, 160, 40);
nds(70, 185,80, 40);
nds(200, 180, 160, 40);
nds(70, 235, 80, 40);
nds(200, 230, 160, 40);
nds(80, 280, 100, 40);
nds(240,280,100,40);
ionlistener(this);
ionlistener(this);
(itag);
(iname);
(ipwd);
(ipwd1);
(imoney);
(tfname);
(tfpwd);
(tfpwd1);
(tfmoney);
(btcancel);
(btok);
(panelone);
le(”代小龙+安梓玮+侯硕“);
nds(700, 250, 450, 400);
ible(true);
}
//监听button.@override //socket编程,client发出消息,在server中接收,并且在接收时采用readline()方法时需要注意,//readline()方法要读到分隔符才会完成读取操作,,n
public void actionperformed(actionevent arg0){
// todo auto-generated method stub
if(rce()==btok){//如果事件源始按钮ok,则进行下面操作
if(tft().equals(”“)||t().equals(”“)||t().equals(”“)){
ssagedialog(,”账号密码不能为空“);//导入类——消息对话框
}else if(!t().equals(t())){
ssagedialog(,”两次输入的密码不相同“);
t(”“);
t(”“);
}else if(t().equals(”“)){
ssagedialog(,”若不需要存钱,请输入0“);
}else if(t().equals(t())&&!tft().equals(”“)&&!t().equals(”“)){
(”openrn“);//在服务器获取输入流写入一段字符
(tft()+”rn“);
(t()+”rn“);
(t()+”rn“);
();
try {
string strecho=ne();
if((”1“)){
ssagedialog(,”开户失败!有用户名重复的可能!“);
}else if((”2“)){
string account=ne();
ssagedialog(,”开户成功!您的账号为“+account+”,请牢记您的账号“);
.dispose();
}
} catch(ioexception e){
// todo auto-generated catch block
tacktrace();
}
}
}else if(rce()==btcancel){
.dispose();
}
}
}
3.2.8销户package atm_client;
import ;
import event;
import listener;
import edreader;
import ption;
import riter;
import n;
import ;
import ;
import npane;
import ;
import ordfield;
import ield;
import gly;
public class close extends jframe implements actionlistener {
bufferedreader br;
printwriter pw;
cardgly currcardgly;
private jbutton btok,btcancel;
private jtextfield tfaccount;
private jpasswordfield tfpwd;
public close(bufferedreader br,printwriter pw,cardgly currcardgly){
=br;
=pw;
rdgly=currcardgly;
}
public void init(){
jlabel iaccount,ipwd,itag;
iaccount= new jlabel(”账号:“);
ipwd= new jlabel(”密码:“);
itag=new jlabel(”请输入要销户的账号及密码“);
tfaccount=new jtextfield();
tfpwd=new jpasswordfield();
btok=new jbutton(”确定“);
btcancel=new jbutton(”取消“);
t(new font(”“,_baseline, 20));
t(new font(”“,_baseline, 12));
t(new font(”“,_baseline, 12));
it(new font(”“,_baseline, 18));
tft(new font(”“,_baseline, 18));
t(new font(”“,_baseline, 18));
t(new font(”“,_baseline, 18));
jpanel panelone = new jpanel(null);
que(false);
nds(120,15,350,30);
nds(80, 270, 100, 40);
nds(240,270,100,40);
nds(160,100,160,40);
nds(90,105,80,40);
nds(90, 165,80, 40);
nds(160,160,160,40);
ionlistener(this);
ionlistener(this);
(itag);
(ipwd);
(iaccount);
(btcancel);
(btok);
(tfaccount);
(tfpwd);
(panelone);
le(”代小龙+安梓玮+侯硕“);
nds(700, 250, 450, 400);
ible(true);
}
@override
public void actionperformed(actionevent arg0){
// todo auto-generated method stub
if(rce()==btok){
string account=tft();
string pwd=new string(sword());
(”closern“);
(account+”rn“);
(pwd+”rn“);
();
string strecho;
try {
strecho=ne();
if((”7“)){
ssagedialog(, ”销户成功“);
}else if((”9“)){
ssagedialog(, ”您输入的账号不存在“);
tft(”“);
t(”“);
}else if((”8“)){
ssagedialog(, ”销户失败“);
}else if((”6“)){
ssagedialog(, ”您的密码错误“);
t(”");
}
} catch(ioexception e){
// todo auto-generated catch block
tacktrace();
}
}else if(rce()==btcancel){
e();
}
}
}项目总结及展望
本次课程设计主要做的是模拟atm机,在实现传统的atm机基础功能的情况下,我们还增添新的内容,用户明细以及话费缴费。实现了普通用户与管理员登录。管理员对用户账号的冻结,解冻。连接数据库并实时更新。将普通用户和管理员的信息分别放在两个表中。
在实现过程中,由于考虑和实现不充分,表的结构过于简单。在实现话费充值上号码预存实现的不人性化,我们后续会加以完善。在接下来的学习中,我们想更加完善atm功能,并增加新的特色,完善界面。心得体会
通过这次的c/s程序设计,从了解用户需求,到设计数据库,编写代码,连接数据库,调试程序,实现功能我们都得到了很大的进步,我们遇到过很多bug,我们请教别人,上网查询,最终可以说是得到解决,把老师在课上所授的知识应用到实践中去。c/s程序设计中,是java与连接数据库的统一。为了防止开户生成的账号重复,我们在数据库中对相应的表设置主键,以免重复,在明细中,我们修复了很多问题,克服了很多困难,最终得以实现,感谢申晨老师的帮助,让我们更加深入了解java语言设计并应用到实践中去。感受到了java语言编程的魅力,在接下来的时间中,我们不会停止对java网络项目编程的探索和学习。
参 考 文 献
[1] 编程思想[m].第4版.机械工业出版社, 机械工业出版社
[2] java从入门到精通[m].北京:清华大学出版社, 2005.4
[3]萨师煊,王珊.《数据库系统概论》.高等教育出版社,2002.2
[4] 编程指南(第二版)[m].电子工业出版社,2003.3
[5] 编程技巧[m].机械工业出版社,2004.5
[6] 耿祥义,实用教程[m].清华大学出版社,2003.5.1
atm软件工程课程设计 atm机程序设计篇四
银行网点工作总结
银行网点>工作总结
(一)一、加大组织存款力度,增强资金实力,巩固存款开门红成果。
第一,我部对存款工作早部署、早安排,强化竞争意识和拼抢意识,敢于和善于竞争,确保存款工作顺利展开。
第二,行党委的正确领导,机关的密切配合和营业部全体员工的共同努力是存款稳定增长的基矗通过开展对公通存系统、储蓄代收学费系统和储蓄对公联网系统等大量工作,我部一方面保证了原有存款户的稳定性,另一方面也通过网络优势吸引了一些系统性行业存款。在行长带领下,在客户部、信贷科等部门配合下,我部加大系统的公关力度,抓系统、抓大户,巩固老户、拓展新户,使存款呈现稳步增长态势。财政、医改、烟草、建筑、能源、交通和学校、医院等单位、系统是我部公关的重中之重。截止20**年末,这些系统客户占我部存款总量三分之二强。
第三,提高服务档次,以优取胜,树立我部良好社会形象。全部要树立文优服务出效益、出精品的思想,文优服务常抓不懈。结合市分行、支行的文明优质服务规范化要求,我部狠抓柜面服务,文优水平显著提高。针对不同客户群体的要求,我部还采取个性化服务措施,配备专门的送单人员(即客户经理)上门服务,既延伸了柜台,拉近了与客户的距离,又捕捉了客户信息,为领导决策提供重要依据。
第四,完善激励机制,加大考核力度,实行工效挂钩,对揽储揽存能手给予一定的物质和精神奖励,充分调动员工组织存款积极性。
二、加强信贷结构调整,全面落实双优战略。
信贷资产是银行生存与发展的生命线。我部要结合上级行的要求,进一步加强信贷结构调整,有进有退,有所为,有所不为。
第一,加大市场开发力度,拓展双优客户,加强对优势产业和优良客户的竞争,积极推行对双优客户的承诺授信。今年贷款投向为烟草、学校、交通、煤炭、农业养殖等优势产业领域及国家基础设施项目等。今年投放贷款**亿元,主要有龙岩卷烟厂投放**亿元,**公司**万元**学院**万元,**实业**万元,***万元。
第二,建立淘汰机制,坚决淘汰劣质客户。坚决退出国家政策限制和禁止的产业、行业和产品领域,特别是国家明令禁止的五小产业等。结合清非工作要求,我部及时召开外勤会议,明确清非重点。对赖债户,经综合排队,依法起诉,力争诉一笔、胜一笔、收一笔。
三、坚持从严治行,经营与管理并重,确保各项业务健康发展。我部狠抓基本制度落实,落实基层主任十亲自和坐>班主任八个一。柜面工作人员和坐班主任,严格按>规章制度,确实按《>会计法》和会计出纳达标规范要求处理每一笔业务。我部顺利通过 会计规范化检查和会计电脑系统的升级工作。信贷管理上,我部坚持按章办事,规范信贷决策行为,防范化解信贷风险,顺利完成信贷系统升级及五级分类认定前期工作。我部切实加强三防一保工作,牢固树立安全 就是效益的思想,确保了业务稳健发展和安全 无事故目标的实现。
四、大力推进党建工作和精神文明建设。
第一,加强和完善系统党建工作,围绕业务抓党建,抓好党建促经营。我部在提高素质、完善结构、强化管理、健全制度、增强团结等方面下工夫,使营业部增添内在活力,进一步发挥好整体功能。营业部党支部成立后,认真履行好一岗双责,抓好党员教育管理、三会一课、民主评议党员和>党风廉政建设责任制量化考核等各项规章制度的落实,力争以红坊党支部为学习榜样,争创先进党支部。第二,把创建文明单位、创文明行业,建满意窗口和争创全国级青年文明号等活动引向深入,加强>行风建设,提高我部文明优质服务水平和知名度,赢得客户和信誉,拓展新业务经营。第三,切实加强和改进思想政治工作,继续深入开展向**、**、**学习活动,争取物质明、精神文明双丰收。我部在保持农总行级青年文明号荣誉的同时,积极争创全国级青年文明号荣誉称号,通过内强素质、外树形象,文明优质服务水平进一步得到提高。12月底市分行组织的微服私访中,我部被评为满分,但文明优质服务水平离我们自己的要求尚有差距,如员工素质离综合柜员制要求有差距,信贷员达不到客户经理要求等。我部将更加努力工作,力争素质进一步提高,促进文优服务水平更上新台阶。
五、存在问题及不足。外勤管理上,目前面临主要困难是外勤人员仅xxxx,信贷总量大,事物性工作多。我部将通过调整充实外勤人员队伍,来加强客户经理管理,切实规范加强客户经理水平,积极拓展业务。
六、20**年是我行的发展创新年,营业部工作仍然艰巨而繁重,我部将结合学习饶才富、何桂萍、林红等活动,以红坊营业所、社兴分理处为学习榜样。牢记上级的要求,在管理上有新举措,业务上有新发展,思想上有新突破,力争业务经营上新台阶,精神文明建设再丰收。
银行网点工作总结
(二)20**年在行长室的领导下,各部门的帮助配合下,我们分理处全体员工认真学习、贯彻和落实各项规章制度。围绕市分行提出的“******”,以服务工作为中心,结合分理处的工作实际,充分发挥分理处的服务窗口形象,做好全行的会计结算业务,为我行的全年工作做一份努力。
一、做好日常的服务结算工作
做为支行分理处,是一个大型综合网点,既是对外服务窗口,又是全行的业务处理中心,我们认为最重要的就是做好日常的业务处理,对外做好服务工作,对内做好结算工作。
1、节前节后是大量的现金投放与回笼,春节前为满足客户对现金的需要,从人民银行取2款1。5亿,春节一过,又向人民银行回笼了650xxxx现金。
2、对每年二次的学校收费我们在人员上、业务上给予最大的配合,对收回的现金及时清点入库,并及时开出行政事业收收费发票交回学校,将款项及时划入财政。
3、做好春节及5。1节期间的业务员、管库员及网点的安全保卫工作,考虑到分理处人员比以往减少,在节前即通知各网点要求做好入库钱钞的标准质量,以加快回笼资金的入库,减少库存。
4、参加***大型演唱会的门票出售收款工作,并按排好相关的各项工作,保证在此期间的资金人员安全。
5、上半年协调三个部门做好网上银行的安装工作,并对相关企业进行业务及电脑知识上的>培训,努力减少睡眠户的产生。至下半年,为更好地开展电子银行业务,在行长室关心下由分理处与公司业务部负责电子银行的安装服务工作,除了安装与业务知识宣传外,我们更做好对电子银行业务的落地处理工作,一年来未发生有任何的重复、错划或漏划等差错。
6、做好nova1.2、1.3、1.4版本的前期测试及投产工作。
7、配合**支行做好对**公司售房款的接款及清点工作。
8、做好本外币帐户清理及结转工作,在11月完成了帐务上收工作,同时在12月底我们成功完成与外管局的信息核对与纠错工作。
9、对电信及中油公司、石油公司的帐户信息调整工作(调为集团帐户)。
10、应电信局的邀请,由***对电信局全辖的出纳人员进行假币培训。
11、代理业务处理从个人业务部转到分理处处理,并将全行各储蓄网点的代发工资业务集中,提高工资入户的速度,满足客户要求。12、7月份完成不良资产>证券化工作,共户总金额,同时这些帐户也予以销户处理。13、7月份保卫日间库值班撤销,由分理处管库人员进行交接,同时,业务人员从分理处划归业务保障部管理。
14、银行承兑汇票保证金、委托贷款于8月23日顺利移行,加强了保证金及委托贷款的管理与控制。15、676台支付密码器的更换与清理工作在各部门的配合努力下已全部完成。
二、提高服务质量,保证各项业务的顺利开展
分理处集中了全行会计业务的大后台,相对其他所有网点在业务水平上、业务范围上、服务手段上要求更高,而业务水平与服务技能相依附,只有提高了业务处理能力,才能为客户服务好
1、我们利用每星期二的例会,进行服务讲评,指出员工在临柜服务中的不足,并按员工的临柜表现进行奖励与处罚,以提高整体服务水平。
2、在服务讲评后进行业务培训,特别是对新业务的培训,今年的业务更新比往年更快,如银行承兑汇票保证金的管理、银行承兑汇票的业务处理流程、委托贷款的处理、nova1.3、1.4版本升级、更有今年最重要的帐务上收,都要求每位员工及时了解掌握,仔细应付,从而以高业务水平来更好地服务客户,提高服务水平。
3、应地方>税务局的免税单及恢复他行扣税程序要求,在行长室的多次努力下,市分行科技部为我行解决了程序问题,目前这项工作顺利开展,满足了地税局对我行的服务要求。
4、tm机的钱箱由各网点自行安装,为分理处节约半个劳动力,因**所撤并后分理处的柜面压力明显增加,我们利用这次的atm管理方式的改变而改善柜台压力,同时将代理业务集中在二个窗口,并设一个“贵宾客户优先办理”窗口,以分流客户,改变各种客户一堆扎的局面,经过努力在>四季度中存款任务有了很快的发展。
5、自11月以来,在行长室的布置下我们每天进行晨会制度,总结分理处前一日的工作情况,当天的工作安排、或传达重要的会议信息等,并着重强调柜员的制度执行。
6、经过几个月的努力,我们完成电信局、供电局、社保基金的委托收费通过电子交换系统的工作,前期我们化费大量的人力与时间和各商业银行核对帐户信息,保证了 实时扣费的安全准确,得到了电信与供电部门的肯定。
7、自11月12日开始客户的电费缴费由工行、农行与建行三家联合,从与供电局的业务联系、程序改造到最后的个人与对公业务的开展,分理处动了很多脑筋,与供电部门努力配合,目前这项工作正顺利开展。
8、为加强银企对帐,减少风险,银企面对面对帐工作10月份开始由分理处集中处理核对对帐结果,在11月我们结合帐务上收工作的特点调整柜员岗位,专门设置银企对帐岗并兼电子银行的上门安装,努力为客户做好服务工作。
三、配合做好行里的服务工作及工会工作
1、对各部门提出的要求及时解决,如会计结算部、公司业务部、业务发展部、个人业务部在业务上要求配合或需要加班的,我们及时安排人员予以解决。如学校收费工作,因分理处有xxxx参加第九届的技术比武,人员本来就紧张,但我们尽量安排出上
门收费人员,同时安排员工加班加点完成了全部的现金清点与学生发票签发打印工作。
2、分理处的业务种类多,业务相对较忙,再加柜员平时比较注重业务技能练习,分理处练就了许多技术能手,此次技术比武分理处派出了四名选手参加比赛,取得了骄人的成绩,***、**、***三人更被选中代表市分行参加省分行的比赛,其中***参加了全国比赛并取得好成绩。她们成绩的取得更有整个分理处员工的辛苦与努力。
四、尽早安排顺利完成年终决算工作
今年与往年不同的是全行一本帐,以支行为核算网点,帐务上收支行分理处,这次的年终决算对我们提出了更高的要求。
1、尽早安排,责任落实到人,将年终该做的事项详列清单,并定出工作完成的时间表。
2、核实清理帐户,今年共清理长期不动帐户个,总金额元,清理已退出贷款帐户个。
3、检查会计科目的使用情况,特别是今年增加及变动的部分会计科目及专户,发现使用错误或使用不当的及时按要求做好调整工作。
4、决算前对业务印章、密押、空白重要凭证、权限卡、支付密码器等各项核算要素的管理情况进行详细的检查,检查有无已发未领或长期不用的印章。
5、全面核实各项垫款、实物与库存,做到帐帐、帐卡、帐实、帐折、帐表、帐据、内外帐务相符
五、加强制度执行工作,防范风险
1、市分行出台的新规定及时组织柜组长进行学习,及时传达到每个柜员对工作上的不足及时请会计结算部进行指导,努力做好工作。
2、定时不定时地巡查营业场所,发现有违反制度的做法及时提出并督促整改,严格制度执行。
3、因分理处人员进出多,稳定系数低,在业务处理中我们对差错不敢掉以轻心,每发现一笔差错,我们就与差错柜员探讨差错发生的可能,指出不足给予批评,努力减少差错的发生。
一年来,分理处也存在着许多的不足,特别是在制度的执行上我们还不够加强力度,同时员工的素质还是没能达到适应银行高强度业务风险的能力。所以在20**年我们主要也是从制度的执行上与提高员工素质上入手,提高分理处的工作水平。
1、更严格地执行制度,但更要为业务的发展做好服务工作。篇二:银行网点工作总结 2007年工作总结 2007年***分理处在市分行党委及有关行领导的正确决策和指导下,在各职能部门的大力支持与帮助下,我分理处认真贯彻落实年初市分行有关会议精神,紧紧围绕业务发展这一中心,强化经营管理,完善内控监督,大力组织营销负债、资产、中间业务,不断拓展业务发展新空间,在全网点员工的齐心协力下,我们同甘共苦,克服了重重困难,终于较好地完成了市行下达的有关任务指标,现将07年工作总结如下:
一、业务指标完成情况
对公存款截至07年底余额***万元,本年新增**万元,完成市行下达任务指标的**%,新开对公结算户基本户**户,一般户**户,完成市行下达任务指标的**%。新开户中有效余额超500万元以上的2户,日均存款量超10万元以上的*户。储蓄存款截至07年底余额***万元,本年新增**万元,完成市行下达任务指标的**%,外币存款在人民币升值的影响下,全年呈下滑趋势。
代销基金****万元,超额完成市行下达任务;代理保费收入***万元,完成任务指标的**%。
消费信贷业务,克服利率上调的影响,发放了29.8万元,完成任务指标的14.19%。
发行中银贷记卡**张,完成任务指标的**%,借记卡**张,完成任务指标的**%,开发特约商户1户,完成任务指标的100%。
完成中间业务收入**万元,完成任务指标的**%。
二、主要措施及经验
1、采取积极有效措施,抢占市场份额,实现首季度存款“开门红”,为全年储蓄存款较好、稳定地增长打下了基础。年初市行统一部署安排,要求在首季末完成全年储蓄存款任务的80%。根据市行下达的任务指标我分理处积极行动,制定了《****分理处储蓄存款任务、费用挂勾考核细则》,将任务与费用具体细化到每个员工,每人任务100万元储蓄存款,并配比相应的费用。组织员工认真学习,做到人人心中有数,任务明确到人,考核办法清楚。从而最大的调动了每一位员工积极性,经过大家幸勤的努力,在首季存款“百日竞赛”活动中,我分理处共新增储蓄存款700多万元,完成全年任务的80%,完成“百日竞赛”任务指标,员工人均吸储100万元以上,其中部分同志还因个人吸储成绩突出,获得了市行“百日竞赛”吸存能手的称号。随着年中出现的“股市热”、“楼市热”而引发的储蓄存款“大搬家”现象,根据我们的实际,经过认真分析,发现经商群体的流动资金不会进入股市、楼市,只能在银行系统周转,据此,我们提出了以发展经商群体流动资金为突破口,以优质服务为手段,多开大、优质客户的活期存款,扩大资金来源,扭转储蓄存款下滑的不利局面。经过不懈努力,先后发展了10万元以上优质户几十户,沉淀资金非常可观。由于我们采取的措施及时、有力,基本遏制了存款持续下滑的局面,实现了储蓄存款的较稳定增长。
2、多开新户,开优质有效户,增加资金来源,减少对公存款对少数几个大户的依赖。今年以来,由于年初大户用款较以往增加,共计转出存款1500万元之多,给分理处对公存款增加了不少困难,为了改变这种局面,我们一方面狠抓新开户,全年新开**户,其中有的单位当年即新增存款800多万元,有效地减少对少数几个大户的依赖。
另一方面捕捉信息,与政府有关部门保持联系,发现招商引资信息立即抓住不放。龙子湖区招商项目安徽惠农甜叶菊高科技发展有限公司,是一家外商独资企业,注册资本金100万美元,总投资150万美元,当我们了解到这一信息,立即积极主动与龙子湖区招商局联系,并向项目投资方介绍中国银行在国际结算方面的优势,并承诺给予提供最优质的服务。在具体办理各种手续时,从所需申请步骤、材料、所涉及的有关行政部门,都自始自终给予客户指导、咨询,最终将这一项目落户我们分理处,截止年底投资款100万美元已全部进入我行,目前及今后的结汇收入也非常可观。
3、努力将提取储蓄存款的客户转化办理能为我行产生收益的代理业务。面对储蓄搬家现象,我们及时转变思路,“变堵为疏”向客户宣传推销我行代销基金、代理保险、汇聚宝等理财业务。介绍各项业务的特点与优劣,让客户根据自身实际情况加以选择,并根据客户实际为客户提供理财顾问服务,让客户资产保值、增值,使客户信赖我们,并最终在我们分理处办理业务。全年共销售基金***万元,代理保费收入***万元,销售汇聚宝三笔,共5.2万美元,不但留住了客户,还提高中间业务收入,可谓一举多得。
4、按市行要求按时保质保量的完成客户信息采集工作。为了配合it蓝图规划,明年现有的操作系统升级要求,要将现有对公、对私客户信息规范采集。因为以前对客户信息的规范性不做强制要求,因此绝大多数客户信息存在不同程度的缺失遗漏,而根据要求要在两个月的时间内完成对私客户采集率达80%,对公客户1月内采集率达100%,工作量还是很大的。接任务后,我们立即组织员工开动员会,明确信息采集与业务发展同样重要,要认真对待,要发扬不怕苦的精神,保质保量完成采集任务。员工立即加班加点利用开户资料、大客户留存资料等自有资料开展采集工作,同时积极与公安、电信、移动等外联单位联系,多渠道上门采集客户信息。采集中大家自愿放弃休息时间,任劳任怨,毫无怨言,全网点累计加班几十余班次,经过全体员工不懈努力,我们顺利完成了信息采集进度指标。
5、文明优质服务工作常抓不懈。要求员工在日常工作中不仅要规范服务,而且要不断提高自身业务技能水平,更好更快地为客户提供服务办理业务。利用每周例会,带领大家集中学习文明优质服务方面的规章制度,使规章制度深入人心;通过学习剖析被投诉与被表彰正反两方面案例,使员工能够在学习经验上有标杆,吸取教训上有对象;通过开展“假如我是客户”的活动,让员工能够更好的体会到客户的需求,从而指导我们加强提高自己的服务工作。在实际工作中,把服务工作融入到为客户周到细致的业务指导中,例如对公业务,无论从开户、送单、开票、对帐、咨询,都能做到随喊随到,有问必答,来则即办,办则能成。对私业务则不厌其烦地向客户宣传我们的理财政策,理解他们的顾虑,无论周六周日,只要客户有电话,大家都能立即赶往网点,贴身服务。经过周密细致的工作,我们终于赢得了公司、个人客户的信赖和支持。07年全年无投诉事件发生,上级行下派明查暗防反映较好,并有1人当选为市行07年文明优质服务标兵。
6、三防一保工作常抓不懈,坚持每周学习制度、柜员卡使用制度、每日查库稽核制度,切实将各项制度落到实处,不走过场、不留死角。坚持不间断地关心和关注员工班内和班后的思想变化情况及有关情况,真正做到防患于未然,全年无责任事故发生,保证了全年安全生产。
7、日常工作中及时准确地把市行行务会精神向员工传达贯彻,对员工以诚相待,注意沟通,宽严相济,鼓励员工通过各种渠道不断提高自身文化素质,参加各种资格、职称考试;要求员工积极参加上级行举办的各种学习培训,提高业务知识水平;组织员工积极参加市行运动会,丰富了员工业余文化生活,真正使网点形成一个团结的整体、战斗的整体、工作的乐园,使每位员工高高兴兴上班,欢欢喜喜下班,充分调动员工爱行敬业、生产、工作的积极性。07年工作中也存在着不少问题,如未能全面完成储蓄存款任务,银行卡发卡量不理想,消贷业务发展不理想,个别员工文明优质服务意识有待提高,员工的整体营销意识和营销技巧能力欠佳。以上问题的存在,其根本原因是人的问题。以人为本是干好一切事情的基础,不把员工的积极性调动起来,不把人的干劲逼出来,绩效是不会从天上掉下来的。所有这些都将在新的一年里加强关注和改进。08年我们计划从以下几方面着手开展工作:
1、负债业务抓早、抓优,力争储蓄存款实现首季“开门红”。主要在宣传力度上加大,信息渠道挖掘力度上加大,柜面文明优质服务力度上加大。
对公存款主要靠在老户挖潜,新开户跟踪服务,详细了解其资金流动脉搏,及时提供优质高
效服务,抓住吸存时机,让企业有更多的流动资金在我行周转。在现已掌握有关信息的基础上,不断增开新户,增开优质户,实现对公存款稳步增长。
2、中间业务亦抓早、抓优,争取和对公业务互动。在代发单位工资上下功夫,以带动发卡业务与收费增量。积极推销公务卡、贷记卡,最大程度地挥柜面服务优势,加大推销力度,力争上半年完成中间业务任务的80%。
3、积极响应市分行党委的有关工作部署,在加强网点内部管理上狠下功夫,无论在三防一保、员工培训、技术达标、争先创优等各项工作中,都能保持良好的精神状态和旺盛的工作斗志,力争在新的一年里取得更大的成绩。篇三:atm维护年终总结
年终总结
年末了,说明我走出校园后的首份工作已有半年时间了,在这工作与同事相处得很融洽,大家都很热情,我也很乐意加入这个大家庭。这份工作对我的成长有很大的帮助,不但能学到专业的atm维修技术,更能从日常与银行各级人员的交往,锻炼了人际沟通、交往能力。
从工作处理问题中发现自己诸多的不足,譬如处理问题时思维过于局限,未能够全面地去思考问题的根源,经常需要找同事电话支持,等处理完后才发现这些问题其实不算是什么问题,只是自己未能够细心想到而已。以后处理问题需多方面去思考,多去尝试,这样才能够提高自己的处理能力,而不是一味的去求助。平时出去维护时不够细心导致浪费时间在不必要的事上,比如维护结束后忘记拿回自己的证件或者pm完时忘记把弧形板压好,细心在维护中是很重要的,一个不小心就会导致机器会出现其他的问题出来,浪费时间在处理自己造出来的问题。与银行的沟通在维护服务中占的比重挺大的,技术不算好但沟通得好这样没处理好银行也不会责怪你甚至可能还会跟你说声感谢;技术好但沟通不好这样的效果可能就会出现不同的效果了,可能会因沟通得不好导致被银行投诉,这样就不得而为了。故此与银行的沟通是很重要的。我知道自己的语言表达能力还比较欠缺,以后会在这方面下工夫的。
在新的下一年里我会继续努力,弥补自己的不足,不断得进步,尽量避免出现差错。对于欠缺经验的我需要像海绵般去吸收经验,不断得提高自己的技术水平和沟通能力。xxx 2013年12月22日篇四:2015银行网点主任年终工作总结 银行网点主任年终工作总结
白驹过隙,时光飞逝,转眼间2015年也即将过去,一年的工作也将画上一个短暂的句号,在这一年的时间里,在xxx银行网点所有员工的共同努力下,各项工作都有条不紊的开展起来。作为银行网点主任,同时作为一个在银行从业20余年的老员工,一直以来我都以“固基、强本、创优、增效”八字工作方针作为自己工作的座右铭,并以此要求自己认真工作,争创佳绩,在银行全体员工的协手合作、同结共进下,我行取得了不少优秀的成绩,现在我将一年来所做的工作向大家汇报如下:
一、主要经营业绩
1、核心存款。截止12月xx日营业部各项存款余额为xxx万元,较上年增长xxx万元:其中对公余额为xxx万元,较上年增长xxx万元,完成全年任务xxx%;储蓄余额为xxx万元,较上年增长xxx万元,完成全年任务的xxx%。中间业务完成xxx万元,完成计划任务的105%;售出理财产品xxx个;售出信用卡xxx张;新增手机银行用户xxx人,网上银行用户xxx人。
二、主要工作措施及成效
(一)明确目标和职责,在“勤、绩、德、能”四个方面发挥银行网点主任的带头作用。
首先,在勤的方面,本人事业心、责任心强,工作勤勉,兢兢业业,任劳任怨,勇挑重担,敢于负责,不计较个人得失。其次,在业
绩的方面,讲究工作方法和领导策略,并通过这一系列方法策略的实施,带领大家取得了较好的成绩。第三,在德的方面,认真贯彻执行民主集中制,顾全大局,服从分工,勇挑重担。尊重一把手,团结领导班子成员和广大干部职工,思想作风端正,工作作风踏实,敢于坚持原则,求精务实,开拓进取,切实履行岗位职责,大力支持一把手的工作,促进我行各项工作的顺利开展。最后,在技能的方面,我通过业余时间的学习,熟悉和掌握国家的金融方针政策、金融法律法规,能较好地结合实际情况加以贯彻执行;较好地协调各方面的关系,充分调动员工的工作积极性,共同完成复杂的工作任务。
(二)牢固树立“存款立行”的思路不动摇,把“抓存款”工作为重点工作来推进。
随着我行各项业务多元化发展,产品种类越来越多,我们并没有眉毛、胡子一把抓,而是在重点做好我行核心业务的同时全面发展各项业务,尽可能地做出更多的亮点,我部门员工群策群力、共同努力全面发展各项业务。
(三)以身作则,带领员工加强学习,提升个人素质和专业技能。加强员工的业务的精细化学习,扩充知识广度,从而在营销时可以与各种类型客户打交道,深化文明服务意识,从客户利益出发,做好各项营销工作,激发员工营销动力,实现全员上下共同营销,时刻督促网点所有员工坚持业务学习,不断加强自己的理论素质和专业水平,在工作中能做到得心应手,更好的为广大客户提供方便、快捷、准确的服务,全力打造浮梁农行的精品网点。
(四)机制改革,银行管理勇攀新高峰。受机构改革的影响,今年11月份开始,我们的银行网点与xx支行进行了合并,合并后新上任的行长以其先进的管理理念和丰富的实践经验带领我行各项任务都迈向了新台阶,尤其是在管理水平上,更是远超原来的领导人,使我网点在管理水平上有了飞速提升,这为我行网点工作的开展奠定了坚实的基础。
辞旧岁迎新年,2015的脚步渐行渐远,我们也将如期迎来2016年的到来,在新的一年里,我们会制定出新的计划和策略,为我行的发展助一臂之力。在新的一年中,我们将重点做好以下几方面的工作:
第一、强化营销,保持各项业务稳步快速增长。牢固树立“以客户为中心”,“赢在大堂”,坚持“存款立行”,从源头抓客户,做好客户营销工作,积极营销电子类、卡类产品,引导客户尽量使用电子渠道或多媒体自助设备办理业务,不断进提高网点电子分流率。第二、提升服务,提升客户满意度。最好的服务源于后台,源于细节,源于客户没有考虑到的银行也为他考虑了,因此要建立和完善各级客户服务领导和督查责任,落实服务管理责任制,共同营造“一线为客户,二线为一线,机关为基层”、全行“以客户为中心”的大服务格局。
第三、加强内控管理,严格控制操作风险。正确认识内控机制的重要性,加强员工职业道德培养和警示教育,提高内控与员工的价值关联度,切实防范员工因道德风险引发的违规、违法行为。构建独立的内审管理体系,要以强化监管为手段,发挥职能部门作用。实行业
务与监督分离,建立独立运作的内审管理系统,使内审工作真正发挥超脱性、权威性。职能部门必须认真实施自律监管,提高自律监管的效果,应严格按照自律监管责任制的要求充实监管力量,履行监管职责,强化与不断创新监管手段。篇五:银行经营工作总结报告 2010年,邮储银行xx街支行在市行、营业部的正确领导下,在人民银行、银监局的关心与指导下,紧扣“从严管理、突出创新、和谐高效、科学发展”的主旋律,按照“效益领行、营销立行、管理助跑”的总体工作思路,坚持资金营运和贷款营销“两条腿”走路的工作原则,真抓实干,各项业务得到了长足的发展,市场“蛋糕”逐步做大、做强,效益得到了切实提高,夯实了经营基础,取得了令人欣慰的业绩。
一、主要工作成效
——各项存款快速增长。6月末,各项存款余额达6800万元,较年初增加3400万元,完成计划的 122.88 %。其中,储蓄存款余额6400万元,较上年末增加3400万元,完成计划的118.66%;对公存款余额600万元,较上年末增加600万元,完成计划的52.27%。——各项贷款增势强劲。12月末,各项贷款余额225万元,比年初增加165万元,增长 18 %,全年累计发放贷款285万元,累计收回贷款185万元。年末存贷比例为60.62%。
——银联卡业务发展迅速。6月末,今年累计发卡3056张,比上年增长10.99%;卡片存款余额10358.47万元,比上年增长9557.79万元;银联卡交易笔数6369笔。——新设网点如期开业。根据邮储银行关于新网点成立的安排意见,对新成立邮储银行xx街支行进行了设备的购置、网络线路的联通、系统的安装和调试、atm机安装等工作,保证了邮储银行xx街支行的准时开业和业务的正常处理。——队伍建设不断加强。一年来,班子成员以身作则,根据全市干部工作作风整顿的相关要求做好表率,开展了一系列文明规范服务活动,有力提升了员工的思想水平和综合素质。对全体员工进行了执行力和服务礼仪培训。
二、具体工作措施
(一)抓业务,与时俱进创佳绩
——抓存款,促资金实力增强。2008年以来,全行牢固树立细化市场、扩充总量、优化结构、讲求效益的资金组织工作总体目标,实现了存款份额增长和结构优化的新突破。一是做到了任务早落实,计划早安排。从存款的吸收、考核和资金的管理等方面及早进行了部署和实施,为各项目标和计划任务的顺利完成提供保障。二是调整存款结构,下大功夫抓储存,努力增加市场份额。及时采集市、区金融机构存款数据进行对比分析,搞好市场调研,寻找发展差距,制定对应措施,加大储存考核力度,使得全行的储存份额迅速提高,存款稳定性进一步加强。三是把稳存增存作为抓存重点。利用邮储银行xx街支行的地理优势,采取“抓大额客户资金,带集体团队攻关”的方式来吸收存款,定期不定期走访市内各企事业单位以及个体私营单位,广泛宣传,联系沟通,在组织资金、扩大资金方面做出了不懈的努力。
——抓贷款,促营销力度加大。一是以双赢为目标,加大扶持中小企业。2010年,邮储银行xx街支行信贷工作紧紧围绕和突出这一重心,扶持了一批信誉好、经营好、效益好、前景好的优质企业。至2011年上半年,邮储银行xx街支行累计投放中小企业贷款10户左右,金额达350万元。二是以贷款业务扩展为方向,加大营销力度。诸如公职人员担保贷款、农户联保贷款及商户联保贷款等信贷产品,增加信贷资金扶持的覆盖面和受益人群;至2011年上半年,邮储银行xx街支行这几类贷款品种的发放金额达千万元以上,占营业部贷款余额的18.1%。
——抓财务,促经营效益上升。注重经济核算,狠抓增收节支,提高经营效益。从增收和节支两个方面入手,以利息收入为主攻方向,超额完成了全年下达的财务计划。加强对费用开支的管理,真正把费用用在“刀刃“上,降低经营成本,节支效果明显;在节支的同时,把财务工作重点放在增收上,年初就将收入任务分解下达到岗到人,严格按月考核、按季兑现。
(二)重改革,开拓创新促经营
——周密组织,创造改革良好氛围。为使邮储银行xx街支行改革工作做到稳步推进、有条不紊,结合邮储银行实际,明确了改革的指导思想、原则、目标以及改革的主要内容、实施步骤、方法和相关要求等,规范了操作程序,并组织召开了相关会议,从而统一了思想认识,增强了全体员工支持改革、参与改革的意识。
(三)强管理,从严治行保稳定
——完善制度建设,狠抓各项制度落实。在日常管理过程中,根据制度逐项检查,对检查过程中发现的违规违纪问题,坚决按照制度规定进行落实,绝不姑息,切实加大了制度的执行力度。
——落实安保责任,提高风险防范意识。把安保目标管理摆在重
要位置,横到边,竖到底,不留死角,层层签订目标责任书,并实行风险责任制约机制,强化领导责任和全员参与意识,一级向一级负责。领导带头认真学习贯彻上级文件精神,定期研究部署保卫工作,经常深入基层开展安全检查,时刻注意掌握辖内安全动态,实现了全年安全无事故。
——强化内部审计,坚持治行从严原则。切实贯彻落实案件专项治理工作的一系列文件精神和要求,努力构建风险防范和案件治理的长效机制。对存款集中的大户及资金来往频繁的客户重点抽查并进行了上门对账,对所有开立的单位结算账户大额流动资金情况进行了全面排查,对内部控制制度建设及制度执行力情况进行了全面的梳理自查。
三、存在的问题和差距
外部方面:邮储银行xx街支行经济总量较小,金融资源较为贫乏,结构单一,主导型、骨干型企业少,邮储银行邮储银行xx街支行面临的发展大环境不容乐观。内部方面:一是体制、制度建设还有待进一步加强。二是业务量小、创利能力低。三是内部管理还不够规范,干部员工的积极性没有得到充分发挥。四是科技创新支持力度不够,创新步伐迈得不快,新业务品种推广力度不够。
四、2011年工作总体要求和目标任务
总体要求是:以党的十七届四中全会和中央经济工作会议精神为指导,深入贯彻落实科学发展观,按照邮储银行三年发展规划,以市场为导向,以防范风险为重点,以资本管理为中心,以发展为主线,以建立完善面向市场的考核机制为动力,以“依法合规、稳健经营、稳步发展”为理念,以提高综合竞争力和经营效益为目的。在风险可控的前提下,着力扩大资产规模,提高资产运行质量;着力拓展业务发展空间,提高经济效益、服务水平和赢利能力;着力建立和完善各项考核制度,调动全体干部职工积极性,激发经营活力;着力加强精神文明建设、员工队伍建设,提高员工素质,不断增强综合竞争能力,全力促进各项业务持续快速健康发展。
——与时俱进,高度关注经济金融形势,做好调研分析。本着对企业、对客户、对自身高度负责的态度,对当前经济金融形势进行客观判断,随时注意各项业务指标的变化情况,做好重点分析,尽量规避风险的发生。——砥砺奋进,坚持不懈抓存增效,扩大市场份额。一是转变观念,改进认识,牢固树立大存款、大发展的经营思想。二是立足潍城区,把营销区域向周边扩展,把营销触角向乡村延伸,进而扩展到全市, 实现储蓄存款和对公存款的双增长。特别是做好周边经济情况的调查和分析工作,把营销重点放在系统大户上。三是继续加大抓存考核力度,下达目标责任,实行按月考核,按季奖惩。——稳步迈进,加强内控制度建设,严防风险发生。一是规范制度化管理。通过建立健全制度,做到用制度约束人,用制度充实人,用制度引导人。开展“制度落实年活动”,狠抓制度执行落实力度,严格按章办事,增强执行制度的自觉性。二是建立责任问责制。
atm软件工程课程设计 atm机程序设计篇五
银行atm工程师定向就业班
培训简章
银行atm服务工程师是负责银行atm等自助设备的运维管理工作。是国内金融it行业的热门职业,国际权威研究机构rbr的研究成果表明,未来5年,我国atm市场每年的增长速度超过30%,因此,该职业目前处于上升期并被列为发展前景最好的职业之一。与同类职业相比,atm服务工程师的职业地位与薪酬收入也具有较为明显的优势,因此,atm服务工程师师是国内现阶段最好的就业选择之一。为国内各大知名atm金融服务商定向培训,通过考试,实现就业。培训前签订就业保障协议,不能安置就业,全额退费。培训开始三个月内安置工作。有机会转正成为银行正式员工。
一、报名条件
男性,大专以上学历,30周岁以下,计算机科学与技术类,电子信息与自动化类,机械类等相关专业。
二、教材和师资
采用atm服务工程师培训专用教材,由atm运维技术支持专家授课。
三、培训时间和内容
培训班学制1—3个月。培训采用“封闭脱产”形式分两阶段进行,第一阶段为理论和技能培训期,第二阶段为各地服务站实战训练期。
四、就业安置
为国内各大知名atm金融服务商定向培养,考试通过后就业。培训前签订就业保障协议,不能就业,全额退费。培训开始三个月内参加考试,安置工作。地点:东北三省哈尔滨、长春、沈阳、大连为主。部分为国有企业待遇,国家正式劳动合同,有机会转为银行正式员工。
五、工资待遇
一般综合收入在3000—4000以上,五险一金。以某上市国企为例,本科基本工资2000元,驻地补助1100元。另有话费、交通、餐补等其他补助。年终奖和其他福利。每年一次加薪。国企待遇,五险一金。第一年综合工资3000以上,第二年在4000以上。