ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:111.82KB ,
资源ID:8975612      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8975612.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ATM实验报告.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

ATM实验报告.docx

1、ATM实验报告课程名称 VB程序设计 成绩评定 实验项目名称 ATM 指导教师 余宏华 实验项目编号 实验项目类型 实验地点 学生姓名 刘细萍 学号 2012050279 学生姓名 徐嘉茵 学号 2012050280 学生姓名 吴晓君 学号 2012050274 学生姓名 徐如婵 学号 2012052712 学院 经济学院 系 国际经济与贸易 专业 国际经济与贸易 实验时间 2013 年 6月 1 日 6 月 25 日 一、 实验目的(知识点)实验目的:模拟一个ATM终端程序知识点:1. (熟练)数组(一维数组、一维动态数组)2. (掌握)自定义数据类型(构造复杂类型的数据结构、作为函数参数与

2、返回值)3. (熟练)函数(自定义数据类型作为参数传递、变量的作用域)4. (掌握)简单的排序算法(冒泡或选择)5. (掌握)文件(顺序文件的读写)6. (了解)其他(异常处理、内存变量回收、逻辑业务与界面设计分离的思想)二、 实验内容(一) 设计说明本实验分为业务逻辑设计和界面设计两部分,相互之间互不干扰,只通过外部函数的调用来相互沟通。界面设计部分只负责界面以及数据的显示(为简单起见,数据有效性检测仅放在界面部分)。业务逻辑设计部分包括ATM柜员机的所有业务逻辑函数,以及相应的数据结构。本模拟程序仅使用“带格式数据”的顺序文件作数据存储,程序中所使用的数据结构与文件中的数据格式一一对应。程

3、序启动时先将文件里面的数据全部读入内存,生成相应的数据结构(自定义数据类型数组);一旦用户作业务逻辑操作使内存中相应数据发生任何变化,立即将数据结构(自定义数据类型数组)的所有内容全部写入文件(覆盖原文件)。因将文件中的全部数据读入内存,内存中的数据结构包含“所有用户”的记录信息,所以对某一特定用户的账号操作时必须先定义一个指针(数组下标),用于指向该用户。(二) 业务逻辑设计银行自动柜员机(ATM)终端程序设计是软件工程的经典案例。其中一个重要的思想是要求:逻辑业务与界面设计分离,以此可以增强程序的独立性、复用性。逻辑业务部分主要是自动柜员机的终端业务(包括:登录、存|取款、查询余额、修改密

4、码、转账、取卡),每个业务可用独立的函数完成,并提供给界面调用。(三)具体实验过程第一步,界面设计以及界面属性设定。(1)登录同一个窗体用frame来实现界面的转换相同的过程可以写成一个子过程,通过调用子过程来简化程序编码,改写成public成为公用程序,可在其他窗口调用Public Sub aa()Frame2.Visible = FalseFrame1.Visible = TrueFrame3.Visible = FalseEnd Sub(2)业务办理(3)具体业务(如取款、存款、转账、修改密码、查询余额、开户)第二步,在模块中构造自定义类型数据结构,利用上述构造的自定义数据类型,再构造一

5、个该类型的数组。用于保存从文件里面读进来的数据。Public Type usertypeaccount As String * 19key As String * 6name As String * 4money As StringEnd TypePublic b() As usertype第三步,具体业务设计编写(1) 登录运用第七章“外存数据的访问”中文件的应用的知识,将用户账号、密码从文件中读出与记录,然后将账号添加到组合框项目中。Dim i%Open App.Path & Account.txt For Input As #1i = 0Do While Not EOF(1)i = i

6、+ 1ReDim Preserve a(1 To i)Input #1, saccount, skey, sname, smoneyCombo1.AddItem saccounta(i) = skeyLoopClose #1检测账号密码是否一致,登陆账号Private Sub Command1_Click()If Combo1.Text = ThenForm2.HideForm5.ShowElseIf Combo1.Text = 9558800000000000000 And Text1.Text = 111222 Or Combo1.Text = 9559900000000000000 An

7、d Text1.Text = 111111 Or Combo1.Text = 9556600000000000000 And Text1.Text = 222333 Or Combo1.Text = 2222222222222222222 And Text1.Text = 222222 Or Combo1.Text = 3333333333333333333 And Text1.Text = 123456 ThenForm2.HideForm3.ShowElse: Form2.HideForm4.ShowEnd IfEnd IfEnd Sub(2)取款(存款类似)Private Sub For

8、m_Load()Dim i%, k%, m, t%k = Form2.Combo1.ListIndexm = Form11.Text1.Textt = Form2.Combo1.ListCountOpen App.Path & Account.txt For Input As #1i = 0Do While Not EOF(1)i = i + 1ReDim Preserve b(1 To i)Input #1, saccount, skey, sname, smoneyb(i).account = saccountb(i).key = skeyb(i).money = smoneyb(i).n

