数据库课程设计实验报告.docx

上传人:b****7 文档编号:10435214 上传时间:2023-02-11 格式:DOCX 页数:54 大小:2.22MB
下载 相关 举报
数据库课程设计实验报告.docx_第1页
第1页 / 共54页
数据库课程设计实验报告.docx_第2页
第2页 / 共54页
数据库课程设计实验报告.docx_第3页
第3页 / 共54页
数据库课程设计实验报告.docx_第4页
第4页 / 共54页
数据库课程设计实验报告.docx_第5页
第5页 / 共54页
点击查看更多>>
下载资源
资源描述

数据库课程设计实验报告.docx

《数据库课程设计实验报告.docx》由会员分享,可在线阅读,更多相关《数据库课程设计实验报告.docx(54页珍藏版)》请在冰豆网上搜索。

数据库课程设计实验报告.docx

数据库课程设计实验报告

 

——自助银行管理系统

 

姓名:

汪冠

班级:

09计算机本科三班

学号:

50902013022

指导老师:

王磊

成绩:

完成时间:

2010-12-26

完成地点:

B532

 

第一章系统概述

自助银行管理系统是一些单位不可缺少的部分,金钱的管理是人类不可缺少的,尤其对一些有钱的人来说,尤其重要。

所以自助银行管理系统应该能够为用户提供充足的信息、快捷的金额查询手段和存储管理。

随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。

作为计算机应用的一部分,使用计算机对银行资源信息进行管理,具有着手工管理所无法比拟的优点.例如:

检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。

这些优点能够极大地提高银行管理的效率,也是企业、学校的科学化、正规化管理,与世界接轨的重要条件。

因此,开发这样一套管理软件成为很有必要的事情,在下面的各章中我们将以开发一套自助银行管理系统为例,谈谈其开发过程和所涉及到的问题及解决方法。

自助银行管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。

对于前者要求建立起数据一致性和完整性强.数据安全性好的库。

而对于后者则要求应用程序功能完备,易使用等特点。

经过分析如此情况,我们使用微软公司的VB6.0开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。

第二章应用背景

银行是每个地区不可缺少的部门,它是钱财存取的最安全的地方,而且他又是金钱流动最大的地方,对其管理也应是很严格,不容任何可能的错误发生,这就牵涉到高科技的应用,而高科技都离不开计算机的应用。

所以一直以来,计算机在银行的财务管理中得到了广泛的应用。

目前,人类对银行的信任度很高,这也就加大了银行业务复杂和繁琐度,而有一些简单的业务可由用户自行完成或必须由用户自行完成过。

本系统就是要达到对用户能自行完成的业务的管理,能快书完成却简便,并对信息进行数据库管理的目的。

所以本系统能实现一般用户存款、取款、转账、等业务和管理员开户、销户、用户信息查询、用户信息修改、冻结等功能。

 

第三章系统分析与设计

一、系统需求

(1)数据库需求分析

用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入。

收集本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典。

针对一般图书管理系统的需求,通过对学生学习过程的内容和数据流程分析,设计如下面所示的数据项和数据结构:

用户信息(数据项)

卡号、姓名、开户日期、证件类型、证件号、存款金额、最后登录时间、用户密码、用户权限

(2)系统功能分析

系统开发的总体任务是实现银行管理信息关系的系统化、规范化和自动化。

系统功能分析是在系统开发的总体任务的基础上完成的。

本系统中的图书管理系统需要完成的功能上主要有:

(1)用户登录:

包括用户卡号、密码。

(2)用户信息查询:

包括所有用户的信息

(3)用户信息的修改:

包括用户姓名、证件、密码、用户权限的修改。

(4)开户:

包括用户卡号、姓名、开户日期、证件类型、证件号、存款金额

(5)销户:

包括用户所有信息。

(6)冻结:

包括用户卡号冻结和解冻。

(7)银行业务:

包括存款、取款和转账

二、概要设计

(1)硬件环境

本系统开发所用服务器的配置是:

·AMDathlon(tm)Ⅱ×2215processor

·80GB硬盘(7200转,串行)

·BENQ16×DVD

·1.8GB内存

·VIAPCI10/100M网卡

·RADEN9550(128)显卡

·新盟鼠标

(2)软件环境

