模拟ATM 机系统软件的设计与开发毕业设计论文

上传人:沈*** 文档编号:80353363 上传时间:2022-04-25 格式:DOC 页数:38 大小:3.26MB
收藏 版权申诉 举报 下载
模拟ATM 机系统软件的设计与开发毕业设计论文_第1页
第1页 / 共38页
模拟ATM 机系统软件的设计与开发毕业设计论文_第2页
第2页 / 共38页
模拟ATM 机系统软件的设计与开发毕业设计论文_第3页
第3页 / 共38页
资源描述:

《模拟ATM 机系统软件的设计与开发毕业设计论文》由会员分享,可在线阅读,更多相关《模拟ATM 机系统软件的设计与开发毕业设计论文(38页珍藏版)》请在装配图网上搜索。

1、毕业设计(论文)模拟ATM 机系统软件的设计与开发论文作者姓名:申请学位专业:申请学位类别:指导教师姓名(职称):论文提交日期:模拟ATM 机系统软件的设计与开发摘 要二十世纪末,随着金融服务的迅速发展,银行提款机已经发展成了各大银行金融服务战略中的重要一环,同时,银行提款机系统也经历了持续的更新换代,为广大用户提供了更加便捷和人性化的服务。模拟ATM系统就是对提款机操作系统在个人PC上及主流操作平台上的编程实现,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发制作两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用,界面友好等

2、特点。本系统采用VB6.0,微软SQLSERVER2000,实现了用户身份的认证、取款、转帐、交易明细的查询等功能。分析并解决实现中遇到的若干问题,例如数据库资料如何实现更新,文本框的文字输出需要用到什么技术,如何实现中英文两种界面,用户服务功能如何实现等等。关键词: 模拟ATM银行系统;ADO控件;VB6.0;SQLSERVER2000The design and development of ATM simulation systemAbstractAt the end of the 20th century, as the fast development of financial se

3、rvices, ATM machines have become the major part of the financial services strategy of every bank, bank teller system has undergone a continuous upgrading, supplied a more efficient and human services for the customers. ATM simulation system is the operating system of personal teller machines on the

4、PC platform and the mainstream of programming. The development includes two aspects. The one is establishment and maintenance of background database, the other is development of front-end applications. The former requires establishing a consistency and integrity of strong data security for good. And

5、 for the latter demands the application functions are perfect, and easy-to-use and friendly interface, and other features. The ATM system describes the structure and function module of the entire layout of the system; The system realized the user authentication, withdrawals, transfers, details of th

6、e transaction inquiries, with the Visual Basic 6.0, Microsoft SQL SERVER2000; The system analyzed and resolved encountered umpteen issues in the realization, for example, how to realize the database updated, whats the necessary technology is to realize the text areas outputting, how to realize the E

7、nglish and Chinese interfaces ingeniously, and how to realize user services functions and so on.Key words: ATM simulation system ; ADO; VB6.0 ;SQLSERVER2000目 录 论文总页数:26页1引言12开发模拟ATM系统的目的与意义12.1ATM起源12.2模拟ATM系统的意义12.2.1现实意义12.2.2学习意义23模拟ATM系统开发平台简介23.1Windows下的Visual Basic 编程环境简介23.1.1面向对象的编程23.1.2Vi

8、sual Basic 6.0特点介绍23.1.3生成帮助文件及版本信息43.2SQLSERVER2000数据库简介53.2.1数据库的概念53.2.2微软SQLSERVER2000简介53.3VB6.0与SQL数据库二者的连接(ADO)54系统分析设计64.1系统功能简介64.2系统流程图74.3系统开发主要应用技术74.3.1系统前台设计74.3.2后台数据库设计85系统功能的实现95.1欢迎界面实现95.2登陆的实现95.3主界面实现125.4查询余额功能的实现135.5取款功能的实现145.6转账功能的实现165.7密码修改功能的实现195.8查询交易明细功能的实现215.9其余界面及函

9、数216系统运行结果及工作总结236.1系统测试及运行结果236.2系统有待改进之处236.3系统中遇到的问题及解决方法23结 论24参考文献24致 谢25声 明261 引言随着时代的进步,社会生产力高速发展,新技术层出不穷,信息量急剧膨胀,整个人类社会已成为金融化信息化的社会,并开始朝着自动化智能化发展。以往人们去银行存款取款进行各种财务处理都必须通过柜台,随着越来越多的人们进入银行,使用银行的服务,使银行出现了工作效率低,顾客等待时间过长等等问题,既加大了银行工作人员的工作量,又使得人们享受银行服务的质量大幅度降低,所以银行交易的自动化智能化已经成为了一个不可逆转的趋势,而且必将成为各个银

