数据库课设—银行储蓄业务管理系统

目录

第1章系统分析... 1

1.1       项目背景... 1

1.2       需求分析... 1

第2章系统设计... 2

2.1       系统功能设计... 2

2.1.1   功能描述... 2

2.1.2   功能模块图... 3

2.2       数据库设计... 4

2.2.1   数据库概念结构设计... 4

2.2.2   数据库逻辑结构设计... 4

2.2.3   数据库物理结构设计... 7

2.2.4   索引的创建... 7

2.2.5   数据库视图设计... 7

2.2.6   函数设计... 8

2.2.7   存储过程设计... 8

2.2.8   触发器设计... 9

2.2.9   事件设计... 9

第3章系统实现... 10

3.1       开发环境... 10

3.2       数据库访问设计... 10

3.2.1  Qt操作mysql 10

3.3       登录模块设计... 11

3.4       系统主界面... 13

3.5       银行储蓄业务管理功能模块设计    14

3.5.1   客户信息管理... 14

3.5.2   交易模块... 14

3.5.3   账户管理... 15

3.5.4   贷款业务... 16

3.5.5   等级和优惠管理... 18

3.5.6   工作员管理... 19

第4章系统测试... 20

4.1       概述... 20

4.2       测试... 20

4.2.1   登录与注册测试... 20

4.2.2   客户信息管理... 21

4.2.3   账户管理... 21

4.2.4   交易模块... 22

4.2.5   贷款业务... 22

4.2.6   等级和优惠管理... 23

4.2.7   工作员管理... 23

第5章遇到的问题及分析... 24

5.1       程序无响应... 24

5.2       设置事件未按预期执行... 24

  1. 系统分析
    1. 项目背景

随着社会经济的发展和人民生活水平的提高,银行成为了人们日常生活中不可或缺的一部分。传统的银行业务管理方式已经逐渐无法满足人们对银行服务高效、便捷的需求。因此,银行需要引入信息化技术来改善业务管理和客户服务。

在传统的银行业务管理方式中,往往采用手工操作或简单的电子表格等工具进行管理。这种方式存在信息孤岛、业务流程不规范和数据管理效率低下等问题。不同业务部门之间的信息无法实现共享和互通,导致信息孤岛和信息冗余。由于缺乏标准化的业务管理流程,业务操作容易出现错误和漏洞,增加了银行的风险和成本。同时,数据存储分散、管理混乱,查询和统计数据的效率较低,影响了业务决策的效果。

为了解决这些问题,银行储蓄业务管理系统应运而生。该系统通过建立统一的数据管理平台,实现了资金账户管理、存款业务管理、贷款业务管理、资金运营管理、等级管理等功能。通过自动化和规范化的业务流程,可以提高工作效率和准确性。数据共享和业务流程优化可以降低银行的运营成本和管理成本。同时,增强客户信息管理和风险管理可以提升银行的服务质量和客户满意度。此外,内部控制和风险管理也能加强银行的合规管理和风险防范能力。

    1. 需求分析

该系统的用户分类:

客户:注册,登录,修改密码,修改基本信息,开户,存取款,贷款,销户;

工作员:注册,登录,个人服务信息查询,冻结账户管理,办理开户,办理销户,办理贷款。

超管:注册,登录,工作员管理(信息查看修改维护,入职审批),贷款产品管理(增加产品,修改产品等),等级管理(等级信息查看,以及设置相关的额度)

银行储蓄业务管理系统是银行业务运作的关键系统,旨在提供全面的业务管理和客户服务解决方案。其主要业务需求包括客户信息管理、账户管理、交易管理、等级管理与优惠。

首先,系统应能够记录客户的基本信息,并提供快速查询和修改功能,以便银行工作人员能够更好地了解客户需求,提供个性化的服务。

其次,系统支持各类储蓄账户的开户、销户、修改账户信息等操作,并实时更新账户交易信息,以满足客户不同的金融需求。

交易管理方面,系统记录客户的存款、取款、转账等各种交易信息,并确保账户信息的准确性和及时性。