本系统的设计采用的是Microsoft公司的MSSQLServer2005,以及采用VisualBasic6.0来处理图像数据。

MSSQLServer2005是当今社会的主流数据库管理系统,它的稳定性和易用性是为世人所称道的,最重要的一点它是当今世界最大的软件设计厂商-Microsoft数据的产品。

因此,它同Windows2000,WindowsXP等操作系统的结合是最完美的。

所以,在数据管理系统上,我们采用了MSSQLServer2005。

在VisualBasic中,有两种常用的处理图像数据的方法。

数据绑定。

可以使用Image或者Picture的DataField、DataMember和DataSource的属性来对数据进行捆绑。

这种方法类似与对于普通数据类型的绑定。

直接读写。

也可以使用ADO对数据进行读写。

三、详细设计

(1)E-R图

得到上面的数据项和数据结构以后,就可以设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。

这些实体包含各种具体信息,通过相互之间的作用形成数据的流动。

本系统根据上面的设计规划出的实体有:

图书实体、工作人员实体、管理员实体、查阅人员实体。

各个实体具体的描述E-R图如下所示。

银行E-R图:

E-R图的基本符号:

 

 

(2)业务流程图

(3)数据流程图

(4)数据字典

数据字典是系统中各类数据描述的集合,使进行详细的数据收集和数据分析所获得的主要成果。

数据字典是在需求分析时建立,在数据库设计过程中不断修改、充实、完善的。

数据字典通常包括数据项、数据结构、数据流、数据存储、处理过程五部分。

其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构,数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。

 

a.数据结构和数据项字典

用户信息表:

本表主要用于存储用户信息,

字段名

数据类型

可否为空

说明

卡号

CHAR(10)

NOTNULL

主键(唯一标识)

姓名

varchar(8)

NOTNULL

开户时间

datetime

NOTNULL

证件类型

varchar(20))

NOTNULL

证件号

int

NOTNULL

存款

smallmoney

NOTNULL

最后时间

datetime

NOTNULL

密码

varchar(10)

NOTNULL

用户权限

varchar(10)

NOTNULL

主码为:

卡号

b.数据流字典

名称

说明

位置

定义

登陆验证

验证ID号,合法用户可以登陆

管理员→登陆处理1

一般用户→登陆处理2

登陆验证=

用户名+密码

验证结果

是否为合法用户,并验证以何种身份进入窗口

登陆处理1→管理员

登陆处理2→一般用户

验证结果=

登陆成功/无此用户名/密码错误

查询信息

一般用户可查看个人情况;管理员查看所有情况

基本信息→个人信息

用户信息维护→所有用户信息

查询信息=

查询个人信息/查询所有信息

添加用户

只有管理员才能进行添加信息

管理员→一般用户

添加信息=开户

修改信息

只有管理员才能进行修改一般用户信息

管理员→一般用户

修改信息=

用户信息修改

销户

只有管理员才能进行销户

管理员→一般用户

删除用户信息=

销户

第四章测试情况

一、管理员身份登录

1、管理员登录

后台数据库使用sqlserver2005开发

默认管理员卡号:

509020130,密码:

admin

此窗体代码如下:

PrivateSublogin_Click()

DimpasswordAsString

DimobjrsAsADODB.Recordset'定义数据库的记录集

StatictotalAsByte'用来记录操作者登陆次数,超过3次输入密码错误,强制退出

Iftotal=3Then

MsgBox"您无权操作本系统!

",vbCritical,"无权限"'如果登陆次数为三次则显示“您无权操作本系统

End

EndIf

Iftxt_userid.Text=""Then'如果用户名为空,则鼠标聚焦于用户名,并显示“请输入用户帐号”

txt_userid.SetFocus

MsgBox"请输入用户账号",vbExclamation,"选择用户"

ExitSub

EndIf

Iftxt_password.Text=""Then'如果密码为空,则鼠标聚焦于密码,并显示“请输入登陆密码”

txt_password.SetFocus

MsgBox"请输入登录密码",vbExclamation,"登录密码"

ExitSub

EndIf

'''''''''''''''正常用户登录

Setobjrs=ExecuteSQL("select*fromuserinformationwhereuserid="&Trim(txt_userid.Text))

'''先判断登录用户名或者密码是否正确