10、行今后发展的重点。系统在前台采用了Visual Basic6.0这一功能全面,方便易学的语言作为开发语言,而后台则用功能强大的SQLSERVER2000数据库加以实现。 2 开发模拟ATM系统的目的与意义2.1 ATM起源现代意义上的ATM和POS系统始于二十世纪60年代末。最早的ATM机只是现钞发放机。1976年,英格兰的巴克莱银行安装了第一台现钞发放机。它并没有使用磁条卡,而是向用户发行纸券,用户将纸券插入机器,取出面值为10英镑的钞票。现代ATM机的想法来自于唐维泽尔。1968年,当他在达拉斯银行排队等候的时候,萌发了这个想法。之后,他建议自己的雇主Docutel研制这种机器。研发中最重

11、要的过程是将信息加密后存储在磁条上,然后将磁条加在塑料卡片上。研制成功后,Doctuel将ATM机卖给了纽约化学银行。1969年,化学银行把这个机器安装在洛克菲勒中心的办公室。虽然Docutel的ATM机器使用了现代的磁条技术,但和今天的技术相比,还是显得比较原始。它只能用于取现钞,而且只能脱线使用。机器用特殊的方法打印下交易的纪录。直到20世纪70年代初,ATM技术才发展到我们今天的水平。起初,ATM主要用来处理信用卡,到了1972年,克里夫兰城市国家银行成功地引进了一种可在ATM机上使用的没有透支功能的卡片。如今,ATM机发展了更多功能,包括存钱、支票和储蓄账户之间相互转账,付款等等。同时

12、,ATM实现了与计算机相连接,使客户可以实时地了解账户余额和支付情况。多台ATM机与银行主机相连,就逐渐形成了ATM网络。2.2 模拟ATM系统的意义2.2.1 现实意义目前全球共有ATM超过120万台,平均每5分钟新增一台,连南极科考基地都安装了ATM,每年通过这些机器进行的金融交易超过400亿笔。从这些数据可以看出银行自动提款机已经进入了人们的日常生活,我们对自助式服务已经不再陌生,并成为了人们日常生活习以为常的一部分,确实的给人们的生活带来了极大的便利。经过了近40年的发展,ATM也取得了长足的进步,从早期的纸券取钱,到现在的一卡在手,ATM机也从早期的简单机器,后期的系统集成式机器,发

13、展成了如今的基于个人PC上操作系统下的智能化系统,拥有了更多更全更加方便的功能。随着个人PC的快速发展,越来越多的ATM机逐步替换为了PC机,也采用了基于WINDOWS XP系统下的操作系统,具有了更加人性化,更加友好的操作界面,也具有了更快的响应速度,这也使得各个银行之间的ATM操作平台有了逐步统一的可能,加强各银行的服务联系,使客户跨行进行ATM交易将更加便捷,资费也能够得到降低。本次开发的ATM系统就是基于WINXP系统下的具有友好界面的软件系统2.2.2 学习意义开发一个软件系统,从需求分析到流程图的绘制及模块的分析,再到最后的数据库设计 及代码的编写实现都要自己动手一步一步的来解决完

14、成,这个过程对于自己在大学所学的知识是一个非常好的检验,对动手能力及思维能力也是一次非常好的锻炼。希望通过此次的研究学习,认清自己的不足之处,不断的去学习完善自己的理论知识,逐步提高动手能力,为以后的工作打下坚实的基础。3 模拟ATM系统开发平台简介3.1 Windows下的Visual Basic 编程环境简介3.1.1 面向对象的编程微软公司的Visual Basic 6.0是Windows应用程序开发工具,使目前最为广泛的、易学易用的面向对象的开发工具。Visual Basic提供了大量的控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效的

15、提高了应用程序的运行效率和可靠性。故而,实现本系统VB是一个相对较好的选择。3.1.2 Visual Basic 6.0特点介绍Vsual Basic6.0是一种可视化的、面对对象和条用事件驱动方式的结构化高级程序设计,可用于开发Windows环境下的种类应用程序。它简单易学、效率高,且功能强大,可以与Windows的专业开发工具SDK相媲美,而且程序开发人员不必具有C/C+编程基础。在Visual Basic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的应用程序接口(API)函数,以及动态链接库(DLL)、动态数据交换(DDE)、对象的链接与嵌入(OLE)

16、、开放式数据访问(ODBC)等技术,可以高效、快速地开发出Windows环境下功能强大、图形界面丰富的应用软件系统。总的来说,Visual Basic具有以下特点:(1)可视化编程:用传统程序设计语言设计程序时,都是通过编写程序代码来设计用户界面,在设计过程中看不到界面的实际显示效果,必须编译后运行程序才能观察。如果对界面的效果不满意,还要回到程序中修改。有时候,这种编程-编译-修改的操作可能要反复多次,大大影响了软件开发效率。Visual Basic提供了可视化设计工具,把Windows界面设计的复杂性“封装”起来,开发人员不必为界面设计而编写大量程序代码。只需要按设计要求的屏幕布局,用系统

