系统分析与设计案例模拟ATM机样本_第1页
系统分析与设计案例模拟ATM机样本_第2页
系统分析与设计案例模拟ATM机样本_第3页
系统分析与设计案例模拟ATM机样本_第4页
系统分析与设计案例模拟ATM机样本_第5页
已阅读5页,还剩44页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

摘要二十世纪末,随着金融服务迅速发展,银行提款机已经发展成了各大银行金融服务战略中重要一环,同步,银行提款机系统也经历了持续更新换代,为广大顾客提供了更加便捷和人性化服务。模仿ATM系统就是对提款机操作系统在个人PC上及主流操作平台上编程实现,其开发重要涉及后台数据库建立和维护以及前端应用程序开发制作两个方面。对于前者规定建立起数据一致性和完整性强、数据安全性好库。而对于后者则规定应用程序功能完备,易使用,界面和谐等特点。本系统采用VB6.0,微软SQLSERVER,实现了顾客身份认证、取款、转帐、交易明细查询等功能。分析并解决实现中遇到若干问题,例如数据库资料如何实现更新,文本框文字输出需要用到什么技术,如何实现中英文两种界面,顾客服务功能如何实现等等。核心词:模仿ATM银行系统;ADO控件;VB6.0;SQLSERVERAbstractAttheendofthe20thcentury,asthefastdevelopmentoffinancialservices,ATMmachineshavebecomethemajorpartofthefinancialservicesstrategyofeverybank,banktellersystemhasundergoneacontinuousupgrading,suppliedamoreefficientandhumanservicesforthecustomers.ATMsimulationsystemistheoperatingsystemofpersonaltellermachinesonthePCplatformandthemainstreamofprogramming.Thedevelopmentincludestwoaspects.Theoneisestablishmentandmaintenanceofbackgrounddatabase,theotherisdevelopmentoffront-endapplications.Theformerrequiresestablishingaconsistencyandintegrityofstrongdatasecurityforgood.Andforthelatterdemandstheapplicationfunctionsareperfect,andeasy-to-useandfriendlyinterface,andotherfeatures.TheATMsystemdescribesthestructureandfunctionmoduleoftheentirelayoutofthesystem;Thesystemrealizedtheuserauthentication,withdrawals,transfers,detailsofthetransactioninquiries,withtheVisualBasic6.0,MicrosoftSQLSERVER;Thesystemanalyzedandresolvedencounteredumpteenissuesintherealization,forexample,howtorealizethedatabaseupdated,what’sthenecessarytechnologyistorealizethetextarea’soutputting,howtorealizetheEnglishandChineseinterfacesingeniously,andhowtorealizeuserservicesfunctionsandsoon.Keywords:ATMsimulationsystem;ADO;VB6.0;SQLSERVER目录TOC\o"1-2"\u\t"标题3,3"摘要 iAbstract ii第1章 引言 11.1 ATM来源 11.2 模仿ATM系统意义 11.3 模仿ATM系统开发平台简介 2第2章 系统需求分析 72.1 系统目的 72.2 需求定义 72.3 功能阐明 72.4 性能规定 82.5 数据流程图 9数据流程图如下所示。 9第3章 系统开发设计 133.1 系统开发重要应用技术 133.2 代码设计 133.3 后台数据库设计 14第4章 系统功能实现 194.1 欢迎界面实现 194.2 登陆实现 204.3 主界面实现 234.4 查询余额功能实现 244.5 取款功能实现 254.6 转账功能实现 264.7 密码修改功能实现 304.8 查询交易明细功能实现 324.9 别的界面及函数 33第5章 系统运营成果及工作总结 355.1 系统测试及运营成果 355.2 系统中遇到问题及解决办法 355.3 工作小结 35参照文献 37引言随着时代进步,社会生产力高速发展,新技术层出不穷,信息量急剧膨胀,整个人类社会已成为金融化信息化社会,并开始朝着自动化智能化发展。以往人们去银行存款取款进行各种财务解决都必要通过柜台,随着越来越多人们进入银行,使用银行服务,使银行浮现了工作效率低,顾客等待时间过长等等问题,既加大了银行工作人员工作量,又使得人们享有银行服务质量大幅度减少,因此银行交易自动化智能化已经成为了一种不可逆转趋势,并且必将成为各个银行此后发展重点。系统在前台采用了VisualBasic6.0这一功能全面,以便易学语言作为开发语言,而后台则用功能强大SQLSERVER数据库加以实现。ATM来源当代意义上ATM和POS系统始于二十世纪60年代末。最早ATM机只是现钞发放机。1976年,英格兰巴克莱银行安装了第一台现钞发放机。它并没有使用磁条卡,而是向顾客发行纸券,顾客将纸券插入机器,取出面值为10英镑钞票。当代ATM机想法来自于唐·维泽尔。1968年,当她在达拉斯银行排队等待时候,萌发了这个想法。之后,她建议自己雇主Docutel研制这种机器。研发中最重要过程是将信息加密后存储在磁条上,然后将磁条加在塑料卡片上。研制成功后,Doctuel将ATM机卖给了纽约化学银行。1969年,化学银行把这个机器安装在洛克菲勒中心办公室。虽然DocutelATM机器使用了当代磁条技术,但和今天技术相比,还是显得比较原始。它只能用于取现钞,并且只能脱线使用。机器用特殊办法打印下交易纪录。直到20世纪70年代初,ATM技术才发展到咱们今天水平。起初,ATM重要用来解决信用卡,到了1972年,克里夫兰都市国家银行成功地引进了一种可在ATM机上使用没有透支功能卡片。如今,ATM机发展了更多功能,涉及存钱、支票和储蓄账户之间互相转账,付款等等。同步,ATM实现了与计算机相连接,使客户可以实时地理解账户余额和支付状况。多台ATM机与银行主机相连,就逐渐形成了ATM网络。模仿ATM系统意义现实意义当前全球共有ATM超过120万台,平均每5分钟新增一台,连南极科考基地都安装了ATM,每年通过这些机器进行金融交易超过400亿笔。从这些数据可以看出银行自动提款机已经进入了人们寻常生活,咱们对自助式服务已经不再陌生,并成为了人们寻常生活习觉得常一某些,的确给人们生活带来了极大便利。通过了近40年发展,ATM也获得了长足进步,从初期纸券取钱,到当前一卡在手,ATM机也从初期简朴机器,后期系统集成式机器,发展成了如今基于个人PC上操作系统下智能化系统,拥有了更多更全更加以便功能。随着个人PC迅速发展,越来越多ATM机逐渐替代为了PC机,也采用了基于WINDOWSXP系统下操作系统,具备了更加人性化,更加和谐操作界面,也具备了更快响应速度,这也使得各个银行之间ATM操作平台有了逐渐统一也许,加强各银行服务联系,使客户跨行进行ATM交易将更加便捷,资费也可以得到减少。本次开发ATM系统就是基于WINXP系统下具备和谐界面软件系统。开发意义开发一种软件系统,从需求分析到流程图绘制及模块分析,再到最后数据库设计及代码编写实现都要自己动手一步一步来解决完毕,这个过程对于自己在大学所学知识是一种非常好检查,对动手能力及思维能力也是一次非常好锻炼。但愿通过本次研究学习,认清自己局限性之处,不断去学习完善自己理论知识,逐渐提高动手能力,为后来工作打下坚实基本。。模仿ATM系统开发平台简介Windows下VisualBasic编程环境简介面向对象编程微软公司VisualBasic6.0是Windows应用程序开发工具,使当前最为广泛、易学易用面向对象开发工具。VisualBasic提供了大量控件,这些控件可用于设计界面和实现各种功能,减少了编程人员工作量,也简化了界面设计过程,从而有效提高了应用程序运营效率和可靠性[1]。故而,实现本系统VB是一种相对较好选取。VisualBasic6.0特点简介VsualBasic6.0是一种可视化、面对对象和调用事件驱动方式构造化高档程序设计,可用于开发Windows环境下种类应用程序。它简朴易学、效率高,且功能强大,可以与Windows专业开发工具SDK相媲美,并且程序开发人员不必具备C/C++编程基本。在VisualBasic环境下,运用事件驱动编程机制、新颖易用可视化设计工具,使用Windows内部应用程序接口(API)函数,以及动态链接库(DLL)、动态数据互换(DDE)、对象链接与嵌入(OLE)、开放式数据访问(ODBC)等技术,可以高效、迅速地开发出Windows环境下功能强大、图形界面丰富应用软件系统。总来说,VisualBasic具备如下特点[2]:(1)可视化编程用老式程序设计语言设计程序时,都是通过编写程序代码来设计顾客界面,在设计过程中看不到界面实际显示效果,必要编译后运营程序才干观测。如果对界面效果不满意,还要回到程序中修改。有时候,这种编程-编译-修改操作也许要重复多次,大大影响了软件开发效率。VisualBasic提供了可视化设计工具,把Windows界面设计复杂性“封装”起来,开发人员不必为界面设计而编写大量程序代码。只需要按设计规定屏幕布局,用系统提供工具,在屏幕上画出各种“部件”,即图形对象,并设立这些图形对象属性。VisualBasic自动产生界面设计代码,程序设计人员只需要编写实现程序功能那某些代码,从而可以大大提高程序设计效率。(2)面向对象程序设计VisualBasic应用面向对象程序设计办法(OOP),把程序和数据封装起来作为一种对象,并为每个对象赋予应有属性,使对象成为实在东西。在设计对象时,不必编写建立和描述每个对象程序代码,而是用工具画在界面上,VisualBasic自动生成对象程序代码并封装起来。每个对象以图形方式显示在界面上,都是可视。(3)构造化程序设计语言VisualBasic是在BASIC语言基本上发展起来,具备高档程序设计语言语句构造,接近于自然语言和人类逻辑思维方式。VisualBasic语句简朴易懂,其编辑器支持彩色代码,可自动进行语法错误检查,同步具备功能强大且使用灵活调试器和编译器。VisualBasic是解释型语言,在输入代码同步,解释系统将高档语言分解翻译成计算机可以辨认机器指令,并判断每个语句语法错误。在设计VisualBasic程序过程中,随时可以运营程序,而在整个程序设计好之后,可以编译生成可执行文献(.EXE),脱离VisualBasic环境,直接在Windows环境下运营。(4)事件驱动编程机制VisualBasic通过事件来执行对象操作。一种对象也许会产生各种事件,每个事件都可以通过一段程序来响应。在用VisualBasic设计大型应用软件时,不必建立具备明显开始和结束程序,而是编写若干个微小子程序,即过程。这些过程分别面向不同对象,由顾客操作引起某个事件来驱动完毕某种特定功能,或者由事件驱动程序调用通用过程来执行指定操作,这样可以以便编程人员,提高效率。(5)访问数据库VisualBasic具备强大数据库管理功能,运用数据控件和数据库管理窗口,可以直接建立或解决MicrosoftAccess格式数据库,并提供了强大数据存储和检索功能。同步,VisualBasic还能直接编辑和访问其她外部数据库,如dBASE,FoxPro,Paradox等,这些数据库格式都可以用VisualBasic编辑和解决。VisualBasic提供开放式数据连接,即ODBC功能,可通过直接访问或建立连接方式使用并操作后台大型网络数据库,如SQLServer,Oracle等。在应用程序中,可以使用构造化查询语言SQL数据原则,直接访问服务器上数据库,并提供了简朴面向对象库操作指令和多顾客数据库访问加锁机制和网络数据库SQL编程技术,为单机上运营数据库提供了SQL网络接口,以便在分布式环境中迅速而有效地实现客户/服务器(client/server)方案。(6)动态数据互换(DDE)运用动态数据互换(DynamicDataExchange)技术,可以把一种应用程序中数据动态地链接到另一种应用程序中,使两种完全不同应用程序建立起一条动态数据链路。当原始数据变化时,可以自动更新链接数据。VisualBasic提供了动态数据互换编程技术,可以在应用程序中与其她Windows应用程序建立动态数据互换,在不同应用程序之间进行通信。(7)对象链接与嵌入(OLE)对象链接与嵌入(OLE)将每个应用程序都看做是一种对象(object),将不同对象链接(link)起来,再嵌入(embed)某个应用程序中,从而可以得到具备声音、影像、图像、动画、文字等各种信息集合式文献。OLE技术是Microsoft公司对象技术战略,它把各种应用程序合为一体,将每个应用程序看做是一种对象进行链接和嵌入,是一种应用程序一体化技术。运用OLE技术,可以以便地建立复合式文档(compounddocument),这种文档由来自各种不同应用程序对象构成,文档中每个对象都与本来应用程序相联系,并可执行与本来应用程序完全相似操作。(8)动态链接库(DLL)VisualBasic是一种高档程序设计语言,不具备低档语言功能,对访问机器硬件操作不太容易实现。但它可以通过动态链接库技术将C/C++或汇编语言编写程序加入到VisualBasic应用程序中,可以像调用内部函数同样调用其她语言编写函数。此外,通过动态链接库,还可以调用Windows应用程序接口(API)函数,实现SDK所具备功能。(9)生成协助文献及版本信息专业水平软件普通都带有联机协助功能。无论写出来程序是要给大量顾客使用,还是仅仅局限于公司内部有限使用者,咱们都应当为顾客提供详细、易于理解联机协助文档。微软HelpWorkshop4.0是一套独立于VisualBasic用来协助咱们创立、运营于32位Windows操作系统下协助文献工具。使用它咱们可觉得咱们编写应用程序生成一组协助文献。为了是程序显得更具备专业风格,一方面可以在其中加入普通应用程序信息。这些信息涉及公司名称、版本号、修订号以及其她类似信息。VisualBasic容许你使用APP对象来保存这些信息,APP对象是一种预定义对象,不需要在程序中创立它。APP对象大多数属性被应用程序用来提供常规信息,通过使用这些APP提供属性,可以在应用程序和顾客之间交流重要信息,在项目属性框中可以设立它属性。SQLSERVER数据库简介数据库概念数据库是一种存储数据并对数据进行操作工具。数据库作用在于组织和表达信息,简而言之,数据库就是信息集合。计算机数据库可以分为两类:非关系数据库(flat-file)和关系数据库(relational)。关系数据库中包括了各种数据表信息,数据库具有各个不同某些术语,象记录、域等。微软SQLSERVER简介SQLServer是Microsoft公司推出SQLServer数据库管理系统最新版本该版本继承了SQLServer7.0版本长处同步又比它增长了许多更先进功能具备使用以便可伸缩性好与有关软件集成限度高等长处可跨越从运营MicrosoftWindows98膝上型电脑到运营MicrosoftWindows大型多解决器服务器等各种平台使用[3]。ADO是访问由微软推出最新.功能最强,且容易使用数据访问实例(OLEDB)应用程序接口.咱们就是通过它以及创立ActiveX数据对象VB6.0与SQL数据库两者连接(ADO)ADORecordset来访问SQLSEVER上ODBC数据源.使用ADO控件可以以便在VB6中访问ODBC数据库,但是通过直接放置ADODS控件来获得ADO数据连接比较麻烦,可以在VB工程中创立一种公共数据模块,将ADO控件初始化、建立连接、关闭连接等操作都写到函数中,这样就可以在工程其她模块中共享调用这个ADO连接。一次完整ADO调用操作分为如下几种环节[5]:(1)打开ADO到数据库连接,初始化ADORECORDSET集。(2)通过写入SQL语句执行查询并返回查询成果RECORDSET集;或者可以通过写入SQL语句执行相应数据库操作。(3)释放RECORDSET集,关闭数据库连接。需要注意是,每个动态创立ADO同步只能被一种过程调用,如果需要进行多表并行操作,也许需要在公共数据模块中建立各种动态ADO。在本次设计中,由于我只设计了一种主模块,因此直接将ADO控件初始化、建立连接、关闭连接等操作都写到了最先调用身份认证函数中,就已经可以满足我对数据库访问操作。(1)打开ADO到数据库连接,初始化ADORECORDSET集。(2)通过写入SQL语句执行查询并返回查询成果RECORDSET集;或者可以通过写入SQL语句执行相应数据库操作。(3)释放RECORDSET集,关闭数据库连接。需要注意是,每个动态创立ADO同步只能被一种过程调用,如果需要进行多表并行操作,也许需要在公共数据模块中建立各种动态ADO。在本次设计中,由于我只设计了一种主模块,因此直接将ADO控件初始化、建立连接、关闭连接等操作都写到了最先调用身份认证函数中,就已经可以满足我对数据库访问操作。通过ADO控件使VisualBasic程序与SQLSERVER数据库之间架起了一座桥梁,咱们可以很以便通过修改程序中ADODC参数,并通过SQL语句来指向数据库不同某些,从而以便对数据库进行各种操。系统需求分析系统目的ATM模仿系统是典型信息管理系统(MIS),其开发重要涉及后台数据库建立和维护以及前端应用程序开发两个方面。对于前者规定建立起数据一致性和完整性强.数据安全性好库。而对于后者则规定应用程序功能完备,易使用等特点。系统开发总体任务是实现各种信息系统化,规范化和自动化。需求定义作为顾客对ATM模仿系统规定有:1.能按卡号和密码查询卡内余额、明细等状况。2.可以以便地取款、转帐、查询。3.可以查询自己取款、转帐状况。4.可以熟悉ATM模仿使用。功能阐明通过对比真实银行提款机系统,本系统实现如下内容功能:1.可以选取中文和英文两种语言服务2身份认证3.密码修改4.取款.5.转帐.6.查询余额.7.查询交易明细其系统流程图如图2-1所示:图2-1工作流程图性能规定ATM业务需保证其对的性,可靠性,效率,完整性,易使用性,可维护性,可测试行,复用性,安全保密性,可理解性,可移植性,互联性。业务流程图如图2-2所示:图2-2业务流层图数据流程图数据流程图如下所示。1)顶层数据流程图如下图3-1图2-3顶层数据流程2)1层数据流程图如下图3-2图2-41层数据流层3)2层数据流程图子图如下图:图2-52层数据流程图(1)图2-62层数据流程图(2)图2-72层数据流程图(3)图2-82层数据流程图(4)图2-92层数据流程图(4)系统开发设计系统开发重要应用技术WINDOWSXP是时下最流行电脑操作系统稳定性安全性都非常不错,而随着ATM提款机逐渐采用个人电脑,以及性能升级,WINXP也有了也许成为这些提款机操作系统,因此本次系统也在WINXP下进行开发[6]。由于需要开发出前台客户和谐界面及后台数据库系统,而对于前台只要能满足其界面开发需要即可,因此我采用了相对简朴易用并且功能强大VB6.0,后台数据库则采用了与之相连以便且功能同样强大SQLSERVER[7]。采用以上两个开发软件完全可以满足ATM模仿系统开发需要。系统重要是由前台(客户操作界面)与后台(数据库)两个某些构成。前台某些整个代码程序采用一种主模块,在里面定义程序全局变量,把各种功能函数写入其中,每个界面制作一种独立窗体,在各个窗体代码中来调用主模块中各个函数来,来实现相应功能。通过可爱卡通动物也实现了和谐亲切操作氛围。代码设计银行代码由8位阿拉伯数字构成,前2位是发卡号,第3、4位是卡类型,第5~7位是发卡都市,第8位是校验位。例如:00000001表达发卡银行是中华人民共和国人民银行,发卡类型是信用卡,发卡都市是北京,最后一位验证信息对的否。如表3-1所示。表3-1代码设计表代码名称卡号代码代码简介用于银行卡编号,每个银行卡一种号码XXXXXXXX代码构造XXXXXXXX发卡银行校验位发卡都市卡类型发卡银行发卡银行校验位发卡都市卡类型发卡银行后台数据库设计数据库需求分析顾客需求详细体当前各种信息提供,保存,更新和查询,这就规定数据库构造能充分满足各种信息输出和输入。收集基本数据,数据构造解决流程,构成一份详尽数据字典,为背面详细设计打下基本。针对普通ATM系统需求,通过对ATM工作过程内容和数据流程分析,设计如下面所示数据项和数据构造:● 顾客信息,属性:卡号,密码,金额,操作时间,操作类型,操作金额,转账卡号主键:卡号● 顾客操作信息,属性:卡号,操作时间,金额,操作类型,操作金额,转账卡号,与否成功主键:卡号和操作时间数据字典:表3-1外部项系统名:ATM机系统编号:条目名:顾客别名:银行账户输入数据流输出数据率重要特性:顾客,即在本系统中进行存取款操作银行储户表3-2加工系统名:ATM机系统编号:条目名:取款单别名:取款信息输入数据流输出数据率存款金额剩余金额加工逻辑:1顾客使用密码登陆系统2选取操作类型3顾客选取取款操作4远程数据库计算数据金额并向系统报告简要阐明:当选取余额查询业务时,系统显示余额表3-3加工系统名:ATM机系统编号:条目名:存款单别名:存款信息输入数据流输出数据率存款金额剩余金额加工逻辑:1顾客使用密码登陆系统2选取操作类型3顾客选取存款操作4顾客放入钞票5系统清算钞票6远程数据库计算数据金额并向系统报告简要阐明:当选取余额查询业务时,系统显示余额表3-4数据流系统名:ATM机系统编号:条目名:余额信息别名:来源:ATM去处:顾客数据流构造:{卡号+密码+顾客名}顾客信息+{余额信息+存取款金额+操作进行时间}余额信息简要阐明:储户每一次存取款业务,在业务开始和结束时都要进行余额数据存取记录,并完毕余额信息反馈数据库逻辑成果设计通过数据库需求分析,数据库事实上只运用到两个表,一种顾客信息表和一种顾客操作表。如下所示:基本信息表3-5和表3-6表3-5顾客信息表中列名数据类型可否为空卡号Char(10)Notnull(主键)密码Char(10)Notnull金额FloatNull操作时间DatetimeNull操作类型Char(10)Null操作金额FloatNull转账卡号Char(10)Null表3-6顾客操作表中列名数据类型可否为空时间DatetimeNotnull(主键)卡号VarcharNotnull操作类型Char(10)Null交易金额FloatNull转账金额FloatNull转账卡号Char(10)Null与否成功BoolNull通过充分考虑,以为系统并不需要非常复杂数据库系统就可以达到模仿ATM系统效果,因此建立了一种名为XQQ\ATMSQL服务器,创立了名为USER数据库,顾客登陆名为sa密码为空,并在ODBC数据源中将USER数据库添加进去。其中事实上只运用到两个表,一种顾客信息表和一种顾客操作表。表3-7顾客信息表顾客信息表(如表3-7)用以存储顾客卡号,密码,存款金额等信息,由于该系统是为了模仿运用,故安全规定不高,因此密码采用了明文方式存储,便于使用查看。本次模仿系统并不具备创立新顾客功能,顾客信息表上内容都是为了模仿而手动添加样本顾客。表3-8顾客操作表顾客操作表(如表3-8)则用来记录顾客在ATM机上所使用服务,它涉及了所有顾客对ATM操作信息,涉及时间,操作类型,金额,转帐卡号,成功与否等等。顾客查询明细功能就是通过收集检索这张表来实现。同步管理人员也可以从这张表上很以便查阅顾客使用状况。固然,真实银行ATM系统,其后台数据库系统必定是十分庞大一种系统,对保密性规定也非常高,在这次模仿中固然不也许达到那样规定。系统功能实现欢迎界面实现图4-1欢迎界面在欢迎界面(如图4-1)咱们可以自由选取两种语言,分别为咱们最惯用中文和英语,在这里主模块中定义了一种非常重要INT整型变量i,通过i值来决定所选取服务。任意点击一种服务都将进入登陆界面。PrivateSubCommand1_Click()i=2当点中文按钮时,i值就被赋为了2,在背面操作中,i值就将始终为2,用以区别所选语言服务UnloadForm1Form2.ShowEndSubPrivateSubCommand2_Click()i=1点ENGLISH按钮时i值赋1UnloadForm1Form2.ShowEndSub登陆实现在登陆界面有两种语言可觉得顾客服务,一是中文,而是英文。选取两种语言功能和界面背景事实上都是完全一致,只是语言文字不同。如图3为选取中文界面:图4-2登陆界面(中文)如果点击是ENGLISH,则登陆界面为图4-2图4-3登陆界面(英文)这里两个界面并非通过两个窗体单独实现而是共用一种窗体,通过判断i值,对label中CAPTION进行相应中文和英文赋值。背面操作界面同样也是采用这种办法,就不再做英文界面简介。这里把默认语言选取为中文直接在窗体编辑菜单中对CAPTION进行了相应赋值。如果为英文则需执行下面语句,此后每个界面语言拟定及实现都是通过采用这个办法PrivateSubForm_Load()Ifi=1Then//判断i值如果为1则进行英文赋值Label1.Caption="Doyouwanttocontinue?Pleasechoose!"Command1.Caption="otherservice"Command2.Caption="Cancel"EndIfEndSub在窗体中咱们一方面来判断顾客输入卡号和密码与否符合咱们规定。卡号为8位密码为6位PrivateSubCommand1_Click()//当咱们点下确认按钮时Ifi=2ThenIfLen(Text1.Text)<>8OrLen(Text2.Text)<>6Then//比较卡号与否为8位及密码与否为6位Form3.ShowForm3.Label1.Caption="没有对的输入卡号或密码"Text1.Text=""Text2.Text=""ElseCallCheckuser//这里是调用主模块中身份验证函数,在背面窗体实现中都是通过CALL语句来直接调用相应函数EndIfEndIf//如下为顾客选取英语代码,和选取中文时是同样,在背面简介中将不在引用英语代码Ifi=1ThenIfLen(Text1.Text)<>8OrLen(Text2.Text)<>6ThenForm3.ShowForm3.Label1.Caption="PleaseInputCorrectCardnumberOrPassword"Text1.Text=""Text2.Text=""ElseCallCheckuserEndIfEndIfEndSub在主模块MODEL1中身份验证函数代码为PublicSubCheckuser()定义Checkuser函数DimstrrAsStringSetCON=NewADODB.Connectionstrr="Provider=SQLOLEDB.1;Password=;PersistSecurityInfo=True;UserID=sa;InitialCatalog=user;DataSource=XQQ\ATM"//这段语句采用了动态连接数据库办法与数据库USER进行连接,采用是SQLOLEDB应用接口。CON.Openstrru=Form2.Text1.Text把卡号赋给ustr="select密码from顾客信息where卡号='"&u&"'"//SQL数据库查询语句,依照卡号把所查询密码数据放入str中SetRS=NewADODB.Recordset//设立RS为新Recordset对象RS.Openstr,CON,adOpenDynamic,adLockPessimisticIfRS.EOF=TrueThen//当前记录指针无效,阐明不存在这个顾客Ifi=2ThenForm3.ShowForm3.Label1.Caption="没有此顾客,请检查并重新输入!"u=""//u重新设立为空接下来就是比较从所输卡号中取出密码与顾客输入密码进行比较IfTrim(RS.Fields(0))=Trim(Form2.Text2.Text)Then'//检查密码与否相似Form4.Show//密码相似转入服务界面RS.CloseUnloadForm2在窗体中直接通过程序代码调用在模块中Checkuser函数即可,背面界面都是采用这种办法,都不再进行仔细阐明。主界面实现图4-4服务界面在主界面中(如图13)有5个服务按钮设立了一种整型变量j,在点击各种服务同步,J也被赋予了不同数值,用后来面记录顾客操作信息,写入数据库。PrivateSubCommand1_Click()IfOption1(0).Value=TrueThenj=1UnloadForm4Form5.ShowElseIfOption1(1).Value=TrueThenj=2UnloadForm4Form6.ShowElseIfOption1(2).Value=TrueThenj=3UnloadForm4Form7.ShowElseIfOption1(4).Value=TrueThenJ=5UnloadForm4Form12.ShowElseIfOption1(3).Value=TrueThenj=4UnloadForm4CallQueryForm8.ShowForm8.Label2.Caption=u查询余额功能实现查询功能实现相对来说就非常简朴了,直接连接数据库,搜索到相应数据后输出到文本框中即可(如图6)在主模块中查询函数:PublicSubQuery()Dimstr2AsStringstr2="select*from顾客信息where卡号='"&u&"'"SetRS=NewADODB.Recordset图4-5查询界面RS.Openstr2,CON,adOpenDynamic,adLockPessimisticForm8.Label5.Caption=RS.Fields("金额")取款功能实现图4-6取款界面取款函数相对于其她函数就相对复杂一点,由于有诸多状况需要判断,列如只能取50与100整数,就需要对50取模,还需要判断所取金额与否不不大于卡上余额,余额局限性那也是没法成功取款。顾客取了一定数量钱后还需要把新数据重新写入数据库。PublicPublicSubTakeMoney()Dimstr1AsStringstr1="select*from顾客信息where卡号='"&u&"'"SetRS=NewADODB.RecordsetRS.Openstr1,CON,adOpenDynamic,adLockPessimistic前面也是对数据库进行连接,并把顾客信息依照所输卡号输入到记录集中。Ifi=2Then//在中文服务下m=Form5.Text1.TextIfm=""Then//m为空,阐明顾客没有输入金额k=0//这里K为全局变量,在背面数据库对顾客操作表进行写入时非常有用,k值标记操作成功与否,k=0操作失败,k=1则为成功Form3.ShowForm3.Label1.Caption="请您对的输入金额!"ExitSubEndIfIfmMod50<>0Then//所输金额不能被50整除k=0Form3.ShowForm3.Label1.Caption="请您对的输入金额!"Form5.Text1.Text=""ElseIfRS.Fields("金额")<CCur(m)Then//顾客卡中金额小与输入金额k=0Form3.ShowForm3.Label1.Caption="金额局限性!"Form5.Text1.Text=""ExitSubElsek=1//排除所有不对的状况,即输入对的,则对k赋值为1标记操作成功Money=RS.Fields("金额")RS.Fields("金额")=(Money-Form5.Text1.Text)//表中顾客金额减去所取金额RS.Update//将新数据写入所取位置RS.CloseCallInsertDatabase'//把操作插入顾客操作表,这个函数将在背面简介其功能UnloadForm5Form9.ShowForm9.Label1.Caption="交易成功,谢谢您使用,请拿好您钞票!"Form11.ShowForm9.SetFocusEndIfEndIf转账功能实现转帐功能规定顾客输入对方卡号及转帐金额,并且对方卡号也必要是在数据库中存在卡号,否则会出错,这里对数额上没有规定,并不规定是整数,可随意输入转帐金额。图4-7转账界面在程序实现中,同样要对顾客输入信息要验证其对的性,对方卡号必要真实存在,所输入金额不得超过卡上金额等等。PublicSubTrans()Dimstr3AsStringtranscard=Form7.Text1.Texttransmoney=Form7.Text2.Textstr3="select*from顾客信息where卡号='"&transcard&"'"SetRS=NewADODB.RecordsetRS.Openstr3,CON,adOpenDynamic,adLockPessimistic//数据库连接Ifi=2ThenIfForm7.Text2.Text=""OrForm7.Text1.Text=""Then//输入卡号或输入金额为空则出错k=0Form3.ShowForm3.Label1.Caption="请你对的输入!"Form7.Text1.Text=""Form7.Text2.Text=""CallInsertDatabase//每浮现一次错误就调用数据库写入函数。对顾客操作信息表进行添加操作信息。此函数将在背面简介ExitSubEndIfIfRS.EOF=TrueThen//记录集中没有所输入卡号顾客则出错k=0Form3.ShowForm3.Label1.Caption="没有此顾客,请检查并重新输入!"CallInsertDatabaseExitSubEndIfIftranscard=uThen//转帐卡号与实行转帐操作卡号相似,则出错k=0Form3.ShowForm3.Label1.Caption="操作错误,同帐户不可以转帐!"CallInsertDatabaseExitSubEndIfstr6="select*from顾客信息where卡号='"&u&"'"SetRS=NewADODB.RecordsetRS.Openstr6,CON,adOpenDynamic,adLockPessimisticIfRS.Fields("金额")<Val(Form7.Text2.Text)Then//判断输入金额与卡中余额k=0Form3.ShowForm3.Label1.Caption="金额局限性以转帐,请你重新输入"Form7.Text2.Text=""CallInsertDatabaseExitSubElsek=1UnloadForm7Form10.Text1.Text=transcardForm10.Text2.Text=transmoneyForm10.ShowEndIf在排除了不对的状况后,将转入确认信息界面,如图9,在确认信息窗体中将调用trans2函数,对交易成功后数据进行更新。图4-8确认界面PublicSubTrans2()Dimstr4AsStringstr4="select*from顾客信息where卡号='"&u&"'"SetRS=NewADODB.RecordsetRS.Openstr4,CON,adOpenDynamic,adLockPessimisticRS.Fields("金额")=RS.Fields("金额")–transmoney//对转出钱卡号减少相应数额RS.UpdateRS.CloseDimstr5AsStringstr5="select*from顾客信息where卡号='"&transcard&"'"SetRS=NewADODB.RecordsetRS.Openstr5,CON,adOpenDynamic,adLockPessimisticRS.Fields("金额")=RS.Fields("金额")+transmoney//所转入卡号加上相应数额RS.UpdateRS.CloseIfi=2ThenForm9.Label1.Caption="恭喜您转帐成功!"ElseForm9.Label1.Caption="Transferedsuccessfully!"EndIfForm11.ShowForm9.ShowForm9.SetFocusCallInsertDatabase//调用数据库写入函数EndSub密码修改功能实现图4-9修改密码界面在密码修改界面中(如图4-9)需要顾客两次输入密码相一致,否则不能进行修改,密码两次输入对的后,程序将新密码写入本来位置。PublicSubchangepwd()Ifi=2ThenIfLen(Form6.Text1.Text)<>6OrLen(Form6.Text1.Text)<>6Then//比较两次密码长度与否符合6位规定k=0Form3.ShowForm3.Label1.Caption="请对的输入6位密码"Form6.Text1.Text=""Form6.Text2.Text=""CallInsertDatabaseElseIfForm6.Text1.Text<>Form6.Text2.TextThen//比较两次输入与否一致k=0Form3.ShowForm3.Label1.Caption="您两次输入密码不一致,请检查!"Form6.Text1.Text=""Form6.Text2.Text=""CallInsertDatabaseElsestr="update顾客信息set[密码]='"&Form6.Text1.Text&"'where卡号='"&u&"'"SetRS=NewADODB.RecordsetRS.Openstr,CON,adOpenDynamic,adLockPessimistick=1CallInsertDatabaseIfi=2ThenForm9.ShowForm9.Label1.Caption="密码修改成功,请记好您新密码!"ElseForm9.ShowForm9.Label1.Caption="PasswordBechangedsuccessfully"EndIfUnloadForm6Form11.ShowForm9.SetFocusEndIfEndIf查询交易明细功能实现图4-10查询明细界面在查询交易明细界面中(如图2-19),最重要就是运用到了RECORDSET记录集EOF属性,通过判断BOF真值来判断与否取到了记录集合,并把所需要数据逐条到文本框中,在TEXT文本框中MULTILINE属性要设为TRUE,使输出文字可以自动换行PublicSubQuery2()Dimstr7AsStringSetRS=NewADODB.Recordsetstr7="select时间,操作,取款金额,转帐金额,转帐卡号,与否成功from顾客操作表where卡号='"&u&"'"//只搜索需要单元RS.Openstr7,CON,adOpenKeyset,adLockReadOnly//这里把对数据读取设为只读方式IfNotRS.EOFThen//如果RS.EOF值为假则阐明得到了所需要记录集合,为真则当前记录指针无效Form12.Text1.Text=RS.GetString//用RECORDSET对象GetString办法来得到记录集中字符串,并输出在文本框中EndIfEndSub别的界面及函数在完毕了所选取服务后都会浮现一种继续服务界面(如图12),用以选取退出还是返回到服务选取界面继续进行其她服务。图4-11继续服务界面在诸多

温馨提示

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

评论

0/150

提交评论