商业银行模拟实习报告(精选8篇)
43浙科商业银行模拟软件实习报告
(安徽农业大学经济管理学院09金融(2)班姜军学号:09198043)
实习地点:经济管理学院602机房
实习内容:通过扮演综合角色、柜员角色来开展各项个人业务(存款业务、银行卡业务、贷款业务、汇款业务、外汇业务、代理业务)、对公业务(存款业务、贷款业务、人民币支付结算服务业务)等具体业务。
实习方法:通过软件提供的环境实际操作
实习目的:通过模拟银行实习,使同学们了解商业银行各项业务的具体办理流程。
一、引言
5月28号到6月12号,在学院老师的缜密安排与悉心指导下,我们进行了为期八天的商业银行业务模拟实习。本次实习利用浙科商业银行综合业务模拟实验软件系统,通过扮演综合角色、柜员角色来开展各项个人业务(存款业务、银行卡业务、贷款业务、汇款业务、外汇业务、代理业务)、对公业务(存款业务、贷款业务、人民币支付结算服务业务)等具体业务。
通过本次实习,我们很好的将所学的银行理论知识与现代商业银行综合业务管理系统相结合,锻炼了我们的实际操作能力,加强了我们对现代商业银行综合业务系统中采用的大会计、综合柜员制的账务管理方式和面向客户的管理体系的理解。
在实习过程中,我作为综合角色,按照老师的要求准时进行网点开机、凭证调拨、资金调拨以及一些突发情况的处理,在实习后期,浙科商业银行综合业务模拟实习报告
1我还与同学交换角色,扮演柜员角色开展具体的业务,记录下自己学到的新知识与技能,不断总结自己实际处理银行业务中的感悟。基于此些,才写出了这份实习报告,作为对自己的总结、对老师的汇报。
二、商业银行业务综述
1.对综合角色综述《浙科商业银行模拟教学软件》完全按照商业银行方法开发而成的。在设计思想与需求获取方面更注重核心业务、实际操作规程,让学生在一个几近真实的商业银行模拟环境中练习所学金融理论和操作技能。系统设计开发充分体现商业银行的综合柜员制,模拟银行的个人业务、对公业务、网上银行业务,模仿银行组织结构(总行由若干分行构成,分行由若干支行组成)。在学生开始实验操作之前,作为综合角色的我首先要进行实验准备工作,然后由扮演柜员角色的同学添加个人客户或企业客户,并向银行提交相关的个人业务或对公业务办理申请,由一般柜员或综合柜员相互协作受理各项业务。
作为综合角色,我首先要进行银行信息的设置,包括本行信息、网点城市、网点编号、柜员权限、柜员临时签退、网点开关机等的设置和操作。
其次是基础设置,主要包括资金管理(向分行和支行调拨资金)、重要空白凭证管理(印制空白凭证,并向分行和支行调拨)、外汇汇率、购买凭证价格设置、手续费用设置、银行卡设置、交易额度设置、尾箱额度设置等。
然后是金融信息的管理,主要包括币种查看、人民币存款利率、人民币贷款利率、外汇存款利率、外汇贷款利率、国债利率、外汇汇率、个人利息税率、基金证券变化率等。
最后是客户的管理,包括客户资料、考核设置、信用等级设置、客户评分明细管理等。
在整个实习的过程中,作为综合角色,我认识到时间意识的重要性,每次实习,我都必须提前到达机房,做好银行网点的开机和重要空白凭证的印制和调拨工作,否则同学们就无法开展实习。
2.对私业务综述
在实习的后期,我和同学交换角色扮演柜员角色开展银行业务,现在就我扮演柜员角色开展的业务做一个简单的介绍。
2.1.凭证管理
软件程序设置下的凭证种类包括个人开户申请书、企业开户申请书、现金收入凭证、现金付出凭证、转帐借方凭证、转帐贷方凭证、特种转帐借方凭证、特种转帐贷方凭证、外汇买卖借方凭证等58种重要凭证。
2.2.凭证领用
系统的凭证领用采取总行印制(每次最大印制数量为1000份)提供本行柜员使用并向分行调拨(每次调拨最大数量为1000份),然后分行提供本行柜员使用并向支行调拨的二级分配体系。
3.日常操作流程
3.1.普通账户
客户拿身份证、凭条来办理新开账户业务,柜员先进行“开普通客户”交易,输入证件类型和号码后回车,如果系统提示“该证件已开过客户号”,则记下该客户号,退出“开普通客户”交易,直接进入相应的开账户交易。如果系统没有任何提示,说明该证件不曾开立
客户号,那么柜员就请客户重新填写“客户申请书”,然后连同填好的凭条和证件一起交给柜员,从“开普通客户”交易开始。
3.2.一本通账户
客户填写“客户申请书”、凭条,连同有效证件一起交给柜员,从“开一本通客户”交易开始。客户开过客户号后,以后再办理开账户,就不必再填写“开户申请书”,直接就可以办理业务了。
3.3.注意事项
普通客户号可以开一本通和普通账户,一本通客户号可以开所有账户。原则上一个有效身份证件只能开一个客户号。开过普通客户号的有效身份证件可以再开一个一本通客户号,但是开过一卡通客户号的有效身份证件不能再开普通客户号。如果某新开客户证件类型和证件号码与其它客户相同的情况下,不再开立新客户,而返回具有相同证件客户的客户号。
4.其它业务
4.对公业务综述
4.1对公业务范围
存款业务包括:对公活期存款、对公定期存款;
贷款业务包括:对公贷款、个人消费信贷;
结算业务包括:辖内业务、同城交换、电子联行。
4.2.日常操作流程
开机后,进入登录界面,输入柜员号、密码,系统校验成功后进入主界面。进入主界面,屏幕右端显示系统日期、柜员号、钱箱号。
系统采用菜单结构与交易码并行的方式。办理业务可以从机器主界面到子界面一层层进入,了解到每一项业务的主菜单和子菜单。
日终轧帐包括柜员钱箱轧帐、柜员轧帐、网点轧帐三项内容。柜员钱箱轧帐打印出“柜员钱箱轧帐单”,包括当日该柜员现金、凭证的领用、上缴、入库、出库及余额数。利用钱箱轧帐可以查询现金及凭证数。该项操作每天可多次使用。
柜员轧帐打印出“柜员轧帐单”,包括当日该柜员所做的全部业务,按照科目的借贷方发生额、笔数,分现金转帐汇总。该项操作每天可多次使用。
网点轧帐打印出“网点轧帐单”,反映网点全部业务。每天只能操作一次。
需要注意的是柜员轧帐后不可以再进行业务操作,如果尚有业务需要处理,必须进行柜员平帐解除,才可以继续做业务。网点轧帐后不可以再进行本网点的业务操作。
三、实习效果
我认为本次实习时间虽然不是很长,但是我们对商业银行业务的了解程度已经更近了一步,对业务流程已经有了初步的掌握,基本实现了如下基本目标:
对所学的商业银行基础知识在实习中得到了实际运用;
加强了我们对现代商业银行综合业务系统中采用的大会计、综合柜员制的账务管理方式和面向客户的管理体系的理解;
为未来的实际业务的开展打下了坚实的基础,对对公与对私业务的相关知识有了更深一步的理解。
四、实习感想
本次实习虽然只有短短的两周时间,但是实习内容特别丰富,而且通过这次实习我们都得到了知识上的复习和实际操作能力的提高。
商业银行是以经营工商业存、放款为主要业务,并以获取利润为目的的货币经营企业。它的综合性决定了其业务的多样性,活期存款、定期存款和储蓄存款、长、短期借款、贷款业务、证券投资业务和中间业务等,都需要银行员工详细、熟练了解其业务办理过程。而本次实习正是为我们提供了熟悉这些业务流程的机会,让我们有了具体的商业银行业务经验,有利于我们在未来的工作岗位上更快上手。
对地下商业建筑人员疏散的研究,可以结合对烟气的模拟研究,利用疏散软件判断两者的结果能否满足人员疏散安全的判据。由此得出关于人员疏散安全性的一些结论。笔者针对某地下商业建筑,利用Pathfinder软件对该建筑内的人员进行研究,最后比较该结果与已有的烟气模拟结果,得出该建筑人员安全性分析。
1 疏散参数及场景介绍
某地下商业建筑建筑共两层,地下一层为商业,地下二层为停车场及设备用房等。在进行人员疏散模拟前,需要先确定疏散人数、疏散宽度及出口宽度等参数。如图1所示为该屋面透空型地下商业建筑平面图。
1.1 疏散人数的计算
进行人员疏散模拟研究时,首先要计算出准确的疏散人数。对于常见商业性建筑,一般参考GB 50016-2006《建筑设计防火规范》(以下简称:“建规”)中的相关规定进行计算。但是,该规范对于某些特殊功能的分隔没有给出明确的计算方法,故该项目除参考“建规”外,还参考了上海市《大中型商场防火技术规定》、《重庆市大型商业建筑设计防火规范》等,力求能够得到更加准确的疏散人数。该项目对疏散模拟时所涉及到的各功能区疏散人数计算原则,如表1所示。
1.2 疏散及出口宽度的确定
根据“建规”规定,得到该项目各防火分区所需出口宽度指标,即地下一层、地下二层疏散走道、安全出口、疏散楼梯和房间疏散门每百人的净宽度为1.0 m。
Pauls等人对人员在疏散过程中的行为做过详细研究。研究表明,人在通过疏散走道或疏散门时习惯于与走道或门边缘保持一定的距离。因此,除非人员密度高度集中,否则,在疏散时并不是门的整个宽度都能得到有效利用。SFPE《消防工程手册》对此进行了总结并提出了有效宽度折减值,见表2所示。
根据表2可计算出各疏散出口的有效疏散宽度,然后再作为初始边界条件建立各疏散场景的人员疏散模型。该项目南区地下一层的疏散出口和安全出口的位置,见图2所示。
利用表2及该项目地下商业建筑的设计图纸对疏散出口宽度进行计算,结果见表3所示。表3统计出了该场景中根据图纸所得的设计出口宽度及根据规范要求所计算所得的计算宽度。
1.3 人员类型组成及行走速度
为了能够准确地对疏散场景进行模拟, 该项目还对人员类型组成及行走速度进行了研究。根据该地下商业建筑的使用功能, 其人员类型组成可参照国际上通用的一般公共娱乐建筑场所推荐的数值比例构成。
1.4 疏散场景设置
选取该商业建筑南区地下广场地下一层作为人员疏散模拟的研究对象,其建筑面积为6 449 m2,该区域疏散人数为2 014个。该场景考虑到地下二层直通室外的敞开扶梯的安全性,设敞开扶梯附近的商铺失火,该商铺所在的防火分区B内的人员利用下沉广场内直通室外的通道、地下二层直通室外的敞开扶梯以及防火分区内的楼梯进行疏散。
南广场地下一层人员疏散方式:地下一层设计屋面开洞形式,被视为半室外空间,未做防火分区划分。地下一层全体人员通过靠近大面积开洞范围的开敞楼梯向上疏散到室外空间。
2 疏散模拟结果分析
采用疏散软件Pathfinder 进行疏散模拟分析。根据建筑平面图纸以及建筑自身特点,建立人员疏散的Pathfinder 模型,仿真模拟该地下建筑内人员疏散的基本情况。建筑内设置火灾自动报警系统,确定火灾报警时间与人员响应时间之和为120 s。确定最终人员疏散完毕的时间。
通过对60 s和120 s的疏散模拟结果进行分析,发现在疏散初期危急情况较轻、疏散人数较分散,再加之烟气影响较小、疏散标志明显可见,在这种情况下疏散通道的选择还比较分散的,疏散通道的利用率较高,此时清晰易见的引导信息对疏散起到很好的作用。在120 s时,在图3所示圈注部位的疏散楼梯聚集了较多的人,而其周围的一些楼梯利用率明显较低。该模拟结果与实际火灾时的情况也类似。随着现场环境的危险程度的提高,再加之烟气的影响,人们对疏散通道的选择也受到影响,宁愿选择自己熟知的楼梯或出口进行疏散,或者根本就不熟悉疏散楼梯及出口的位置,随众疏散,造成某些疏散楼梯的拥堵,在一定程度上延误了人员疏散的时机。这就决定了任何人员密集的商业建筑,在发生火灾时需要合理的引导,使建筑内分布的各个疏散楼梯使用率得到平均化,从而提高疏散的效率。
3 人员安全性分析
人员安全疏散的判定准则为:可用的安全疏散时间(ASET)应不小于必须的安全疏散时间(RSET)。如果上述标准成立,则可认为人员能够安全地从危险区域疏散出去,也即该建筑安全疏散系统设计符合要求。反之,则需要加强或改进消防措施。
对该项目火灾场景下通过人员疏散模拟,获取了RSET。其人员疏散的安全性分析见表4所示。
4 结 论
(1)利用Pathfinder 疏散模拟软件对某屋面透空型地下商业建筑的地下一层进行仿真模拟,人员疏散的过程基本符合真实情况下人员的疏散情况。
(2)疏散初期最有利于疏散人员对疏散通道的平均分布,疏散通道利用率较高,此时的疏散指示标志尤为重要。
(3)比较该项目火灾场景下必需的疏散时间(RSET)及已有的可用安全疏散时间(ASET),发现所模拟场景人员疏散是安全的。
(4)分析结果表明,对人员密集商业场所进行人员疏散时,需加以合理的疏散引导等相关疏散策略。
(5)基于该特定的场所,利用Pathfinder 疏散模拟软件得出的安全疏散时间有重要的参考价值,进而可以通过调整疏散人数、有效疏散出口数量和宽度等参数模拟出不同情形下的疏散结果。
摘要:针对地下商业建筑呈现出的规模大型化、结构复杂程度高、设计形式超越国家规范、火灾危险度大等特点,利用疏散软件Pathfinder对某屋面透空型大型地下商业建筑的特定场景进行人员疏散安全性模拟研究,基于其平面特点,最终给出了该地下商业建筑的人员疏散安全性分析。
关键词:地下商业建筑,人员疏散,性能化消防设计
参考文献
[1]张树平,景亚杰.大型商场建筑营业厅疏散人数的调查研究[J].消防科学与技术,2004,23(2):132-136.
[2]袁奕之.地下商场安全疏散设计有关问题分析[J].消防科学与技术,2009,28(6):412-415.
[3]王庆国.现代化商场安全疏散若干问题的分析与对策[J].沈阳航空工业学院学报,2006,(3):73-75.
摘要:通过“模拟银行”实训教学模式的构建,不断完善金融专业实践教学体系,给予学生校内实习实际体验角色的机会,提高人才培养质量。为银行等金融机构输送大批所需的高素质人才。为了更好的发挥好实训教学的作用,对现状进行分析,认识模拟银行的必要性,发现缺点和不足之处,及时改进完善。
关键词:模拟银行;金融专业;实习
一、模拟银行实训平台的概述
实训教学模式对于学生们来说首先是对整个金融体系的框架进行熟悉,在此框架下能有一个实质的目标去实现,了解和认识这个规则后,通过角色扮演,能更感兴趣的投入其中,在自己的岗位中发挥功能和作用。
社会需要应用型和创新型人才,要求把理论和实践相结合,既要有知识又要有能力,提高学生实际业务操作能力,增强学生的综合素质,从而增加就业竞争力。对院校来说,也是有利于专业品牌课程的建立。首先要把职业能力作为培养目标,建立一定规模的实训基地,实训基地的构建需要政府、社会、用人单位力量支持,制定专业技能标准,建造专业能力开发服务团队,配合着拥有适应社会需要的专业技术教育课程和讲座。
学年实习是建立在学生通过两年理论课程的基础上,让所学知识得以运用,增加对于理论知识的理解,提供给学生一个在校内提前接触社会、了解社会的实践机会,是教学工作中的一个重要环节。学生可以根据个人就业取向对岗位进行自主选择,通过实习前的培训,对于实习单位的基本概况有一个初步认识,了解其业务的相关环节,能更好的融入一个严谨高效的工作环境。
二、模拟银行实训平台的必要性
我国的应用型本科院校金融学专业的实践教学体系仍不够完善。虽然近年来对于实践教学体系研究的学者越来越多,但是能突出金融特色的实践教学体系构建层面切入进行研究的个案还比较少。总结现有的国内和国外成功的一些关于实践教学的案例和经验,形成应用型本科院校突出金融特色的实践教学改革体系刻不容缓。
我们都知道企业选择所需岗位人员时,首先在初步筛选中需要对面试者的逻辑思维能力和语言表达能力进行评判,其次要求面试者拥有专业操作技能。在现如今严峻的就业形势下,大学校内的模拟银行实训教学模式的出现,无疑使在校大学生提前体验业务操作流程,提高学生实际动手操作能力,能有优势在大批竞争者中能够脱颖而出,争取到就业机会。
教育工作中学生的理论和实践有所脱节,教师的讲课内容不能贴合实际,比较不便于学生理解和掌握。而且教师在讲台上一直讲,缺乏与学生的互动,学生就更没有学习的自主性和积极性。只能暂时短时间的记忆表面的一些理论,只有把理论的东西掌握牢靠,在真正参与工作时能有基础,才能更好的适应和融入工作中。
金融专业的毕业生多是去往银行,但是银行不可能提供给足够那么多人同时实习的环境,而且银行内部有很多机密文件,为了做好保密工作也不可能让实习的人进入核心职务,以往的学校联系的银行实 习,一家银行安排很多人,银行没有培训场地,也没有精力对实习的同学进行专门指导。学生只能在不影响银行正常办公的情况下,听和观看,不能进行实地的动手操作,长达两周的实习也就大多流于形式。
模拟银行致力于打造与银行真实环境相似度极高的供大批学生实习的环境。配套的软硬件设施,良好的网络环境,运用专门的老师培训,并对实习过程中进行跟踪式指导,让学生们能更好的体会岗位业务职责。这样学校做到了最大程度的专注于培养银行需要的人才。
三、推进模拟银行发展的建议
模拟银行要求把课堂内外和校园内外相结合,形成应用型本科院校金融学实践教学体系。打造出社会需要的应用型和创新型人才。需要我们把实践教学落实到实处,提高软硬件设施配备,加强与用人单位的联系,做到与先进单位制度体系和业务管理模式相对应,对于实习过程中的指导教师进行专业培训,形成实践教学制度体系,制定评价体系和考核标准,做好监督管理工作。编写配套教材,通过网上实践教学平台,搭建学生提前了解,过程中答疑,实习后总结研究的新途径。
(一)配备专业教师指导队伍
对于模拟银行实习前制定规则,过程中的答疑解惑,实习后能总结改进的教师队伍有着严格的要求。首先这批老师应该有新理念新思想,鼓励老师把课程教学与实验操作实践相结合。通过专业化系统培训,积极改进教学方法,引导学生提高自主学习能力。而且教师在实习过程中要给学生随时解答疑问,对于结题上交材料要进行审批,过程中总结失误。所以教师需要拥有专业能力,有总体意识规划,对于模拟银行实训要有热情和强烈的责任感。
(二)打造现代化高仿真实训基地
加强与银行业等金融机构的联系,时刻关注金融体制改革、金融工具创新和金融机构多元化经营趋势,以达到建立现代化高仿真银行的模拟环境。相似的银行办公条件,有序的岗位职责安排,还搭配着
购进的一些专业银行操作软件运用到实习过程中,提高学生对于现代化辅助工具的熟悉和熟练运用。
借助互联网信息技术的便捷性,搭建网上教育平台。学生模拟实习前可以通过网上教育平台进行预习,了解实习内容的总体框架,对一些概念模糊的问题可以进行搜索自主寻求答案。
(三)学生多角色尝试,指导老师给予就业指导
模拟银行实训基地,不仅仅有银行,还配备着包括与银行打交道的企业,有进行监管的机构,还有会计师事务所及涉及货物出口的海关机关单位。面向的专业也不仅仅是金融学专业,还包括国际经济与贸易、保险学、会计等专业。当然在选择之前,指导老师应该对学生进行框架性、系统性培训,让学生能真正了解一个职务所应尽的权利和义务,认真对待,慎重选择。在选择好自己适合的工作后,过程中还可以与其他同学进行有序的角色互换,角色互换后,指导老师根据学生平时表现,进行就业指导,帮学生找到真正适合的岗位。
(四)形成系统性实验教学体系
确定实验项目,制定实验大纲,填充实验具体内容,配套实验教材,开设实验课程,开展实习总结大会,师生之间进行交流讨论,提供给学生一个提高语言表达能力,发现问题寻求解决方法,挖掘集体能量的平台。指导老师也要对学生撰写实验报告进行指导,完善实验教学制度的制定,创造出适合学生,能发挥教学效果形成一定的实验教学规模,形成系统、科学的实验教学体系。
参考文献:
[1]林伟君,校内模拟银行实习基地的建设与管理[J],实验室研究与探索 2012.
[2]林伟君,模拟银行实验室的构建探讨[J],赤峰学院学报(自然科学版)2011.
[3]刘压平,“模拟银行”实训教学模式教学内容与课程设计[J],中外企业家 2015.
一、实验目的《商业银行综合业务模拟实验》应用先进的计算机网络技术以及商业银行综合业务模拟系统,采用以总行为数据中心的集中式数据网络系统方式,把银行日常业务处理的流程和各个环节全部纳入计算机处理,形成覆盖银行管理全方位的科学体系,实现网络互联、信息共享、查询自如、方便快捷的电子化管理,实现 “以客户为中心、以市场为导向、以风险控制为核心、以量化分析为主” 的管理机制。本课程采用的实验平台是“深圳智盛商业银行综合业务模拟系统”,该系统的最终目的是通过模拟的交易环境加强学生对现代商业银行理论知识的理解,训练学生的实际动手能力,满足专业课程的实验、实习及课程设计任务,为学生走向社会提供一个理论结合实际的实验环境,促使学生关注最新的商业银行信息技术,训练学生的实际操作能力,为金融专业及其它相关专业的学生走向社会提供一个良好的实习环境。
二、实验意义
1、通过对模拟银行软件和相关银行系统各个功能模块的具体操作,加深学生对银行实务中基本业务流程的理解和掌握,熟悉业务操作的关键要素。
2、由于本次模拟系统采用面向管理、服务、产品、客户和数据的全新概念设计,提出面向客户信息的设计方法,以客户信息文件为基础,构造客户信息管理子系统,为银行综合掌握客户状况、提供全面的客户追踪和决策分析手段提供便利,在一定程度上有助于学生理解现代商业银行综合业务面向客户的管理体系。
3、通过本课程教学,加强学生把商业银行业务经营的管理理论和实际操作相结合的能力,促进学生充分理解和运用金融法律、银行规章等知识,提高学生运用基本知识分析解决实际问题的创新思维和能力,为学生的成长成才奠定扎实的专业基础。同时,通过学习也能引导学生密切关注我国商业银行经营改革的现状与问题,以便提高学生观察问题、思考问题和解决问题的能力。
三、实验步骤
(一)个人业务
1、储蓄柜员初始操作和日初操作。设置个人储蓄系统的基本情况,处理与凭证相关的业务。其中,重点掌握重要空白凭证出库的思想和流程。
2、储蓄日常业务操作之个人储蓄业务。①开设普通客户和一卡通客户。②对不同类型账户进行开户、销户、存取款、部分提前支取等业务的处理。如:活期储蓄账户、整存整取账户、定活两便账户、零存整取账户、存本取息账户、通知存款账户、教育储蓄账户等。③一卡通、凭证的替换、挂失和解挂。
3、日常业务操作之特殊业务。主要包括表内记账、表外记账、信息维护、账户维护和交易维护。
4、储蓄日常业务之代理业务。主要包括代理合同新建、代理批量管理、逐笔代收、批量托收,并做日终处理,尾箱轧帐、凭证上缴和空白凭证入库。
(二)对公业务
1、对公柜员初始操作和对公日初处理。设置对公会计系统的基本情况,操作总行领用下发凭证,支行领用凭证以及凭证现金出库。
2、日常业务操作之对公存贷。新开客户号并开设基本存款账户和定期存款账户,进行一般活期存款、临时存款、贷款、汇票兑付等业务操作。
3、日常业务操作之个人贷款,包括消费贷款和助学贷款。
4、日常业务操作之结算业务。辖内业务包括现金、转账通存管理、现金、转账通兑管理;同城业务包括提出代付业务、提出代付退票;特约汇款业务包括签发特约汇证、兑付特约汇款证、开出特约汇款证、记联行往来帐、特约汇款证汇差清算等。
5、特殊业务操作。如:通用记账、信息、账户、交易维护、凭证管理、挂失和支票管理;并做对公日终处理,日终轧帐,凭证入库,现金入库,部门轧帐。
四、实验体会
本次商业银行综合业务模拟实验课程实践性很强,让我在各方面都得到了很大的提高,受益匪浅。
首先,通过这次实训,拓宽了自身的知识领域,对银行业务中的个人储蓄和对公操作有了较系统的认识和把握。此前我并未接触过任何银行方面的业务知
识,对具体操作的概念也很模糊。因而在实验刚开始时,有些摸不着头脑,对于业务流程和如何操作都不清楚,很多时候都要依赖教学演示。后来每开始一项业务的实验前,我都会认真的参看操作手册,并努力去弄清楚每一个操作步骤的具体意义以及一些容易出错的细节。经过一番钻研,在后面的业务操作中我终于能够独立完成,而不再依赖演示了,操作的熟练度和速度也明显提升了很多。虽然有些业务的流程操作还是相对繁琐,我在不经意间也犯了一些错误,但总体上我对各项业务的流程已经有一个相大概的蓝图。
其次,经过本课程的学习,我了解了银行业务运作的基本流程,掌握了前台、中台、后台的基本职能设置及分工协作。在本次实验中,有些操作需要转换角色才能进行,对此我一开始并不适应。但随着实验进程的不断深入,我逐渐学会了将银行系统的内外部结构联系起来,对前台、中台和后台的主要工作性质有了一定的把握,加深了对商业银行经营管理实践的认识,培养了运用所学知识综合分析和解决实际问题的能力以及实际操作能力。
最后,我就具体地谈下在“深圳智盛商业银行综合业务模拟系统”中学到的知识和取得的进步:
第一、加深了我对重要空白凭证的认识。记得上学期的“出纳岗位实务”课程对重要空白凭证有过大致的介绍,但当时对空白凭证丢失的严重性并没有直观感受。但本次以银行柜员的身份进行的上机操作,让我对重要空白凭证的理解进一步加深。重要空白凭证从保管、出入库,到领用、签发、核算和注销,都要严格按照管理要求,稍有差池都将导致严重的后果。我深刻地认识到,作为一名合格的银行从业人员,除了要具备良好的职业道德和专业技能之外,还需要不断培养自身的耐心和细心,对工作中的每一个环节都要用认真、专心的态度去对待,保证经济管理运作的有序进行。
第二、对银行专属业务的具体内容及重要区别的理解更全面。比如对基本户和一般户的关系的了解。首先,一个公司只可以开立一个基本户,用于日常结算,如提现、发放工资、转帐等;但却可以开立若干个一般户。两者最大的区别在于,一般户不能提现只能转账。由于缺少理论知识的基础,刚开始实验时我一直对此迷惑不解。后来经老师提点、并查阅相关资料后,方才恍然大悟。正是这样一步步的实际操作,让我在实践中不断发现和解决问题,从而逐步提高自身的业务素
质,再加上理论知识的有力补充,将理论与实际相结合,不仅培养了自主学习的意识和能力,也进一步促进了我们后续课程的开展。
第三,我还了解并体会到银行柜员的一些工作情况,基层工作相对比较枯燥,重复,还比较容易出现差错,但是如果是真心要从事这一方面工作,就要耐得住日复一日的循环往复。所谓事无巨细,成功就是简单的事情重复做,如果加之耐心、细心、持之以恒,这样每一天的工作、每一个的流程细节能给我们带来不同的感受和体会,这才是真正地做好它,做懂它。在实验中我遭遇过重要数据没有及时存档而出现丢失的情况,虽说最后将错处弥补了,但可以想象在实际工作中倘若出现类似情况会导致多么严重的后果。这也警醒我们,在往后的工作中要时刻锻炼自己的细心、耐心和恒心,为后续经济业务的处理做好扎实的准备。
课程设计报告
题 目: 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的整数倍,操作完成后会实时更新数据库内相应的内容。
修改密码:在旧密码相同的情况下,新密码和确认密码也相同的情况下,密码修改完成。
转账:可以转账任何金额,但是当转账金额小于余额时,转账失败。
手机缴费:需要缴费的手机号需时已经存在的,可以存任意金额。
管理员操作的基本功能包括对银行卡开户、销户、冻结、解冻、修改管理员密码等的操作,并在数据库内实时更新。项目功能实现
3.1数据库的实现
card表:主要是用户银行卡的信息,包括账号、密码、余额、是否被冻结、存款余额,其中account是varchar型的主键。
details表:主要是户主名account,日期和资金明细。
GLY表:包含所有管理员的信息。并对管理员的account设为主键。
3.2主要功能实现
3.2.1登录界面package atm_client;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import comm.Card;
import comm.CardGLY;
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(”取消“);
Itag.setFont(new Font(”“,Font.CENTER_BASELINE, 20));
btGLY.setFont(new Font(”“,Font.CENTER_BASELINE, 12));
btOK.setFont(new Font(”“,Font.CENTER_BASELINE, 12));
btCancel.setFont(new Font(”“,Font.CENTER_BASELINE, 12));
IAccount.setFont(new Font(”“,Font.CENTER_BASELINE, 18));
tfAccount.setFont(new Font(”“,Font.CENTER_BASELINE, 18));
tfPwd.setFont(new Font(”“,Font.CENTER_BASELINE, 18));
IPwd.setFont(new Font(”“,Font.CENTER_BASELINE, 18));
JPanel panelOne = new JPanel(null);
panelOne.setOpaque(false);
Itag.setBounds(120,15,350,30);
btOK.setBounds(40, 270, 100, 40);
btGLY.setBounds(160,270,100,40);
btCancel.setBounds(280,270,100,40);
tfAccount.setBounds(160,100,160,40);
IAccount.setBounds(90,105,80,40);
IPwd.setBounds(90, 165,80, 40);
tfPwd.setBounds(160,160,160,40);
panelOne.add(Itag);
panelOne.add(IPwd);
panelOne.add(IAccount);
panelOne.add(btCancel);
panelOne.add(btGLY);
panelOne.add(btOK);
panelOne.add(tfAccount);
panelOne.add(tfPwd);
this.add(panelOne);
this.setTitle(”精神小伙银行“);
this.setBounds(700, 250, 450, 400);
this.setVisible(true);
//监听
//普通用户登录
btOK.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
// TODO Auto-generated method stub
String account=tfAccount.getText();
String pwd=new String(tfPwd.getPassword());
BufferedReader br=null;
PrintWriter pw=null;
String strEcho=”“;
try {
Socket s=new Socket(InetAddress.getByName(”127.0.0.1“), 8009);
br=new BufferedReader(new InputStreamReader(s.getInputStream()));
pw=new PrintWriter(s.getOutputStream());
pw.write(”Loginrn“);
pw.write(account+”rn“);
pw.write(pwd+”rn“);
pw.flush();
strEcho=br.readLine();
if(strEcho.equals(”1“)){
JOptionPane.showMessageDialog(Login.this, ”对不起,您的账号有误!“);
tfAccount.setText(”“);
tfPwd.setText(”“);
}else if(strEcho.equals(”2“)){
float money =Float.parseFloat(br.readLine());
String dongjie=br.readLine();
String name=br.readLine();
currCard=new Card(account,pwd,money,dongjie,name);
JOptionPane.showMessageDialog(Login.this, ”欢迎登录河北金苑银行!“);
Login.this.dispose();
new MainFrame(br,pw,currCard).init();
}else if(strEcho.equals(”3“)){
count++;
if(count==3){
JOptionPane.showMessageDialog(Login.this, ”对不起,密码错误3次,您的卡已被冻结!请联系管理员“);
pw.write(”dongjiern“);
pw.flush();
Login.this.dispose();
}else {
JOptionPane.showMessageDialog(Login.this,”密码错误,请重新输入“);
String c=String.valueOf(count);
pw.write(c+”rn“);
pw.flush();
}
}else if(strEcho.equals(”4“)){
JOptionPane.showMessageDialog(Login.this,”对不起,您的卡已被冻结,请联系管理员“);
Login.this.dispose();
}
} catch(UnknownHostException e1){
// TODO Auto-generated catch block
e1.printStackTrace();
} catch(IOException e1){
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
//管理员登录
btGLY.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
// TODO Auto-generated method stub
String account=tfAccount.getText();
String pwd=new String(tfPwd.getPassword());
BufferedReader br=null;
PrintWriter pw=null;
String strEcho=”“;
try {
Socket s=new Socket(InetAddress.getByName(”127.0.0.1“), 8009);
br=new BufferedReader(new InputStreamReader(s.getInputStream()));
pw=new PrintWriter(s.getOutputStream());
pw.write(”GLYrn“);
pw.write(account+”rn“);
pw.write(pwd+”rn“);
pw.flush();
strEcho=br.readLine();
if(strEcho.equals(”9“)){
JOptionPane.showMessageDialog(Login.this, ”对不起,您的账号有误!“);
tfAccount.setText(”“);
tfPwd.setText(”“);
}else if(strEcho.equals(”8“)){
JOptionPane.showMessageDialog(Login.this,”您已经以管理员身份登录!“);
Login.this.dispose();
new MainFrameGLY(br,pw,currCardGLY).init();
}else if(strEcho.equals(”7“)){
JOptionPane.showMessageDialog(Login.this,”您的密码错误“);
}
} catch(UnknownHostException e1){
// TODO Auto-generated catch block
e1.printStackTrace();
} catch(IOException e1){
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
btCancel.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
// TODO Auto-generated method stub
Login.this.dispose();
}
});
}
public static void main(String[] args){
new Login().init();
}
}
3.2.2普通存款界面package atm_client;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.PrintWriter;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import comm.Card;
import atm_client.Take;
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){
this.br=br;
this.pw=pw;
this.currCard=currCard;
}
public void init(){
JPanel panelTake = new JPanel(null);
panelTake.setBackground(new Color(119,119,253));
JLabel lblqukuan = new JLabel(”请输入您的存款数:“);
panelTake.add(lblqukuan);
lblqukuan.setBounds(115, 20, 150, 30);
lblqukuan=new JLabel(”提示:只能是100元或100元的整数倍。“);
panelTake.add(lblqukuan);
lblqukuan.setBounds(115, 50, 300, 30);
tfmoney=new JTextField(12);
tfmoney.setEnabled(false);
panelTake.add(tfmoney);
tfmoney.setBounds(115,90,200,30);
bt100=new JButton(”100“);
panelTake.add(bt100);
bt100.addActionListener(this);
bt100.setBounds(45,190,60,30);
bt200=new JButton(”200“);
panelTake.add(bt200);
bt200.addActionListener(this);
bt200.setBounds(115,190,60,30);
bt300=new JButton(”300“);
panelTake.add(bt300);
bt300.addActionListener(this);
bt300.setBounds(185,190,60,30);
bt500=new JButton(”500“);
panelTake.add(bt500);
bt500.addActionListener(this);
bt500.setBounds(255,190,60,30);
bt1000=new JButton(”1000“);
panelTake.add(bt1000);
bt1000.addActionListener(this);
bt1000.setBounds(325,190,65,30);
bt001=new JButton(”1“);
panelTake.add(bt001);
bt001.addActionListener(this);
bt001.setBounds(45,230,60,30);
bt002=new JButton(”2“);
panelTake.add(bt002);
bt002.addActionListener(this);
bt002.setBounds(115,230,60,30);
bt003=new JButton(”3“);
panelTake.add(bt003);
bt003.addActionListener(this);
bt003.setBounds(185,230,60,30);
bt004=new JButton(”4“);
panelTake.add(bt004);
bt004.addActionListener(this);
bt004.setBounds(255,230,60,30);
bt005=new JButton(”5“);
panelTake.add(bt005);
bt005.addActionListener(this);
bt005.setBounds(325,230,65,30);
bt006=new JButton(”6“);
panelTake.add(bt006);
bt006.addActionListener(this);
bt006.setBounds(45,270,60,30);
bt007=new JButton(”7“);
panelTake.add(bt007);
bt007.addActionListener(this);
bt007.setBounds(115,270,60,30);
bt008=new JButton(”8“);
panelTake.add(bt008);
bt008.addActionListener(this);
bt008.setBounds(185,270,60,30);
bt009=new JButton(”9“);
panelTake.add(bt009);
bt009.addActionListener(this);
bt009.setBounds(255,270,60,30);
bt000=new JButton(”0“);
panelTake.add(bt000);
bt000.addActionListener(this);
bt000.setBounds(325,270,65,30);
btOK=new JButton(”确定“);
panelTake.add(btOK);
btOK.addActionListener(this);
btOK.setBounds(70,140,80,30);
btRetry=new JButton(”重输“);
panelTake.add(btRetry);
btRetry.addActionListener(this);
btRetry.setBounds(175,140,80,30);
btCancel=new JButton(”返回“);
panelTake.add(btCancel);
btCancel.addActionListener(this);
btCancel.setBounds(280,140,80,30);
this.setTitle(”存款!“);
this.add(panelTake);
this.setSize(435,350);
this.setVisible(true);
this.setLocation(500, 250);
}
@Override
public void actionPerformed(ActionEvent arg0){
// TODO Auto-generated method stub
if(arg0.getSource()==bt100||arg0.getSource()==bt200||arg0.getSource()==bt300||arg0.getSource()==bt500||arg0.getSource()==bt1000)
tfmoney.setText(arg0.getActionCommand());
else if(arg0.getSource()==bt000||arg0.getSource()==bt001||arg0.getSource()==bt002||arg0.getSource()==bt003||arg0.getSource()==bt004||arg0.getSource()==bt005||arg0.getSource()==bt006||arg0.getSource()==bt007||arg0.getSource()==bt008||arg0.getSource()==bt009){
tfmoney.setText(tfmoney.getText()+arg0.getActionCommand());
}else if(arg0.getSource()==btOK){
int saveMoney=Integer.parseInt(tfmoney.getText());
if(saveMoney%100!=0){
JOptionPane.showMessageDialog(Save.this, ”对不起,您输入的金额不符合规定!“);
tfmoney.setText(”“);
}
else{
//发送新的账户信息给服务器
pw.write(”savern“);
pw.write(saveMoney+”rn“);
pw.flush();
//等待响应,更新当前登录账号
String strEcho=”“;
try {
strEcho = br.readLine();
if(strEcho.equals(”Success“)){
currCard.setMoney(currCard.getMoney()+saveMoney);
JOptionPane.showMessageDialog(null, ”恭喜你成功存款“+saveMoney+”元n当前账户余额为:“+currCard.getMoney());
tfmoney.setText(”“);
} else if(strEcho.equals(”Failure“)){
JOptionPane.showMessageDialog(Save.this,”存款失败“);
}
} catch(IOException e){
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}else if(arg0.getSource()==btCancel){
Save.this.dispose();
new MainFrame(br,pw,currCard).init();
}else if(arg0.getSource()==btRetry){
tfmoney.setText(”“);
}
}
}
3.2.3用户转账界面package atm_client;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.PrintWriter;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import comm.Card;
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){
this.br=br;
this.pw=pw;
this.currCard=currCard;
}
public void init(){
JPanel panelTrans=new JPanel(null);
panelTrans.setLayout(new GridLayout(3,2));
lAccount =new JLabel(”账户:“);
lMoney =new JLabel(”金额:“);
btOk = new JButton(”确定“);
btCancel = new JButton(”取消“);
Taccount=new JTextField();
Tmoney = new JTextField();
panelTrans.add(lAccount);
panelTrans.add(Taccount);
panelTrans.add(lMoney);
panelTrans.add(Tmoney);
panelTrans.add(btOk);
panelTrans.add(btCancel);
this.add(panelTrans);
this.setTitle(”转账!“);
this.setSize(300,160);
this.setLocation(500, 250);
this.setVisible(true);
//this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
btOk.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
// TODO Auto-generated method stub
if(Taccount.getText().equals(”“)){
JOptionPane.showMessageDialog(Trans.this, ”请输入账号“);
}else if(Tmoney.getText().equals(”“)){
JOptionPane.showMessageDialog(Trans.this, ”请输入金额“);
}else {
pw.write(”transrn“);
pw.write(Taccount.getText()+”rn“);
pw.write(Tmoney.getText()+”rn“);
pw.flush();
String strEcho=”“;
try {
strEcho=br.readLine();
if(strEcho.equals(”Success“)){
currCard.setMoney(currCard.getMoney()-Float.parseFloat(Tmoney.getText()));
JOptionPane.showMessageDialog(Trans.this, ”转账成功“);
}else if(strEcho.equals(”1“)){
JOptionPane.showMessageDialog(Trans.this, ”账号不存在“);
}else if(strEcho.equals(”2“)){
JOptionPane.showMessageDialog(Trans.this,”不能向自己转账“);
}else if(strEcho.equals(”3“)){
JOptionPane.showMessageDialog(Trans.this,”余额不足“);
}else if(strEcho.equals(”Fuilure“)){
JOptionPane.showMessageDialog(Trans.this,”转账失败“);
}
} catch(IOException e1){
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
});
btCancel.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
// TODO Auto-generated method stub
Trans.this.dispose();
}
});
}
}
3.2.4手机缴费package atm_client;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.PrintWriter;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import comm.Card;
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){
this.br=br;
this.pw=pw;
this.currCard=currCard;
}
public void init(){
JPanel panelTrans=new JPanel(null);
panelTrans.setLayout(new GridLayout(3,2));
INumber =new JLabel(”账户:“);
lMoney =new JLabel(”金额:“);
btOk = new JButton(”确定“);
btCancel = new JButton(”取消“);
TNumber=new JTextField();
Tmoney = new JTextField();
panelTrans.add(INumber);
panelTrans.add(TNumber);
panelTrans.add(lMoney);
panelTrans.add(Tmoney);
panelTrans.add(btOk);
panelTrans.add(btCancel);
this.add(panelTrans);
this.setTitle(”手机缴费!“);
this.setSize(300,160);
this.setLocation(500, 250);
this.setVisible(true);
//this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
btOk.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
// TODO Auto-generated method stub
if(TNumber.getText().equals(”“)){
JOptionPane.showMessageDialog(Communi.this, ”请输入手机号“);//导入类——消息对话框
}else if(Tmoney.getText().equals(”“)){
JOptionPane.showMessageDialog(Communi.this, ”请输入金额“);
}else {
pw.write(”communirn“);
pw.write(TNumber.getText()+”rn“);
pw.write(Tmoney.getText()+”rn“);
pw.flush();
String strEcho=”“;
try {
strEcho=br.readLine();
if(strEcho.equals(”Success“)){
currCard.setMoney(currCard.getMoney()-Float.parseFloat(Tmoney.getText()));
JOptionPane.showMessageDialog(Communi.this, ”充值成功“);
Communi.this.dispose();
}else if(strEcho.equals(”1“)){
JOptionPane.showMessageDialog(Communi.this, ”手机号不存在“);
}else if(strEcho.equals(”2“)){
JOptionPane.showMessageDialog(Communi.this,”余额不足“);
}else if(strEcho.equals(”Fuilure“)){
JOptionPane.showMessageDialog(Communi.this,”充值失败“);
}
} catch(IOException e1){
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
});
btCancel.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
// TODO Auto-generated method stub
Communi.this.dispose();
}
});
}
}
3.2.5用户取款package atm_client;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.PrintWriter;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import comm.Card;
import atm_client.Take;
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){
this.br=br;
this.pw=pw;
this.currCard=currCard;
}
public void init(){
JPanel panelTake = new JPanel(null);
panelTake.setBackground(new Color(119,119,253));
JLabel lblqukuan = new JLabel(”请输入您要取的钱数:“);
panelTake.add(lblqukuan);
lblqukuan.setBounds(115, 20, 150, 30);
lblqukuan=new JLabel(”提示:只能是100元或100元的整数倍。“);
panelTake.add(lblqukuan);
lblqukuan.setBounds(115, 50, 300, 30);
tfmoney=new JTextField(12);
tfmoney.setEnabled(false);
panelTake.add(tfmoney);
tfmoney.setBounds(115,90,200,30);
bt100=new JButton(”100“);
panelTake.add(bt100);
bt100.addActionListener(this);
bt100.setBounds(45,190,60,30);
bt200=new JButton(”200“);
panelTake.add(bt200);
bt200.addActionListener(this);
bt200.setBounds(115,190,60,30);
bt300=new JButton(”300“);
panelTake.add(bt300);
bt300.addActionListener(this);
bt300.setBounds(185,190,60,30);
bt500=new JButton(”500“);
panelTake.add(bt500);
bt500.addActionListener(this);
bt500.setBounds(255,190,60,30);
bt1000=new JButton(”1000“);
panelTake.add(bt1000);
bt1000.addActionListener(this);
bt1000.setBounds(325,190,65,30);
bt001=new JButton(”1“);
panelTake.add(bt001);
bt001.addActionListener(this);
bt001.setBounds(45,230,60,30);
bt002=new JButton(”2“);
panelTake.add(bt002);
bt002.addActionListener(this);
bt002.setBounds(115,230,60,30);
bt003=new JButton(”3“);
panelTake.add(bt003);
bt003.addActionListener(this);
bt003.setBounds(185,230,60,30);
bt004=new JButton(”4“);
panelTake.add(bt004);
bt004.addActionListener(this);
bt004.setBounds(255,230,60,30);
bt005=new JButton(”5“);
panelTake.add(bt005);
bt005.addActionListener(this);
bt005.setBounds(325,230,65,30);
bt006=new JButton(”6“);
panelTake.add(bt006);
bt006.addActionListener(this);
bt006.setBounds(45,270,60,30);
bt007=new JButton(”7“);
panelTake.add(bt007);
bt007.addActionListener(this);
bt007.setBounds(115,270,60,30);
bt008=new JButton(”8“);
panelTake.add(bt008);
bt008.addActionListener(this);
bt008.setBounds(185,270,60,30);
bt009=new JButton(”9“);
panelTake.add(bt009);
bt009.addActionListener(this);
bt009.setBounds(255,270,60,30);
bt000=new JButton(”0“);
panelTake.add(bt000);
bt000.addActionListener(this);
bt000.setBounds(325,270,65,30);
btOK=new JButton(”确定“);
panelTake.add(btOK);
btOK.addActionListener(this);
btOK.setBounds(70,140,80,30);
btRetry=new JButton(”重输“);
panelTake.add(btRetry);
btRetry.addActionListener(this);
btRetry.setBounds(175,140,80,30);
btCancel=new JButton(”返回“);
panelTake.add(btCancel);
btCancel.addActionListener(this);
btCancel.setBounds(280,140,80,30);
this.setTitle(”取款!“);
this.add(panelTake);
this.setSize(435,350);
this.setVisible(true);
this.setLocation(500, 250);
}
@Override
public void actionPerformed(ActionEvent arg0){
// TODO Auto-generated method stub
if(arg0.getSource()==bt100||arg0.getSource()==bt200||arg0.getSource()==bt300||arg0.getSource()==bt500||arg0.getSource()==bt1000)
tfmoney.setText(arg0.getActionCommand());
else if(arg0.getSource()==bt000||arg0.getSource()==bt001||arg0.getSource()==bt002||arg0.getSource()==bt003||arg0.getSource()==bt004||arg0.getSource()==bt005||arg0.getSource()==bt006||arg0.getSource()==bt007||arg0.getSource()==bt008||arg0.getSource()==bt009){
tfmoney.setText(tfmoney.getText()+arg0.getActionCommand());
}else if(arg0.getSource()==btOK){
int takeMoney=Integer.parseInt(tfmoney.getText());
if(currCard.getMoney() JOptionPane.showMessageDialog(Take.this, ”对不起,您的余额不足!“); tfmoney.setText(”“); }else if(takeMoney%100!=0){ JOptionPane.showMessageDialog(Take.this, ”对不起,您输入的金额不符合规定!“); tfmoney.setText(”“); } else{ //发送新的账户信息给服务器 pw.write(”takern“); pw.write(takeMoney+”rn“); pw.flush(); //等待响应,更新当前登录账号 String strEcho=”“; try { strEcho = br.readLine(); if(strEcho.equals(”Success“)){ currCard.setMoney(currCard.getMoney()-takeMoney); JOptionPane.showMessageDialog(null, ”恭喜你成功取款“+takeMoney+”元n当前账户余额为:“+currCard.getMoney()); tfmoney.setText(”“); } else if(strEcho.equals(”Failure“)){ JOptionPane.showMessageDialog(Take.this,”取款失败“); } } catch(IOException e){ // TODO Auto-generated catch block e.printStackTrace(); } } }else if(arg0.getSource()==btCancel){ Take.this.dispose(); }else if(arg0.getSource()==btRetry){ tfmoney.setText(”“); } } } } 3.2.6冻结 package atm_client; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.IOException; import java.io.PrintWriter; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextField; import comm.CardGLY; 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){ this.br=br; this.pw=pw; this.currCardGLY=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(”取消“); Itag.setFont(new Font(”“,Font.CENTER_BASELINE, 20)); btOK.setFont(new Font(”“,Font.CENTER_BASELINE, 12)); btCancel.setFont(new Font(”“,Font.CENTER_BASELINE, 12)); IAccount.setFont(new Font(”“,Font.CENTER_BASELINE, 18)); Account.setFont(new Font(”“,Font.CENTER_BASELINE, 18)); Name.setFont(new Font(”“,Font.CENTER_BASELINE, 18)); IName.setFont(new Font(”“,Font.CENTER_BASELINE, 18)); JPanel panelOne = new JPanel(null); panelOne.setOpaque(false); Itag.setBounds(80,15,350,30); btOK.setBounds(80, 270, 100, 40); btCancel.setBounds(240,270,100,40); Account.setBounds(160,100,160,40); IAccount.setBounds(90,105,80,40); IName.setBounds(90, 165,80, 40); Name.setBounds(160,160,160,40); btCancel.addActionListener(this); btOK.addActionListener(this); panelOne.add(Itag); panelOne.add(IName); panelOne.add(IAccount); panelOne.add(btCancel); panelOne.add(btOK); panelOne.add(Account); panelOne.add(Name); this.add(panelOne); this.setTitle(”代小龙+安梓玮+侯硕“); this.setBounds(700, 250, 450, 400); this.setVisible(true); } @Override public void actionPerformed(ActionEvent arg0){ // TODO Auto-generated method stub if(arg0.getSource()==btOK){ if(Account.getText().equals(”“)||Name.getText().equals(”“)){ JOptionPane.showMessageDialog(DongJie.this,”用户名和账号不能为空“); }else { pw.write(”dongjiern“); pw.write(Account.getText()+”rn“); pw.write(Name.getText()+”rn“); pw.flush(); System.out.println(Name.getText()+Name.getText()); try { String strEcho=br.readLine(); if(strEcho.equals(”9“)){ JOptionPane.showMessageDialog(DongJie.this, ”账号不存在,请重新输入“); Account.setText(”“); Name.setText(”“); }else if(strEcho.equals(”7“)){ JOptionPane.showMessageDialog(DongJie.this, ”冻结成功“); DongJie.this.dispose(); new Ask(br, pw, currCardGLY).init(); }else if(strEcho.equals(”5“)){ JOptionPane.showMessageDialog(DongJie.this, ”用户名错误“); Name.setText(”“); }else if(strEcho.equals(”6“)){ JOptionPane.showMessageDialog(DongJie.this, ”您的账号已被冻结“); DongJie.this.dispose(); }else if(strEcho.equals(”8“)){ JOptionPane.showMessageDialog(DongJie.this, ”冻结失败“); } } catch(IOException e){ // TODO Auto-generated catch block e.printStackTrace(); } } }else if(arg0.getSource()==btCancel){ DongJie.this.dispose(); } } } package atm_client; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.IOException; import java.io.PrintWriter; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JTextField; import comm.CardGLY; 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){ this.br=br; this.pw=pw;//文本字节流写入 this.currCardGLY=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(); Itag.setFont(new Font(”“,Font.CENTER_BASELINE, 20)); Iname.setFont(new Font(”“,Font.CENTER_BASELINE, 18)); tfmoney.setFont(new Font(”“,Font.CENTER_BASELINE, 18)); tfname.setFont(new Font(”“,Font.CENTER_BASELINE, 18)); tfpwd.setFont(new Font(”“,Font.CENTER_BASELINE, 18)); tfpwd1.setFont(new Font(”“,Font.CENTER_BASELINE, 18)); Ipwd.setFont(new Font(”“,Font.CENTER_BASELINE, 18)); Ipwd1.setFont(new Font(”“,Font.CENTER_BASELINE, 18)); Imoney.setFont(new Font(”“,Font.CENTER_BASELINE, 18)); btOK.setFont(new Font(”“,Font.CENTER_BASELINE, 12)); btCancel.setFont(new Font(”“,Font.CENTER_BASELINE, 12)); JPanel panelOne = new JPanel(null); panelOne.setOpaque(false);//设置控件透明 Itag.setBounds(80,15,350,30); Iname.setBounds(70,85,80,40); tfname.setBounds(200,80,160,40); Ipwd.setBounds(70, 135, 80, 40); tfpwd.setBounds(200, 130, 160, 40); Ipwd1.setBounds(70, 185,80, 40); tfpwd1.setBounds(200, 180, 160, 40); Imoney.setBounds(70, 235, 80, 40); tfmoney.setBounds(200, 230, 160, 40); btOK.setBounds(80, 280, 100, 40); btCancel.setBounds(240,280,100,40); btOK.addActionListener(this); btCancel.addActionListener(this); panelOne.add(Itag); panelOne.add(Iname); panelOne.add(Ipwd); panelOne.add(Ipwd1); panelOne.add(Imoney); panelOne.add(tfname); panelOne.add(tfpwd); panelOne.add(tfpwd1); panelOne.add(tfmoney); panelOne.add(btCancel); panelOne.add(btOK); this.add(panelOne); this.setTitle(”代小龙+安梓玮+侯硕“); this.setBounds(700, 250, 450, 400); this.setVisible(true); } //监听button.@Override //socket编程,client发出消息,在Server中接收,并且在接收时采用readline()方法时需要注意,//readline()方法要读到分隔符才会完成读取操作,用pw.write,或者pw.println public void actionPerformed(ActionEvent arg0){ // TODO Auto-generated method stub if(arg0.getSource()==btOK){ //如果事件源始按钮OK,则进行下面操作 if(tfname.getText().equals(”“)||tfpwd.getText().equals(”“)||tfpwd.getText().equals(”“)){ JOptionPane.showMessageDialog(Open.this,”账号密码不能为空“);//导入类——消息对话框 }else if(!tfpwd.getText().equals(tfpwd1.getText())){ JOptionPane.showMessageDialog(Open.this,”两次输入的密码不相同“); tfpwd.setText(”“); tfpwd1.setText(”“); }else if(tfmoney.getText().equals(”“)){ JOptionPane.showMessageDialog(Open.this,”若不需要存钱,请输入0“); }else if(tfpwd.getText().equals(tfpwd1.getText())&&!tfname.getText().equals(”“)&&!tfmoney.getText().equals(”“)){ pw.write(”openrn“);//在服务器获取输入流写入一段字符 pw.write(tfname.getText()+”rn“); pw.write(tfpwd.getText()+”rn“); pw.write(tfmoney.getText()+”rn“); pw.flush(); try { String strEcho=br.readLine(); if(strEcho.equals(”1“)){ JOptionPane.showMessageDialog(Open.this,”开户失败!有用户名重复的可能!“); }else if(strEcho.equals(”2“)){ String account=br.readLine(); JOptionPane.showMessageDialog(Open.this,”开户成功!您的账号为“+account+”,请牢记您的账号“); Open.this.dispose(); } } catch(IOException e){ // TODO Auto-generated catch block e.printStackTrace(); } } }else if(arg0.getSource()==btCancel){ Open.this.dispose(); } } } package atm_client; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.IOException; import java.io.PrintWriter; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JTextField; import comm.CardGLY; 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){ this.br=br; this.pw=pw; this.currCardGLY=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(”取消“); Itag.setFont(new Font(”“,Font.CENTER_BASELINE, 20)); btOK.setFont(new Font(”“,Font.CENTER_BASELINE, 12)); btCancel.setFont(new Font(”“,Font.CENTER_BASELINE, 12)); IAccount.setFont(new Font(”“,Font.CENTER_BASELINE, 18)); tfAccount.setFont(new Font(”“,Font.CENTER_BASELINE, 18)); tfPwd.setFont(new Font(”“,Font.CENTER_BASELINE, 18)); IPwd.setFont(new Font(”“,Font.CENTER_BASELINE, 18)); JPanel panelOne = new JPanel(null); panelOne.setOpaque(false); Itag.setBounds(120,15,350,30); btOK.setBounds(80, 270, 100, 40); btCancel.setBounds(240,270,100,40); tfAccount.setBounds(160,100,160,40); IAccount.setBounds(90,105,80,40); IPwd.setBounds(90, 165,80, 40); tfPwd.setBounds(160,160,160,40); btCancel.addActionListener(this); btOK.addActionListener(this); panelOne.add(Itag); panelOne.add(IPwd); panelOne.add(IAccount); panelOne.add(btCancel); panelOne.add(btOK); panelOne.add(tfAccount); panelOne.add(tfPwd); this.add(panelOne); this.setTitle(”代小龙+安梓玮+侯硕“); this.setBounds(700, 250, 450, 400); this.setVisible(true); } @Override public void actionPerformed(ActionEvent arg0){ // TODO Auto-generated method stub if(arg0.getSource()==btOK){ String account=tfAccount.getText(); String pwd=new String(tfPwd.getPassword()); pw.write(”closern“); pw.write(account+”rn“); pw.write(pwd+”rn“); pw.flush(); String strEcho; try { strEcho=br.readLine(); if(strEcho.equals(”7“)){ JOptionPane.showMessageDialog(Close.this, ”销户成功“); }else if(strEcho.equals(”9“)){ JOptionPane.showMessageDialog(Close.this, ”您输入的账号不存在“); tfAccount.setText(”“); tfPwd.setText(”“); }else if(strEcho.equals(”8“)){ JOptionPane.showMessageDialog(Close.this, ”销户失败“); }else if(strEcho.equals(”6“)){ JOptionPane.showMessageDialog(Close.this, ”您的密码错误“); tfPwd.setText(”"); } } catch(IOException e){ // TODO Auto-generated catch block e.printStackTrace(); } }else if(arg0.getSource()==btCancel){ Close.this.dispose(); } } }项目总结及展望 本次课程设计主要做的是模拟ATM机,在实现传统的ATM机基础功能的情况下,我们还增添新的内容,用户明细以及话费缴费。实现了普通用户与管理员登录。管理员对用户账号的冻结,解冻。连接数据库并实时更新。将普通用户和管理员的信息分别放在两个表中。 在实现过程中,由于考虑和实现不充分,表的结构过于简单。在实现话费充值上号码预存实现的不人性化,我们后续会加以完善。在接下来的学习中,我们想更加完善ATM功能,并增加新的特色,完善界面。心得体会 通过这次的c/s程序设计,从了解用户需求,到设计数据库,编写代码,连接数据库,调试程序,实现功能我们都得到了很大的进步,我们遇到过很多Bug,我们请教别人,上网查询,最终可以说是得到解决,把老师在课上所授的知识应用到实践中去。c/s程序设计中,是java与连接数据库的统一。为了防止开户生成的账号重复,我们在数据库中对相应的表设置主键,以免重复,在明细中,我们修复了很多问题,克服了很多困难,最终得以实现,感谢申晨老师的帮助,让我们更加深入了解Java语言设计并应用到实践中去。感受到了Java语言编程的魅力,在接下来的时间中,我们不会停止对Java网络项目编程的探索和学习。 参 考 文 献 [1] Eric.Java编程思想[M].第4版.机械工业出版社, 机械工业出版社 [2] JAVA从入门到精通[M].北京:清华大学出版社, 2005.4 [3]萨师煊,王珊.《数据库系统概论》.高等教育出版社,2002.2 [4] Brown.JAVA编程指南(第二版)[M].电子工业出版社,2003.3 [5] 清宏计算机工作室.JAVA编程技巧[M].机械工业出版社,2004.5 发布人:圣才学习网 发布日期:2010-06-20 16:40 共590人浏览[大] [中] [小] 所属栏目:考试试卷 一、名词解释(每题4分,共20分) 1.易变性存款 2.内部评级法 3.国际保理 4.利率双限 5.补偿余额 二、判断题(对则划√,错则划×,每题2分,共20分) 1.资产负债表是总括银行在一定时期全部资产、负债与所有者权益的财务报表,是一个动态会计报表。() 2.抵押率低说明银行对贷款比较谨慎,相反则比较宽松。() 3.商业银行的流动性需求来自于存款客户的体现需求。() 4.商业银行的资产是指商业银行自身拥有的或者能永久支配使用的资金。() 5.电子化趋势下,无纸化操作降低了银行监管的难度。() 6.Z评分模型无法计量客户财务报表外的信用风险。() 7.同步准备金计算法主要适用于对非交易性帐户存款准备金的计算。() 8.成本加成贷款定价法是以若干大银行同意的优惠利率为基础,考虑到违约风险补偿和期限风险补偿,而后制订贷款利率。() 9.《巴塞尔协议》要求商业银行最低核心资本充足限额为风险资产的8%。() 10.特殊呆账准备金是依据贷款分类结果按照不同的比例提取的准备金。() 三、简答题(每题12分,共36分) 1.商业银行并购的动机有哪些?我国银行业并购有哪些特点? 2.借款企业的信用支持主要方式有哪些?银行应该如何控制和管理这些信用支持? 3.商业银行如何进行流动性需求与来源地协调管理? 四、问答题(24分) 商业银行为什么要发展消费信贷?制约我国消费信贷发展的制度性因素有哪些? 参考答案 一、名词解释(每题4分,共20分) 1.易变性存款 对市场利率的波动及外部经济因素变动敏感的存款。该类存款稳定性差,不能作为银行稳定资金的 2.内部评级法 新巴塞尔协议中用于评定信用风险的方法。指银行内部自身制订的信用评级方法,但需要得到监管当局的明确批准。分为初级和高级,其中初级银行只用自己确定违约概率,而高级中所有数据均有银行制订。适合于管理水平高的银行。 3.国际保理 指银行买断出口商或债权人的债务并提供一系列综合金融服务的国际银行业务,该买断银行无追索权。这一系列综合服务包括信用调查管理、债款追收和坏账买断等。 4.利率双限 指银行为管理利率风险而设立的利率上下限,使得利率只能在一定范围内波动,从而避免了利率过度波动带来的银行风险暴露。 5.补偿余额 指存款人同意将自己存款的一部分存入贷款银行,从而提高了资金使用价格。银行通过要求补偿余额,可以提高贷款的税前收益率,并将存入存款用于扩大信贷规模。 二 判断题(对则划√,错则划,每题2分,共20分) 1. × 2.√ 3.× 4.× 5.× 6.√ 7.× 8.× 9.× 10.× 三 简答题(每题12分,共36分) 1.商业银行并购的动机有哪些?我国银行业并购有哪些特点? 答:商业银行并购的动力来自于追求利润的要求和竞争压力,而推动银行并购的主体则是股东和银行管理者。银行持股人希望提高他们的财富或减少风险以提高其福利;银行的管理者希望获得更多的利益;股东和管理者都希望从兼并中获得利益。 对股东,若并购增值(即并购后总体价值-并购前两银行单独的价值之和),大于并购的成本,他们便会促成并购。同时并购往往还能带来规模经济和范围经济,这也是股东进行并购的动机。 对管理者,很多时候并非理性地以股东权益最大化为目标,而是追逐自身的利益。如:追求银行规模的扩大;分散风险,使得成本与损失尽可能的低;避免被收购等。 我国银行并购的特点表现为: (1)历史发展短,类型比较单一,并购经验比较缺乏; (2)并购中必要的中介者——投资银行,在我国还处于初级发展阶段,真正意义的投资银行寥寥无几。 (3)我国相当一部分的银行并购并非出于优势互补、提高经营效益的目的,而是在经营混乱、资不抵债后发生的带有接受管理性质的行为。 (4)并购的性质往往并非出于自愿而是政府强制的。 (5)并购的结果往往是低效率,对收购方影响不好。 2.借款企业的信用支持主要方式有哪些?银行应该如何控制和管理这些信用支持? 答:借款企业的信用支持是贷款偿还的第二层保障,主要方式有: (1)抵押。抵押时借款人或第三人在不转移财产占有权的情况下,将财产作为债权的担保。当借款人不履行借款合同时,银行有权以该财产折价或者以拍卖、变卖该财产的价款优先受偿。充当抵押物的财产应保证其具有较高的流动性。 (2)质押。质押是指借款人或者第三人将其动产或权利移交银行占有,将该动产或权利作为债权的担保。当借款人不履行债务时,银行有权将该动产或权利折价出售来收回借款,或者以拍卖、变卖该动产或权利的价款优先受偿。质押分为动产质押和权利质押。 (3)保证。保证是指银行、借款人和第三方签订一个保证协议,当借款人违约或无力规划贷款时,由保证人按照约定发行债券或者承担相应的责任。因此,银行必须充分了解保证人的财务实力和信誉。 (4)附属合同。附属合同是由借款人的其他债权人签署的,同意对银行贷款负第二责任的协议,作用是为银行提供对其他债权人的债权清偿优先权。 银行依法获得信用支持,还要对信用支持进行妥善的管理,这是防范贷款风险的第二重保证。银行应采取以下措施对信用支持进行控制和管理。 (1)对抵押和质押的管理应注意以下几个问题。一是银行对抵押物的占有和控制情况。二是对抵押物的流动性要做估计。三是定时对抵押物进行价值评估。四是要衡量抵押物的变现价值。五是控对制合适水平的抵押率。 (2)保证。银行需要考察保证人的以下几个问题。一是保证人的资格。二是保证人的财力,考察其是否有能力偿还借款人债务。三是保证人的保证意愿。四是保证人与借款人之间的关系,防止存在相互担保等问题。五是保证的法律责任。 3.商业银行如何进行流动性需求与来源的协调管理? 答:流动性需求与来源的协调管理包括三个方面:管理原则、管理方法和管理效果衡量。 (1)商业银行在进行流动性管理决策是主要遵循以下几条原则。 一,进取性原则。即银行管理者不是依靠收缩资产规模、出售资产,而是通过主动负债的方式来满足流动性需求。 二,保守性原则。即当出现流动性缺口时,银行管理者不采取主动负债的方式,而靠自身资产转换、出售的方式来满足流动性需求。 三,最低成本原则。即流动性缺口的满足应以筹资成本最低为原则。 (2)银行要在各种资产、负债以及创新的资金来源中进行选择,对流动性需求和来源进行协调管理。 一方面,银行要保有一定的资金用于满足流动性需求,这部分资金过大会带来机会成本,影响银行收益,而过低又无法满足流动性需求,不利于银行的安全经营。因此,要尽可能得估计流动性需求,如季节性因素等对流动性需求量产生的影响;另一方面,要使流动性来源多样化,如在资产负债表内储存流动性、从外部市场购入流动性。总而言之,即流动性来源与需求要协调匹配,在确保满足流动性需求的条件下,尽可能地降低流动性资产占总资产的比例,达到流动性、安全性和收益性的统一。 (3)对流动性需求管理效果进行衡量与评价有助于商业银行管理者进一步改善管理水平,也有利于金融监管者、投资人和储户对银行的安全性、稳健性以及投资价值进行正确的判断。 一般而言,以下信号有利于揭示一家银行的流动性状况。一,公众的对银行的信心。二,银行股票价格是否稳定。三,发行大额可转让定期存单以及其他发债是否存在风险溢价。四,出售银行资产有无损失。五,能否满足客户的合理贷款要求。六,是否频繁地从中央银行借款。 四 问答题(24分) 商业银行为什么要发展消费信贷?制约我国消费信贷发展的在制度性因素有哪些? 答:从商业银行角度看,消费信贷是实现资产多元化、降低不良资产比率、提高竞争能力的有效手段。 (1)消费信贷可以改善银行资产结构,降低经营风险。商业银行之前多依赖于企业贷款,但企业贷款偿还往往受市场风险影响很大,而消费信贷与企业贷款的增减无关,对利率不敏感。 (2)消费信贷是商业银行一个新的利润增长点。银行面临“金融脱媒”的威胁与竞争压力,往往需要追求其他业务以维持利润。以满足家庭消费信贷需求为主的消费信贷已成为西方商业银行的主要利润增长点。 (3)消费信贷是提高商业银行竞争力的重要途径。随着金融全球化、银行电子化的推进,消费信贷与个人理财产品相互组合,成为商业银行扩大市场规模、赢得优质客户、提升市场竞争力的重要手段。 消费信贷在西方的发展尤其主客观条件。从主观上,凯恩斯提出了从需求入手改善供求平衡,而为了解决滞涨,西方政府也采取积极地财政政策以扩大需求。从客观上,经济的迅速发展,人民财富的积累、中产阶级的出现、社会信用体制和保障体制的健全与完善以及法律对债务人的保护都为银行发展消费信贷提供了条件与推动作用。 我国自改革开放以来,也逐步促进消费信贷的发展。目前我国商业银行初步形成了以住房按揭贷款为主体,汽车消费贷款、综合消费贷款、教育助学贷款等多种贷款品种组成的消费信贷业务体系。但是,我国消费信贷发展依然面临许多问题。制约我国消费信贷发展的制度性因素可以分为银行外部因素和银行自身因素。 外部因素包括: (1)社会信用体制不健全,对于消费信贷的违约无制约机制,使得银行的权益无法得到保障。 (2)我国社会保障体制不健全。借款人往往担心偿还消费信贷后,自己的生活、养老以及就医等无法得到保障,从而限制了借款人的借款意愿。 (3)我国相关法律滞后。主要表现为以下几个方面。第一,对消费信贷违约的惩罚力度不够;第二,没有明确在消费信贷违约发生后哪些财产用于偿还贷款哪些财产用于保障借款人的基本生活,借款人生存权未得到保障,银行内部因素包括: (1)消费信贷的审查、风险控制机制不足,无法有效筛选降低违约风险,在消费信贷发展过程中,往往只注重规模扩张而忽略其质量,没有一套有效的管理体制。 (2)消费信贷记录和信息管理机制不健全。银行间未能实现不良记录共享,对于借款者消费信贷信息掌握太少,也未能充分分析利用遇有数据,缺乏有效的计量考察模型。 (3)国有银行缺乏发展消费信贷的动力,而其在市场中的垄断地位制约了消费信贷资源的有效开发利用。 一、商业模拟技术在国内外的应用 商业模拟作为一项重要的教学方法, 在国际知名高校中广泛应用。沃顿商学院很早就在摸索应用商业模拟教学模式, 曾于2001年投资一千万美元成立了学习实验室用于开发各类商业模拟课程, 以提高教学效果。到目前为止, 已完成二十多门商业模拟训练课程, 并在市场营销、运营管理、财务管理以及微观经济学等领域的教学中广泛应用。 从国内来讲, 商业模拟教学还在学习、发展阶段, 特别是商学院类课程教学, 还在不断学习国外商学院的先进经验。近年来在国内高校教学中, 模拟教学开始推广应用, 部分高校甚至开始建设沙盘实验室、ERP实验室等信息化程度比较高的教学实验室, 增强了学生的实践能力, 提升了教学效果。 二、商业模拟应用形式——商业模拟课程 在教学过程中, 商业模拟技术的应用是以商业模拟课程的形式呈现的, 与传统授课方式相比, 商业模拟课程使得教学过程中更加的生动主动、有趣有效, 学生的参与感更强。 商业模拟课程中会用到很多模拟方法, 主要是发现管理或经济领域中的基本规律。授课老师通过模拟课程教具, 根据教学主题设定教学环境, 学生在授课老师的引导下, 根据规则要求参与模拟推演, 学生能够按照企业角色“身临其境”的体验自身在企业中岗位职责和作用, 根据自身角色与其他角色协同作业, 共同针对模拟运营过程中出现的问题进行分析和评估, 以做出有效的应对决策, 同时在模拟推演过程中, 学生掌握的知识也能够得到更深的理解和运用, 从而提升学生对于企业管理过程中各种知识的运用, 提高学生发现问题、分析问题、解决问题的能力以及团队协作能力。 三、商业模拟常用的方法 3.1角色扮演。 角色扮演是一种比较常见模拟方法, 主要方式是构造特定情景, 学生被设定为该特定情景中的一个角色, 学生根据自身角色要求进行相关行为。这种模拟方法能促使学生主动地投入学习活动。通过角色扮演不仅能使学生学习知识运用, 同时在角色扮演过程中对于学生团队协作能力里提升也很有效果。 在教学过程中采用角色扮演的方法, 需要对于构造特定场景以及角色理解有比较高的要求, 只有合理的场景设定、学生能够深刻地理解自身角色才能成功地进行角色扮演。授课老师需要提前就该场景进行充分的准备, 使得教学过程中能够充分调动学生的积极性, 同时对于场景设计中的问题有效引导, 以达到教学目标。学生也能够通过角色扮演获取知识, 而不是只“做了一场游戏”。 3.2计算机模拟。 管理与社会经济领域常见的计算机模拟是离散事件系统仿真和系统动力学仿真。计算机模拟使用抽象的模型表示现实中管理系统的变化特征, 管理系统各功能实体及其相互作用被描述为符号和数学模型。将计算机模拟应用于管理培训可以使学习者认识管理系统的系统特性, 因此对于库存系统、排队系统等管理系统的教学, 计算机模拟是非常恰当的教学方式。 3.3博弈。 企业博弈主要通过计算机软件模拟企业的高层管理决策。博弈的竞赛者分别控制产业内的一个虚拟企业, 根据模拟的财务、生产及市场信息, 做出市场、研发等战略决策, 该决策的效果和质量通过战略博弈模拟得到显现。企业博弈是主动学习方式, 与角色扮演不同, 企业博弈中博弈者的关系可能为竞争、合作、矛盾或者冲突。但是, 竞赛队的成员在制定决策中起着不同作用, 因而在决策制定中包含有角色扮演的因素。为使教学效果最大化, 指导教师同样需要明确学习的主题。 3.4训练模拟。 训练模拟的目的是使学习者在模拟环境中培训特定的技能, 例如会计模拟实验教学软件用于对学习者会计操作技能的训练, 企业模拟或工厂模拟用于培训学习者对企业生产、供应等方面工作的能力。 训练模拟是一种有效的技能培训工具, 为学习者提供某种技能的训练或者某种任务的训练。有的训练模拟有显示视觉、听觉及运动的特点, 这是为了与现实更接近。采用包含视频、音频等内容的多媒体技术, 这成为训练模拟的重要发展方向。 四、结论 商业模拟技术是辅助教学的一种重要方法, 现有已有很多专业的开发工具, 如商业 (工业) 企业沙盘、教学实验室等。模拟技术在实际应用于教学过程时, 往往是多种方法的综合运用, 如角色扮演、博弈、计算机模拟等。这样可以激发学生的学习兴趣, 将学生的被动学习转变为主动学习, 有利于培养学生的动手操作能力、知识应用能力和创新能力, 推动现代化教学的进步。 参考文献 [1]邱元周, 谢芹.信息技术与高校模拟电子技术课程教学整合的分析[J].信息系统工程, 2013, 5:155-155. [2]刘俊.论经验学习理论与情景模拟教学法的完善[J].广东行政学院学报, 2013, 23 (3) :95-98. 会计模拟实习当前存在的不足 学生重视程度不够。会计模拟实习的主体理所当然是学生,但很多学生未能正确认识到其重要性及必要性,因而在实习过程中缺乏主动性,再加之实习一般安排在每学期期末或在校最后一学期,有的学生归心似箭或忙于找工作等原因,把模拟实习当成一次作业、一项任务,以致一些学生迟到、缺席时有发生。 会计模拟实习教材内容涉及面较窄,重核算轻监督,标准较低。现有的模拟实习教材一般是以工业企业为主,但在现实生活中,企业的经营范围、类型等涉及面都比较广,加之现在学生从业也有很大比例并非在工业企业,故在教材建设时应当体现多样性、适用性、逼真性。在实际工作中,企事业所涉及各税种的申报及缴纳是由财务人员来完成,在大部份的教材中没有体现出与税法的有机衔接。因此,我们应当培养学生发现问题、分析问题、解决问题的能力。 会计实习“硬件”有待再进一步完善。因为学校各种条件的限制,有部分学生的实习安排在平时上课的教室里进行,这样与实务场所相差甚远。为了加强逼真性,在有条件的情况下可以为每组或两组配备一台电脑,使得手工账与电算化实习同步进行,力争让每个学生掌握会计软件的操作。 指导教师的实践基础和操作能力还需进一步提高。首先,部分指导教师的实务操作能力有待提高,有时往往按自已的理解或想象来指导实习,这就有可能与会计基础规范造成冲突,其指导与问题解释的真实性和权威性会受到严重的挑战。其次,教师的计算机应用水平偏低,在会计电算化教学方面还不够精通,这样势必造成实习过程中的会计电算化实习形同虚设。 改善会计模拟实习教学中不足的途径与对策 进一步加强学生管理工作。要想调动学生自觉参与模拟实习的积极性,不能光靠老师课堂点名来实施,只有让其真正认识会计模拟实习的重要性,才能变被动为主动。 改进教学方法,进一步培养、加强会计师资队伍建设。在模拟实习过程中,指导教师也是极其关键的一个环节。而认为模拟实习课比课堂理论课要轻松、随意的观点,其实大有人在。作为指导教师不仅仅需要熟悉会计理论知识,而且还需要具备扎实的会计实务操作能力。否则,模拟实习可能会更多的流于形式。 积极探索模拟实习的教学方法。会计是一门应用性较强的学科,模拟实习与课堂教学的侧重点各有不同,这就要求教师在指导过程中要不断地探索各种较好的教学方法,探索出一套新的能不断适应现代经济发展需要的会计模拟实验模式。应充分借助多媒体等现代技术教育手段,将一些学生操作过程普遍容易出错,或对于学生而言完全陌生的一些内容,制作成多媒体课件或拍摄成录像。教师在指导模拟训练时,应当做到认真负责,应不定期或每旬末对每组的实习成果进行细致地检查,对于发现的错误之处要及时纠正,并视具体情况采取个别指导或集体指导。 想方设法提高会计教师队伍的综合素质。要想培养出高素质的会计人才,肯定离不开高素质的会计师资队伍。为了提高教师的综合素质,可以通过以下途径来实现。鼓励教师参加社会实践。为加快知识的更新,学校应为教师多创造一些进修学习的机会。 聘请有经验,理论知识过硬的在岗或退休的会计人员共同担任指导教师。会计人员一般实务操作经验丰富,可以与专职教师互为补充,相得益彰。课堂理论教学一般是一事一凭证,侧重于知识的逻辑清晰性,但是实务操作中为了追求效率,往往同期同业务合并编一张凭证,会计人员可以更多地教会学生一些会计技巧。 拓宽会计模拟实验的内容。加强教材的建设,其一,必须转化重核算,轻监督、轻审核的做法。其二,可以以每个不同的行业为主设计业务,分别来核算,但这种做法只能解决核算功能。 进行模拟实习答辩。针对在实习过程中,一些学生习惯于用教材提供的文字提示来编制会计分录,然后再抄到记账凭证上,而不是看相关的单据来填制记账凭证。为了保证实习质量,应当在模拟实习结束时进行实习答辩,学生要想通过答辩,必然对实习资料要熟悉,促使他们观察、思考,独立完成各自业务,从而提高会计实务操作水平,促使教师所教的会计实务技能,转变成每位学生自己的专业技能。 【商业银行模拟实习报告】推荐阅读: 商业银行业务模拟实验05-27 模拟银行实习,个人银行卡业务06-21 商业银行中间业务发展调研思考报告11-04 商业银行笔记06-03 商业银行化06-04 商业银行与中央银行的区别10-20 商业银行行业前景05-25 商业银行金融市场06-02 商业银行信贷风险06-04 中国商业银行改革09-22商业银行人大模拟卷 篇6
商业银行模拟实习报告 篇7
小议高校会计模拟实习的建设 篇8