1、银行储蓄系统报告课程设计(论文)课程名称: 数据库大作业 题 目: 银行储蓄系统 院 (系):信息与控制工程学院 专业班级: 计算机 1102 姓 名: * * 学 号: 0 指导教师: * * 2014年 3 月 13日西安建筑科技大学课程设计(论文)任务书专业班级: 计算机112 学生姓名: 指导教师(签名): 一、课程设计(论文)题目银行储蓄系统二、本次课程设计(论文)应达到的目的通过数据库大作业课程设计的操作与实践,使学生了解关系数据库的相关理论知识和有关工具软件的使用技巧,在一定程度上提高应用程序的综合开发能力和创新意识、创新能力。 三、本次课程设计(论文)任务的主要内容和要求(包括
2、原始数据、技术参数、设计要求等) 系统功能基本要求 : 1. 实现储户开户登记; 2. 办理定期存款帐; 3. 办理定期取款手续; 4. 办理活期存款帐; 5. 办理活期取款手续; 6. 实现利息计算; 7. 实现所有功能的查询; 8. 要考虑银行系统数据的安全与保密工作。四、应收集的资料及主要参考文献: 1. 数据库:原理编程与性能(影印版)(第2版),高等教育出版社, Parick ONeil,Elizabeth ONeil编著,2005.7;2. 数据库系统概论(第4版),高等教育出版社,王珊,萨师煊编著,2006.05; 五、审核批准意见教研室主任(签字) 设计总说明这次数据库课程设计
3、的题目是:银行储蓄系统。当今计算机及网络技术迅猛发展,计算机应用在全球范围内日益普及,而社会也正在向信息化社会前进,信息系统的作用也越来越大。因此,纸质作为存储介质已经不再适应时代大道发展。加上现如今,纯人工操作银行存取款业务已经不再现实,一是因为业务量大,人工操作会显得效率极低;二是因为银行存储款业务繁琐,精确度要求极高,人工操作易出错,甚至可能造成无法挽回的损失。所以一款精确度高、出错率低的银行储蓄系统显得尤为重要。此次设计是以陕西信合银行的存折服务为模拟对象,借鉴存折的活期存取款、死期存取款、利息计算、明细查询、安全等方面的组织逻辑。从而得出来该设计的需求分析。然后按照需求分析设计出了该
4、系统的逻辑数据库,接着在SQL Sever 2008上完成了数据库的物理设计。然后运用visual studio 2010设计网站形式(C#语言)的银行储蓄系统前台后台代码。设计完成之后,该系统能够完成实现储户开户登记;办理定期存款帐;办理定期取款手续;办理活期存款帐;办理活期取款手续;实现利息计算;实现所有功能的查询。并且要考虑了银行系统数据的安全与保密工作。此外,在普通用户之外,还设有一个管理员用户,此管理员拥有除了管理(修改密码)之外所有的普通用户权限。因此在报告中之阐述普通用户的设计。数据库大作业 银行储蓄系统1设计目的这次数据库课程设计的题目是:银行储蓄系统。当今计算机及网络技术迅猛
5、发展,计算机应用在全球范围内日益普及,而社会也正在向信息化社会前进,信息系统的作用也越来越大。因此,纸质作为存储介质已经不再适应时代大道发展。加上现如今,纯人工操作银行存取款业务已经不再现实,一是因为业务量大,人工操作会显得效率极低;二是因为银行存储款业务繁琐,精确度要求极高,人工操作易出错,甚至可能造成无法挽回的损失。所以一款精确度高、出错率低的银行储蓄系统显得尤为重要。2问题描述2.1 问题概述 本设计要求设计实现一个银行储蓄系统,能够完成银行用户的普通业务操作,并且要保证数据库的安全性达标。2.2 系统设计目标 首先是系统功能设计,尽量的地模拟真实的银行系统,尽量地简化用户的操作,并尽可
6、能做以改善。其次就是数据库的设计,设计过程中应该尽可能地运用所学的数据库知识,使理论与实践完美地结合起来。最后就是界面了,本设计是一个网站类型的系统,而一个网站的界面友好程度对于系统的受欢迎程度是有着决定性的作用的。因此,此次界面设计应该本着简洁、美观的目标去进行设计。2.3 系统主要功能 设计完成之后,该系统能够完成实现储户开户登记;办理定期存款帐;办理定期取款手续;办理活期存款帐;办理活期取款手续;实现利息计算;实现所有功能的查询。并且要考虑了银行系统数据的安全与保密工作。此外,在普通用户之外,还设有一个管理员用户,此管理员拥有除了管理(修改密码)之外所有的普通用户权限。因此在报告中之阐述
7、普通用户的设计。3需求分析3.1 设计思想首先,对于数据库的设计,要以简洁为主,但必须完成系统所需功能。而对于后台前台的设计要以真实性为主,设计出符合人们生活习惯的界面和功能。3.2 可行性分析3.2.1 技术可行性 系统的性质为MIS ,因而数据库的设计与操纵是系统设计的核心。我们对软件开发有所实践,具备一定的系统分析与设计能力,熟悉数据库的设计与 操纵;指导老师经验丰富,因而该系统的实现在技术上是可行的。 3.2.2 操作可行性 我们已经学过 C#、数据库技术,可以完成开发任务以及数据库的设计与 开发,可以应对用户界面开发和后期测试任务等。故可立即投入开发工作。 3.2.3 时间、设备可行
8、性 系统设计与开发工作预计耗时两周。实验设备如:计算机及相关软件齐全,任务可以完成。 3.3 功能需求3.3.1 基本功能需求 完成实现储户开户登记;办理定期存款帐;办理定期取款手续;办理活期存款帐;办理活期取款手续;实现利息计算;实现所有功能的查询。并且要考虑了银行系统数据的安全与保密工作。3.3.2 用户界面需求界面应该包括系统管理员登陆后的界面和普通用户登陆后的界面。普通用户的界面应该包括开户界面、销户界面、个人信息管理界面(修改用户密码)、活期定期存取款界面以及各种信息的查询界面。系统管理员也应该包括开户界面、销户界面、所有用户存取款查询界面、所有用户活期定期存取款界面。其次应该还有一
9、个管理员和用户的登陆界面。3.4 性能需求首先,对于工作负荷 处理较多数据时,应该尽量避免较长时间的延时。再者,系统的界面应该比较友好,利于管理人员的操作。还有就是系统应该具备高度容错能力,不至于发生一些意想不到的错误而没法处理。3.5 系统设计基础3.5.1 系统业务流图图3-1 系统业务流图3.5.2 系统数据流图(此处只画出普通用户流图,管理员权限与普通用户除少了更改密码的管理权限外,其余完全相同。)图3-2 系统数据流图4概要设计4.1 功能描述 设计完成之后,该系统能够完成实现储户开户登记;办理定期存款帐;办理定期取款手续;办理活期存款帐;办理活期取款手续;实现利息计算;实现所有功能
10、的查询。并且要考虑了银行系统数据的安全与保密工作。此外,在普通用户之外,还设有一个管理员用户,此管理员拥有除了管理(修改密码)之外所有的普通用户权限。因此在报告中之阐述普通用户的设计。4.2 系统模块 系统包括以下模块:导航模块(其它模块的索引);开户模块;登陆模块;储户存款模块;储蓄取款模块;储户查询模块;销户模块;管理模块(修改密码)。共计8个模块。4.3 系统功能模块图 图4-1 系统功能模块图 5数据库设计5.1 数据库简介 本网站使用的数据库是SQL Server 2008,将本系统需要用到的数据信息都存在数据库中的表中。5.2 概念设计 实体:用户,活期存款,活期存取明细,定期存款
11、,定期存取明细。图5-1 用户表E-R图图5-2 活期存款表E-R图图5-3 活期存取明细表E-R图图5-4 定期取款表E-R图图5-5定期存取明细表E-R图图5-6 各表综合E-R图5.3 逻辑结构设计用户表属性:账号、密码、姓名、性别、出生年月、身份证号、地址、电话、开户日期、账户余额。活期存款表属性:账号、操作金额、账户类型(活期或者死期)、操作日期、账户余额。活期存取明细表:账号、操作金额、操作类型(存款或取款)、操作日期、利息、账户余额。定期存款表属性:序号(用来标识存款的款项)、账号、操作金额、账户类型、操作日期、利息、账户余额、年限。活期存取明细表:账号、操作金额、操作类型、操作
12、日期、利息、账户余额、序号。5.4 物理结构设计表5-1 用户表属性账号密码姓名性别出生年月身份证号地址电话开户日期账户余额类型Varchar(20)Char(8)Varchar(20)Char(2)DatatimeChar(18)Varchar(100)Char(20)Varchar(20)nchar(20)表5-2 活期存款表属性账号操作金额账户类型操作日期账户余额类型Varchar(20)Varchar(20)Varchar(20)Varchar(20)Varchar(20)表5-3 活期存取明细表属性账号操作金额操作类型操作日期利息账户余额类型Varchar(20)Varchar(20
13、)Varchar(20)Varchar(20)Varchar(20)Varchar(20)表5-4 定期存款表属性序号账号操作金额操作类型操作日期利息账户余额年限类型Varchar(20)Varchar(20)Varchar(20)Varchar(20)Varchar(20)Varchar(20)Varchar(20)Varchar(20)表5-5 定期存取明细表属性账号操作金额账户类型操作日期利息账户余额序号类型Varchar(20)Varchar(20)Varchar(20)Varchar(20)Varchar(20)Varchar(20)Varchar(20)6详细设计6.1 项目创建
14、打开visual studio 2010,文件新建网站,填写网站名,点击确定,项目创建完成。 6.2 导航模块(1)模块功能 用来导航其它各个模块的索引页,是整个系统的主页面。用户在未登录的情况下进入此页面不能进行任何操作。页面会滚动提示请先登录。(2)界面设计 图6-1 导航模块界面图6.3 登陆模块(1)模块功能 用于普通用户或者管理员登陆账户,用以获取权限,进行存取款等进一步操作。(2)界面设计 图6-2 登陆模块界面图6.4 开户模块 (1)模块功能 实现用户建立自己银行账号的功能。(2)界面设计图6-3 开户模块界面图6.5 储户存款模块(1)模块功能实现用户的活期和定期存款的功能。
15、(2)界面设计图6-4 储户存款模块界面图(3)关键代码(存款按钮事件) protected void Button1_Click(object sender, EventArgs e) . . . if ( = 活期) TextBox1.ReadOnly = true; mycon.Open(); SqlTransaction myTrans = mycon.BeginTransaction(); SqlCommand cmd = new SqlCommand(select top 1 * from 活 期存款表 Order by 操作日期 DESC, mycon); cmd.Transac
16、tion = myTrans; try SqlDataReader reader = cmd.ExecuteReader(); string l = ; if (reader.Read() /计算存款后 活期总额 . . . SqlData daq = new SqlData(); SqlConnection myconq = new SqlConnection(ConfigurationManager .AppSettingsConSql); SqlCommand cmdq = new SqlCommand(Delete From 活 期存款表 where 账号=zhanghao, myco
17、nq); zhanghao, SqlDbType.VarChar).Value = SessionUserName; myconq.Open(); cmdq.ExecuteNonQuery(); myconq.Close(); else l = ; mycon.Close(); mycon.Open(); string cmm = insert into 活期存款表 values( + + , + + , + 活期 + , + + , + l + ); string cnn = insert into 活期存取明细表 values( + + , + + , + 存款 + , + (yyyy-M
18、M-dd-hh-mm-ss) + , + 0+, + l + ); SqlCommand com = new SqlCommand(cmm, mycon); SqlCommand con = new SqlCommand(cnn, mycon); int o = (int)com.ExecuteNonQuery(); con.ExecuteNonQuery(); . . . 6.6 储户取款模块(1)模块功能实现用户的活期和定期取款的功能。(2)界面设计图6-5 储户取款模块界面图6.7 储户查询模块 (1)模块功能实现用户的活期和定期存款和取款记录的查询的功能。(2)界面设计图6-6 储户查
19、询模块界面图6.8销户模块 (1)模块功能实现用户注销信息的功能。(2)界面设计图6-7 销户模块界面图6.9 管理模块 (1)模块功能实现用户密码更改的功能。(2)界面设计图6-8 管理模块界面图7调试分析在调试的过程中我遇到了各种各样的问题,再次列举几个主要的问题进行分析。在调试的过程中我发现session变量不能直接使用,不然系统会提示该变量没有定义。最后在书上找到了解决问题的方法,应该现在Global.aspx文件中对session变量进行初始化。这样就可以在所有后台代码中随意使用session了。在数据库连接的时候也发生过好多问题,比如sqlconnection连接格式书写不正确,但
20、都是一些不容易发现的小问题。最后都插入断点分析改正过来了。在调试的过程中我还发现一个潜藏的问题,就是数据库的安全问题,如果多个用户同时操作数据库,那么系统肯定会出错,虽然调试的时候没有发生错误,但为了防患于未然,使系统更加完整,我将所有对数据库操作的后台代码都写进了事物当中,以解决问题。8使用说明1.进入网站首页-index.aspx,页面提示请先登录。用户可以单击导航栏的“开户”按钮,到开户页面注册信息,并且提交。2.用户开户后可以点击“登陆”,到登陆页面登陆。3.登陆后用户会跳转到导航页,用户可以点击储蓄存款、储蓄取款、储蓄查询、销户、管理、开户等导航按钮,进入各个对应页面进行相应操作。如
21、下图:图8-1 导航界面图9设计总结其实,这是我本科以来第一次真正意义上自己独立完成的一次课程设计,从拿到题目,研究需求,设计数据库,设计功能模块,编写代码,一步一步走了过来。虽说过程比较曲折,但是最终还是被我一一解决了。在课设中遇到的一些形形色色的问题。首先就是用户需求,我发现这个环节其实是最不能忽视的,因为如果了解的稍微有点偏差而导致设计出现问题,再想修改就会很麻烦了。而我也恰恰在这里也犯了错误,我开始设计的银行系统,用户不同时间的活期存款是不能叠加的的,等到我意识到这个错误的时候已经很难再改动了,最后花了九牛二虎之力才得以解决。老师给的任务书上的设计要求是很笼统的,其中有许许多多的细节是
22、需要我们自己去了解的。比如银行的定期存款到期后没被用户及时取走会执行什么操作;再比如银行的利率是按照什么规律结算的。我首先在网上查找了很多的银行存折图片,还请教了周围使用过存折的人们,综合各种信息,最后得出我的系统需求。再说说数据库,数据库的设计远远没有我想象的那么简单,由于并没有按照书本上所学的设计步骤去设计,所以感觉无从下手,最后是在网上参考了很多有关的数据库设计,再根据我的设计要求和系统需求一步一步慢慢地确定了我自己的数据库表。到这里也就基本完成了本次课设的大概一半了。接下来我开始去编写网站前台代码,这部分没有遇到什么大的问题,但对于一些简单的css倒是有了一点了解。最后就是后台代码,由
23、于自己的编程经验还不是很丰富,所以也遇到了很多以前没有见过的问题,比如时间的运算问题(定期存款需要计算款项是否到期)等等。到现在为止,整个系统基本上完成了任务书的要求,但是还有一些地方需要改进,最重要的一点就是利息问题,我的利息设置的常量,但是实际并非如此,银行的利率是经常变动的。解决的方案目前有两个,一个就是在数据库设计中加入触发器功能,当政府将利率改动时,存款中的利率也会自动改变,并根据利率自动结算前一段时间的本金和。首先查找最近一次调整利率的时间和利率,然后计算按照此利率结算的天数,然后根据利率求出本金和,并更新存款中的可用余额。还有一种方法是在管理员界面中添加一个调整利率的功能,进行手
24、工改动。相信经过循序渐进的努力,我的系统会越来越完善。经过这次课程设计,我了解到了,要做一个外观优美,性能优越的系统不是那么轻而易举的,必须严格地一步步地往前推进。但至少对于网站的开发流程已经是很熟悉了,相信以后不会再像以前一样手足无措了。再次,向帮助过我的老师同学等等致以真诚的感谢!参考文献1 Parick ONeil,Elizabeth ONeil数据库原理、编程与性能(第2版 影印版)M北京:高等教育出版社,20052 王珊,萨师煊数据库系统概论(第4版)M北京:高等教育出版社,20063 刘卫国,熊拥军数据库技术与应用SQL Server 2005M北京:清华大学出版社,20104 王秀英SQL Server 2005实用教程M北京:清华大学出版社,20105 柯平,高洁.信息管理概论M.北京:科学出社,20026 周宁.信息资源数据库M.武汉:武汉大学社,20017 (英)夏普.Visual C# 2005从入门到精通M.北京:科学出版社,20048 David Chappell.NET大局观( 第2版) M. 北京: 清华大学出版社, 19939尚俊杰.网络程序设计ASP(第2版)M.北京:北京交通大 学出版社,200410明日科技.C#从入门到精通(第3版)M.北京:清华大学出版 社,2012
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1