17、提供的工具,在屏幕上画出各种“部件”,即图形对象,并设置这些图形对象的属性。Visual Basic自动产生界面设计代码,程序设计人员只需要编写实现程序功能的那部分代码,从而可以大大提高程序设计的效率。(2)面向对象的程序设计Visual Basic应用面向对象的程序设计方法(OOP),把程序和数据封装起来作为一个对象,并为每个对象赋予应有的属性,使对象成为实在的东西。在设计对象时,不必编写建立和描述每个对象的程序代码,而是用工具画在界面上,Visual Basic自动生成对象的程序代码并封装起来。每个对象以图形方式显示在界面上,都是可视的。(3)结构化程序设计语言Visual Basic是在

18、BASIC语言的基础上发展起来的,具有高级程序设计语言的语句结构,接近于自然语言和人类的逻辑思维方式。Visual Basic语句简单易懂,其编辑器支持彩色代码,可自动进行语法错误检查,同时具有功能强大且使用灵活的调试器和编译器。Visual Basic是解释型语言,在输入代码的同时,解释系统将高级语言分解翻译成计算机可以识别的机器指令,并判断每个语句的语法错误。在设计Visual Basic程序的过程中,随时可以运行程序,而在整个程序设计好之后,可以编译生成可执行文件(.EXE),脱离Visual Basic环境,直接在Windows环境下运行。(4)事件驱动编程机制Visual Basic

19、通过事件来执行对象的操作。一个对象可能会产生多个事件,每个事件都可以通过一段程序来响应。在用Visual Basic设计大型应用软件时,不必建立具有明显开始和结束的程序,而是编写若干个微小的子程序,即过程。这些过程分别面向不同的对象,由用户操作引发某个事件来驱动完成某种特定的功能,或者由事件驱动程序调用通用过程来执行指定的操作,这样可以方便编程人员,提高效率。(5)访问数据库Visual Basic具有强大的数据库管理功能,利用数据控件和数据库管理窗口,可以直接建立或处理Microsoft Access格式的数据库,并提供了强大的数据存储和检索功能。同时,Visual Basic还能直接编辑和

20、访问其他外部数据库,如dBASE,FoxPro,Paradox等,这些数据库格式都可以用Visual Basic编辑和处理。Visual Basic提供开放式数据连接,即ODBC功能,可通过直接访问或建立连接的方式使用并操作后台大型网络数据库,如SQL Server,Oracle等。在应用程序中,可以使用结构化查询语言SQL数据标准,直接访问服务器上的数据库,并提供了简单的面向对象的库操作指令和多用户数据库访问的加锁机制和网络数据库的SQL的编程技术,为单机上运行的数据库提供了SQL网络接口,以便在分布式环境中快速而有效地实现客户/服务器(client/server)方案。(6)动态数据交换(

21、DDE)利用动态数据交换(Dynamic Data Exchange)技术,可以把一种应用程序中的数据动态地链接到另一种应用程序中,使两种完全不同的应用程序建立起一条动态数据链路。当原始数据变化时,可以自动更新链接的数据。Visual Basic提供了动态数据交换的编程技术,可以在应用程序中与其他Windows应用程序建立动态数据交换,在不同的应用程序之间进行通信。(7)对象的链接与嵌入(OLE)对象的链接与嵌入(OLE)将每个应用程序都看做是一个对象(object),将不同的对象链接(link)起来,再嵌入(embed)某个应用程序中,从而可以得到具有声音、影像、图像、动画、文字等各种信息的

22、集合式的文件。OLE技术是Microsoft公司对象技术的战略,它把多个应用程序合为一体,将每个应用程序看做是一个对象进行链接和嵌入,是一种应用程序一体化的技术。利用OLE技术,可以方便地建立复合式文档(compound document),这种文档由来自多个不同应用程序的对象组成,文档中的每个对象都与原来的应用程序相联系,并可执行与原来应用程序完全相同的操作。(8)动态链接库(DLL)Visual Basic是一种高级程序设计语言,不具备低级语言的功能,对访问机器硬件的操作不太容易实现。但它可以通过动态链接库技术将C/C+或汇编语言编写的程序加入到Visual Basic应用程序中,可以像调

