银行储蓄管理系统的设计与实现
摘要
随着金融业的发展,手工操作和旧的管理模式已经严重制约了质量和效率的问题,用计算机管理来代替手工管理是非常必要的。本文主要介绍了银行管理系统的方案论证、结构特性设计及行为特性设计的实现过程,详细论述了总体设计思想、数据库设计和功能模块设计。实现了系统初置、系统初值录入、定期储蓄、外部消费与结算模拟、综合统计查询等功能。
整个系统的设计过程中,充分考虑了数据库的安全性、一致性、稳定性和可靠性的问题,并具有较强的向导作用,为操作人员提供了丰富的决策功能,而且操作简单方便。用此系统代替手工操作后,能大大减少在时间和空间上的浪费,为银行节省了大量的人力和物力。
关键字 : 银行储蓄,管理系统,结构特性设计,行为特性设计
Abstract
As the development of financial trade, handwork operating and old management pattern already have seriously restricted the issue of quality and efficiency. It is very necessary to replace handwork management with computer management system. This paper primarily introduces the project argument, the structural characteristic design and the behavioral characteristic design of the bank management system. The total design idea, the database design and the functional module design are discussed in detail. The functions of this system mainly include the system initialization, code input, fixed deposit, and synthesize statistical inquiry etc.In the course of entire system design, the system has fully considerated about the safety, consistency, stability and reliability of the database, and also has a strong guidanance function. This system can satisfy the customer’s operation easily and offer a friendly user interface. By using this system, we believe that wastness of the time and space will be greatly reduced and plenty of manpower and material resources for bank will be saved.
Keywords: Bank deposit, Management System, Structural characteristic Design, Behavioral characteristic Design
第1章 引言
1.1题目背景
银行储蓄管理软件的主要作用是针对于各类银行中的储蓄业务进行有效管理。银行储蓄是我们现实生活中的常见活动。就储蓄业务而言,无论国外还是国内,也无论是那家银行,虽然所开展的业务种类稍有不同,利息的计算也存在差异,但储蓄的本质是完全相同的。在我国加入WTO以后,各银行的业务逐渐和国际接轨。
本次开发以一个虚拟银行为背景,在深入了解通用的银行储蓄业务管理要求的基础上,力争开发出一个实用性强的通用储蓄系统软件,基本上可满足正常银行业的工作需要。本项目对系统的安全保密性要求也较高。另外,还要实现多币种的储蓄业务。设计者必须了解并掌握银行储蓄业务的一般要求及银行核算的规则(如利息计算的规则、节假日规则、币种兑换规则等)。同时,应该能模拟出消费者的外部消费与银行的结算业务。项目工作量和专业跨度较大。
1.2项目内容
具体的内容包括:
1)储蓄类别管理及储蓄币种类别管理,其中储蓄类别管理包括活期储蓄、整存整取、零存整取、整存零取、存本取息、定活两便,储蓄币种类别管理主要是对多币种的储蓄进行管理。另外,定期存款业务应涉及到多币种、多类别如三个月、半年、一年、三年、五年等。
2)初始化数据库:主要实现在软件正式运行前,把一个银行现行手工工作模式下的所有储蓄信息向计算机中进行转储。这是软件系统正确运行的前提条件。
3)定期帐户档案管理,此功能主要是对定期储户的存储信息进行管理,方便了储户对存储信息的查询、修改。
定期储蓄业务,主要包括定期开户,定期取款(包括提前支取, 到期支取,过期支取),挂失与解挂。定期储蓄业务是储户在存款时约定存期,一次或按期分次存入本金,整笔或分期、分次支取本金或利息的一种储蓄方式。定期储蓄可分为以下几种类型:整存整取、零存整取、整存零取、存本取息、定活两便。其存取方式因类型不同而有区别。整存整取定期储蓄存款:一般50元起存,存期分三个月、半年、一年、二年、三年、五年,本金一次性存入,由储蓄机构发给存单,到期凭存单支取本息。零存整取定期储蓄存款:每月固定存款,一般5元起存,存期分为一年、三年、五年,存款金额由储户自定,每月存入一次,中途如有漏存,应在次月补齐,未补齐者,到期支取
本表说明如下:
² 本表的主要作用是实现进入系统时的身份验证、装载本操作员的业务汇总情况。
² 上年存款量、上年存款额和上年取款额为本操作员去年一年的总业务量、总存款额和总取款额,在“年初承转”(这是一个行为,下同)时由本年数直接承转而来;
² 上月数为本年度开始到上月月底的业务总和,在“月初承转”时由本年数直接承转而来;
² 昨日数为本月月初至昨日止的业务总和,在“日初承转”时由本月数直接承转而来。
² 本日数为本日实际发生数,由“本日业务汇总”程序通过本日业务凭证汇总而来。
² 本月数为昨日数加上本日数得到,也通过本日业务汇总程序实现;
² 本年数时通过月底业务汇总程序通过上月数加上本月数得到。
3.2.2系统管理员代码表
序号 |
属性名 |
属性类型 |
长度 |
备注 |
1 |
代码 |
int |
2 |
用于唯一标识本币种 |
2 |
密码 |
char |
6 |
用于表示业务人员的密码 |
本表说明如下:
² 本表的主要作用是实现系统管理员进入系统时的身份验证,装载系统管理员的代码和密码。
² 代码是位于标识该系统管理员的身份。
3.2.3储蓄币种代码表
序号 |
属性名 |
属性类型 |
长度 |
备注 |
1 |
币种代码 |
int |
2 |
用于唯一标识本币种 |
2 |
币种名称 |
char |
10 |
储蓄币种名称 |
3 |
兑换比率 |
numeric |
12.2 |
用于标识其它币种与RMB的比率 |
4 |
调整时间 |
datetime |
8 |
兑换比率的调整时间 |
5 |
上年业务量 |
numeric |
9 |
用于表示本币种去年累计业务笔数 |
6 |
上年存款额 |
money |
12.2 |
用于表示本币种去年累计存款量 |
7 |
上年取款额 |
money |
12.2 |
用于表示本币种去年累计取款量 |
8 |
上年余额 |
money |
12.2 |
用于表示本币种去年累计余额 |
9 |
上年储户数 |
decimal |
9 |
用于表示本币种去年累计储户数 |
10 |
上月业务量 |
numeric |
9 |
用于表示年初至上月累计业务量 |
11 |
上月存款额 |
money |
12.2 |
用于表示年初至上月累计存款额 |
12 |
上月取款额 |
money |
12.2 |
用于表示年初至上月累计取款额 |
13 |
上月余额 |
money |
12.2 |
用于表示年初至上月累计余额 |
14 |
上月储户数 |
decimal |
9 |
用于表示年初至上月累计储户数 |
15 |
昨日业务量 |
numeric |
9 |
用于表示月初至昨日累计业务量 |
16 |
昨日存款额 |
money |
12.2 |
用于表示月初至昨日累计存款额 |
17 |
昨日取款额 |
money |
12.2 |
用于表示月初至昨日累计取款额 |
18 |
昨日余额 |
money |
12.2 |
用于表示月初至昨日累计余额 |
19 |
昨日储户数 |
decimal |
9 |
用于表示月初至昨日累计储户数 |
20 |
本日业务量 |
numeric |
9 |
用于表示本币种本日累计业务量 |
21 |
本日存款额 |
money |
12.2 |
用于表示本币种本日累计存款额 |
22 |
本日取款额 |
money |
12.2 |
用于表示本币种本日累计取款额 |
23 |
本日余额 |
money |
12.2 |
用于表示本币种本日累计余额 |
24 |
本日储户数 |
decimal |
9 |
用于表示本币种本日累计储户数 |
25 |
本月业务量 |
numeric |
9 |
用于表示月初至本月业务量 |
26 |
本月存款额 |
money |
12.2 |
用于表示月初至本月存款额 |
27 |
本月取款额 |
money |
12.2 |
用于表示月初至本月取款额 |
28 |
本月余额 |
money |
12.2 |
用于表示月初至本月余额 |
29 |
本月储户数 |
decimal |
9 |
用于表示月初至本月储户数 |
30 |
本年业务量 |
numeric |
9 |
用于表示本币种年初至本月累计业务量 |
31 |
本年存款额 |
money |
12.2 |
用于表示本币种年初至本月累计存款额 |
32 |
本年取款额 |
money |
12.2 |
用于表示本币种年初至本月累计取款额 |
33 |
本年余额 |
money |
12.2 |
用于表示本币种年初至本月累计余额 |
34 |
本年储户数 |
decimal |
9 |
用于表示本币种年初至本月累计储户数 |
本表说明如下:
² 本表主要用于多币种储蓄
² 现在世界上币种很多,主要包括下面几种~~~美元,欧元,日元,港币,英镑,台币等等。
² 兑换比率是用于表示其它币种与RMB的交换率。
3.2.4储蓄类别代码表
序号 |
属性名 |
属性类型 |
长度 |
备注 |
1 |
币种名称 |
char |
10 |
|
2 |
储蓄类别 |
int |
2 |
用于唯一标识本行内的所有业务类别 |
3 |
储蓄名称 |
char |
10 |
储蓄类别名称 |
4 |
利率 |
numeric |
12.2 |
本类别对应的利率数 |
5 |
周期 |
int |
2 |
利率核算的周期(若年利率则为月数) |
6 |
调整时间 |
datetime |
8 |
本利率调整的时间 |
7 |
上年业务量 |
numeric |
9 |
用于表示本类别去年累计业务笔数 |
8 |
上年存款额 |
money |
12.2 |
用于表示本类别去年累计存款额 |
9 |
上年取款额 |
money |
12.2 |
用于表示本类别去年累计取款数额 |
10 |
上年余额 |
money |
12.2 |
用于表示本类别去年累计余额 |
11 |
上年支付利息 |
money |
12.2 |
用于表示本类别去年累计支付利息 |
12 |
上年储户数 |
decimal |
9 |
用于表示本类别去年累计储户数 |
13 |
上月业务量 |
numeric |
9 |
用于表示年初至上月累计业务笔数 |
14 |
上月存款额 |
money |
12.2 |
用于表示年初至上月累计存款数额 |
15 |
上月取款额 |
money |
12.2 |
用于表示年初至上月累计取款数额 |
16 |
上月余额 |
money |
12.2 |
用于表示年初至上月累计余额 |
17 |
上月支付利息 |
money |
12.2 |
用于表示年初至上月累计支付利息 |
18 |
上月储户数 |
decimal |
9 |
本类别上月月底的总储户数 |
19 |
昨日业务量 |
numeric |
9 |
用于表示月初至昨日累计业务笔数 |
20 |
昨日存款额 |
money |
12.2 |
用于表示月初至昨日累计存款数额 |
21 |
昨日取款额 |
money |
12.2 |
用于表示月初至昨日累计取款数额 |
22 |
昨日余额 |
money |
12.2 |
本类别昨日的沉淀额 |
23 |
昨日支付利息 |
money |
12.2 |
用于表示月初至昨日累计支付利息 |
24 |
昨日储户数 |
decimal |
9 |
本类别昨日的总储户数 |
25 |
本日业务量 |
numeric |
9 |
用于表示本日业务笔数 |
26 |
本日存款额 |
money |
12.2 |
用于表示本日存款数额 |
27 |
本日取款额 |
money |
12.2 |
用于表示本日取款数额 |
28 |
本日余额 |
money |
12.2 |
本类别本日的沉淀额 |
29 |
本日支付利息 |
money |
12.2 |
用于表示本日支付利息 |
30 |
本日储户数 |
decimal |
9 |
本类别本日的总储户数 |
31 |
本月业务量 |
numeric |
9 |
用于表示月初至本月累计业务笔数 |
32 |
本月存款额 |
money |
12.2 |
用于表示月初至本月累计存款数额 |
33 |
本月取款额 |
money |
12.2 |
用于表示月初至本月累计取款数额 |
34 |
本月余额 |
money |
12.2 |
用于表示月初至本月累计余额 |
35 |
本月支付利息 |
money |
12.2 |
用于表示月初至本月累计支付利息 |
36 |
本月储户数 |
decimal |
9 |
用于表示月初至本月累计储户数 |
37 |
本年业务量 |
numeric |
9 |
用于表示年初至本月累计业务笔数 |
38 |
本年存款额 |
money |
12.2 |
用于表示年初至本月累计存款数额 |
39 |
本年取款额 |
money |
12.2 |
用于表示年初至本月累计取款数额 |
40 |
本年余额 |
money |
12.2 |
用于表示年初至本月累计本年余额 |
41 |
本年支付利息 |
money |
12.2 |
用于表示年初至本月累计本年支付利息 |
42 |
本年储户数 |
decimal |
9 |
用于表示年初至本月累计本年储户数 |
本表说明如下:
² 本表为储蓄类别的代码表,用于正常储蓄业务时的代码自动映射。
² 通过日汇总、月汇总、日出承转、月初承转和年初承转四个行为所产生的数据,可充分反映本单位的业务情况。
3.2.5定期账户表
序号 |
属性名 |
属性类型 |
长度 |
备注 |
1 |
存折号 |
varchar |
15 |
用于唯一标识本行内的所有定期储户 |
2 |
储户姓名 |
char |
10 |
用于表示用户的姓名 |
3 |
密码 |
char |
6 |
用于表示用户的密码 |
4 |
身份证号 |
varchar |
20 |
用于表示用户的身份证号 |
5 |
储蓄类别 |
int |
2 |
与表2关联 |
6 |
币种名称 |
char |
10 |
用于表示用户存款币种的名称 |
7 |
存款额 |
money |
12.2 |
当前本储户的存款额 |
8 |
存款时间 |
datetime |
8 |
用于表示本储户的开户时间 |
9 |
到期时间 |
datetime |
8 |
用于表示本储户的到期时间 |
10 |
到期利息 |
money |
12.2 |
当前本储户到期应得利息额 |
11 |
提前支取利息 |
money |
12.2 |
当前本储户未到期应得利息额(按活期) |
12 |
超期利息 |
money |
12.2 |
当前本储户超期应得利息额(按活期) |
13 |
挂失否 |
char |
10 |
用于表示该存折是否挂失 |
14 |
身份验证类别 |
char |
10 |
需要验证的证件类别 |
本表说明如下:
² 本表用于存储所有定期账户的信息;
² 用户提前支取定期存款时,一律视为活期存款,并按取款日的活期利率计算利息。
² 用户超期支取定期存款时,超期部分一律视为活期存款,并按取款日的活期利率计算利息,支取时利息总和为两项之和。
3.2.6 定期存取款业务凭证表
序号 |
属性名 |
属性类型 |
长度 |
备注 |
1 |
存折号 |
varchar |
15 |
用于唯一标识本行内的所有定期储户 |
2 |
储蓄名称 |
char |
10 |
与表2关联 |
3 |
存取标志 |
char |
10 |
表示存款或取款业务 |
4 |
币种名称 |
char |
10 |
表示存款或取款业务的币种代码 |
5 |
发生额 |
money |
12.2 |
当前本储户的存、取款额 |
6 |
发生时间 |
datetime |
8 |
当前本储户的存、取款的发生时间 |
7 |
到期利息 |
money |
12.2 |
当前本储户到期应得利息额 |
8 |
提前支取利息 |
money |
12.2 |
当前本储户未到期应得利息额(按活期) |
9 |
超期利息 |
money |
12.2 |
当前本储户超期应得利息额(按活期) |
10 |
操作员代码 |
int |
2 |
经手人——前台操作员 |
11 |
出纳员 |
int |
2 |
经手人——出纳员 |
本表说明如下:
² 本表用于存储所有定期存、取款业务凭证;
² 与本表结构相同的表共有三个,分别为日业务凭证表、月业务凭证表和年业务凭证表;其中日表用于装载本日用户存取款凭证,由“定期存款”、“定期取款”等行为自动生成。本表用于“本日汇总”行为的核算基表,次日日初即把该表的内容全部承转到月表中;月表用于装载本月用户存取款凭证,也可兼作“本月汇总”行为的核算基表,次月月初即把该表的内容全部承转到年表中;
² “日初承转”时将日表中的记录转到月表中,并将日表清空;在“月初承转”时将月表中的记录转到年表中,并将月表清空。年底时将年表备份,并在“年初承转”时将年表清空。
3.2.7节假日代码表
序号 |
属性名 |
属性类型 |
长度 |
备注 |
1 |
节假日名称 |
char |
10 |
用于唯一标识本行内的所有法定节假日 |
2 |
开始时间 |
datetime |
8 |
用于表示节假日的开始时间 |
3 |
结束时间 |
datetime |
8 |
用于表示节假日的结束时间 |
4 |
提前天数 |
int |
2 |
见备注 |
本表说明如下:
² 本表用于存储本行内的所有法定节假日;
² 本表的主要作用为节假日银行休息时,储户在节假日到期的定期存款可在节假日前几天提取,而不视为提前支取行为。
3.2.8存取标志代码表
序号 |
属性名 |
属性类型 |
长度 |
备注 |
1 |
存取标志代码 |
int |
1 |
用于唯一标识所有存取款类别 |
2 |
存取标志名称 |
char |
10 |
储蓄类别名称 |
3 |
币种名称 |
char |
10 |
存取标志对应的币种的名称 |
4 |
上年数量 |
numeric |
9 |
去年全年发生数 |
5 |
上月数量 |
numeric |
9 |
年初至上月月底的累计数 |
6 |
昨日数量 |
numeric |
9 |
月初至昨日的累计数 |
7 |
本日数量 |
numeric |
9 |
本日实际发生数 |
8 |
本月数量 |
numeric |
9 |
月初至本日的累计数 |
9 |
本年数量 |
numeric |
9 |
年初至本月月底的累计数 |
本表说明如下:
² 本表用于存储所有存取款类别;
u 0~活期开户
u 1~活期续存
u 2~活期取款
u 3~活期清户
u 4~定期存款
u 5~定期取款
² 本表中的后6个属性值由“本日汇总”、“本月汇总”、“日出承转”、“月初承转”和“年初承转”行为生成。
3.2.9 统计查询报表
序号 |
属性名 |
属性类型 |
长度 |
备注 |
1 |
月份 |
int |
2 |
用于表示月份 |
2 |
币种代码 |
int |
2 |
币种代码 |
3 |
活期户数 |
decimal |
9 |
本月份本行内所有活期存款户数 |
4 |
活期新开户数 |
decimal |
9 |
本月份本行内所有活期新开户数 |
5 |
活期清户数 |
decimal |
9 |
本月份本行内所有活期清户数 |
6 |
活期存款额 |
money |
12.2 |
本月份本行内所有活期存款额 |
7 |
活期取款额 |
money |
12.2 |
本月份本行内所有活期取款额 |
8 |
支付活期利息 |
money |
12.2 |
本月份本行内所有活期支付利息额 |
9 |
定期户数 |
decimal |
9 |
本月份本行内所有活期存款户数 |
10 |
定期新开户数 |
decimal |
9 |
本月份本行内所有活期新开户数 |
11 |
定期清户数 |
decimal |
9 |
本月份本行内所有活期清户数 |
12 |
定期存款额 |
money |
12.2 |
本月份本行内所有活期存款额 |
13 |
定期取款额 |
money |
12.2 |
本月份本行内所有活期取款额 |
14 |
支付定期利息 |
money |
12.2 |
本月份本行内所有活期支付利息额 |
本表说明如下:
² 本表用于存储本行内综合业务统计数据;
² 本表在每月月底是由月汇总总程序得来,在每年年底时打印出来,并清空次表;
² 本表由“月底汇总”行为更新。
3.2.10外部消费与结算帐户表
序号 |
属性名 |
属性类型 |
长度 |
备注 |
1 |
卡号 |
varchar |
15 |
用于唯一标识卡的持有者 |
2 |
消费者姓名 |
char |
10 |
|
3 |
密码 |
char |
6 |
|
4 |
身份证号 |
varchar |
20 |
|
5 |
发卡时间 |
datetime |
8 |
|
6 |
到期时间 |
datetime |
8 |
当前消费者的消费总额 |
7 |
身份验证类别 |
char |
10 |
需要验证的证件类别 |
8 |
挂失否 |
char |
10 |
用于表示该存折是否挂失 |
本表说明如下:
² 本表用于存储所有外部消费者账户的信息
3.2.11外部消费与结算业务凭证表
序号 |
属性名 |
属性类型 |
长度 |
备注 |
1 |
卡号 |
varchar |
15 |
用于唯一标识所有卡信息 |
2 |
姓名 |
char |
10 |
|
3 |
月份 |
int |
2 |
用于表示月份 |
2 |
发生比数 |
int |
4 |
用于表示本月内的发生笔数 |
2 |
发生额 |
money |
12.2 |
用于表示本月外部消费者的消费额 |
3 |
结算时间 |
datetime |
8 |
用于表示本月外部消费结算的时间 |
4 |
操作员代码 |
int |
2 |
经手人——前台操作员 |
5 |
出纳员 |
int |
2 |
经手人——出纳员 |
本表说明如下:
² 本表用于所有外部消费者交付消费款的业务凭证;
² “日初承转”时将日表中的记录转到月表中,并将日表清空;在“月初承转”时将月表中的记录转到年表中,并将月表清空。年底时将年表备份,并在“年初承转”时将年表清空。
3.2.12外部消费帐明细表
序号 |
属性名 |
属性类型 |
长度 |
备注 |
1 |
卡号 |
varchar |
15 |
用于唯一标识所有卡信息 |
2 |
月份 |
int |
2 |
用于表示月份 |
3 |
消费品种 |
char |
10 |
用于表示消费物品名称 |
4 |
消费额 |
money |
12.2 |
用于表示消费品的价格 |
5 |
消费地点 |
char |
10 |
用于表示不同的消费场所 |
6 |
消费时间 |
datetime |
8 |
用于表示消费的时间 |
本表说明如下:
² 本表用于记录消费者在某月的具体消费情况
4.1功能模块图(略)
4.2功能概要设计
银行储蓄软件的定期储蓄和外部消费与结算模拟是我负责的主要的部分,上述的几大模块是全部设计完毕的模块部分,模块设计是系统设计中非常重要的一部分,是编码的前提和基础,下面就上面所描画的功能模块图,我将具体、细致的介绍一下:
1)初始界面模块图:
这一个模块图主要描述了软件的整体设计。由初始窗体界面进入登录窗体界面,在登录窗体界面中,选择你的身份(操作员或系统管理员),输入代码和密码,确认后就可进入主界面窗体。如果你是新的成员,无论你是操作员还是系统管理员,都可以在此窗体界面上点击注册向导,在注册界面输入所要求的项,确定后你就可以进入主界面。
在主界面中包含上述模块图的几部分,根据身份,即是操作员还是系统管理员,对应权限不同。
1)系统设置模块图:
这一模块图主要用于系统人员的自我设置,包括密码修改和退出。
密码修改主要针对操作员和系统管理员,如果想修改自己的密码,在
这儿就可实现。退出是用于退出本系统所用。
2)系统管理模块图:
这一模块图主要用于完成银行内部阶段性的统计业务。
日汇总:日汇总业务是银行每天必须的工作,主要完成本日的业务汇总工作。基表是日业务凭证表,由此表出发得到操作员代码表、币种代码表、类别代码表、存取标志代码表的本日数。
并把上述表中的昨日数加上本日数得到本月数。
日承转:日承转是用于第二天早上业务的承转,发生在新的一天工作的开始。主要完成日业务凭证表向月业务凭证表得承转,并把日业务凭证表清空;再就是完成操作员代码表、币种代码表、类别代码表、存取标志代码表个表中的本月数向昨日数的承转。
月汇总:月汇总业务是银行每月月底必须的工作,主要完成本月的业务汇总业务。基表是月业务凭证表,由此表的得到综合查询表中的要求的综合信息。再就是完成操作员代码表、币种代码表、类别代码表、存取标志代码表中本年数的统计,即由上月数加本月数得到。
月承转:月承转是用于每月月初的工作。主要完成月业务凭证表向年业务凭证表得承转,并把月业务凭证表清空;再就是完成上述各表的本年数向上月数的承转。
年承转:年承转是用于每年年初的工作。主要完成年业务凭证表的清空,以及上述各表的本年数向上年数得承转。
数据备份和恢复:此部分对于数据库设计而言是至关重要的,再次模块中就可实现数据的备份和恢复。
3)定期储蓄:
定期储蓄是银行重要的业务之一,主要包括:
定期存款、定期取款,其中定期存款又包括整存整取、零存整取、整存零取、存本取息、定活两便,定期取款包括提前支取、到期支取、过期支取。根据银行的存取款的凭条,添入相应的各项,操作员进行操作就可实现此业务,并打印出凭条。
挂失及解挂:您的存折(单)丢失,为了您的资金安全,您要立即到原储蓄存款网点办理挂失。存折(单)挂失时,您要提供身份证件,填写“挂失申请书”,并提供存款相关情况。银行经办人员根据您提供的资料,经查询存款确未被支取、未冻结止付,即可受理挂失申请,挂失生效。 解挂手续同上。
密码查询:主要用于用户忘记密码时用,用户必须提供身份验证类别和相应的身份证件号,这一部分工作由系统管理员来完成。
密码修改:主要用于用户修改密码所用,用户也必须提供身份验证类别和相应的身份证号,这一部分工作由操作员来完成。
定期转存:主要用于每天到期的整存整取定期存款的转存工作。这一部分在相应的模块中有很好的体现,您只需要按确定按钮,就可完成上述工作。这工作也由系统管理员来完成。
4)外部消费与结算:
信用卡开户、信用卡销户:主要用于用户在银行办理信用卡和在不用信用卡时办理销户手续。
消费结算、帐单打印:主要用于消费者在一定时期(以月为单位)的外部消费结算和消费明细的清单打印。
密码查询:主要用于用户忘记密码时用,用户必须提供身份验证类别和相应的身份证件号,这一部分工作由系统管理员来完成。
密码修改:主要用于用户修改密码所用,用户也必须提供身份验证类别和相应的身份证号,这一部分工作由操作员来完成。
挂失及解挂:信用卡丢失,要立即到原储蓄存款网点办理挂失。要提供身份证件,填写“挂失申请书”。银行经办人员根据您提供的资料,即可受理挂失申请,挂失生效。 解挂手续同上。
5)初始化系统:
主要实现软件正式运行前银行业务原有信息的处理,包括操作员代码表、储蓄币种代码表、储蓄类别代码表、活期账户表、定期账户表、节假日代码表、存取标志代码表、综合业务统计表的添加、更新、删除、关闭。
6)查询和报表:
这一部分主要实现查询信息和报表打印。
查询:
操作员查询:可以根据操作员代码或者姓名的关键字来进行查询你所需要的信息。
储蓄币种查询:可以根据币种代码或者名称的关键字来进行查询你所需要的信息。
储蓄类别查询:可以根据类别代码和名称的关键字来进行查询你所需要的信息。
存取标志查询:可以根据代码和名称的关键字来进行查询你所需要的信息。
综合查询:查询每个月的综合信息,根据月份的关键字来查询。
报表:主要打印日业务凭证表、月业务凭证表、年业务凭证表和综合信息表。
7)工具模块:
在工具模块里,可以用计算器来计算您想计算的数据,得到想要的结果。
8)帮助:
在帮助文件的内容中提供了各个模块的作用以及使用方法;在关于本软件的介绍中说明软件完成的地点和时间等内容。
结束语
转眼间三个月的毕业设计快结束了,我的体会很多,这次毕业设计是对我的大学四年学习的总结,使我的专业知识和实际应用的紧密结合起来。通过这次毕业设计使我对数据库理论有了较深刻的认识,并且对软件工程方面的设计理论和开发过程的也有了深刻的了解,在这一阶段的学习中,我基本上掌握了Visual Basic 6.0和SQL SERVER 7.0的基本操作和编程方法。
在毕业设计过程中,对整个系统的设计特别是行为特性设计有很多的心得,行为特性设计阶段对整个程序设计很重要,由于刚开始时对行为特性设计的理解不够,至使到后来具体编程时出现问题,只能再重新进行设计,而程序也得进行修改,所以在今后的软件设计中我一定要把需求分析和行为特性设计做好,防止事倍功半。另外在开发的过程中,由于对SQL Server 7.0掌握的不够,所以在整个的软件开发的过程很多问题,到最后的调试阶段也费力不少。
毕业设计的过程涉及大学四年的基础课和专业课的很多的理论知识,但是在实际应用方面涉及很少,而毕业设计是需要把这些知识贯通起来,综合运用,所以通过这次设计我的认识问题、分析问题、解决问题的能力都有了很大的提高。同时自己在动手能力上也有了很大的进步。
致谢
在这次毕业设计中,首先,非常感谢我的毕业设计的指导老师夏秀峰对我的精心指导,在本次毕业设计中,夏老师无论在理论上还是在实践中,都给予我很大的帮助,使我得到不少的提高,这对于我以后的工作和学习都有很大的帮助。另外,此次毕业设计论文撰写过程中,也得到了夏老师的大力帮助,无论从资料上还是从技术上,夏老师都给予极大的支持,并提供了许多宝贵的建议,也给予我极大的启示;从正式开始毕业设计起到现在论文的完成,夏老师随时关心我们的进度。我表示诚心的感谢!夏老师那种认真负责的工作态度,严谨的治学精神和深厚的理论水平也使我收益匪浅,这在我以后的工作中会有很大的帮助,再次感谢夏老师﹗
其次,感谢系里领导和老师为我的毕业设计提供良好的环境。在这里尤其感谢实验室的各位老师,每天不辞辛劳的为我们服务,衷心的感谢。
同时,也衷心的感谢我的合作伙伴臧洁同学,在毕设过程中所给予的帮助;当然也感谢在次期间给我帮助的同学和朋友以及其他老师。
再次感谢以上的各位老师及同学。
参考文献
(1) 殷华蓓 《 Visual Basic 6.0 入门与开发实例 》
电子科大出版社 1997
(2) 赖阿福 《 Visual Basic 6.0 编程经验与技巧 》
青岛出版社 1999
(3) 段 兴 《 Visual Basic 6.0 实用程序100例 》
人民邮电出版社 2002
(4) 王全兴 《 精通 MS SQL Server 7.0 》
电子工业出版社 1999
(5) 于松涛 《 精通 SQL Server 2000 数据库管理与开发 》
人民邮电出版社 2001
(6) 艾洪德 《 货币银行学教程 》
东财出版社 1991
(7) 张义和 《 商业银行义务与经营 》
西南财经出版社 1995
(8) 宋逢明 《 现代商业银行管理 》
清华大学出版社 1996
(9)《西方经济学》
清华大学出版社 1999
1)时按实存金额和实际存期计算利息。存本取息定期储蓄存款:本金一次存入,一般5000元起存,存期分为一年、三年、五年,由储蓄机构发给存款凭证,到期一次支取本金,利息凭存单分期支取,可以一个月或几个月取息一次,由储蓄与储蓄机构协商确定。如果储户需要提前支取本金,这要按定期存款提前支取的规定计算存期内利息,并扣回多支付的利息。整存零取定期储蓄存款:本金一次存入,一般1000元起存,存期分一年、三年、五年,由储蓄机构发给存单,凭存单分期支取本金,支取期分一个月、三个月、半年一次,由储户与储蓄机构协商确定,利息于期满结清时支取。定活两便储蓄存款:本金一次存入,由储蓄机构发给存单,一般50元起存,存期不限,存期不满三个月的,按天数计付活期利息,存期在三个月以上(含三个月)不满半年的,整个存期按支取日定期整存整取三个月存款利率打六折计息,存期半年以上(含半年)不满一年的,整个存期按支取日定期整存整取半年期存款利率打六折计息,存期在一年以上(含一年),不论存期多长,整个存期一律按支取日整存整取一年期定期存款利率打六折计息。
2)外部消费与结算模拟,此功能是对信用卡业务的模拟,现在信用卡正渐渐被中国的消费者所接受,此功能是通过软件对其进行模拟,主要包括帐单的打印,结算等功能。
3)假日规则管理,主要作用是节假日银行休息时,储户在节假日到期的定期存款可在节假日前几天提取,而不视为提前支取行为。
4)阶段业务处理:主要实现银行阶段业务综合信息的处理。包括日汇总、月汇总、日承转、月承转、年承转等。
5)综合查询统计报表,主要实现对各种数据的查询、统计以及报表的打印。
1.3系统设计目标
1) 项目内容要求的储蓄类别管理及储蓄币种类别管理、初始化数据库、定期储蓄、外部消费与结算模拟、阶段业务处理和综合查询报表等。
2)用户界面友好、性能稳定,软件具有较好的鲁棒性。充分考虑备份、存档等系统维护策略。
3)优化数据的逻辑模型设计和物理模型设计,以便提高运行速度、降低存储空间,且能满足数据一致性要求。充分考虑行为的合理划分,提高软件使用的便利性。
第2章 方案论证
2.1总体设计思想
银行储蓄软件设计涉及的专业知识很多,要想开发出一个具有一定使用价值的通用储蓄软件,必须深入了解通用的银行储蓄业务,针对这一特点,我们进行了大量的考察,在这个过程中我们遇到了很多困难,因为银行系统是一个非常保密的系统,不会轻易对外部人员透漏内部业务,这就给我们早期的需求分析造成了很大的困难,但我们通过大量的途径,对此做了合理的需求分析并在此基础上制定了合理的方案。现叙述如下:
需求分析是一个数据库设计至关重要的阶段,也是一个工程成败的关键,在这一阶段里我们通过各种途径了解到了银行的一些规定。
1)基本概念:
1年=12个月,1月=30天
活期利息每年结算一次,以6月30日为准,次日(7月1日)转为本金。
活期清户的利息计算遵循“年对年、月对月、最后再算天”的原则。
利息积数:存款额乘以存款天数,其中存款天数为本日至本年度(次年度)6月30日的天数。
利息积数有正负之分。
活期利率按取款日计算,定期利率按存款日计算
活期存取款不算利息,只算利息积数,只在每年的6月30号和清户时计算;定期存款立即算出利息。
提前支取:按支取日挂牌公告的活期储蓄存款利率计付利息。部分提前支取的,提前支取的部分按支取日挂牌公告的活期储蓄存款利率计付利息,其余部分到期时按开户日挂牌公告的整存整取定期储蓄存款利率计付利息,部分提前支取以一次为限。
到期支取:按开户日挂牌公告的整存整取定期储蓄存款利率计付利息。
过期支取:自到期日起按存单的原定存期自动转期。在自动转期后,存单再存满一个存期(按存单的原定存期),到期时按原存单到期日挂牌公告的整存整取定期储蓄存款利率计付利息;如果未再存满一个存期支取存款,此时将按支取日挂牌公告的活期储蓄存款利率计付利息。
定期储蓄存款在存期内如遇利率调整,仍按存单开户日挂牌公告的相应的定期储蓄存款利率计算利息。
2)具体利息计算方法
计算活期储蓄利息:每年结息一次,7月1日利息并入本金起息。未到结息日前清户者,按支取日挂牌公告的活期储蓄存款利率计付利息,利息算到结清前一天止。
计算零存整取的储蓄利息 到期时以实存金额按开户日挂牌公告的零存整取定期储蓄存款利率计付利息。逾期支取时其逾期部分按支取日挂牌公告的活期储蓄存款利率计付利息。零存整取定期储蓄计息方法有几种,一般家庭宜采用"月积数计息"方法。其公式是: 利息=月存金额×累计月积数×月利率其中:累计月积数=(存入次数+1)÷2×存入次数。
计算存本取息的储蓄利息储户于开户的次月起每月凭存折取息一次,以开户日为每月取息日。储户如有急需可向开户银行办理提前支取本金(不办理部分提前支取),按支取日挂牌公告的活期储蓄存款利率计付利息,并扣回每月已支取的利息。逾期支取时其逾期部分按支取日挂牌公告的活期储蓄存款利率计付利息。
计算定、活两便的储蓄利率:定活两便储蓄具有定期或活期储蓄的双重性质。存期三个月以内的按活期计算,三个月以上的,按同档次整存整取定期存款利率的六折计算。存期在一年以上(含一年),无论存期多长,整个存期一律按支取日定期整存整取一年期存款利率打六折计息。其公式:利息=本金×存期×利率×60%因定活两便储蓄不固定存期,支取时极有可能出现零头天数,出现这种情况,适用于日利率来计算利息。
基于以上两点介绍和题目的基本要求,现分析如下(数据库的表的内容在第三章阐述):
初始化操作:主要实现软件正式运行前银行业务原有信息的处理,包括操作员代码表、储蓄币种代码表、储蓄类别代码表、活期账户表、定期账户表、节假日代码表、存取标志代码表、综合业务统计表的初始化。为了实现外部消费模拟我又加了一个消费品的录入。
定期储蓄:主要实现银行的正常的定期储蓄业务。包括定期存款、定期取款、定期销户、挂失及解挂、密码修改、密码查询。其中定期存款包括:整存整取、零存整取、整存零取、存本取息、定活两便;定期取款包括:提前支取、到期支取、过期支取。
外部消费与结算业务模拟:主要实现对银行外部消费业务的模拟。包括信用卡开户、信用卡销户、消费结算、帐单打印、挂失及解挂、密码修改、密码查询。
阶段业务处理:主要实现业务汇总和承转业务。包括日汇总、月汇总、日承转、月承转、年承转。
查询与报表:主要实现查询业务和报表业务,用于方便银行的综合业务查询以及报表的管理。包括综合查询,这儿可以查询操作员代码表、储蓄币种代码表、储蓄类别代码表、存取标志代码表、综合业务统计表。报表包括日业务凭证表、月业务凭证表、年业务凭证表和综合查询报表。
除上述的主要功能外,自然还包括数据备份与恢复,计算器、帮助文件和关于本软件的介绍等数据库必不可少的部分。
以上是关于毕业设计的总体的设计思路,有些详细的部分会在以后阐述。
2.2 E-R图及分析
用E-R图来标识实体间联系是非常直观的。下图充分体现了本系统所涉及的实体间的联系,操作员(这里包括系统管理员)管理定期账户,包括定期账户的存、取款以及查询密码等等业务;又通过定期账户存储币种,来间接的管理币种;操作员对外部消费与结算帐户进行管理,包括外部消费与结算帐户的开户与销户业务以及查询密码等业务;又通过结算业务对外部消费与结算进行结算,主要包括外部消费的帐单打印,消费结算等业务。此E-R图仅是本系统重要实体之间联系的一个简单描述,我将在以后各章里对本系统进行更具体的描述,通过对本文的阅读您会对本系统有更进一步的了解。
操作员 (代码、姓名、性别、出生年月、年龄、密码、上岗时间……)
定期帐户(存折号、储户姓名、密码、身份证号……)
货币币种(币种代码、币种名称、兑换比率、调整时间……)
外部消费与结算帐户(卡号、姓名、密码、身份证号……)
消费明细(卡号、月份、消费品种、消费额、消费地点、消费时间)
2.3系统设计工具
本次毕业设计我前台采用Visual Basic 6.0,后台采用MS SQL Server 7.0,操作系统采用Windows 98。
Visual Basic 6.0是Microsoft推出的功能强大的集应用程序开发、测试、查错等功能于一体的集成式开发环境。使用Visual Basic 可以开发数据库、财务软件以及Internet构件等各种应用程序。Visual Basic 易学易用,对于初学者而言是一种非常好的编程语言。
MS SQL Server 7.0是微软公司最新的企业级的网络关系型数据库产品,它是在由MS SQL Server 6.5建立的坚固基础之上产生的。客户的需求极大的推动了该产的革新,MS SQL Server 7.0在易用性、可缩放性和可靠性,以及数据仓库等诸多方面有了很大的增强。这使得MS SQL Server 7.0在很多数据库产品发展最快的应用领域(如电子商务、移动计算、分支自动化、商业级应用和数据交换中心等)中成为领先者。
2.4经济技术分析
操作员
假如没有银行储蓄软件,那么银行在进行正常的业务,例如活期储蓄、定期储蓄外部消费与结算及阶段性的承转和汇总等业务时就会需要手工来完成。在银行规模不是很大的情况下,银行用来完成正常业务的人员至少10名,假如每个员工年薪2万元,那么一年就要赋给员工共20万元。
并且如果没有本系统的话,所有的业务都需要手工来完成,就定期储蓄而言,开户时的用户信息、货币信息、存取款信息的记录、存档等工作都需要手工完成,不仅工作量大,而且容易出错。因为银行系统涉及的东西很多,而且最重要的是涉及到钱的问题,如果出什么错,那么直接造成的经济损失将是无法估量的。并且用来保存用户存取款、货币等信息的纸张将会不计其数,我在这做一个大体的估量,假如每天用纸的数量是5000张,,每张纸的价钱是4分,那么一天就需要200块钱,一年在此上花费的资金就会是7万左右,而这个只是一个大体的例子,实际的情况决不止如此。
现在再比较一下应用此管理软件的情况。在系统开发上,一台电脑的费用是5000元左右,操作系统是Windows 98、后台数据库采用SQL Server
7.0、前端采用Visual Basic 6.0其软件费用大概50000元左右。开发人员3名,开发本软件最多3个月,每个人每个月,假如花费是3000元,3个人3个月花费2.7万。开发费用合计大概是8.2万元左右。
若银行采用此管理系统,首先在人员上可以节省到5名,这样每年就会节省10万元,这样光是人员方面节约的费用就可以用来开发一个很好的应用软件。所以如果应用此软件,不仅节约很多钱财,而且减少用纸量,对于环境保护也有很到的好处。
在管理方面,银行管理系统软件为银行提供了丰富的辅助决策功能,为银行今后的发展奠定了基础,实现了银行管理的计算机化,尽量达到无纸化办公的目的。不仅如此,银行管理系统为系统本身提供了很高的保密性,直接提高了银行的保密措施。
使用本管理软件是银行发展的必然趋势,无形的效益从使用本软件中产生。
第3章 结构特性设计
3.1结构设计
这一部分主要向大家介绍系统后台数据库中的表,后台数据库采用 SQL Server 7.0。下面做简要的介绍。
本系统主要涉及到的数据库中的表有:
操作员代码表:主要记载操作员的自然信息和综合业务信息。
系统管理员表:主要记载系统管理员的自然信息。
储蓄币种代码表:主要记载不同币种的自然信息和综合信息。
储蓄类别代码表:主要记载不同类别的自然信息和综合业务信息。类别有活期储蓄、定期的整存整取、零存整取、存本取息、整存零取、定活两便。
定期账户表:主要记载所有定期用户信息。
外部消费与结算帐户表:主要记载信用卡用户信息。
外部消费与结算销户表:主要记载信用卡销户信息。
外部消费与结算帐单表:主要记载某月消费者的消费明细。
l 定期业务凭证表:主要记载定期储蓄每天的业务情况和所有记录。
l 外部消费与结算业务凭证表:主要记载此项业务每天的结算记录。
l 节假日代码表:主要记载节假日的开始时间、结束时间、提前时间。主要用于银行内部定期的提前支取的时间规定。
l 存取标志代码表:主要记载活期开户、活期续存、活期取款、活期消户、定期存款、定期取款的业务情况。
l 综合查询报表:记录银行每月的活期和定期的综合业务情况。
3.2数据库设计
3.2.1操作员代码表
序号 |
属性名 |
属性类型 |
长度 |
备注 |
1 |
操作员代码 |
int |
2 |
用于唯一标识本行内的所有业务人员 |
2 |
姓名 |
char |
10 |
用于表示业务人员的姓名 |
3 |
性别 |
char |
10 |
用于表示业务人员的性别 |
4 |
出生年月 |
datetime |
8 |
用于表示业务人员的出生年月 |
5 |
年龄 |
int |
2 |
用于表示业务人员的年龄 |
6 |
密码 |
char |
6 |
用于表示业务人员的密码 |
7 |
上岗时间 |
datetime |
8 |
用于表示业务人员的上岗时间 |
8 |
币种名称 |
char |
10 |
用于表示本人的操作币种 |
9 |
上年业务量 |
numeric |
9 |
用于表示本人去年累计业务笔数 |
10 |
上年存款额 |
money |
12.2 |
用于表示本人去年累计存款数额 |
11 |
上年取款额 |
money |
12.2 |
用于表示本人去年累计取款数额 |
12 |
上月业务量 |
numeric |
9 |
用于表示本人年初至上月累计业务笔数 |
13 |
上月存款额 |
money |
12.2 |
用于表示本人年初至上月累计存款数额 |
14 |
上月取款额 |
money |
12.2 |
用于表示本人年初至上月累计取款数额 |
15 |
昨日业务量 |
numeric |
9 |
用于表示本人月初至昨日累计业务笔数 |
16 |
昨日存款额 |
money |
12.2 |
用于表示本人月初至昨日累计存款数额 |
17 |
昨日取款额 |
money |
12.2 |
用于表示本人月初至昨日累计取款数额 |
18 |
本日业务量 |
numeric |
9 |
用于表示本人本日业务笔数 |
19 |
本日存款额 |
money |
12.2 |
用于表示本人本日存款数额 |
20 |
本日取款额 |
money |
12.2 |
用于表示本人本日取款数额 |
21 |
本月业务量 |
numeric |
9 |
用于表示本人月初至本月累计业务笔数 |
22 |
本月存款额 |
money |
12.2 |
用于表示本人月初至本月累计存款数额 |
23 |
本月取款额 |
money |
12.2 |
用于表示本人月初至本月累计取款数额 |
24 |
本年业务量 |
numeric |
9 |
用于表示本人年初至本月累计业务笔数 |
25 |
本年存款额 |
money |
12.2 |
用于表示本人年初至本月累计存款数额 |
26 |
本年取款额 |
money |
12.2 |
用于表示本人年初至本月累计取款数额 |