ATM实验报告文档格式.docx
- 文档编号:22111748
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:13
- 大小:111.82KB
ATM实验报告文档格式.docx
《ATM实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《ATM实验报告文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
3.(熟练)函数(自定义数据类型作为参数传递、变量的作用域)
4.(掌握)简单的排序算法(冒泡或选择)
5.(掌握)文件(顺序文件的读写)
6.(了解)其他(异常处理、内存变量回收、逻辑业务与界面设计分离的思想)
二、实验内容
(一)设计说明
本实验分为业务逻辑设计和界面设计两部分,相互之间互不干扰,只通过外部函数的调用来相互沟通。
界面设计部分只负责界面以及数据的显示(为简单起见,数据有效性检测仅放在界面部分)。
业务逻辑设计部分包括ATM柜员机的所有业务逻辑函数,以及相应的数据结构。
本模拟程序仅使用“带格式数据”的顺序文件作数据存储,程序中所使用的数据结构与文件中的数据格式一一对应。
程序启动时先将文件里面的数据全部读入内存,生成相应的数据结构(自定义数据类型数组);
一旦用户作业务逻辑操作使内存中相应数据发生任何变化,立即将数据结构(自定义数据类型数组)的所有内容全部写入文件(覆盖原文件)。
因将文件中的全部数据读入内存,内存中的数据结构包含“所有用户”的记录信息,所以对某一特定用户的账号操作时必须先定义一个指针(数组下标),用于指向该用户。
(二)业务逻辑设计
银行自动柜员机(ATM)终端程序设计是软件工程的经典案例。
其中一个重要的思想是要求:
逻辑业务与界面设计分离,以此可以增强程序的独立性、复用性。
逻辑业务部分主要是自动柜员机的终端业务(包括:
登录、存|取款、查询余额、修改密码、转账、取卡),每个业务可用独立的函数完成,并提供给界面调用。
(三)具体实验过程
第一步,界面设计以及界面属性设定。
(1)登录
同一个窗体用frame来实现界面的转换
相同的过程可以写成一个子过程,通过调用子过程来简化程序编码,'
改写成public成为公用程序,可在其他窗口调用
PublicSubaa()
Frame2.Visible=False
Frame1.Visible=True
Frame3.Visible=False
EndSub
(2)业务办理
(3)具体业务(如取款、存款、转账、修改密码、查询余额、开户)
第二步,在模块中构造自定义类型数据结构,利用上述构造的自定义数据类型,再构造一个该类型的数组。
用于保存从文件里面读进来的数据。
PublicTypeusertype
accountAsString*19
keyAsString*6
nameAsString*4
moneyAsString
EndType
Publicb()Asusertype
第三步,具体业务设计编写
(1)登录
运用第七章“外存数据的访问”中文件的应用的知识,将用户账号、密码从文件中读出与记录,然后将账号添加到组合框项目中。
Dimi%
OpenApp.Path&
"
\Account.txt"
ForInputAs#1
i=0
DoWhileNotEOF
(1)
i=i+1
ReDimPreservea(1Toi)
Input#1,saccount,skey,sname,smoney
Combo1.AddItemsaccount
a(i)=skey
Loop
Close#1
检测账号密码是否一致,登陆账号
PrivateSubCommand1_Click()
IfCombo1.Text="
"
Then
Form2.Hide
Form5.Show
Else
9558800000000000000"
AndText1.Text="
111222"
OrCombo1.Text="
9559900000000000000"
111111"
9556600000000000000"
222333"
2222222222222222222"
222222"
3333333333333333333"
123456"
Form3.Show
Else:
Form2.Hide
Form4.Show
EndIf
(2)取款(存款类似)
PrivateSubForm_Load()
Dimi%,k%,m@,t%
k=Form2.Combo1.ListIndex
m=Form11.Text1.Text
t=Form2.Combo1.ListCount
ReDimPreserveb(1Toi)
b(i).account=saccount
b(i).key=skey
b(i).money=smoney
b(i).name=sname
Ifb(k+1).money<
mThen
Label1.Caption="
对不起,您的账户当前余额不足"
&
vbCrLf&
您当前的余额为:
取款成功"
ForOutputAs#1
DoWhilei<
t
Ifi=k+1Then
Write#1,b(i).account,b(i).key,b(i).name,b(i).money-m
Write#1,b(i).account,b(i).key,b(i).name,b(i).money
a(i)=smoney
Label2.Caption=a(k+1)
(3)查询余额
(4)转账
Dimi%,k%,m@,t%,q%
m=Form14.Text1.Text
q=Form14.Combo1.ListIndex
转账成功"
ElseIfi=q+1Then
Write#1,b(i).account,b(i).key,b(i).name,b(i).money+m
(5)修改密码
Dimi%,k%,t%
IfText1.Text<
>
b(k+1).keyThen
Form16.Hide
Form17.Show
Form17.Label1.Caption="
旧密码错误,请重新输入"
ElseIfText3.Text<
Text2.TextThen
新密码确认错误,请重新输入"
Write#1,b(i).account,Text2.Text,b(i).name,b(i).money
密码修改成功"
(6)开户
IfLen(Text1.Text)<
19Then
MsgBox"
请输入19位账号!
0+16,"
提示"
ElseIfLen(Text2.Text)<
6Then
请输入6位密码!
t+1
Ifi=t+1Then
Write#1,Text1.Text,Text2.Text,Text3.Text,Text4.Text
Form18.Hide
Form19.Show
Form19.Label1.Caption="
开户成功"
第四步,细节设计
为使程序更真实,可在界面窗体、业务逻辑函数(标准模块中)分别加入对信息有效性与完整性的处理。
例如:
加入账号(19位数字)、密码(6位数字)、姓名(小于4为字符串)、余额(大于0)的有效性判断、在标准模块中进行定义,密码用“*”显示,用formhide和formshow来实现窗体之间的连接。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ATM 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)