23、用内部函数一样调用其他语言编写的函数。此外,通过动态链接库,还可以调用Windows应用程序接口(API)函数,实现SDK所具有的功能。3.1.3 生成帮助文件及版本信息 专业水平的软件通常都带有联机帮助功能。无论写出来的程序是要给大量的用户使用,还是仅仅局限于公司内部有限的使用者,我们都应该为用户提供详细的、易于理解的联机帮助文档。微软的Help Workshop4.0 是一套独立于Visual Basic 的用来协助我们创建、运行于32位Windows 操作系统下的帮助文件的工具。使用它我们可以为我们编写的应用程序生成一组帮助文件。为了是程序显得更具有专业风格,首先可以在其中加入通常的应用

24、程序信息。这些信息包括公司名称、版本号、修订号以及其他类似信息。Visual Basic允许你使用APP对象来保存这些信息,APP对象是一个预定义对象,不需要在程序中创建它。APP对象的大多数属性被应用程序用来提供常规的信息,通过使用这些APP提供的属性,可以在应用程序和用户之间交流重要信息,在项目属性框中可以设置它的属性。3.2 SQLSERVER2000数据库简介3.2.1 数据库的概念数据库是一种存储数据并对数据进行操作的工具。数据库的作用在于组织和表达信息,简而言之,数据库就是信息的集合。计算机的数据库可以分为两类:非关系数据库(flat-file)和关系数据库(relational)

25、。关系数据库中包含了多个数据表的信息,数据库含有各个不同部分的术语,象记录、域等。 3.2.2 微软SQLSERVER2000简介SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统的最新版本该版本继承了SQL Server 7.0 版本的优点同时又比它增加了许多更先进的功能具有使用方便可伸缩性好与相关软件集成程度高等优点可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用ADO是访问由微软推出的最新.功能最强,且容易使用的数据访问实例(OLED

26、B)的应用程序接口. 我们就是通过它以及创建Active X数据对象 3.3 VB6.0与SQL数据库二者的连接(ADO)ADO Recordset来访问SQLSEVER2000上的ODBC数据源.使用ADO控件可以方便的在VB6中访问ODBC数据库,但是通过直接放置ADODS控件来获得ADO的数据连接比较麻烦,可以在VB工程中创建一个公共数据模块,将ADO控件的初始化、建立连接、关闭连接等操作都写到函数中,这样就可以在工程的其他模块中共享调用这个ADO连接。一次完整的ADO调用操作分为如下几个步骤:(1)打开ADO到数据库的连接,初始化ADO RECORDSET集。 (2)通过写入SQL语句

27、执行查询并返回查询结果RECORDSET集;或者可以通过写入SQL语句执行相应数据库操作。 (3)释放RECORDSET集,关闭数据库连接。需要注意的是,每个动态创建的ADO同时只能被一个过程调用,如果需要进行多表并行操作,可能需要在公共数据模块中建立多个动态ADO。在本次设计中,由于我只设计了一个主模块,所以直接将ADO控件的初始化、建立连接、关闭连接等操作都写到了最先调用的身份认证函数中,就已经可以满足我对数据库的访问操作. 通过ADO控件使Visual Basic程序与SQLSERVER数据库之间架起了一座桥梁,我们可以很方便的通过修改程序中ADODC的参数,并通过SQL语句来指向数据库

28、的不同部分,从而方便的对数据库进行各种操作.4 系统分析设计4.1 系统功能简介经过对比真实的银行提款机系统,本系统实现以下内容:1.可以选择中文和英文两种语言服务2身份认证3.密码修改4.取款.5.转帐.6.查询余额.7.查询交易明细4.2 系统流程图 登陆 身份验证选择服务查询余额取款 转账修改密码查询明细退出 图1系统流程图4.3 系统开发主要应用技术WINDOWS XP是时下最流行的电脑操作系统稳定性安全性都非常不错,而随着ATM提款机逐步采用个人电脑,以及性能的升级,WINXP也有了可能成为这些提款机的操作系统,所以本次系统也在WINXP下进行开发。由于需要开发出前台客户友好界面及后

29、台数据库系统,而对于前台只要能满足其界面开发需要即可,所以我采用了相对简单易用并且功能强大的VB6.0,后台数据库则采用了与之相连方便且功能同样强大的SQLSERVER2000。采用以上两个开发软件完全能够满足ATM模拟系统的开发需要。4.3.1 系统前台设计系统主要是由前台(客户操作界面)与后台(数据库)两个部分组成。前台部分整个代码程序采用一个主模块,在里面定义程序全局变量,把各种功能函数写入其中,每个界面制作一个独立窗体,在各个窗体代码中来调用主模块中的各个函数来,来实现相应功能。界面部分由于08年奥运会的临近,系统采用了几副有关北京08奥运会的卡通图片,让界面整体突出一种奥运气氛。通过

