1、、用户存取款信息总表。用户账号、存取款时间、存取款地点、存取款金额、存取款摘要、总金额。、管理员信息表。用户、口令。有了上面的数据结构、数据项和数据流程,我们就能进行下面的数据库设计。6、数据库概念结构设计这一设计阶段是在需求分析的基础上,设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。根据上面的设计规划本实例中的实体有:管理员实体、账户实体、账户普通信息实体、账户卡信息实体、取款机实体。实体和实体之间的关系 E-R 图如下图所示7、数据库逻辑结构设计我们需要将上面的数据库概念结构转化为 Visual FoxPro 数据库系统所支持的实际数据模型,也就是数据
2、库的逻辑结构。在上面的实体以及实体之间关系的基础上,形成数据库中的表格以及各个表格之间的关系。银行账户管理系统数据库中各个表格的设计结果如下面的几个表格所示。每个表格表示在数据库中的一个表。下面各个表为用户基本信息表。表3-1 USER 用户基本信息表列 名数据类型可否为空说 明USER_ID CHARACTER(13)NOT NULL账号(索引)USER_NAME CHARACTER(8)NULL用户姓名USER_PSWD CHARACTER(6)用户密码USER_IDENTITY CHARACTER(18)用户身份证USER_ALL NUMERIC(10,2)总金额USER_STATUS
3、CHARACTER(4)现在状态USER_ADDRESSCHARACTER(20)用户住址USER_NEWDATE开户时间表3-2 CARD 用户卡信息表可否为空 USER_ID用户账号(索引)CARD_IDCHARACTER(16)卡号(索引)CARD_PSWD 卡密码CARD_ALL CARD_STATUS列 名 ATM_ID CHARACTER(3)NOT NULL 取款机ID 号(索引)NULL CARD_ID 用户卡号(索引)ATM_TIME 存取款时间ATM_OUTIN 存取款摘要ATM_OUT NUMERIC(4)取款金额ATM_IN 存款金额USER_ALL表3-3 ATM取款
4、机基本信息表ATM_ADDRESS 安装地点ATM_INSTALL 安装时间ATM_DELETE 拆除时间表3-4 ATMOUTIN 取款机存取款信息表表3-5 BANKOUTIN 用户银行存取款信息表TMS_ID 操作员ID 号(索引)BANK_TIMEBANK_OUTIN BANK_OUT BANK_IN 表3-6 USERALL 用户存取款信息总表OUTIN_TIME OUTIN USER_OUT USER_IN UER_ALL表3-7 TMS 管理系统的用户口令表TMS_USER 用户名(主键)TMS_PSWD口令表3-8 BANK 银行系统的用户信息LAST_USER 最后一个账号L
5、AST_CARD最后一个卡号二、各个功能模块的创建建立功能模块的目的在于:一个是使用者能简单明了地掌握软件功能,另一个是未参加开发的人员也能轻松地进行维护。因此,我们小组开发的软件创建合理的功能模块是必要的。根据本软件的特点,我们将本系统分为3 个功能模块,它们是:管理员账户管理、用户存取款查询、ATM 取款机。在进入各个功能模块前,应该给用户提供一个选择的界面,即系统的主界面。下面,我们按系统开发顺序逐一讲解。1、系统主界面的设计系统主界面的功能在于引导用户进入不同的功能模块。本系统的界面为简单起见,设计界面如下图所示。界面中包含4个按钮,分别为“账户管理”、“用户查询”、“取款机”、“退出
6、”,引导进入不同的功能模块。为避免单调,加入一幅插图。实现步骤如下:展开项目管理器中的文档,选中表单,单击右侧“新建”按钮。如下图所示。在弹出的对话框中选择“新建表单”命令后,弹出“Form Designer(表单设计器)”的界面。按需要向表单中添加控件,本表单为4个CommandButton(按钮)和1 个Image(图像)如下图所示。设置其属性,如下表所示。 向 表 单 中 添 加 控 件 控件属性更改值表控件 CaptionPictureStretchForm1 Command1 账户管理Command2用户查询Command3 取款机Command4退出Image1D:accountm
7、ain.jpg 2变比填充其中,Caption 属性表示控件的显示名。有些人以为只有 Image(图像)才能设置Picture 属性,实际上,按钮也是可以设置Picture属性的,它可以让使用者能更形象地使用你所开发的软件。对于Image(图像)控件,则表示显示在其中的图像。其属性值为要显示的图像的路径和文件名。并应设置其Streth 属性为“2-变比填充”以使图像能正确显示。更改之后的表单如下图所示:表单外观设计好之后,就应该为表单各控件设计事件响应了。双击“账户管理”按钮,此时弹出按钮的“方法与程序”设计栏,选择好要更改的“Procedure(方法与程序)”后,直接在下面的空白出填写代码,
8、如下图所示。为 控 件 设 计 事 件 响 应为各控件添加代码如下:Command1(账户管理)的Click 代码:do form accountformchecker1* 打开下级表单checker1Command2(用户查询)的Click 代码:do form accountformchecker2* 打开下级表单checker2Command3(取款机)的Click 代码:do form accountformatm* 打开下级表单atmCommand4(退出)的Click 代码:thisform.releasedo accountformend*执行结束表单主界面的设计到此就完成了,注
9、意结束是将其存为“D:accountformmain.scx”。2、身份验证界面的设计因为本系统的特殊性,本系统各处会涉及到密码即身份验证。如管理员身份验证,用户身份验证等。管理员身份验证界面下面设计进入“管理员管理账户的界面”的身份验证。界面如下图所示。添加各控件,存储为“D:accountformchecker1.scx”。因为本表单设计到数据表tms,因此应将其添加到表单的数据环境中。添加方法如下。 管 理 员 身 份 验 证在表单中单击鼠标右键,选择“数据环境”,如下图所示。在弹出的“数据环境设计器”中单击鼠标右键,选择“添加”,选择“表”中要添加的表名“tms”。添加完毕后,关闭添加
10、对话框,结果如下图所示。 设 置 表 单 数 据 环 境添 加 表 后 的 数 据 环 境接下来,我们为各控件填写事件响应。表单的 Init 事件代码:public inpswd1inpswd1=0* 声明全局变量作为计数器“确定”按钮的 Click 事件代码:if empty(thisform.text1.value) or empty(thisform.text2.value)* 检查输入的信息是否完整messagebox(对不起!你输入的信息不完整,48,信息不全)thisform.text1.value=thisform.text2.value=else3、账户管理模块设计本模块的功能
11、在于管理员通过简单的操作,可以实现银行对账户管理的一般功能。如存款、取款、开户、销户、修改信息、办卡和挂失卡等等,内容丰富,较繁琐。因此,本表单的设计是本系统的重点。1. 表单请用户首先创建新的表单“supervise1.scx”。鉴于本表单内容多,这里用页框来实现一个表单多页面的显示。首先向表单中添加控件PageFrame(页框),设置页框的PageCount 属性为7,即页框中包含7 个子页面。在页框上单击鼠标右键,选择“编辑”进入页框的编辑。设置各子页面的Caption(标题)属性,如下表所示。Caption 属性Page1存款Page2 取款Page3开户Page4 销户Page5 修
12、改信息Page6 办卡Page7挂失卡设置表单的数据环境,添加表 Bank、User、Card 和Userall,设置各表之间的联系,如下图所示。表 单 的 数 据 环 境为表单设置Init 事件代码:public lastuser,lastcard* 声明全局变量lastuser,lastcardsele banklastuser=alltrim(bank.last_user)lastcard=alltrim(bank.last_card) 将表bank 中的值赋给相应变量2. 存款存款功能是账户管理中必不可少的一项功能,其模拟过程与现实生活一样,由管理员输入账户的账号或卡号、存款金额。此子
13、页面的界面如图7-17 所示。向页面中添加控件,如下图所示。设置其属性,如表 7-9 所示。存 款 子 页 面为 OptionGroup(组合框)控件设置外观,如下表所示:Option1账号Option2卡号为 OptionGroup(选项按钮组)设置InteractiveChange 事件代码:if this.option1.value=1* 如果账户栏被选中thisform.pageframe1.page1.text1.enabled=.F.* 将账号栏对应的文本框设为可用thisform.pageframe1.page1.text2.enabled=.F.thisform.pagefra
14、me1.page1.text1.setfocus* 如果卡号栏被选中* 将卡号栏对应的文本框设为可用更换选项时清空两个文本框中的信息添加 4 个Text(文本框)控件,设置外观属性,如下表所示EnabledInputMaskFormatText1.F.9999999999999Text29999999999999999Text3.T.Text4为4 个Text(文本框)控件设计事件响应。Text1 的InteractiveChange 事件代码为:select userlocate for user.user_id=this.value* 在表user 中查找匹配的记录this.parent.
15、text4.value=user.user_all* 将相应记录的“存款”字段写入Text4(文本框4)中Text2 的InteractiveChange 事件代码为:select cardlocate for card.card_id=this.value* 在表card 中查找匹配的记录this.parent.text4.value=card.user_all这两个 InteractiveChange 事件代码的功能分别为通过获得“用户账号”和“用户卡号”的方式直接动态的显示用户的相关信息。取款、开户、销户、修改信息、办卡、挂失卡和用户积分查询的页面设计和存款的相似,在这里就不一一举出了。
16、具体界面如下图所示。3.取款子页面的设计取 款 子 页 面4.开户子页面的设计开 户 子 页 面5.销户子页面的设计销 户 子 页 面6.修改信息子页面的设计修 改 信 息 子 页 面7.办卡子页面的设计办 卡 子 页 面8.挂失卡子页面的设计挂 失 卡 子 页 面9、用户积分页面4、用户查询模块的设计用户可以通过本模块查询自己的存取款记录,并给出各次操作后的存款余额,以便用户对照。在实际生活中表现为用户的存折记录。本表单存储为“D:accountformchaxun.scx”。1. 视图的创建这里涉及到了视图的使用,因此,在介绍该部分内容之前,我们先讲一下视图的创建方法。在项目管理器中选择“
17、数据库”account本地视图,单击“新建”“新建视图”后弹出视图设计器并为视图添加要用的表,如为本例中的视图添加表userall。选择视图设计器下方的“字段”选项卡,为视图设置可以显示的字段,如本例中将表中的字段全部选中,如下图所示。设 计 视 图 字 段“联接”选项卡是在视图含有多个表时设置表之间的联系用的,本视图只有一个表,故不需要设置。接下来设置“筛选”选项卡,视图可以设置筛选条件,达到根据不同条件显示不同数据的功能。如下图所示设 置 筛 选 条 件注意这里设置本视图的参数为 par,在填写筛选条件时要在参数前加问号(?)。在这里设好了参数,但实际上它并没有声明。要声明视图参数,请选择
18、Visual FoxPro 的主菜单中“查询视图参数”命令,此时弹出声明参数的对话框,填入par,选择字符型,这样视图参数的设置就完成了。“排序依据”和“分组依据”选项卡的设置都较简单,况且本例中不涉及,这里不加讲解,读者可以参阅相关书籍。选择“更新条件”选项卡,选择将字段全部更新。设 置 视 图 的 更 新 条 件设计完成后将视图储存为“grcx”。注意,视图是包含在数据库中的,不能独立存在,到此为止,视图设计就完成了。5、结束界面的设计 本例在用户单击主界面中的“退出”按钮后执行一个“感谢使用”的结束表单,2 秒后自动消失。它的设计如下图所示结 束 界 面改变表单的 Picture 属性,
19、为表单设置背景图片。为表单添加一个 Timer(计时器)控件,控制表单的显示。更改 Timer(计时器)的Interval 属性,它表示的是Timer 每隔多少时间执行一次其Timer事件,单位为ms。本例中要求2 秒后表单自动消失,因此这里将其设为2000(ms)。填写 Timer 控件的Timer 事件的代码:* 释放表单clear events关闭程序响应三、项目结题本次项目提供了系统分析、设计和编写程序等的具体操作过程,熟练掌握这些内容,将为课程设计的成功进行做好充分的准备。通过这段时间辛勤的系统开发,我们小组设计的银行账户管理系统初步完成。经过这次的项目开发,本小组成员对管理信息系统有了更深的了解,同时进一步温习巩固了VFP计算机编程知识;通过实践,提高了系统分析的能力,对数据流程图、数据字典、系统流程图等的含义和制作方法有了更深刻的认识,为以后的工作、学习的进一步提高打下了坚实的基础,初步实现了实习的预期目标。另外很值得一提的是小组所有成员在这次实习过程中养成了严谨的科学研究态度,互学互助,分工负责,在良好的配合中实现了目标,在良好的互动中进一步体味团队精神的可贵。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1