此外,系统支持等级管理,包括等级信息录入、查询和修改,并根据等级提供相应的优惠服务,如贷款利率优惠、费用减免、存款利息的提升等。通过这些功能的整合和优化,银行可以提高业务管理效率,提升客户服务水平,进而增强竞争力,实现可持续发展。

  1.  系统设计
    1. 系统功能设计
      1. 功能描述
  • 客户信息管理:记录客户的个人基本信息,包括姓名、身份证号、联系方式等,以便银行工作人员进行管理和查询。账户管理:支持各类储蓄账户的开户、销户、修改账户信息等操作,包括定期存款账户、活期存款账户等。
  • 交易管理:记录客户的存款、取款、转账等各种交易信息,并实时更新账户余额,确保账户信息的准确性和及时性。
  • 客户等级管理:客户等级管理,包括客户级别信息录入、查询、修改,根据客户级别等级提供相应的优惠服务,如贷款利率优惠、费用减免等。
  • 交易处理:处理客户的各类交易请求,包括存款、取款、转账等,提高交易效率,减少错误发生的可能性。
  • 系统设置与管理:管理员分为不同的级别,拥有不同的权限,例如一部分管理员(工作员),可以办理开户销户,办理贷款,冻结账户解冻等,另一类管理员(超管)可以对系统进行设置和管理,包括入职申请审批,贷款产品管理,工作员管理等,并设置其操作权限。
  • 密码修改:该系统使用者可以对自己的密码进行修改,确保账户安全。
      1. 功能模块图

图 2.1.1系统功能模块图

    1. 数据库设计
      1. 数据库概念结构设计

图 2.2.1E-R图

      1.  数据库逻辑结构设计

客户信息表,包括身份证号、姓名、性别、电话号码、密码、等级、创建日期。具体如下表 2.2.1。

2.2.1客户信息表

字段名

数据类型

主键

描述

cid

Int

身份证号

Cname

Csex

Ctelnnumber

Cpassword

Clevel

createdate

Char

Varchar

Char

Char

Smallint

date

姓名

性别

电话号码

密码

等级

注册日期

等级制度表,包括级别、贷款利率优惠率、单次取款上限、存款利率增加率。等级由资产换算,万,十万,百万,千万,亿。具体如下表 2.2.2。

2.2.2等级制度表

字段名

数据类型

主键

描述

Leveltype

Int

等级

Loanrate

Takelimit

despositrate

Decimal

Int

decimal

贷款优惠率

取款额度存款利率提升率

管理员信息表,包含账号、密码、姓名、类型、状态、地址。具体如下表 2.2.3。

2.2.3管理员信息表

字段名

数据类型

主键

描述

mnumber

mpassword

mname

mtype

mstatus

madress

char

varchar

varchar

varchar

varchar

varchar

账号

密码

姓名

种类

状态

地址

贷款产品表,包含产品名、贷款利率、贷款金额、状态、增率规则。具体如下表 2.2.4。

2.2.4贷款产品表

字段名

数据类型

主键

描述

pname

prate

pnum

pstatus

rule

varchar

deceimal

int

varchar

decimal(4,3)

产品名称

基础利率

金额

状态

增率规则

服务信息表,包含管理员账号、身份证号、服务时间、服务记录。具体如下表 2.2.5。

2.2.5服务信息表

字段名

数据类型

主键

描述

mnumber

anumber

stime

srecord

char

char

timestamp

varchar

工作员账号

服务账号

服务时间

服务信息记录

账户表,包含卡号、身份证号、密码、余额、账户类型、开户时间、账户状态。具体如下表 2.2.6。

2.2.6账户表

字段名

数据类型

主键

描述

anumber

cid

apassword

balance

atype

createdate

astatus

char

char

varchar

decimal

varchar

date

varchar

卡号

身份证号

密码

余额

类型

开户日期

状态

交易信息表,包含交易编号、身份证号、卡号、时间、金额、类型、交易后余额、交易方。具体如下表 2.2.7。

2.2.7交易信息表

字段名