If(objrs.RecordCount=0)Then'如果登陆的用户名或者密码不正确

txt_userid.SetFocus'则鼠标聚焦于用户名

txt_userid.Text=""'清空用户名

txt_password.Text=""'清空密码

MsgBox"输入的用户名或密码错误,请重新输入",vbCritical,"错误"

ExitSub

EndIf

password=Trim(objrs.Fields(7))'得到密码

tempuser=Trim(objrs.Fields(0))'取出登录用户id,赋给全局变量,以便其他窗口使用

power=Trim(objrs.Fields(8))'得到权限,注意:

存储在SQLserver中的字符串后面有空格

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

IfTrim(txt_password.Text)=passwordThen'若输入的密码正确,则可以进入系统

SelectCasepower'获取登陆身份

Case"管理员":

'若为管理员身份登陆则取消当前窗体,且显示主窗体

UnloadMe

frmmain.Show

Case"一般用户":

'若为一般用户则取消当前窗体,且显示主窗体,不可视

UnloadMe

frmmain.User.Visible=False

frmmain.Show

Case"冻结":

MsgBox"此卡已被冻结",vbCritical,"无权限"

UnloadMe

ExitSub

EndSelect

Else:

MsgBox"密码错误,请重新输入!

",vbExclamation,"密码错误"'不正确,给出提示

txt_password.Text=""'密码清空

txt_password.SetFocus'鼠标聚焦于密码

total=total+1'记录登陆次数+1

ExitSub

EndIf

frmmain.Show

UnloadMe

EndSub

PrivateSubtxt_userid_KeyPress(KeyAsciiAsInteger)

If(In_Int(KeyAscii)=False)Then

KeyAscii=0

EndIf

EndSub

2、登陆成功后进入主窗体

此窗体代码如下:

PrivateSubbank_business_Click()'银行业务

Frame_userinfo.Visible=False'个人信息不可视

frame_select.Visible=True'select可视

EndSub

PrivateSubcmd_back_Click()'返回

Frame_userinfo.Visible=False'个人信息不可视

frame_select.Visible=False'select不可视

EndSub

PrivateSubcmd_deposit_Click()'存款

DimtotalAsSingle

DimtempsqlAsString

DimobjrsAsNewADODB.Recordset

Setobjrs=ExecuteSQL("selectdepositfromuserinformationwhereuserid="&tempuser)'查出用户当前余额

IfVal(txt_deposit.Text)>10000Then

MsgBox"每次存款金额不能超过10000元,请重新输入存款金额!

",vbCritical,"提示"

txt_deposit.Text=""

txt_deposit.SetFocus

EndIf

total=Val(objrs.Fields(0))+Val(txt_deposit.Text)

tempsql="updateuserinformationsetdeposit="&total&"whereuserid="&tempuser

Setobjrs=ExecuteSQL(tempsql)

txt_deposit.Text=""

txt_deposit.SetFocus

StatusBar1.Panels

(1).Text="存款成功,当前余额为:

"+Str(total)+"元"

'''''''''''''''''''''''''''同时要刷新个人存取款信息

Setobjrs=ExecuteSQL("select*fromuserinformationwhereuserid="&tempuser)

txt_money.Text=Trim(objrs.Fields(5))

EndSub

PrivateSubcmd_draw_Click()'取款

DimtotalAsSingle'定义变量

DimtempsqlAsString

DimobjrsAsNewADODB.Recordset

Setobjrs=ExecuteSQL("selectdepositfromuserinformationwhereuserid="&tempuser)'查出用户当前余额

IfVal(txt_drawmoney.Text)>Val(objrs.Fields(0))Then

MsgBox"您的余额不足,请重新输入取款金额!

",vbCritical,"提示"

txt_drawmoney.Text=""

txt_drawmoney.SetFocus

EndIf

total=Val(objrs.Fields(0))-Val(txt_drawmoney.Text)

tempsql="updateuserinformationsetdeposit="&total&"whereuserid="&tempuser

Setobjrs=ExecuteSQL(tempsql)

txt_drawmoney.Text=""

txt_drawmoney.SetFocus

StatusBar1.Panels

(1).Text="取款成功,当前余额为:

"+Str(total)+"元"

'''''''''''''''''''''''''''同时要刷新个人存取款信息

