数据库课程设计报告——银行管理系统

上传人:飞*** 文档编号:32705029 上传时间:2018-02-12 格式:DOC 页数:96 大小:2.91MB
返回 下载 相关 举报
数据库课程设计报告——银行管理系统_第1页
第1页 / 共96页
数据库课程设计报告——银行管理系统_第2页
第2页 / 共96页
数据库课程设计报告——银行管理系统_第3页
第3页 / 共96页
数据库课程设计报告——银行管理系统_第4页
第4页 / 共96页
数据库课程设计报告——银行管理系统_第5页
第5页 / 共96页
点击查看更多>>
资源描述

《数据库课程设计报告——银行管理系统》由会员分享,可在线阅读,更多相关《数据库课程设计报告——银行管理系统(96页珍藏版)》请在金锄头文库上搜索。

1、 一. 需求分析需求分析是只收集和分析用户对系统的信息需求和处理要求,得到设计所需的需求信息。这些信息是是选择了对数据库设计直接有用的信息,一般包括实体类、联系类、数据的使用要求及冲突表等方面的内容。下面我们从程序设计过程中分别对程序的需求分析和数据库的需求分析结合进行讨论。1.1 系统需求与功能分析A)管理员功能 :1.开户:开户即让用户填写相关信息并要求开户存款至少存入十元,开户后用户获得一张新的银行卡。2.销户:销户即首先计算该用户该卡的所有存款,贷款以及透支并计算最近结果,让用户先取出剩余金额或者还清金额后,对该银行卡进行删除操作。3.精确查询:即组合查询,要求根据输入的条件(具体条件

2、如:日期,用户名)进行查询。4.模糊查询:即对不完全的给出数据进行查询(例如名字只给出第一个字,或者时间只给出月份) 。 该功能在本系统中暂时还没有实现B)用户功能:1.存款:对卡号以及密码进行验证以后,进行存款操作。2.取款:对卡号以及密码进行验证以后,进行取款操作。不具有透支功能的卡不可以取出比当前卡金额多的钱,具有透支功能的卡可以取出不超过透支额度的额外的钱。与此同时,该卡进入透支阶段,必须还清透支以后才可以再次进行取款。透支额度根据用户的收入和信誉度共同决定。3.贷款:对卡号以及密码进行验证以后,进行贷款操作。每张卡具有一定的贷款额度,具体贷款额度由该用户的收入决定。贷款可以随时进行,

3、即使该用户具有透支也可以贷款。贷款以后用户需要在一定时间内还清,否则将不能进行该银行卡的相关操作。4.转账:对卡号以及密码进行验证以后,进行转账操作。判断转账卡号存在以后,判断主卡号和转向卡号的卡类型,如果相等则收取 0.02 的手续费,如果不等则收取 0.05 的手续费。转账金额不能超过该卡的当前存款。5.还贷:只有在用户存在贷款的时候有效,理论上要求分期付款,但是本系统现阶段只支持一次性还清。6.还透支:只有在用户存在透支的时候有效,本系统暂时不支持还透支功能。7.查看贷款,透支信息:点击按钮可以对当前卡的贷款和透支信息进行查看。1.2 数据库需求和分析。1.2.1 数据结构(数据库中表的

4、设计)用户(用户名,密码,用户类型,信誉度,用户收入)银行卡(用户名,卡号,卡类型,金额,透支功能,透支额度,贷款额度)转账(转账号,卡号,转向卡号,转账金额,手续费,转账利率)贷款(卡号,贷款号,贷款金额,贷款日期,贷款利率,是否有贷款,利息,应还金额)还贷(卡号,贷款日期,还款时间,贷款利率,贷款金额,利息,应还金额)透支(卡号,透支金额,透支号,透支开始时间,透支还清时间)1.2.2 数据项具体设置编号 标识符 类型 长度 所属表名1 用户名 nchar 10 用户,银行卡2 密码 int * 用户3 用户类型 nchar 10 用户4 信誉度 int * 用户5 用户收入 int *

5、用户6 卡号 int * 银行卡,转账,贷款,还贷,透支7 卡类型 nchar 10 银行卡8 金额 float * 银行卡9 透支功能 Bool(bit)* 银行卡10 透支额度 int * 银行卡11 贷款额度 int * 银行卡12 转账号 int * 转账 13 转向卡号 int * 转账14 转账金额 int * 转账15 手续费 float * 转账16 转账利率 float * 转账17 贷款号 int * 贷款18 贷款金额 int * 贷款19 贷款日期 datetime * 贷款,还贷20 贷款利率 float * 贷款,还贷21 是否有贷款Bool(bit)* 贷款22

6、利息 float * 贷款,还贷23 应还金额 float * 贷款,还贷24 还款时间 datatime * 还贷25 透支金额 int * 透支26 透支号 int * 透支27 透支开始时间datatime * 透支28 透支还清时间datatime * 透支1.2.3 数据库概念结构设计(E-R 模型)、用户银行卡贷款还贷操作操作透支操作操作用户名信誉度类型卡号贷款号贷款金额日期利息利率还时间卡号贷日期利率利息偿还金额偿还金额拥有转账卡号透支号透支金额开始时间还清时间卡号转向卡号转账号手续费转利率 SQL 关系截图:二整体设计1.1选用程序语言本系统是用 C#语言,选用这个语言的原因有