30、可爱的卡通动物也实现了友好亲切的操作氛围。 4.3.2 后台数据库设计经过充分考虑,认为系统并不需要非常复杂的数据库系统就能够达到模拟ATM系统的效果,所以建立了一个名为XQQATM的SQL服务器,创建了名为USER的数据库,用户登陆名为sa密码为空,并在ODBC数据源中将USER数据库添加进去。其中实际上只运用到两个表,一个用户信息表和一个用户操作表。 表1 用户信息表用户信息表(如表1)用以存放用户的卡号,密码,存款金额等信息,由于该系统是为了模拟运用,故安全要求不高,所以密码采用了明文方式存放,便于使用查看。本次模拟系统并不具有创建新用户的功能,用户信息表上的内容都是为了模拟而手动添加的

31、样本用户。 表2 用户操作表用户操作表(如表3)则用来记录用户在ATM机上所使用的服务,它包括了所有用户对ATM的操作信息,包括时间,操作类型,金额,转帐卡号,成功与否等等。用户查询明细的功能就是通过搜集检索这张表来实现。同时管理人员也可以从这张表上很方便的查阅用户使用情况。当然,真实的银行ATM系统,其后台的数据库系统肯定是十分庞大的一个系统,对保密性的要求也非常的高,在这次的模拟中当然不可能达到那样的要求。5 系统功能的实现5.1 欢迎界面实现 图2 欢迎界面在欢迎界面(如图2)我们可以自由的选择两种语言,分别为我们最常用的中文和英语,在这里主模块中定义了一个非常重要的INT整型变量i,通

32、过i的值来决定所选择的服务。任意点击一种服务都将进入登陆界面。Private Sub Command1_Click()i = 2 当点中文按钮时,i的值就被赋为了2,在后面的操作中,i的值就将始终为2,用以区别所选语言服务Unload Form1Form2.ShowEnd SubPrivate Sub Command2_Click()i = 1 点ENGLISH按钮时 i的值赋1 Unload Form1Form2.ShowEnd Sub5.2 登陆的实现在登陆界面有两种语言可以为用户服务,一是中文,而是英文。选择两种语言的功能和界面背景实际上都是完全一致的,只是语言文字不同。如图3为选择中文

33、的界面: 图 3 登陆界面(中文)如果点击的是ENGLISH, 则登陆界面为图4 图4 登陆界面(英文)这里的两个界面并非通过两个窗体单独实现而是共用一个窗体,通过判断i的值,对label中的CAPTION进行相应的中文和英文赋值。后面的操作界面同样也是采用这种方法,就不再做英文的界面介绍。这里把默认的语言选择为中文直接在窗体编辑菜单中对CAPTION进行了相应赋值。如果为英文则需执行下面的语句,此后的每个界面语言确定及实现都是通过采取这个方法Private Sub Form_Load()If i = 1 Then /判断i的值 如果为1则进行英文赋值Label1.Caption = Do y

34、ou want to continue?Please choose!Command1.Caption = other serviceCommand2.Caption = CancelEnd IfEnd Sub在窗体中我们首先来判断用户输入的卡号和密码是否符合我们的规定。卡号为8位密码为6位Private Sub Command1_Click() /当我们点下确认按钮时If i = 2 ThenIf Len(Text1.Text) 8 Or Len(Text2.Text) 6 Then / 比较卡号是否为8位及密码是否为6位Form3.ShowForm3.Label1.Caption = 没有正

35、确输入卡号或密码Text1.Text = Text2.Text = ElseCall Checkuser /这里是调用主模块中的身份验证函数,在后面的窗体实现中都是通过CALL语句来直接调用相应函数的 End IfEnd If /以下为用户选择英语的代码,和选择中文时是一样的,在后面的介绍中将不在引用英语的代码If i = 1 ThenIf Len(Text1.Text) 8 Or Len(Text2.Text) 6 ThenForm3.ShowForm3.Label1.Caption = Please Input Correct Cardnumber Or PasswordText1.Tex

36、t = Text2.Text = ElseCall CheckuserEnd IfEnd IfEnd Sub在主模块MODEL1中身份验证函数代码为Public Sub Checkuser() 定义Checkuser函数Dim strr As StringSet CON = New ADODB.Connectionstrr = Provider=SQLOLEDB.1;Password= ;Persist Security Info=True;User ID=sa;Initial Catalog=user;Data Source=XQQATM/ 这段语句采用了动态连接数据库的方法与数据库USER

37、进行连接,采用的是SQL OLEDB应用接口。CON.Open strr u = Form2.Text1.Text 把卡号赋给ustr = select 密码 from 用户信息 where 卡号= & u & /SQL数据库查询语句,根据卡号把所查询的密码数据放入str中Set RS = New ADODB.Recordset /设置RS为新的Recordset对象RS.Open str, CON, adOpenDynamic, adLockPessimisticIf RS.EOF = True Then /当前记录指针无效,说明不存在这个用户If i = 2 ThenForm3.ShowF

