一Field Field name Type Width dec
1 银行名称 字符型 20 0 (索引)
2 地址 字符型 40 0
3 电话 数值型 8 0
4 邮编 数值型 6 0
5 注册日期 日期时间型 8 0
6
4 姓名 字符型 10 0
5 身份证号 字符型 20 0
6 开户日期 日期时间型 8 0
7 余额 数值型 10 2
8 开户银行 字符型 20 0
9 操作员代号 字符型 8 0
3、操作员信息表
Field Field name Type Width dec
1 姓名 字符型 10 0
2 操作员代号 字符型 8 0(索引)
3 密码 字符型 10 0
4、用户存取信息表
Field Field name Type Width dec
1 卡号 字符型 20 0(索引)
2 余额 数值型 15 2
3 摘要 字符型 4 0
4 借方 数值型 10 2
5 贷方 数值型 10 2
6 日期 日期时间型 8 0
7 操作员代号 字符型 8 0
三、系统功能模块设计
以下是对整个银行系统的功能模块图
银行管理系统 |
普通操作员
|
高级管理员 |
存取款 |
开户销户 |
用户修改密码 |
卡号挂失 |
当天数据备份 |
银行注册 |
查询历史存取信息 |
浏览及打印数据库 |
操作员刷新 |
四:应用程序的设计
根据以上所建立的模块,实现其具体的功能,并且应该给用户提供一个选择的界面,在每个界面内还应该有用户需要的操作功能,这就是以下要进行的表单设计和添加代码。
(一)表单设计
在本系统中主要只设计了到三个表单,即:主表单,高级管理员表单,普通操作员表单。其他的具体操作都采用的分页框设计,这样能使结构清晰,便于添加代码,这样避免了处理大量表单所带来的繁杂混乱的情况。
1、主表单:(mainform.scx)
为用户提供四个控件,即:普通操作员、高级管理员、帮助、退出,分别实现不同的功能。这个过程及调用表单的过程。例如:do from advancedfomr.scx
2、高级管理员表单:(advancedform.scx)
这个功能表单便是为高级管理员提供的一些操作,如:银行注册,操作人员刷新等。这一系列的操作都采用了分页框管理,将各功能模块组合在一起。要实现模块内的具体功能,调用改变此表单中分页框内的各具体功能属性即可。例如:在第二页(操作员刷新)中的修改功能的部分相关代码如下:
if thisform.pageframe1.page2.修改.caption='修改'
poss=.f. &&识别是添加还是修改,修改为.f.
thisform.pageframe1.page2.n.value=recno()
*将文本框变为可用状态,以便于修改
略
*改变按钮状态,避免误操作
thisform.pageframe1.page2.修改.caption='保存'
thisform.pageframe1.page2.添加.caption='还原'
thisform.pageframe1. refresh &&表单刷新
else &&执行保存操作
tableupdate(.t.) &&表单修改确认
*将文本框变为不可用状态
略
*恢复按钮
thisform.pageframe1.page2.修改.caption='修改'
thisform.pageframe1.page2.添加.caption='添加'
thisform.pageframe1.page2.text2.setfocus()
*记录指针重新定位
n=recno()
go n
do case
case recno()=1
thisform.pageframe1.page2.上页.enabled=.f.
thisform.pageframe1.page2.下页.enabled=.t.
case recno()=reccount()
thisform.pageframe1.page2.上页.enabled=.t.
thisform.pageframe1.page2.下页.enabled=.f.
otherwise
thisform.pageframe1.page2.上页.enabled=.t.
thisform.pageframe1.page2.下页.enabled=.t.
endcase
messagebox('记录保存成功',0,'提示信息')
endif
thisform.refresh
3、普通操作员表单:(commonform.scx)
在这个表单中的操作相对来说比较多,采用分页框更是必要的了。编程思想中还考虑到针对不同的普通操作人员的操作,所以在操作人员进入具体的存、取款等操作时,应该输入自己的操作员代号和密码,不同的操作员应该对应自己所作过的操作。这便于高级管理员对银行人员和银行数据的管理。
(1)在存、取款操作中的基本思想为:先将卡号信息库中保存的余额提取出来,进行相应的存(加)、取(减)操作,再将结果替换回以前的余额,这样就达到存、取的实现。与此同时,还要对用户存取信息数据库进行追加一条新记录,保存当前所作的存、取操作。以下是存款操作的部分核心代码为: