银行储蓄系统.docx
《银行储蓄系统.docx》由会员分享,可在线阅读,更多相关《银行储蓄系统.docx(25页珍藏版)》请在冰豆网上搜索。
银行储蓄系统
《数据库系统原理》
课程设计
2011年12月31日
一、概述
1.1课程设计的目的
《数据库系统原理》课程设计是本专业的重要实践性教学环节,是《数据库系统原理》课程的后续辅助教学课程。
通过该课程设计,使学生掌握数据库的基本概念,结合实际的操作和设计,巩固课堂教学内容,使学生掌握数据库系统的基本概念、原理和技术,将理论与实际相结合,应用现有的数据建模工具和数据库管理系统软件,规X、科学地完成一个小型数据库的设计与实现,把理论课与实验课所学内容做一综合,并在此基础上强化学生的实践意识、提高其实际动手能力和创新能力。
具体掌握的基本能力有以下几个方面:
1.学习和巩固《数据库系统原理》的基本知识。
2.关系数据库管理系统的基本使用方法。
3.熟悉SQL语言的主要功能及SQL语句的使用操作。
4.熟悉数据库管理系统的设计过程,培养解决实际问题的能力。
5.小型数据库应用系统的设计方法。
1.2课程设计的内容
1、课程设计内容:
(1)主要的数据表
定期存款帐,活期存款帐,存款类别代码表等等。
(2)主要功能模块
1)实现储户开户登记。
2)办理定期存款帐。
3)办理定期取款手续。
4)办理活期存款帐
5)办理活期取款手续。
6)实现利息计算。
7)输出明细表。
8)具有数据备份和数据恢复功能。
2、系统要求:
(1)要进行实际调研,系统功能在实现时参照实际的储蓄系统的功能。
(2)同时要考虑银行系统数据的安全与XX工作。
1.3课程设计的要求
1.根据题目查找资料及调研,写出数据库系统的需求分析报告;
2.根据需求分析,设计系统的功能结构,画出系统的功能结构图,设计的功能要全面、正确,能解决现实世界各类用户的实际需要;
3.根据需求分析,确定所设计的系统涉及到的实体、各实体的属性以及各实体之间的联系,用E-R图完成系统的概念模型设计,设计的概念模型要能全面、真实的反应现实世界,能满足系统功能的需要;
4.根据E-R图转换为DBMS支持的关系模型,作出数据库系统的逻辑模型:
1)数据库的关系模式(使用关系模型规X化理论进行优化,要求各关系至少达到3NF);
2)确定各关系属性的域;
3)确定各关系的主码、必要的约束、关系之间的参照完整性等。
5.适当的选择设计各类用户的子模式;
6.根据逻辑模型、系统环境和用户需求,设计数据库的物理结构。
7.使用PB、VFP、VB、VC、VB.NET、C#、Java、DELPHI、ASP、JSP、PHP或ASP.NET等程序设计语言,进行相应前台主要模块和菜单的设计,采用B/S或C/S模式,数据库作为后台服务器。
8.设计一组数据库表的测试实例,对各项功能进行简单的测试并写出测试结果。
9.按照附件1中课程设计模板的格式,编写课程设计报告,并使用A4纸打印、上交。
10.提交以下电子稿信息:
课程设计报告电子稿、数据库文件(*.MDF和*.LDF文件)、软件源代码和软件使用说明
二、需求分析
2.1系统需求
通过调查,要求系统需要有以下功能:
(1)要求有良好的人机界面;
(2)由于该系统使用对象多,要求有较好的权限管理;
(3)原始数据修改简单方便,支持多条件修改;
(4)方便的数据查询,支持多条件查询;
(5)在相应的权限下,删除数据方便,数据稳定性好;
(6)数据计算自动完成,尽量减少人工干预。
系统中要求每个人银行管理者都有一个系统XX,并每个XX都有密码,系统的一切操作(如:
增加存储用户,提高利率等)都由管理者执行,而不是由存诸用户执行,也主是说存储用户并不直接与系统交互,而是通过管理员与系统交互。
该系统主要有两部份业务功能,存款与取款。
储户填写的存款单或取款单由业务员输入系统,如果是存款则系统记录存款人XX,住址,,XX,存款类型,存款日期,到期日期,利率及密码(可选)等信息,如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算得利息并打印出利息清单给储户。
2.2数据字典
数据名字:
储户信息表
数据来源:
储户
数据目的:
身份验证
数据组成:
XX+密码+住址+XX+现有金额
三、系统总体设计
3.1系统总体设计思路
银行储蓄系统的主要功能实现储户开户登记、办理定期存款帐、办理定期取款手续、办理活期存款帐、办理活期取款手续、实现利息计算等。
每个功能模块都和银行的业务量直接有关,采用银行储蓄系统的目的是提高储蓄服务的质量,提高信息管理的精度,进而提高银行在客户心目中的信誉,树立良好的银行服务形象。
各子功能分析如下:
◆储蓄项目管理功能
该功能实现了银行管理人员对银行内部制定和调整储蓄项目信息的管理。
包括对储蓄项目增加、修改、删除、查询等等。
◆储户信息管理功能
该功能实现了对银行信息的管理,该功能包括开户、销户等等。
◆储户服务管理功能
该功能实现了对储户服务的具体化,也是储户需求量最大的服务项目。
主要包括存款、取款和转账以及修改密码和查询余额等功能。
◆操作人员管理功能
该功能主要是系统管理人员对操作人员的管理。
包括添加操作人员、删除操作人员、修改用户名或密码等功能。
◆系统维护功能
该功能主要是对该系统的维护。
包括关于和退出系统两项内容。
由于业务员的操作与用户的操作基本相似,可以简单化地认为系统只与业务员交互,基于这个思想,将有利与简化以后系统程序的设计与开发。
精化图如下
银行储蓄系统功能模块图
3.2概念模型设计
3.2.1局部E-R图
根据数据项和数据结构,可设计规划出储户实体、管理员实体和系统实体的E-R图。
其中,图
(1)所示为储户实体E-R图,图
(2)所示为管理员实体E-R图,图(3)所示为存款实体E-R图,图(4)所示为取款实体E-R图,
储户实体E-R图
(1)
管理员实体E-R图
(2)
存款实体E-R图(3)
取款实体E-R图(4)
3.2.2全局E-R图
11
n
nn
nnn
nnn
111
11
3.3逻辑结构设计
1.储户(储户账号、XX、密码、XX号、性别、账户余额、开户日期、住址)
2.管理员(员工号、XX)
3.活期存取款(储户XX、员工号、账户金额、存款类型、到期日期、存取款日期、利息)
4.查询(储户XX、员工号)
5.定期取款(储户XX、账号、金额、取款日期)
6.定期存款(储户XX、账号、金额、存款日期、存储年数、利率)
3.4数据库建立实施
3.4.1建立数据库
数据库在一个银行储蓄系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。
合理的数据库结构设计可以提高数据存储的效率,保证数据的完整性和一致性。
同时合理的数据库也将有利于程序的实现。
本设计采用SQLServer2000来建立数据库。
在创建数据库时,首先启动MicrosoftSQLServer,然后创建名为bankDB的数据库。
创建数据库的具体步骤如下:
(1)选择“开始”/程序/MicrosoftSQLServer/企业管理器命令,打开SQLServer数据库的运行环境,在此环境中单击“数据库文件”右击“新建数据库”进行数据库的创建,建立数据库如图所示:
创建数据库
3.4.2建立关系表
在bankDB数据库单击新建表,则可建立表。
如图所示:
创建表
设计表如图所示:
储户设计表(Iuser)
活期存取设计表(Hqcq)
定期取设计表(Dqq)
定期存设计表(Dqc)
权限设计表(user_info)
表中的内容如图所示:
储户表(Iuser)
活期存取表(Hqcq)
定期取表(Dqq)
定期存表(Dqc)
权限表(user_info)
四、系统实现
1、这是窗体登录主界面,用户登录后可以保障数据的安全性,用户登录需要用户名和密码,保证输入的正确。
步骤一:
首先输入注册的用户名,再输入正确的密码。
登录界面如图所示:
登录界面
步骤二:
点击“登录”按钮进行登录验证,如果输入的账号信息正确,则会出现程序主界面,表明成功登录系统,如果输入的用户名不存在或密码错误,则会给出错误提示信息。
2、这是银行管理员操作主界面,主要有浏览储户信息、添加储户信息(开户)、删除储户信息(销户)、修改密码等操作。
如图所示:
主界面
3、当对新用户进行开户时,点击主界面中的银行信息管理,再点击其下面的子模块添加储户信息,输入账号、XX、密码、省份证号等,单击“确定添加”按钮则会提示添加成功。
如图所示:
添加储户信息界面
4、当对用户进行浏览时,点击主界面中的银行信息管理,再点击其下面的子模块浏览储户信息,可显示账号、XX、密码、省份证号、余额等储户信息,单击“首记录”“上一记录”“下一记录”“末记录”按钮,则可对不同的储户进行查看信息并且会出现提示信息,是最后一条记录,还是首记录。
如图所示:
浏览储户信息界面
5、当修改密码时,点击主界面中的银行信息管理,再点击其下面的子模块修改密码信息,可进行密码修改,首先显示原密码,点击“确定”按钮,其次显示新密码,并输入确认密码,最后点击“确定”按钮,则可完成密码修改。
如图所示
原密码
新密码
6、当删除储户信息时,点击主界面中的银行信息管理,再点击其下面的子模块删除储户信息,可对储户进行删除,即销户,其下面又分为两个子模块,一是按XX删除,二是按卡号删除,二者结果一样,即达到了删除储户信息的目的。
如图所示:
按XX删除界面
按卡号删除界面
五、系统评价
本系统是关于C/S模式的设计,由于这次的银行储蓄系统个人能力有限我没有完全满足老师的要求,但是我所做出的模块和功能基本上都能实现。
1.当操作员输入正确的用户名和密码时,便可登录到主界面,对储户进行一系列的管理及操作。
2.对本系统存在的缺点:
(1)部分数据通过实际观察假设得来,没有确凿的文献作为依据。
(2)考虑的因素不是十分充分,与实际情况存在一定差距。
(3)模型中未充分考虑具体的人流到达随机性,而是用计算整体平均讨论。
(4)所设计的界面没有进行美工设计。
3.对本银行储蓄系统的建议:
(1)实行服务台弹性数量制度,通过模型的改进二得出在周六与周日客流量比较少的情况下可减少窗口的开放,开设三个窗口即可,在一天的各个时段也可弹性改变窗口的数量。
(2)细分顾客,设置不同的服务柜面。
(3)可采用排队与叫号混合使用,在周一到周五客流量比较多时为提高顾客满意度可采用排队叫号系统,在周六周日客流量比较少时考虑飞号现象可采用排队系统。
(4)在顾客等待服务时间,服务人员可为顾客完成一些辅助性的工作。
六、课程设计心得、总结
通过这次的数据库设计,我总结了很多,同时也学到了很多有关数据库的知识,因为这是我的一次亲身尝试并且是一次真真正正的设计有关数据库的进步,之前虽然学过数据库但只是一些简单的SQL语句,并没有真正地去完成一次有关和前台的连接设计,之前所学的远远不够这次设计需要,但我并没有灰心,虽然过程很艰难,但我还是坚持了下来并没有放弃,通过不断地努力,在图书馆里借阅有关书籍,因为在这次设计之前我对VB不是很了解,需要老师和同学的帮助,慢慢的对VB有了一定了解,对银行储蓄系统所需主要功能有了一定的了解,从学VB6.0的基础开始,如何创建工程、窗体、模块,如何添加标签、文本框、按钮等,以及它们发生什么事件及其如何响应事件,再次主要是如何将前台和后台数据库SQLServer2000绑定,如何配置数据源,如何在VB里添加使用ADO数据控件连接数据库等等,这些都是我一开始设计出现的主要问题,我就不断地查阅资料和网上搜索,真的是功夫不负有心人,出现的问题逐个地被解决,每解决好一个问题都会很兴奋,而且也学到很多。
在这段时间里,我对VB从不知到最后做出个小系统,深深体会到,没有你做不到的,只有你想不到的,只要你不放弃,认真的去对待,就会得到你想要的结果,虽然这次的设计没能完全达到老师的要求,只是完成了一部分的功能模块,但我确实通过自己查阅资料,解决问题的能力得到了很大的提高,对系统的设计有了新的认识,最后,通过这次的设计,我已掌握了系统的设计流程,同时也掌握了一些相关技术,增强了动手能力并积累了一定的经验,从而为以后的工作奠定了基础。
参考文献:
[1]曾长军、朱剑峰《SQLServer数据库原理及应用》:
人民邮电,2007
[2]杨继平、吴华《SQLServer2000》:
清华大学,2000
[3]X韬《VisualBasic6.0数据库系统开发实例》:
人民邮电,2002
[4]X耀儒《新概念SQLServer2000教程》:
科海集团公司,2001
[5]王立丰《VisualBasic中标项目案例导航》:
科学,2003
[6]姚蔚《VisualBasic数据库开发及工程实例》:
人民邮电,2003
致谢
通过这次的数据库设计,我学到了很多,不仅是知识上的获得同时也得到了精神上的支持,很感谢彭老师给我们这次实际动手操作的机会,让我们去体验一下做设计所出现的种种问题,让我学到了不少经验,对数据库这门课有了进一步的加深和学习。
还有虽然我的同学也不是很了解VB但我一提出问题她们都会在百忙中抽出时间帮我去想,去网上找资料,真的很感谢她们,由于时间特紧X,我只能在晚上去做设计,一做就是一两点,我也给我的室友们带来了不便,但她们很能体谅我,给我创造条件去学习,而且还督促我、问我做到哪一个环节了,实现了没有啊等等,也给我带来了不少的勇气,让我更加坚信地去做下去,最后终于做完后,让她们看看我的成果,感觉很好,没有白费,如果没有她们做坚强后盾,我也不会完成的那么快,在这里我忠诚的对彭老师和帮助我的同学说声谢谢!
附录
Vb6.0连数据库
1.使用ADO(ActiveXDataObject)数据控件连接SQLServer数据库连接方式
在连接数据库前,首先要在VisualBasic6.0菜单中“工程”—>“引用”中选择MicrosoftActiveXDataObjects2.8Library和MicrosoftActiveXDataObjectsRecordset2.8Library这两个组件。
2.通过配置ODBC环境,进行数据源的注册,对数据库进行连接、访问和操作。
2.1ODBC数据源分为以下三类:
(1)用户DSN:
只有创建数据源的用户才可以使用他们自己创建的数据源,而且只能在当前的计算机上使用。
(2)系统DSN:
任何使用你的计算机的用户和程序都可以使用的DSN。
(3)文件DSN:
除了具有系统DSN的功能之外,还能被其它用户在其它计算机上使用。
2.2创建ODBC数据源的步骤
(1打开开始/设置/控制面板/管理工具/ODBC数据源。
(2双击ODBC图标,启动ODBC数据源。
(3换到“用户DSN”标签,单击“添加”。
选择SQLServer作为数据源的驱动程序。
(4为数据源命名bankDB,按提示操作即可创建ODBC数据源。
2.3创建数据库连接
创建数据源是进行有源数据库连接的第一步,下面同样是运用ADO对象模型的主要元素Connection(连接)进行源数据库连接。
ConnectionString是Connection对象的属性名称,提供数据提供者或服务提供者打开到数据源的连接所需要的特定信息,包括database、diver、dsn等。
(1)database:
字符串表达式,指定服务器上的数据库名称。
(2)diver:
字符串表达式,指定驱动程序
(3)server:
指定服务器名称。
(4)dsn:
字符串表达式,指定连接的ODBC数据源名称。
利用已配置好的ODBC数据源进行连接。
创建ODBC数据源名称为bankDB,通过ADO与数据库student进行连接,代码如下:
Publicuser_IDAsString
PublicFunctionchaxun(sqlstrAsString)AsADODB.Recordset
DimAsNewADODB.Connection
Dim_strAsString
_str="diver=sqlserver;server=.;dsn=bankDB;database=bankDB"
.Open_str
DimrsAsNewADODB.Recordset
rs.Opensqlstr,,adOpenDynamic,adLockOptimistic
Setchaxun=rs
EndFunction
2.4登录代码如下;
PrivateSubmand1_Click()
DimrstAsNewADODB.Recordset
DimstrAsString
str="select*fromuser_infowhereuser_id='"+Text1.Text+"'"
Setrst=chaxun(str)
IfNotrst.EOFThen
IfTrim(rst.Fields
(1))=Text2.TextThen
user_ID=Text1.Text
main.Show
Me.Hide
Else
MsgBox"密码错误!
",vbOKOnly+vbExclamation
EndIf
Else
MsgBox"账户名错误!
",vbOKOnly+vbExclamation
EndIf
EndSub
2.5主界面代码如下:
PrivateSub按卡号删除_Click()
scch.Show
scch.Label2.Caption="卡号"
EndSub
PrivateSub按XX删除_Click()
scch.Show
scch.Label2.Caption="XX"
EndSub
PrivateSub浏览储户信息_Click()
llch.Show
EndSub
PrivateSub添加储户信息_Click()
tjch.Show
EndSub
PrivateSub修改个人密码_Click()
xgmm.Show
EndSub
2.6添加储户代码如下:
PrivateSubmand1_Click()
DimrstAsNewADODB.Recordset
DimstrAsString
str="select*fromIuser"
Setrst=chaxun(str)
rst.AddNew
rst.Fields(0)=Text1.Text
rst.Fields
(1)=Text2.Text
rst.Fields
(2)=Text3.Text
rst.Fields(3)=Text4.Text
rst.Fields(4)=Text5.Text
rst.Fields(5)=Text6.Text
rst.Update
MsgBox"添加成功!
",vbOKOnly+vbExclamation
EndSub
2.6浏览储户信息代码:
DimrstAsNewADODB.Recordset
PrivateSubmand1_Click()
rst.MoveFirst
display
EndSub
PrivateSubmand2_Click()
rst.MovePrevious
Ifrst.BOFThen
MsgBox"已经是第一条记录了!
",vbOKOnly+vbExclamation
rst.MoveFirst
EndIf
display
EndSub
PrivateSubmand3_Click()
rst.MoveNext
Ifrst.EOFThen
MsgBox"已经是最后一条记录了!
",vbOKOnly+vbExclamation
rst.MoveLast
EndIf
display
EndSub
PrivateSubmand4_Click()
rst.MoveLast
display
EndSub
PrivateSubForm_Load()
DimstrAsString
str="select*fromIuser"
Setrst=chaxun(str)
display
EndSub
PrivateSubdisplay()
Text1.Text=rst.Fields(0)
Text2.Text=rst.Fields
(1)
Text3.Text=rst.Fields
(2)
Text4.Text=rst.Fields(3)
Text5.Text=rst.Fields(4)
Text6.Text=rst.Fields(5)
EndSub
2.7删除储户信息代码如下:
DimrsAsNewADODB.Recordset
DimstrAsString
IfLabel2.Caption="XX"Then
str="select*fromIuserwhereame='"+Text1.Text+"'"
Else
str="select*fromIuserwhereo='"+Text1.Text+"'"
EndIf
Setrs=chaxun(str)
Ifrs.EOFThen
MsgBox"没有要删除的信息!
",vbOKOnly+vbExclamation
Else
WhileNotrs.EOF
rs.Delete
rs.MoveNext
Wend
MsgBox"删除成功!
",vbOKOnly+vbExclamation
EndIf
EndSub
PrivateSubmand2_Click()
UnloadMe
EndSub
PrivateSubForm_Load()
EndSub
2.8修改储户密码代码如下:
DimrsAsNewADODB.Recordset
PrivateSubmand1_Click()
DimstrAsString
str="select*fromuser_infowhereuser_id='"+Text1.Text+"'"
Setrs=chaxun(str)
IfTrim(rs.Fields
(1))=Text1.TextThen
Label2.Visible=False
Label3.Visible=True
Label4.Visible=True
Text1.Visible=False
Text2.Visible=True
Text3.Visible=True
mand1.Visible=False
mand2.Visible=True
Else
MsgBox"密码输入错误!
",vbOKOnly+vbExclamation
EndIf
EndSub
PrivateSubmand2_Click()
IfText2.Te