银行管理系统.docx
- 文档编号:30830449
- 上传时间:2024-01-30
- 格式:DOCX
- 页数:47
- 大小:606.39KB
银行管理系统.docx
《银行管理系统.docx》由会员分享,可在线阅读,更多相关《银行管理系统.docx(47页珍藏版)》请在冰豆网上搜索。
银行管理系统
湖南涉经济学院
课程设计报告
课程名称:
数据库技术与应用
报告题目:
银行管理系统
学生:
所在学院:
信息科学与工程
专业班级:
学生学号:
指导教师:
2013年12月10日
摘要
现在电脑网络的高速发现使越来越多的人更喜欢在网购物、在家存款取款。
在这样的背景下,很明显现在的银行储蓄系统已经不能满足人们越益增长的需求,迫切需要建立一个新的、高效的、方便的、互联的电脑储蓄系统。
软件分别有新建,修改,查询,更新等功能。
各个模块各有不同的功能,但都能完成查询和存储功能。
各模块的数据都存放在数据库中。
数据的条用和廉洁都有程序来完成。
此系统所要完成的主要功能有两方面:
如果是存款,储蓄填写存款单,然后交给键入系统,同时系统还要记录存款人,住址,身份证,号码,存款日期。
,完成后由系统打印存款单给储户。
如果是取款,储户填写取款单交给业务员,业务员把取款金额输入系统要求储户输入密码以确认身份,核对密码正确无误后系统计算利息并印出利息清单给储户。
此系统开发需要解决的主要问题是项目的需求分析;结构设计;VisualStudioC#2010界面设计及其相关代码的编写实现;SQLServer2005后台代码的编写实现以及整个项目后期的运维等工作。
关键字:
VisualStudioC#2010、SQLServer2005、系统
第1章绪论
随着拥有多种银行卡的人群不断增长,人们迫切希望有一种通用的银行卡以便随时随地在哪家银行都可以存款提款;现在电脑网络的高速发现使越来越多的人更喜欢在网购物、在家存款取款。
在这样的背景下,很明显现在的银行储蓄系统已经不能满足人们越益增长的需求,迫切需要建立一个新的、高效的、方便的、互联的电脑储蓄系统。
本软件实现银行的活期储蓄存款业务。
客户端运行在面向个人业务的银行柜台的电脑上,银行职员输入相关信息并通过网络通讯向服务器发送请求,并接受服务器端程序的应答显示处理的结果。
服务器端处理客户端的各种业务请求。
主要实现银行开户、销户、取款、存款、余额查询、转账等功能。
应用对数据库系统概论的理论学习,通过上机实践的方式将理论知识与实践更好的结合起来,稳固所学知识。
实践和稳固在课堂教学中学习的关于数据库的有关知识,熟练掌握对于给定结构的数据库的创建、基本操作、程序系统的建立和调试以及系统评价。
1.2设计意义
数据的载入是一个非常繁杂和重要的过程需要很大的工作量,可分为人工输入与其它格式数据文件导入。
该系统只是一个简单的实验系统,所以采用手工输入少量的数据可满足实验要求即可。
分别给储户基本信息表,活期存取款基本信息表,定期存款基本信息表,定期取款基本信息表和定期操作记录基本信息表输入数据
实践和稳固在课堂教学中学习的关于关系数据库原理的有关知识和数据库系统的建立方法,熟练掌握对于给定实际问题,为了建立一个关系数据库银行管理系统,必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程。
第2章需求分析
分析
该系统主要包括管理员操作、储户管理理、数据维护三部分。
“管理员操作”是指进入银行储蓄系统必须获得一个许可,由管理员输入用户名和密码,方可进入该系统,并且可以对储户操作明细进行查询。
“储户管理”包括添加、开户、销户、存款、取款、查询。
“数据维护”即数据安全,可对数据进行备份与复原。
本系统主要任务是用电脑为用户办理各项储蓄业务:
客户端程序运行时,首先进行用户〔银行职员〕的合法性验证。
银行职员输入正确的用户名和密码后,进入系统主菜单界面。
用户名和密码需事先保存在程序的配置文件中。
输入:
1、用户名
2、密码
处理:
1、用户名长度最多50位
2、密码长度最多50位
3、用户名及密码正确后进入主菜单界面。
输出:
1、密码用‘*’输出
显示银行的基本信息输出主菜单〔包括开户、存款、取款、查询、转账、销户、退出等功能〕供操作用户选择,然后根据用户的输入选择进入不同的系统功能界面。
输入:
单击用户所需的按钮
处理:
根据用户所需的按钮,进入不同的选项卡。
在客户端输入开户的基本信息,通过网络传送数据,在服务器处理后显示服务器端的处理结果。
开户成功后打印存折相关信息。
存折的基本信息包括:
户名、帐号、、密码、身份证号等。
输入:
1、用户
2、身份证号码
3、密码
4、账号
5、开户金额
处理
1、开户的所有信息必填。
输出:
1、开户成功后会弹出提示对话框,提醒用户成功开户。
反则不成功。
银行职员在客户端输入存款的基本信息,通过网络传送数据,在服务器处理后显示服务器端的处理结果。
存款成功后打印账户明细。
操作结束后返回主菜单界面。
输入:
登录进入后,单击“存款”的按钮,输入金额。
处理:
数据库记载以修改的数据
输出:
存款后,系统会提示存款成功。
银行职员在客户端输入取款的基本信息〔假设存折账户的密码也由银行职员输入〕,通过网络传送数据,在服务器处理之后显示服务器端的处理结果。
操作结束后返回主菜单界面。
输入:
登录进入后,单击“取款”的按钮,输入金额。
处理:
数据库记载以修改的数据
输出:
取款后,系统会提示存款成功。
在客户端输入转账的基本信息,通过网络传送数据,在服务器处理后显示服务器端的处理结果。
转账成功后打印本账户的明细信息并打印转账凭证。
操作结束后返回主菜单界面。
输入:
登录进入后,单击“转账”的按钮,输入金额,账户名
处理:
转账信息必填
输出:
转账后,系统会提示转账成功
银行职员在客户端输入查询的基本信息通过网络传送数据,在服务器处理后显示服务器端的处理结果。
成功后如果之前有部分账户明细信息未打印的进行打印。
操作结束后返回主菜单界面。
输入:
登录账户,单击“查询”按钮。
选择要查询的日期。
处理:
输入信息必填
输出:
可以显示账户的转账信息,以及余额等信息。
本软件也可以通过单步跟踪的操作进行检查处理。
由于软件运行数据放在数据库中,所以参数不容易被错改、破坏,万一参数受到破坏也不会影响源程序。
本软件利用数据库进行编程,系统结构由程序基本确定,大量的参数及文本内容全部放于数据库中。
修改、更新数据只要在数据库进行修改添加,而不需要对系统结构进行修改,这样系统维护性、升级都十分方便。
第3章系统整体结构分析
成ER图
储户填写存款单,然后交给业务员键入系统,同时系统还要记录存款人性别,身份证号码、密码等信息,完成后由系统打印存款单给储户。
储户填写取款单交给业务员,业务员把取款金额输入系统并要求储户输入密码以确认身份,核对密码正确无误后系统计算利息并打印出利息清单给储户。
对储户基本信息进行日常管理,如查询、修改、增加、删除。
3.1.3开户
储户填写业务单交给业务员,业务员需要把用户的用户的个人信息〔账户,,身份证号,密码等〕录入数据库,并且录入进行保存。
用户
开户
银行
3.1.4转账
用户需要转账,需要用户提供转账的用户的和转账用户的账户号,业务员进行转账操作,并且录入数据库,进行修改用户的账目。
用户
转账
3.1.5登录
用户在开户后,输入自己的密码和账号就能进行登录自己的账户,进行其他操作。
3.1.6销户
在用户不需要任何的银行业务的时候,用户要进行销户,用户处理自己的账户中所有的金钱后便可进行销户。
3.1.7查询
在用户需要知道自己的账户的余额和拥有之前的操作的信息时,用户可以进行查询。
3.2系统功能流程图
第4章数据库设计
概念设计阶段采用自底向上的方法,即自顶向下的进行需求分析,然后再自底向上的进行概念结构设计。
对已经细化到无法再分的阶段逐步集成在一起,最终合成一个全局概念模式。
序号
字段名称
字段描述
数据类型
长度
属性
1
id
开户顺序
int
PR
2
account
账户
nvarchar
50
notnull
3
pass
密码
nvarchar
50
notnull
4
name
nvarchar
50
notnull
5
card
身份证
nvarchar
50
notnull
6
money
开户存入金额
float
50
notnull
序号
字段名称
字段描述
数据类型
长度
属性
1
uname
账户
nvarchar
50
PK
2
timeYear
年
int
非空
3
timeDiana
月
int
非空
4
fetchMoney
存入金额
float
5
despositMoney
取出金额
float
6
timeDay
天
int
非空
7
TransferName
转账账户
nvarchar
8
TransferMoney
转账金额
float
银行管理系统数据流图中,数据信息和处理过程需要通过数据字典才能描述清楚。
在定义的银行数据库管理系统数据字典中,主要对数据流图中的账户信息
定期历史操作记录定期存款定期取款活期操作进行说明。
A、数据项
(1)数据项名称:
id
含义说明:
惟一标识一个用户进图系统的顺序
类型:
整型
长度:
不限
逻辑关系:
不允许为空
(2)数据项名称:
accounts
含义说明:
开户账号
类型:
字符型
长度:
50
逻辑关系:
不允许为空
(3)数据项名称:
pass
含义说明:
账户密码
类型:
字符型
长度:
50
逻辑关系:
不允许为空
(4)数据项名称:
card
含义说明:
身分证号
类型:
字符型
长度:
50
逻辑关系:
不允许为空
(5)数据项名称:
money
含义说明:
开户存入近金额
类型:
数字型
逻辑关系:
不允许为空
(6)数据项名称:
name
含义说明:
开户人
类型:
数字型
逻辑关系:
不允许为空
(7)数据项名称:
uname
含义说明:
开户名
类型:
字符型
长度:
50
逻辑关系:
不允许为空
(8)数据项名称:
timeyear、timediana、timeday
含义说明:
查询时间
类型:
数字型
逻辑关系:
允许为空
(9)数据项名称:
fetchmoney
含义说明:
存入时间
类型:
数字型
逻辑关系:
允许为空
(10)数据项名称:
TransferName
含义说明:
转账用户名
类型:
字符型
逻辑关系:
允许为空
(11)数据项名称:
transmoney
含义说明:
转账金额
类型:
数字型
长度:
50
逻辑关系:
允许为空
(12)数据项名称:
deposeitmoney
含义说明:
取出金额
类型:
数字型
逻辑关系:
允许为空
B、表
(1)数据存储名称:
储户基本表
含义说明:
存放储户的有关信息
组成结构:
储户信息包括账号,,密码,身份证号,性别,开户存入金额说明:
1、都具有非空性。
2、开户顺序和账户具有唯一性。
(2)数据存储名称:
存取款表
含义说明:
存放活期存取款的信息
组成结构:
活期存取款包括帐号,金额,办理日期,账户余额,转账金额,转账用户;
说明:
1、帐号具有惟一性和非空性。
2、户名有非空性。
第5章系统实现
createdatabase银行系统
5.1.2创建银行系统的banktable、SelectMoney表
Createtablebanktable
(
idintprimarykey,
accountsnvarchar(50)notnull,
passnvarchar(50)notnull,
namenvarchar(50)notnull,
cardnvarchar(50)notnull,
moenyfloatnotnull,
)
CreatetableSelectMoney
(
idintprimarykey,
unamenvarchar(50)null,
timeYearintnull,
timeDianaintnull,
timeDaynvarchar(50)null,
fetchMoenyfloatnull,
depositMoneyfloatnull,
TransferNamenvarchar(50)null,
TranferMoneyfloatnull,
)
5.1.3存入取出转账记录
5.1.4添加
5.1.5删除记录
DELETE
FROMbanktable
WHEREaccounts='126';
5.1.6查找
SELECT*
FROMbanktable
SELECTaccounts
FROMbanktable
5.2系统c#界面
〔1〕登录进入界面。
〔2〕登录后单击“转账”。
〔3〕登录后,单击“取款”。
〔4〕登录后,单击“查询”。
(6)登录后,单击“存款”。
(7)登录前,开户。
第6章总结心得
通过这次课程设计发现这其中需要的很多知识我们没有接触过,上网查找资料的时候发现我们以前所学到的仅仅是皮毛,还有很多需要我们掌握的东西我们根本不知道。
同时也发现有很多已经学过的东西我们没有理解到位,不能灵活运用于实际,不能很好的用来解决问题,这就需要自己不断的大量的实践,通过不断的自学,不断地发现问题,思考问题,进而解决问题。
在这个过程中我们将深刻理解所学知识,同时也可以学到不少很实用的东西。
这次的数据库课程设计,我们组负责的银行管理系统。
这课题是自拟的。
我们组实行的分工合作。
我主要是负责数据库功能模块设计这部分。
从各种文档的阅读到需求分析、概要设计、数据库总体设计、代码编写与调试,我们都准备了好长时间。
组内分工合作的整个过程,我亲身体验了一回系统的设计开发过程,分工合作的好处。
很多东西书上写的很清楚,貌似看着也很简单,思路非常清晰。
但真正需要自己想方法去设计一个系统的时候才发现其中的难度。
经常做到后面突然就发现自己一开始的设计有问题,然后又回去翻工,在各种反复中不断完善自己的想法。
我想有这样的问题不止我一个,事后想想是一开始着手做的时候下手过于轻快,或者说是根本不了解自己要做的这个系统是给谁用的。
因为没有事先做过仔细的用户调查,不知道整个业务的流程,也不知道用户需要什么功能就忙着开发,这是作为设计开发人员需要特别警惕防止的,不然会给后来的工作带来很大的麻烦,甚至可能会需要全盘推倒重来。
所以以后的课程设计要特别注意这一块的设计。
经过组内讨论,我们确定的课题是银行管理系统。
说实话,我对这个系统不是很了解。
通过上网查找资料、相关文献的阅读,我对该系统有了大体的了解。
在需求分析过程中,我们通过上网查资料,去图书馆查阅相关资料,结合我们的生活经验,根据可行性研究的结果和用户的需要,分析现有情况及问题。
在一个月的时间里,不断地对程序及各模块进行修改、编译、调试、运行,其间遇到很多问题,经过组内讨论。
最终把它解决了。
通过这次课程设计,我对数据库的设计更加熟练了。
通过本次课程设计,对SQL语言,数据库的创建、修改、删除方法有了一定的了解,通过导入表和删除表、更改表,学会了数据库的基本操作。
很多事情不是想象中的那么简单的,它涉及到的各种实体、属性、数据流程、数据处理等等。
很多时候感觉后面的设计根本无法继续,感觉像是被前面做的各种图限制了。
在做关系模型转换的时候碰到有些实体即可以认为是实体又可以作为属性,为了防止冗余,尽量按照属性处理了。
通过本次课程设计,我觉得不管做什么,始终都要相信自己。
不要畏惧,不要怕遇到困难,什么都要去尝试,有些你开始认为很难的事在你尝试之后你可能会发现原来它并没有你你想象的那么难。
如果没有自信,没有目标,没有信心就很难把事情做好,当其他人都在迷茫的时候,自己一定要坚信目标。
从学习这个专业,到以后从事这方面的工作都需要不断地去学习去实践,这次实践可以给我们敲一个警钟,我们面临毕业,面临择业,需要这些实践经验,在困难面前要勇于尝试,这是这次课程设计给我的最大感想!
这次设计的完成,使我对自己所学知识进一步的了解,同时通过实践发现自己的不足,对知识的掌握及运用存在诸多的不完善。
本系统也存在着很多不足,如系统十分简单,实现功能也不够完善,安全性问题也没有很好的解决。
所以在今后的学习中我会继续努力,完善自我,同学的帮助、指导老师的用心辅导和学校的精心安排使这个课题能够顺利进行。
但是,由于时间仓促以及本人水平有限,本系统还有很多不完善之处,也难免存在错漏,恳请老师谅解。
参考文献
[1]陆琳刘桂林.数据库技术与应用,中南大学出版社
[2]成先海.数据库基础与应用SQLSever2000,机械工业出版社。
[3]范立南,刘天惠主编的SQLServer2005实用教程,清华大学出版社
[4]罗福强、杨剑、张敏辉c#程序设计经典教程清华大学出版社
附页:
C#代码
转账
namespacebank
{
publicpartialclassZhuanzhangFrm:
Form
{
string_name;
publicZhuanzhangFrm(stringname)
{
InitializeComponent();
this._name=name;
}
privatevoidForm6_Load(objectsender,EventArgse)
{
textBox3.Text=this._name;
Daodao=newDao();
this.textBox4.Text=dao.GetMoney("selectmoneyfrombanktablewhereaccounts='"+this._name+"'").ToString();
}
privatevoidtextBox2_KeyPress(objectsender,KeyPressEventArgse)
{
e.Handled=e.KeyChar<'0'||e.KeyChar>'9';
if(e.KeyChar==(char)8)
{
e.Handled=false;
}
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
Daodao=newDao();
if(dao.BoolName("Select*frombanktablewhereaccounts='"+this.textBox1.Text+"'"))
{
floatfoo=dao.GetMoney("selectmoneyfrombanktablewhereaccounts='"+this.textBox3.Text+"'");
if(foo { MessageBox.Show("您的余额不足转帐金额"); return; } floatfol=dao.GetMoney("selectmoneyfrombanktablewhereaccounts='"+this.textBox3.Text+"'")-float.Parse(this.textBox2.Text); floatfoo1=dao.GetMoney("selectmoneyfrombanktablewhereaccounts='"+this.textBox1.Text+"'")+float.Parse(this.textBox2.Text); boolboo=dao.ExecSQL2("updatebanktableset[money]="+fol+"whereaccounts='"+this.textBox3.Text+"'updatebanktableset[money]="+foo1+"whereaccounts='"+this.textBox1.Text+"'"); if(boo) { System.DateTimecurrent=newDateTime(); current=DateTime.Now; int_Year=current.Year; int_Month=current.Month; int_Day=current.Day; dao.ExecSQL("insertintoselectMoney(uname,timeYear,timeDiana,timeDay,TransferName,TransferMoney)values('"+this.textBox3.Text+"',"+_Year+","+_Month+","+_Day+",'"+this.textBox1.Text+"',"+float.Parse(this.textBox2.Text)+")"); MessageBox.Show("转帐成功"); this.Close(); } } else { MessageBox.Show("转羇帐户名有误"); } } privatevoidbutton3_Click(objectsender,EventArgse)//取消 { this.Close(); } } } 查询 namespacebank { publicpartialclassSerchFrm: Form { Daodao=newDao(); privatestring_name; SqlConnectioncon; SqlDataAdapterAda; DataSetdst; SqlParameterpar=newSqlParameter(); publicSerchFrm(stringname) { InitializeComponent(); this._name=name; } privatevoidForm5_Load(objectsender,EventArgse) { ArrayListlis=dao.ExecSQL3("SelectDISTINCTtimeYearfromselectMoneywhereuname='"+this._name+"'"); f
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 银行 管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)