9、ame = snameLoopClose #1If b(k + 1).money m ThenLabel1.Caption = 对不起,您的账户当前余额不足 & vbCrLf & 您当前的余额为:ElseLabel1.Caption = 取款成功 & vbCrLf & 您当前的余额为:Open App.Path & Account.txt For Output As #1i = 0Do While i ti = i + 1If i = k + 1 ThenWrite #1, b(i).account, b(i).key, b(i).name, b(i).money - mElseWrite #

10、1, b(i).account, b(i).key, b(i).name, b(i).moneyEnd IfLoopEnd IfClose #1Open App.Path & Account.txt For Input As #1i = 0Do While Not EOF(1)i = i + 1ReDim Preserve a(1 To i)Input #1, saccount, skey, sname, smoneya(i) = smoneyLoopClose #1Label2.Caption = a(k + 1)End Sub(3)查询余额Private Sub Form_Load()k

11、= Form2.Combo1.ListIndexDim i%Open App.Path & Account.txt For Input As #1i = 0Do While Not EOF(1)i = i + 1ReDim Preserve a(1 To i)Input #1, saccount, skey, sname, smoneya(i) = smoneyLoopClose #1Label2.Caption = a(k + 1)End Sub(4)转账Private Sub Form_Load()Dim i%, k%, m, t%, q%k = Form2.Combo1.ListInde

12、xm = Form14.Text1.Textt = Form2.Combo1.ListCountq = Form14.Combo1.ListIndexOpen App.Path & Account.txt For Input As #1i = 0Do While Not EOF(1)i = i + 1ReDim Preserve b(1 To i)Input #1, saccount, skey, sname, smoneyb(i).account = saccountb(i).key = skeyb(i).money = smoneyb(i).name = snameLoopClose #1

13、If b(k + 1).money m ThenLabel1.Caption = 对不起,您的账户当前余额不足 & vbCrLf & 您当前的余额为:ElseLabel1.Caption = 转账成功 & vbCrLf & 您当前的余额为:Open App.Path & Account.txt For Output As #1i = 0Do While i ti = i + 1If i = k + 1 ThenWrite #1, b(i).account, b(i).key, b(i).name, b(i).money - mElseIf i = q + 1 ThenWrite #1, b(i

14、).account, b(i).key, b(i).name, b(i).money + mElseWrite #1, b(i).account, b(i).key, b(i).name, b(i).moneyEnd IfLoopEnd IfClose #1Open App.Path & Account.txt For Input As #1i = 0Do While Not EOF(1)i = i + 1ReDim Preserve a(1 To i)Input #1, saccount, skey, sname, smoneya(i) = smoneyLoopClose #1Label2.

15、Caption = a(k + 1)End Sub(5)修改密码Private Sub Command1_Click()Dim i%, k%, t%k = Form2.Combo1.ListIndext = Form2.Combo1.ListCountOpen App.Path & Account.txt For Input As #1i = 0Do While Not EOF(1)i = i + 1ReDim Preserve b(1 To i)Input #1, saccount, skey, sname, smoneyb(i).account = saccountb(i).key = s

16、keyb(i).money = smoneyb(i).name = snameLoopClose #1If Text1.Text b(k + 1).key ThenForm16.HideForm17.ShowForm17.Label1.Caption = 旧密码错误,请重新输入ElseIf Text3.Text Text2.Text ThenForm16.HideForm17.ShowForm17.Label1.Caption = 新密码确认错误,请重新输入ElseOpen App.Path & Account.txt For Output As #1i = 0Do While i ti =

17、i + 1If i = k + 1 ThenWrite #1, b(i).account, Text2.Text, b(i).name, b(i).moneyElseWrite #1, b(i).account, b(i).key, b(i).name, b(i).moneyEnd IfLoopEnd IfClose #1Form16.HideForm17.ShowForm17.Label1.Caption = 密码修改成功End Sub(6)开户Private Sub Command1_Click()Dim i%, k%, t%k = Form2.Combo1.ListIndext = Fo

18、rm2.Combo1.ListCountOpen App.Path & Account.txt For Input As #1i = 0Do While Not EOF(1)i = i + 1ReDim Preserve b(1 To i)Input #1, saccount, skey, sname, smoneyb(i).account = saccountb(i).key = skeyb(i).money = smoneyb(i).name = snameLoopClose #1If Len(Text1.Text) 19 ThenMsgBox 请输入19位账号!, 0 + 16, 提示E

19、lseIf Len(Text2.Text) 6 ThenMsgBox 请输入6位密码!, 0 + 16, 提示ElseOpen App.Path & Account.txt For Output As #1i = 0Do While i t + 1i = i + 1If i = t + 1 ThenWrite #1, Text1.Text, Text2.Text, Text3.Text, Text4.TextElseWrite #1, b(i).account, b(i).key, b(i).name, b(i).moneyEnd IfLoopClose #1Form18.HideForm19.ShowForm19.Label1.Caption = 开户成功End IfEnd Sub第四步,细节设计为使程序更真实,可在界面窗体、业务逻辑函数(标准模块中)分别加入对信息有效性与完整性的处理。例如:加入账号(19位数字)、密码(6位数字)、姓名(小于4为字符串)、余额(大于0)的有效性判断、在标准模块中进行定义,密码用“*”显示,用form hide和form show来实现窗体之间的连接。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1