自动取款机毕业论文.doc_第1页
自动取款机毕业论文.doc_第2页
自动取款机毕业论文.doc_第3页
自动取款机毕业论文.doc_第4页
自动取款机毕业论文.doc_第5页
免费预览已结束,剩余36页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

河南警察学院学号:2009110317毕业论文(设计)系 别 信息安全系 专 业 信息网络安全监察 年 级 2009级 姓 名 郭永攀 论文(设计)题目 atm虚拟自动取款机 指导教师 刘琦 职称 副教授 2012 年 5 月 4 日 自动取款机 -虚拟atm学生姓名:郭永攀 学号:2009110317系别:信息安全系 专业:信息网络安全监察指导教师:刘琦 职称:副教授2012-5-4目录1引言51.1编写目的51.2项目背景51.3定义52任务概述62.1目标62.2运行环境62.3需求概述62.4条件与限制63总体设计73.1处理流程73.2总体结构和模块外部设计(打印凭条没实现)104对现有系统的分析114.1处理流程和数据流程(打印凭条和转账没实现)114.2工作负荷114.3费用支出114.4人员114.5设备124.6局限性125所建议技术可行性分析125.1对系统的简要描述125.2处理流程和数据流程(打印凭条和转账没实现)135.3与现有系统比较的优越性135.4采用建议系统可能带来的影响145.4.1对设备的影响145.4.2对现有软件的影响145.2.3对用户的影响145.2.4对系统运行的影响145.2.5对开发环境的影响145.2.6对运行环境的影响145.2.7对经费支出的影响145.5技术可行性评价156.1存款子系统156.1.1功能156.1.2性能156.1.3输入项目156.1.4输出项目156.1.5算法166.1.6程序逻辑176.1.7接口176.1.8存储分配186.1.9限制条件186.1.10测试要点186.2 查询余额子系统186.2.1功能186.2.2性能186.2.3输入项目196.2.4输出项目196.2.5算法196.2.6程序逻辑206.2.7接口206.2.8存储分配216.2.9限制条件216.2.10测试要点216.3 修改密码子系统216.3.1功能216.3.2性能216.3.3输入项目216.3.4输出项目226.3.5算法226.3.6程序逻辑236.3.7接口236.3.8存储分配246.3.9限制条件246.3.10测试要点246.3.8存储分配246.3.9限制条件246.3.10测试要点247所建议系统经济可行性分析247.1支出247.1.1基建投资257.1.2其他一次性支出257.1.3经常性支出257.2效益257.2.1一次性收益257.2.2经常性收益257.2.3不可定量收益257.3收益/投资比267.4投资回收周期267.5敏感性分析268 系统的总结268.1 登录界面(差磁卡界面)278.2开户界面288.3取款界面298.4 查询余额界面308.4 存款界面318.5 程序代码319参考资料401引言1.1编写目的从此阶段正式进入atm系统的软件设计阶段,本阶段完成系统的大致设计并明确系统的数据结构与软件结构,在软件设计阶段主要是把软件需求转化为软件表示过程,这种表示只是描述软件总的概貌,把它加工成程序细节上非常接近于源程序的表示,使软件开发人员在编码阶段以此文档供为标准。1.2项目背景应呼和浩特建设银行网络建设和改造需要,为客户提供方便、迅速、便捷的自动存取款业务提出了atm机自动取款系统设计与实现的项目,并由软件工程08-2班第七小组完成设计与开发,上级主管部门计算机系。要求此系统能够实现所提出的基本功能要求并且兼容现在使用的软件。1.3定义客户:拥有银行的一个或多个帐号的人。可以是一个人或多个人,或者是公司。相同的人,拥有不同的银行帐号被认为是不同的落户。atm:atm是automatic teller machine 的缩写,意为自动柜员机。是一种高度精密的机电一体化设备,利用磁卡或智能ic卡储存用户信息并通过加密键盘(epp)输入密码然后通过银行内部网络验证并进行各种交易的金融自助设备。事务:对单个客户帐号的单个完整的操作请求,一般是指要做的或所做的事情。储蓄卡:储蓄卡是银行为储户提供金融服务而发行的一种金融交易卡。它的主要功能是能在联网atm和储蓄所存、取款及在联网的pos上进行消费,但不具备透支功能。2任务概述2.1目标明确系统的数据结构与软件结构,此外总体设计还将给出内部软件与外部系统部件之间的接口定义,各个软件的模块的功能说明,数据结构的细节以及具体的装配要求,通过阅读此文档可以对atm系统的设计有了初步的构想,程序开发人员能够快速进入代码实现,在atm系统的基本功能实现的基础上,提高性能指标。2.2运行环境硬件环境:cpu:1ghz 以上ram:256兆以上hard disk:2g以上软件环境:应用服务器的操作系统环境为windowsxp以上的数据库为oracle或sql server2005此系统运行在atm机上2.3需求概述针对银行业务种类繁多、客户需求量大等现象,为了减少银行人员的工作任务,方便客户,进行atm系统的设计与开发,使用户自己就可以在atm机上存款、取款、查询余额、修改密码、退卡等基础功能。同时要求满足基本的性能需求:快速性:处理业务的时间不得超过30秒否则取消事务退卡;准确性:吐钞、存抄的数目正确; 稳定性:频繁的进行多项业务系统仍能正常运行,外部环境发生小范围内变动系统不受影响;安全性:系统中所有涉及敏感信息如登录口令等,服务器端应设置严格安全访问控制策略,从而保证系统安全性和操作责任的可追溯性。2.4条件与限制整个项目的条件与限制:1、建议开发软件运行的最短寿命:十年。2、经费来源和使用限制:中国建设银行投资。3、法律和政策方面的限制:涉及法律法规应向律师进行详细咨询以免侵害客户和其他人的利益。4、硬件、软件、运行环境和开发环境的条件和限制:atm柜员机终端设备,地区服务器、中央服务器、数据库服务器(多个分散的)。5、可利用的信息和资源:现有简易atm机的实现原理 银行工作人员手工操作的业务流程。6、建议开发软件投入使用的最迟时间:测试一个月后。软件设计时的条件与限制:软件设计应当表现层次结构,巧妙地利用各个软件之间的控制关系,设计应当是模块化。小组成员应对软件开发的流程基本了解并且充分调研后开始编辑文档,同时要掌握java语言及数据库相关知识以备后续实现。项目进行中注意时间的控制和资金的合理分配。3总体设计3.1处理流程 图1-1取款的活动图图1-2 款的活动图 图1-3修改密码活动图 图1-4查询余额的活动图 3.2总体结构和模块外部设计(打印凭条没实现)图1-5 总体结构图4对现有系统的分析4.1处理流程和数据流程(打印凭条和转账没实现)图1-6现有系统处理流程举例说明:客户到银行根据事务不同进行排队,若进行取钱要将存折交给业务人员并告之取款的金额,业务人员在柜员终端识别账户后扣除相应金额,取出钱交给客户。4.2工作负荷业务人员要进行大量客户的不同事务操作,在一段时间内可能重复同样的操作多次,很容易产生厌烦心理,客户需要长时间的等待使用户体验不友好。4.3费用支出业务人员的工资按每月4000元、购买柜员机及内部软件开发费用。4.4人员银行业务人员:若干 客户4.5设备现有系统设备主要有柜员终端机并且需要大量的业务人员。4.6局限性原有银行终端操作,银行业务种类繁多、业务人员工作量大,业务进度缓慢,客户受到地点、时间因素的限制不能随时进行业务。5所建议技术可行性分析5.1对系统的简要描述atm终端可以接受一张可识别的银行储蓄卡,通过储户身份验证后,同储户进行各种交互,处理储户要求,执行各类操作,为储户服务。系统要求保持一定时间内的交易记录,可以处理多个atm终端并发访问。同时,系统应每天自动汇总各种交易数据,生成报表。系统24小时工作,无操作时播放本行的动画广告。系统具有设备自检提示报错功能,可以提示输入错误,atm终端钱柜缺钱。5.2处理流程和数据流程(打印凭条和转账没实现)图1-7本系统处理流图举例说明:取钱的流程:在读卡机中插入银行卡,识别后提示输入密码,用键盘输入密码后,验证密码正确后进入主界面选择取钱,提示输入金额,输入金额后系统到账户中验证是否在允许值范围内,金额正确则吐钱机吐钞,吐钞后提示取走钱,系统自动跳转到主界面客户可以进行其他事务的选择。5.3与现有系统比较的优越性与银行终端相比较无需到银行领号排队,减轻银行业务人员的工作量,同时使客户可以在就近的atm机上24小时进行事务交易。5.4采用建议系统可能带来的影响5.4.1对设备的影响由于所建议系统是基于windows操作系统和互联网的,所以需要配备足够符合以上列出的各种软硬件条件的计算机和通信线路。系统失效后,服务器端需要利用备份的数据库恢复数据信息,要求要有足够的数据备份空间。5.4.2对现有软件的影响需要落实是否有符合本报告所列出的正版的软件环境,如果没有则需要购买,要和现有系统兼容。5.2.3对用户的影响投入使用前还需改进现有的管理模式。5.2.4对系统运行的影响无影响。5.2.5对开发环境的影响开发过程需要用户进行密切的配合,准确阐明需求。5.2.6对运行环境的影响无影响。5.2.7对经费支出的影响除了需要支付开发单位的有关费用外,每年还需要一定的运行维护费用(见经济可行性分析)。5.5技术可行性评价系统是一个基于局域网、互联网和windows操作的系统,现有技术已较为成熟,利用现有技术完全可以实现系统开发目标。同时具有优秀的软件需求人员、软件设计人员、和具有丰富经验的软件测试人员。开发期限较为宽裕,预计可以在规定期限内完成开发任务。6功能的分析和设计6.1存款子系统6.1.1功能用户可以通过和atm自动取款机交互,完成存款的操作。6.1.2性能系统的反应时间是不能超过2秒,完成取款操作的时间不能超过30秒。6.1.3输入项目表1-8存款子系统的输入项目名称类型银行卡磁卡密码int(6位整数)金额int(100的整数倍)账号19位整数6.1.4输出项目表1-9存款子系统的输出项目名称类型凭条文本6.1.5算法图2-1存款的活动图6.1.6程序逻辑图2-2 存款的时序图6.1.7接口系统程序内部在功能模块下设置的程序接口见表3-6 ,图3.13表3-6 存款子系统的软件接口函数输入输出open()卡号 密码提示信息depositfunds()金额无addfunds()无无verifyfunds()无无图2-3存款的类图6.1.8存储分配账户表 储蓄卡表 atm表 清单表6.1.9限制条件atm自动取款机中的纸币以满,不能再放入纸币。6.1.10测试要点好的产品才能得到用户的认可和肯定,只有得到用户的肯定才会有市场,为此要对系统的反应速度、准确性(能准确读取放入的纸币数目)和安全性,以及系统的稳定应有非常高的要求。6.2 查询余额子系统6.2.1功能用户可以通过和atm自动取款机交互,完成查询余额的操作。6.2.2性能系统的反应时间是不能超过2秒,完成查询余额操作的时间不能超过30秒。6.2.3输入项目表2-4 余额查询子系统的输入项目名称类型银行卡磁卡密码int(6为整数)6.2.4输出项目表2-5余额查询子系统的输出项目名称类型凭条文本6.2.5算法图2-6余额查询的活动图6.2.6程序逻辑图 2-7 余额查询的时序图6.2.7接口系统程序内部在功能模块下设置的程序接口见表3-12,图3.19表2-8 查询余额子系统的软件接口函数输入输出open()卡号 密码无query()无无图2-9余额查询的类图6.2.8存储分配账户表 储蓄卡表 清单表6.2.9限制条件硬件故障6.2.10测试要点好的产品才能得到用户的认可和肯定,只有得到用户的肯定才会有市场,为此要对系统的反应速度有非常高的要求,这也是最基本的要求。6.3 修改密码子系统6.3.1功能用户可以通过和atm自动取款机交互,完成修改密码的操作。6.3.2性能系统的反应时间是不能超过2秒,完成修改密码操作的时间不能超过30秒。6.3.3输入项目表3-1修改密码子系统的输入项目名称类型银行卡磁卡旧密码int(6为整数)新密码int(6为整数)6.3.4输出项目表3-2 修改密码子系统的输出项目名称类型凭条文本6.3.5算法图3-3 修改密码的活动图6.3.6程序逻辑图3-4 修改密码的时序图6.3.7接口系统程序内部在功能模块下设置的程序接口见表3-15,图3.22 表 3-15修改密码子系统的软件接口函数输入输出open()卡号 密码无alterpassword()旧密码 新密码无图3-5 修改密码的类图6.3.8存储分配账户表 储蓄卡表 清单表6.3.9限制条件忘记了旧密码6.3.10测试要点好的产品才能得到用户的认可和肯定,为此要对系统的反应速度、 安全性,以及系统的稳定有非常高的要求。6.3.8存储分配账户表 储蓄卡表 清单表 atm表6.3.9限制条件 atm自动取款机里的凭条纸用完了、纸币没有了或是硬件出项了故障。6.3.10测试要点对系统的反应速度,稳定性有非常高的要求,以达到用户的满意度。7所建议系统经济可行性分析7.1支出(1)系统开发、建立费用共23万元。其中:本系统开发期为一年,需开发人员6人(不一定都是参加满整个开发周期)。根据软件系统的规模估算,开发工作量约为30人月,每人月的人工费按5000元计算,开发费用为15万元。(2)硬件设备费共29万元,其中:atm机约19万元;服务器3台及网络等设备费10万元。 (3)外购开发工具、软件环境费用共9万元。7.1.1基建投资基础建设投资约52万7.1.2其他一次性支出暂无7.1.3经常性支出加班费用、培训费用约10万。7.2效益7.2.1一次性收益以前手工操作完成的事务可能需要十个业务员,现在只需要一个业务员就能满足需求,小额取款客户可以到atm机自主完成,相当于一个月节省九个人工资费用约36000元。7.2.2经常性收益跨行转账收取手续费。7.2.3不可定量收益服务的改进和组织机构给外界形象会使潜在用户增加,银行收益不可估量的。7.3收益/投资比后期收益无法估量7.4投资回收周期约三至四年7.5敏感性分析系统生存周期十年、自身工作量较大但可以承受,处理速度可以满足现有用户的需求,系较所使用的硬件如无特殊重大事故生存周期内不会有破坏性损害,因此,十年内可以得到较为可观收益。8 系统的总结 自动取款机的虚拟系统主要是模仿银行真的自动取款机的功能而设计的,其功能和真正的自动取款机是有很多的差别的,但对我们来说,此 虚拟的自动取款机也是很大的激励 对大家的认识自动取款机也有一定的帮助 虽然 在功能和界面上和其他的自动取款机系统和很大的差别但是 我们的系统 也是很实用的 可以用在一定的地方的 我们的系统简介方便容易学习 适应用于广大的用户 一下是我们系统的各个界面的显示8.1 登录界面(差磁卡界面) 图 3-5 登陆界面8.2开户界面 图 3-6 开户界面8.3取款界面 图 3-7 取款界面8.4 查询余额界面 图3-8 查询余额界面8.4 存款界面 图 3-9 存款界面8.5 程序代码以上功能的实现的所用的代码,有我们的研究人员的精心设计以及我们的程序人员的奋斗我们,设计到了最好的代码来实现我的程序的正常使用的。我们的代码是安全的,严谨的,当然我们会时常的检测我们的程序的运行,以保证用户的安全使用,和用户对我们公司的满意,代码是一下:程序代码:using system;using system.collections.generic;using system.text;/download by namespace atm class account protected string name; protected string password; protected decimal balance; public decimal balance get return balance; public string name get return name; public account(string name, string password) this.balance = 0; = name; this.password = password; public bool deposit(decimal amount) if (amount balance | amount = 0) return false; balance -= amount; return true; public bool withdraw(double amount) return withdraw(decimal)amount); public bool withdraw(int amount) return withdraw(decimal)amount); public bool withdraw(decimal amount, out decimal balance) bool succeed = withdraw(amount); balance = this.balance; return succeed; public bool changepassword(string oldpassword, string newpassword) if (oldpassword != password) return false; password = newpassword; return true; public bool login(string name, string password) return ( = name & this.password = password); using system;using system.collections.generic;using system.text;/download by namespace atm class atm private const string quitcode = 20060824; private bank bank; public atm(bank bank) this.bank = bank; public void start() while (true) / 主界面 printlogo(); console.writeline( 1. 开户 ); console.writeline( 2. 登录 ); console.writeline(_); console.writeline(); console.write(你的选择(回车结束):); string code = console.readline(); /quit system if (code = quitcode) return; if (code = 1) /开户 openaccount(); else if (code = 2) /登录 loginaccount(); private void loginaccount() printlogo(); console.writeline( 请输入你的账号的用户名和密码 ); console.writeline(_); console.writeline(); string name = input(用户名(回车结束): ); string password = input(密码(回车结束): ); /登录账号 account account; if (!bank.loginaccount(name, password, out account) console.write(登录错误,请检查用户名和密码是否正确。按enter键继续.); console.read(); else manageaccount(ref account); private void openaccount() printlogo(); console.writeline( 请输入你的账号的用户名和密码 ); console.writeline(_); console.writeline(); string name = input(用户名(回车结束): ); string password = input(密码(回车结束): ); /开户 account account; if (!bank.openaccount(name, password, out account) console.write(开户错误,用户名可能已经存在。按enter键继续.); console.read(); else print(开户, 0, account); pause(); manageaccount(ref account); private void manageaccount(ref account account) while (true) /管理账户界面 printlogo(); console.writeline( 1.存款 ); console.writeline( 2.取款 ); console.writeline( 3.查询余额 ); console.writeline( 4.修改密码 ); console.writeline( 5.退出 ); console.writeline(_); console.writeline(); console.writeline(你的选择(回车结束):); string code = console.readline(); string s; decimal amount; bool succeed; switch (code) case1: amount = inputnumber(n输入存款数目: ); succeed = account.deposit(amount); if (succeed) print(存入, amount, account); else console.writeline(存款失败!); pause(); break; case2: amount = inputnumber(n输入取款数目: ); succeed = account.withdraw(amount); if (succeed) print(取出, amount, account); else console.writeline(取款失败!); pause(); break; case3: print(account); pause(); break; case4: string oldpassword=input(当前密码(回车结束): ); string newpassword=input(新密码(回车结束): ); succeed=account.changepassword(oldpassword,newpassword); if(succeed) console.writeline(密码修改成功!); else console.writeline(密码修改失败!); pause(); break; case5: return; default: break; private void printlogo() console.writeline(n_); console.writeline(0自动取款机 用户第一 服务至上, bank.name); console.writeline(n_); private string input(string prompt) console.write(prompt); string str = console.readline(); while (str = ) console.write(不能为空,0, prompt); str = console.readline(); return str; private decimal inputnumber(string prompt) console.write(prompt); string s = console.readline(); decimal amount = 0; try amount = decimal.parse(s); catch (exception) console.write(输入的数值格式不正确,请重新输入!); amount = inputnumber(prompt); return amount; private void pause() console.write(按enter键继续.); console.read(); private void print(string operation,decimal amount,account account) console.writeline(_); console.writeline(姓名: 0,account.name); console.writeline(0:1,operation,amount); console.writeline(余额: 0,account.balance); console.writeline(_); console.writeline(0成功,operation); public void print(account account) console.writeline(_); console.writeline(姓名: 0,account.name); console.wr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论