7、以下几点:1.C#与 C/C+具有极大的相似性,我们之前认真学习过 C 语言和 c+语言,c#是这两个语言的高效率版本,更易于上手。2.C#语言完美支持.NET 平台,可以在 Microsoft .NET 平台上事半功倍的构建应用程序的扩展框架(即与数据库的连接非常易于实现,对数据可以直接进行操作。 )3.全界面人性化操作,实现代码简单易懂,适合初学者学习。1.2选用 MSSQL 数据库经过几天的学习和思考以及结合本系统的实际应用,最后选择使用 Microsoft SQL2008 作为本系统的数据库。和其他的数据库软件相比 MicrsoftSQL2008 具有以下的优点:1.MSSQL 具有广

8、泛的可移植性,尤其 MS2008 更是强化了这个优点,由于所有主要的关系数据库管理系统都支持 SQL 语言,用户可将使用 SQL 的技能从一个 RDBMS 转到另一个。所有用 SQL 编写的程序都是可以移植的。2.MSSQL 语言具有简单实用,一眼明了的特点,所有 SQL 语句使用查询优化器,它是RDBMS 的一部分,由它决定对指定数据存取的最快速度的手段。这种特性使用户更易集中精力于要得到的结果。3.MSSQL 使我们数据库课程学习的主要语言,选用 MSSQL 可以锻炼我们对 MSSQL 实际操作的能力。1.3 程序流程图银行管理系统 三具体设计以及程序实现3.1 数据库设计以及列表信息登陆

9、管理员 用户添加用户 销户 精确查询 模糊查询 卡号选择存款 取款 贷款 透支 透支信息 贷款信息 还贷款用户表:用户表主要用于登陆信息校验,因为程序使用的先验证用户名和密码然后再进行卡号选择的模式,因此在用户表中没有卡号这个列。结合开户的程序设计,还要在用户表中添加用户信誉度和用户收入来计算用户的透支额度以及贷款额度。用户(用户名,密码,用户类型,信誉度,用户收入)用户名是主键。银行卡表:银行卡表是本数据库的核心,所有的服务都参照本表进行。卡号是程序自动生成的不重复的随机数字,卡类型是用户开户的时候确定的,金额即卡上的现金,透支功能是布尔型表示本卡是否具有透支功能,贷款额度和透支额度是由用户

10、表中的用户收入确定的。银行卡(用户名,卡号,卡类型,金额,透支功能,透支额度,贷款额度)卡号是主键。转账表:转账表主要用于处理用户的转账操作。转账号是又程序生成的随机数字,转向卡号是由用户自主确定的,转账金额是由用户确定但是不超过当前卡金额的数字,手续费和转账利率是 FLOAT 型的由转向卡和当前卡的类型决定的。转账(转账号,卡号,转向卡号,转账金额,手续费,转账利率)贷款表:贷款号是由程序生成的随机数字,贷款利率是由用户对贷款时间进行选择后生成的,贷款金额是用户自主决定的不超过贷款额度的数字,利息和应还金额是程序计算后得出的数字,贷款日期是为了以后进行还贷判断时间来设置的,为 Datetim

11、e 型。贷款(卡号,贷款号,贷款金额,贷款日期,贷款利率,是否有贷款,利息,应还金额)还贷表:还贷表中很多数据都是从贷款表中得来的,还款时间是获取还款时的时间并和贷款时间进行比较。还贷(卡号,贷款日期,还款时间,贷款利率,贷款金额,利息,应还金额)透支表:透支号是由程序生成的随机数字,透支开始时间和透支还清时间是获取相应动作的 datetime,透支金额是用户自主决定的不超过透支额度的数字。透支(卡号,透支金额,透支号,透支开始时间,透支还清时间)3.2 程序的各个模块的实现以及代码和截图3.2.1 登陆界面设计思路:登陆界面的校验和很多人不一样,我是先进行用户名,密码以及用户类型的校验以后,

12、再进行卡号的选择。登陆界面中的用户类型下拉菜单是对数据库进行查询后得出的,这样设计对于管理员的安全性有了很大的提高。在没有管理员的用户类型时,是不能 登陆管理员界面的。流程图:程序代码:用户类型下拉菜单(从数据库中查找类型并填充)private void loginform_Load(object sender, EventArgs e)string constr = System.Configuration.ConfigurationSettings.AppSettingsDB;this.con = new SqlConnection(constr); = new SqlCommand();

13、 com.Connection = con;sql = select distinct 用户类型 from 用户 ;com.CommandText=sql;if (con.State = ConnectionState.Closed)con.Open();SqlDataReader result = com.ExecuteReader();String array = new String3; 因为用户类型只有管理员和用户,因此只定义三个。int i = 0;while (result.Read()输入用户名和密码 在数据库中进行查找 成功失败 提示用户名或密码不正确查找用户类型匹配成功失败进

14、入相关界面连接数据库定义 查找用户类型利用数组进行填充 array.SetValue(result用户类型.ToString(), i);i+;loginlist.DataSource = array;if (con.State = ConnectionState.Closed)con.Close();登陆验证(先验证用户名和密码,再验证用户类型)private void loginbutton_Click(object sender, EventArgs e)string constr = System.Configuration.ConfigurationSettings.AppSetti

15、ngsDB;this.con = new SqlConnection(constr); = new SqlCommand();com.Connection = con;连接数据库操作后文中不再示例。string name, code;name=this.usernametxt.Text;code=this.usercodetxt.Text;sql = select 密码 from 用户 where 用户名=+name+;com.CommandText = sql;if (con.State = ConnectionState.Closed)con.Open();SqlDataReader result = com.ExecuteReader();result.Read();if (result密码 .ToString() = code)result.Close();sql = select 用户类型 from 用户 where 用户名= +name+;com.CommandText = sql;SqlDataReader result1 = com.ExecuteReader();连接数据库定义 text查找密码密码查找成功后查找用户类型。 result1.Read();System.Console.WriteLine(log

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号