Setobjrs=ExecuteSQL("select*fromuserinformationwhereuserid="&tempuser)

txt_money.Text=Trim(objrs.Fields(5))

EndSub

PrivateSubcmd_return_Click()'返回主菜单

Frame_userinfo.Visible=False

frame_select.Visible=False

EndSub

PrivateSubcmd_transfer_Click()'转账

DimobjrsAsNewADODB.Recordset

Dimtotal1,total2AsSingle

DimtempsqlAsString

Iftxt_receivingaccount.Text=""Then

MsgBox"对方账号为空,请重新填写!

",vbCritical,"提示"

txt_receivingaccount.SetFocus

ExitSub

Else

Iftxt_paymoney.Text=""Ortxt_paymoney.Text>10000Then

MsgBox"请输入转账金额,不能大于10000元!

",vbCritical,"提示"

txt_paymoney.SetFocus

ExitSub

EndIf

EndIf

'''''''''''''''从数据库中查找输入的对方转账账号是否存在

Setobjrs=ExecuteSQL("selectuseridfromuserinformationwhereuserid="&Trim(txt_receivingaccount))

Ifobjrs.RecordCount=0Then

MsgBox"输入转账账号不存在,请仔细核对!

"

txt_receivingaccount.Text=""

txt_paymoney.Text=""

txt_receivingaccount.SetFocus

ExitSub

EndIf

'''''''''''''''判断转账账号不能为自身

Iftxt_receivingaccount.Text=tempuserThen

MsgBox"帐号不能为自身!

"

ExitSub

EndIf

''''进行转账,首先判断自身账号中的金额是否够转账金额

Setobjrs=ExecuteSQL("selectdepositfromuserinformationwhereuserid="&tempuser)

IfVal(txt_paymoney.Text)>Val(Trim(objrs.Fields(0)))Then

MsgBox"您的金额不足,请重新输入转账金额!

",vbCritical,"提示"

txt_paymoney.Text=""

txt_paymoney.SetFocus

EndIf

'取出对方账号中的金额,加上转账金额,再写入数据库中

Setobjrs=ExecuteSQL("selectdepositfromuserinformationwhereuserid="&Trim(txt_receivingaccount))

total=Val(objrs.Fields(0))+Val(Trim(txt_paymoney.Text))

tempsql="updateuserinformationsetdeposit="&total&"whereuserid="&Trim(txt_receivingaccount)

Setobjrs=ExecuteSQL(tempsql)

'同时自身账户中的金额相应减少

Setobjrs=ExecuteSQL("selectdepositfromuserinformationwhereuserid="&tempuser)

total=Val(objrs.Fields(0))-Val(Trim(txt_paymoney.Text))

tempsql="updateuserinformationsetdeposit="&total&"whereuserid="&tempuser

Setobjrs=ExecuteSQL(tempsql)

'''清空转账账号和金额

total=Val(txt_paymoney.Text)

txt_paymoney.Text=""

txt_receivingaccount.Text=""

'''状态栏显示转账成功

StatusBar1.Panels

(1).Text="转账成功,转账金额为:

"&Str(total)&"元"

'''''''''''''''''''''''''''同时要刷新个人存取款信息

Setobjrs=ExecuteSQL("select*fromuserinformationwhereuserid="&tempuser)

txt_money.Text=Trim(objrs.Fields(5))

EndSub

PrivateSubdestroyuser_Click()'销户

Frm_deleteuser.Show

EndSub

PrivateSubexit_Click()'退出

End

EndSub

PrivateSubForm_Load()'登陆

DimobjrsAsNewADODB.Recordset

StatusBar1.Panels

(1).Width=5500

StatusBar1.Panels

(2).Width=5500

StatusBar1.Panels

(2).Text=Date$+""+Time$

Frame_userinfo.Visible=False

frame_select.Visible=False

Setobjrs=ExecuteSQL("select*fromuserinformationwhereuserid="&tempuser)

txt_userid.Text=Trim(objrs.Fields(0))'显示用户登录的卡号

txt_username.Text=Trim(objrs.Fields

(1))'显示用户名

Txt_date.Text=Trim(objrs.Fi

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 其它课程

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

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