数据类型

主键

描述

tnumer

cid

anumber

ttime

num

type

tbalance

traner

int

char

char

timestamp

decimal

varchar

decimal

varchar

交易编号

身份证号

卡号

交易时间

交易金额

交易类型

交易后余额

交易对方

借贷表,包含卡号、贷款产品名、贷款开始时间、期限(月)、状态、贷款金额。具体如下表 2.2.8。

2.2.8借贷表

字段名

数据类型

主键

描述

anumber

pname

begintime

timelimit

lstatus

lnum

char

varchar

date

int

varchar

decimal

卡号

贷款产品名称

办理时间

还贷截止时间

状态

金额

还贷表,包含卡号、贷款产品名、还贷日期、状态、还款数额。该表存放的是若干条还款记录,通过更改状态开始还款和逾期等。具体如下表 2.2.9。

2.2.9还贷表

字段名

数据类型

主键

描述

anumber

pname

rtime

rnum

rstatus

char

varchar

date

decimal

varchar

卡号

贷款产品名称

还贷日期

应还金额

状态

      1. 数据库物理结构设计

存储位置默认放到C盘,存储路径如图 2.2.2

2.2.2数据库储路径

      1. 索引的创建
  1. 各个表主码在建表时定义为主码,自动建立了索引,所以无需再建立
  2. 为交易表的交易时间创建索引(Index_tran_time)
  3. 为交易信息表的交易类型创建辅助索引(Index_tran_type)
  4. 为管理员(工作员)的状态建立索引(index_man_status)
      1.  数据库视图设计
        1. 客户信息管理
  1. 客户基本信息视图cusinfo(cid,cname,csex,ctelnumber,clevel,createdate)
  2. 客户持有账户视图(cus_accounts)
        1. 贷款管理
      1. 正常贷款产品的视图loanproducts_on
      2. 客户逾期贷款视图repay_late(cid,anumber,rtime,rstatus)
      3. 客户还清贷款视图repay_payoff
      4. 客户持有的可贷款(信用卡,以及账号状态正常)的账户视图loan_able_account(cid,anumber)
      5. 客户持有账户的贷款情况的视图(cus_loans_view)
        1. 工作员管理
      1. 工作员服务信息视图service_info(mnumber,cname,anumber, srecord,stime)
      2. 离职,休假,在职,入职申请中的员工视图员工视图(man_out,man_res,man_on,man_apply)
      3. 工作员的账号,姓名的视图(不包含超管)mnumber_name(mnuber,mname)
      1.  函数设计

为了方便计算客户总资产,资金流水等,定义了几个函数,具体定义如下表 2.2.10。

2.2.10函数

函数名

参数

功能

Search_exist

查询用户自定义的账户号码是否已经存在

calculate_total_property

(incid varchar(18))

计算客户总资产

Sum_out

(months int, lastdate timestamp ,anumber char(9))

计算客户某一账户近期流出资金总额

Sum_in

(months date,lastdate timestamp,anumber char(9))

计算客户某一账户近期流入资金总额

Calculate_level

calculate_point

(incid char(18))

(incid char(18))

计算客户等级的函数

评估某客户的积分用于计算客户贷款额度