38、orm3.Label1.Caption = 没有此用户,请检查并重新输入!u = / u重新设置为空接下来就是比较从所输卡号中取出的密码与用户输入的密码进行比较If Trim(RS.Fields(0) = Trim(Form2.Text2.Text) Then /检验密码是否相同Form4.Show /密码相同转入服务界面RS.Close Unload Form2在窗体中直接通过程序代码调用在模块中的Checkuser函数即可,后面的界面都是采用这种方法,都不再进行仔细说明。 5.3 主界面实现图 5 服务界面在主界面中(如图5)有5个服务按钮 设置了一个整型变量j,在点击各种服务的同时,J也

39、被赋予了不同的数值,用以后面记录用户操作信息,写入数据库。Private Sub Command1_Click()If Option1(0).Value = True Thenj = 1Unload Form4Form5.ShowElseIf Option1(1).Value = True Thenj = 2Unload Form4Form6.ShowElseIf Option1(2).Value = True Thenj = 3Unload Form4Form7.ShowElseIf Option1(4).Value = True ThenJ = 5Unload Form4Form12.Sh

40、owElseIf Option1(3).Value = True Thenj = 4Unload Form4Call QueryForm8.ShowForm8.Label2.Caption = u5.4 查询余额功能的实现查询功能的实现相对来说就非常简单了,直接连接数据库,搜索到相应的数据后输出到文本框中即可(如图6)在主模块中的查询函数:Public Sub Query()Dim str2 As Stringstr2 = select * from 用户信息 where 卡号= & u & Set RS = New ADODB.Recordset 图6 查询界面RS.Open str2, C

41、ON, adOpenDynamic, adLockPessimisticForm8.Label5.Caption = RS.Fields(金额)5.5 取款功能的实现图7 取款界面取款函数相对于其他函数就相对复杂一点,因为有很多情况需要判断,列如只能取50与100的整数,就需要对50取模,还需要判断所取金额是否大于卡上的余额,余额不足那也是没法成功取款的。用户取了一定数量的钱后还需要把新的数据重新写入数据库。Public Public Sub TakeMoney()Dim str1 As Stringstr1 = select * from 用户信息 where 卡号= & u & Set R

42、S = New ADODB.RecordsetRS.Open str1, CON, adOpenDynamic, adLockPessimistic 前面也是对数据库进行连接,并把用户信息根据所输卡号输入到记录集中。If i = 2 Then /在中文服务下m = Form5.Text1.TextIf m = Then /m为空,说明用户没有输入金额k = 0 /这里的K为全局变量 ,在后面数据库对用户操作表进行写入时非常有用,k的值标识操作的成功与否,k=0操作失败,k=1则为成功 Form3.ShowForm3.Label1.Caption = 请您正确输入金额!Exit SubEnd I

43、fIf m Mod 50 0 Then / 所输金额不能被50整除k = 0Form3.ShowForm3.Label1.Caption = 请您正确输入金额!Form5.Text1.Text = ElseIf RS.Fields(金额) CCur(m) Then /用户卡中金额小与输入的金额k = 0Form3.ShowForm3.Label1.Caption = 金额不足!Form5.Text1.Text = Exit SubElsek = 1 /排除所有不正确情况,即输入正确,则对k赋值为1 标识操作成功Money = RS.Fields(金额)RS.Fields(金额) = (Mone

44、y - Form5.Text1.Text) / 表中用户金额减去所取金额RS.Update / 将新的数据写入所取位置RS.CloseCall InsertDatabase /把操作插入用户操作表,这个函数将在后面介绍其功能Unload Form5Form9.ShowForm9.Label1.Caption = 交易成功,谢谢您的使用,请拿好您的钞票!Form11.ShowForm9.SetFocusEnd IfEnd If5.6 转账功能的实现转帐功能要求用户输入对方卡号及转帐金额,并且对方卡号也必须是在数据库中存在的卡号,否则会出错,这里对数额上没有要求,并不要求是整数,可随意输入转帐金额

45、 。 图8 转账界面在程序实现中,同样要对用户输入的信息要验证其正确性,对方卡号必须真实存在,所输入金额不得超过卡上金额等等。 Public Sub Trans()Dim str3 As Stringtranscard = Form7.Text1.Texttransmoney = Form7.Text2.Textstr3 = select * from 用户信息 where 卡号= & transcard & Set RS = New ADODB.Recordset RS.Open str3, CON, adOpenDynamic, adLockPessimistic /数据库连接If i =

46、 2 ThenIf Form7.Text2.Text = Or Form7.Text1.Text = Then / 输入卡号或输入金额为空 则出错k = 0Form3.ShowForm3.Label1.Caption = 请你正确输入!Form7.Text1.Text = Form7.Text2.Text = Call InsertDatabase /每出现一次错误就调用数据库写入函数。对用户操作信息表进行添加操作信息。此函数将在后面介绍Exit SubEnd IfIf RS.EOF = True Then /记录集中没有所输入卡号的用户 则出错k = 0Form3.ShowForm3.Lab

47、el1.Caption = 没有此用户,请检查并重新输入!Call InsertDatabaseExit SubEnd IfIf transcard = u Then /转帐卡号与实施转帐操作的卡号相同,则出错k = 0Form3.ShowForm3.Label1.Caption = 操作错误,同帐户不可以转帐!Call InsertDatabaseExit SubEnd Ifstr6 = select * from 用户信息 where 卡号= & u & Set RS = New ADODB.RecordsetRS.Open str6, CON, adOpenDynamic, adLock

48、PessimisticIf RS.Fields(金额) Val(Form7.Text2.Text) Then /判断输入金额与卡中余额k = 0Form3.ShowForm3.Label1.Caption = 金额不足以转帐,请你重新输入Form7.Text2.Text = Call InsertDatabaseExit SubElsek = 1Unload Form7Form10.Text1.Text = transcardForm10.Text2.Text = transmoneyForm10.ShowEnd If在排除了不正确的情况后,将转入确认信息界面,如图9,在确认信息窗体中将调用t

49、rans2函数,对交易成功后的数据进行更新 图 9 确认界面Public Sub Trans2()Dim str4 As Stringstr4 = select * from 用户信息 where 卡号= & u & Set RS = New ADODB.RecordsetRS.Open str4, CON, adOpenDynamic, adLockPessimisticRS.Fields(金额) = RS.Fields(金额) transmoney /对转出钱的卡号减少相应数额RS.UpdateRS.CloseDim str5 As Stringstr5 = select * from 用

50、户信息 where 卡号= & transcard & Set RS = New ADODB.RecordsetRS.Open str5, CON, adOpenDynamic, adLockPessimisticRS.Fields(金额) = RS.Fields(金额) + transmoney /所转入的卡号加上相应数额RS.UpdateRS.CloseIf i = 2 ThenForm9.Label1.Caption = 恭喜您转帐成功!ElseForm9.Label1.Caption = Transfered successfully!End IfForm11.ShowForm9.Sh

51、owForm9.SetFocusCall InsertDatabase /调用数据库写入函数End Sub5.7 密码修改功能的实现图10 修改密码界面在密码修改界面中(如图10)需要用户两次输入的密码相一致,否则不能进行修改,密码两次输入正确后,程序将新的密码写入原来位置。Public Sub changepwd()If i = 2 ThenIf Len(Form6.Text1.Text) 6 Or Len(Form6.Text1.Text) 6 Then/比较两次密码长度是否符合6位的要求k = 0Form3.ShowForm3.Label1.Caption = 请正确输入6位密码Form

52、6.Text1.Text = Form6.Text2.Text = Call InsertDatabaseElseIf Form6.Text1.Text Form6.Text2.Text Then/比较两次输入是否一致k = 0Form3.ShowForm3.Label1.Caption = 您两次输入的密码不一致,请检查!Form6.Text1.Text = Form6.Text2.Text = Call InsertDatabaseElsestr = update 用户信息 set 密码= & Form6.Text1.Text & where 卡号= & u & Set RS = New

53、ADODB.RecordsetRS.Open str, CON, adOpenDynamic, adLockPessimistick = 1Call InsertDatabaseIf i = 2 ThenForm9.ShowForm9.Label1.Caption = 密码修改成功,请记好您的新密码!ElseForm9.ShowForm9.Label1.Caption = Password Be changed successfullyEnd IfUnload Form6Form11.ShowForm9.SetFocusEnd If End If5.8 查询交易明细功能的实现 图11 查询明细

54、界面在查询交易明细界面中(如图11),最重要的就是运用到了RECORDSET记录集EOF属性,通过判断BOF的真值来判断是否取到了记录集合,并把所需要的数据逐条到文本框中,在TEXT文本框中的MULTILINE属性要设为TRUE,使输出的文字能够自动换行Public Sub Query2() Dim str7 As StringSet RS = New ADODB.Recordsetstr7 = select 时间,操作,取款金额,转帐金额,转帐卡号,是否成功 from 用户操作表 where 卡号= & u & /只搜索需要的单元RS.Open str7, CON, adOpenKeyset

55、, adLockReadOnly /这里把对数据的读取设为只读方式If Not RS.EOF Then /如果RS.EOF值为假则说明得到了所需要的记录集合,为真则当前记录指针无效Form12.Text1.Text = RS.GetString /用RECORDSET对象的GetString方法来得到记录集中的字符串,并输出在文本框中End IfEnd Sub5.9 其余界面及函数在完成了所选择的服务后都会出现一个继续服务的界面(如图12),用以选择退出还是返回到服务选择界面继续进行其他服务。 图12 继续服务界面在很多函数的运用中都要调用InsertDatabase函数,用以对数据库中用户操

56、作信息表进行用户操作信息的写入,包括操作类型,操作时间,操作金额,转帐卡号,转帐金额,以及是否成功等等。这里就介绍其中对取款操作写入的代码即可,其余的都是一样的Public Sub InsertDatabase()str = select * from 用户操作表Set RS = New ADODB.RecordsetRS.Open str, CON, adOpenDynamic, adLockPessimisticIf j = 1 And k = 1 Then /这里j就是前面所选择的服务的标识RS.AddNewRS.Fields(卡号) = uRS.Fields(操作) = 取款RS.Fi

57、elds(时间) = NowRS.Fields(取款金额) = Val(Form5.Text1.Text)RS.Fields(是否成功) = 是RS.UpdateRS.CloseElseIf j = 1 And k = 0 ThenRS.AddNewRS.Fields(卡号) = uRS.Fields(操作) = 取款RS.Fields(时间) = NowRS.Fields(取款金额) = Val(Form5.Text1.Text)RS.Fields(是否成功) = 否RS.UpdateRS.Close6 系统运行结果及工作总结6.1 系统测试及运行结果系统测试全部功能都能够使用,也达到了预期

58、的效果,运行速度和稳定性都不错。界面设计经过细细的调整之后,人性化的设计基本达到了要求。6.2 系统有待改进之处因为系统只是要求模拟,并不牵涉到真实的一些处理,所以很多真实的应用并不没有加在里面,一些与真实的自动化机器的接口连接并没有做到。在程序运行时有时会因为输入的数字过大而出现内存溢出,程序崩溃现象,经过调试改正已经有了很大改观,但仍然存在不可知的错误。6.3 系统中遇到的问题及解决方法首先遇到的问题就是系统分析不足的问题,在大致考虑了一些功能后就开始动手做,想到哪里做到哪里,一度陷入了困境,其后从新开始理清了思绪,画好了流程图在做,随即顺畅了许多。其次就是与数据库连接上的问题,由于对VB

59、与SQL连接的不熟走了很多弯路,使程序设计需要用到数据库时复杂化,过后通过老师同学指点,采用了ADO控件的动态连接,才解决一个头疼的问题。其后的问题都是程序中逻辑性的一些小问题,大多数都是一些遗漏,导致程序死循环,或者是数据库写入不去作用等等,都是通过仔细重新分析检查一一解决。在所有代码编写完成后,再一一验证其功能,修正了很多不足,也使得程序慢慢完善起来。第 33 页 共 26 页结 论本系统完成了用户身份的认证、取款、转帐、余额的查询、交易明细的查询等功能.在本系统的开发过程中,由于我是初次开发软件,在知识、经验方面都存在着不足。另外,在整个开发的过程中,都是自己边学边做,网上查找相关资料,

60、求助同学和指导老师,一点一滴的编写出来的,程序的逻辑严谨性上肯定要差一些,该系统也就必然会存在一些缺陷和不足。尽管此次模拟系统存在着很多不能实现的功能,如连网,但也实现了基本的银行提款机所需要的功能,而且未来的提款机不外乎也就是这些基本功能的扩展,也是向着更人性化,更稳定,速度更快,保密性更强功能更全面的方向发展,在此次开发的系统上再不断的完善开发出新的功能是完全有可能的。通过开发这个系统,我掌握了基本的开发过程,了解基本知识并巩固了对MS Visual Basic 6.0的学习,但在这次毕业设计中的最大收获不但掌握这几门开发工具的应用,而且学会了设计系统的思维方法,以及独立自学,刻苦钻研的精

61、神。参考文献1赵建敏,郭庆.Visual Basic 6.0编程指南M .北京 :航空工业出版社,1999,8 。2高智勇.Visual Basic 6.0实例教程M .北京:航空工业出版社,1999,10 。3方睿,刁仁宏,吴四九.网络数据库原理及应用M .四川:四川大学出版社,2005,8 。4李鸿吉.Visual Basic 高级编程技术M .北京:科学出版社,2003,7 。5高春艳.Visual Basic 精彩编程M .北京:机械工业出版社,2003,1 。6 李代平.SQLServer2000实用宝典M .北京:地质出版社,2001,3 。7松桥工作室.深入浅出Visual Basic

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!