积分评估说明:根据客户以往还款情况,以及总资产计算,资产每一万加8积分,还清一次积分加1,逾期一次积分减5(不够减则积分为0))

      1.  存储过程设计
        1. 登录注册管理
  1. 客户注册signin(in incid char(18),in incname varchar(20),in incsex char(2),in inctelnumber char(11),in incpassword varchar(12),out result varchar(50))
  2. 管理员注册worker_sign(:mnum,:mname,:madr,:mpsd,@result)
  3. 登录 login(in incid,in incpassword,in t char(10),out result varchar(50))
        1. 客户信息管理
  1. 查询某用户的基本信息 search_info(in incid varchar(18))
        1. 账户管理
      1. 开户 Create_account(in inanumber char(9),in incid char(18),apassword varchar(12),in inbalance decimal(18,2),in atype varchar(8),out result varchar(50))
      2. 销户delete_account(in anumber char(9),in cid char(18),out result varchar(50))
      3. 结算存款利息calculate_interest()
      4. 销户delete_account(in anumber char(9),in cid char(18),out result varchar(50))
      5. 修改银行卡密码 changepsd(in inanumber char(9),in oldpsd varchar(12),in newpsd varchar(12),out result varchar(50))
        1. 交易管理
        1. 存款In_mon(in inaccount char(9),in num int)
        2. 取款 out_mon(in inaccount char(9),in num decimal(18,2),out result varchar(50))
        3. 转账 transer_mon(in inanumber char(9),in outanumber char(10),in num decimal(18,2),out result varchar(50))
        4. 增加交易信息addtransactioninfo(in inanumber char(9),in tp varchar,in num decimal(18,2),in intraner varchar(20),out result varchar(50));
        1. 贷款管理
        1. 添加贷款产品 Add_loanpro(in inpname varchar(50),in inprate decimal(4,3),in inpnum int,out result varchar(50))
        2. 还贷款repay(in inanumber char(10),in inpname varchar(50),in indate date,out result varchar(50))
        3. 冻结逾期数额过大的账户freeeze_account()
        4. 根据时间跟新贷款状态,将超时未还的贷款状态设置为逾期search_overdue()
      1. 触发器设计
      1. 销户时删除相应的交易记录before行级(delete_case_tran_record)
      2. 对账户表的余额进行更改时更新用户的登记after行级(update_level)
      3. 当某账户贷款后根据还款月数和每期应还金额生成n条相应的还款记录after行级(create_repay_record)
      4. 当还款时判断该贷款是否已经还完,并做相关操作after行级(judge_payoff)
      1.  事件设计
      1. 每天凌晨更新贷款记录表,将超时未还清的repayment的记录状态设置为“逾期”;
      2. 每个月根据存款利息跟新余额

  1.  系统实现
    1.  开发环境

对银行储蓄业务系统的开发采用的操作系统为windows11,数据库管理系统为mysql以及采用navicat实现数据库的可视化,系统界面的开发采用QT通过高级语言为C++开发,通过ODBC连接QT和mysql。具体配置表格 3.1.1。

表格 3.1.1开发工具和版本说明

名称

版本

操作系统

数据库管理系统mysql

数据库可视化工具navicat

可视化界面开发工具QT

连接接口ODBC

Windows11

Ver 8.0.35 for Win64 on x86_64

Navicat Premium 16

Qt 6.5.3

MySQL ODBC 8.4 ANSI Driver

    1.  数据库访问设计
      1. Qt操作mysql

在qt中通过ODBC连接本地的mysql数据库连接的代码段如下图 3.2.1。

3.2.1qt连接mysql代码演示

通过QsqlQuery编写和执行sql语句实现对数据库的增删改查,函数调用以及存储过程调用等等操作。具体代码示例如下在qt中通过ODBC连接本地的mysql数据库连接的代码段如下图 3.2.1。

图 3.2.1qt连接mysql代码演示图 3.2.2。

3.2.2qt中执行sql语句操作mysql代码演示

    1.   登录模块设计

登录界面如下图 3.3.1。账号分位两种,一种是管理员(员工和超管统称为管理员)10位,另外一种是客户账号(身份证号)18位,登录时qt调用login(…)存储过程。管理员登录需要选中下方的圆形按钮,以此登录后打开不同的界面。员工和超管的账号最后一位用x区分最后一位是x的是超管,否则是普通员工。

3.3.1登录界面

注册通过调用存储过程signin实现。客户注册的账号为身份证号,管理员的注册账号自定义。客户注册界面如图 3.3.2,管理员员工注册界面如图 3.3.3。

3.3.2客户注册

3.3.3管理员注册

    1. 系统主界面

登录时,客户,工作员,超管都是此界面的子窗口通过登录逻辑和登录/注册按钮实现打开不同的界面。主界面如图 3.4.1。

3.4.1主界面

    1.   银行储蓄业务管理功能模块设计
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值