




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计报告书课程名称:数据库系统原理 课程设计题目 : 银行储蓄管理系统 数据库设计系名: 信息工程系专业班级: 软件技术 2101 姓名 学 号:指导教师 :大学2012 年 6 月 29 日课程设计任务书学生姓名:专业班级: 软件技技术 2101指导教师:工作单位: 信息工程系设计题目 : 银行储蓄管理系统 数据库设计初始条件:本课程的设计的目的是通过实践使同学们经历数据库设计开发的全过程和受到一次综 合训练,以便能较全面地理解、 掌握和综合运用所学的知识。 结合具体的开发案例,理解并 初步掌握系统分析、系统设计、系统实施的主要环节和步骤以及软件文档的制作能力。要求完成的主要任务:要求学
2、生根据所学的数据库原理与程序设计的知识, 能够针对一个小型的银行储蓄管理 系统,进行数据库系统的需求分析,概念结构设计、逻辑结构设计、物理结构设计,数据录 入及测试等,完成题目要求的功能。主要任务:用户有以下需求:建立用户;建立账户档案,建立账户索引;完成日常交易信息检索、 进行存款、转账、取款等工作,对取款、转账等操作,必需进行身份验证。具体要求如下:主 任 签 字:2012年 6月 25 日第一章需求分析1.项目概述1.11.21.31 存折信息数据包括: 存折的基本信息包括: 户名、 帐号、 开户银行名称、 开户日期、 取款密码等。2账户存取明细 数据包括:日期、摘要(现存、现支、转存、
3、利息) 、交易金额、余额、操作柜员编号。3 检索系统 能根据户名、账号、交易日期、金额等进行查询。4取款 输入账号和密码后, 能根据密码判断用户是否合法, 能判断取款金额是否超过了账户余 额,如果取款金额合法,就对该账号的余额信息进行更新。5、存款 输入账号和存款金额后,能更新该账号的余额。6、转账 输入账号和密码后,能根据密码判断用户是否合法,然后再输入对方的转账账户,并判 断对方的转账账户是否合法, 如果合法, 再输入转账的金额, 并能判断转账金额是否超过了 账户余额,如果转账金额合法,就对该账号的余额信息以及对方的账户余额信息进行更新。指 导 教 师 签 字: 凌伟2012年 6月 25
4、日目录产品描述产品功能用户特点2.功能需求2.1 需求2.2 开户功能2.3 取款功能2.4 查询功能2.5 修改功能2.6 销户功能3.具体需求4.设计4.1 概念结构设计4.2 数据库逻辑设计4.3 数据表建立的脚本第二章设计概要1.总体设计1.1 运行界面2.源代码3.心得体会4.参考文献第一章需求分析1项目概述1.1产品描述本软件实现银行的活期储蓄存款业务。 整套软件由客户端程序和服务器端程序构成, 客 户端运行在面向个人业务的银行柜台的电脑上, 银行职员输入相关信息并通过网络通讯向服 务器发送请求, 并接受服务器端程序的应答显示处理的结果。 服务器端处理客户端的各种业 务请求。主要实
5、现银行开户、销户、取款、存款、余额查询、转账、修改密码、等功能。1.2产品功能软件功能表模块功能说明主菜单取款开户销户余额打印账户明细记录修改密码存款取款开户销户查询服务器端程序修改1.3.用户特点本软件的最终用户主要面向银行柜台职员。 这些操作人员的教育水平是高中及以上学历, 经过计算机操作的相关培训,能够熟练使用和操作电脑2功能需求1.主菜单功能:输出主菜单(包括开户、存款、取款、查询、转账、修改密码、销户、退出 等功能)供操作用户选择,然后根据用户的输入选择进入不同的系统功能界面。2.开户功能:银行职员在客户端输入开户的基本信息,通过网络传送数据,在服务器处 理后显示服务器端的处理结果。
6、 开户成功后打印存折相关信息。 操作结束后返回主菜单界面。 存折的基本信息包括:户名、帐号、开户人电话号码、开户日期等。3.存款功能:主要有存款金额与存款时间,存款的账号等,供用户来填写数据存款。5.取款功能:包含取款金额,取款时间等,供用户操作。6.查询功能:提供查询功能,能够查询用户余额,所得利息,与以往的存取款记录。7.销户功能:能通过账号与身份等验证来销户,说明销户的日期,方便记录。8.修改功能:可以通过原密码来改新密码。银行存储系统总体结构图2.1开户功能引言: 接收客户端传送的数据, 把数据保存到数据库中, 经过服务器段的处理后把处理的结 果传回给客户端。输入:1、 接收客户端传送
7、过来的数据。处理:1、 自动生成账户 ID,长度 5 位,从 1 开始编号,不足补 0,例如 00009、00103 等。自动 生成账户 ID 要求唯一。2、 账户所有信息将保存数据库的账户信息表中。3、 根据开户金额生成一条账户的存款记录。输出:1、 把服务器端处理的结果返回给客户端。处理的结果包括开户是否成功,如果开户成功 处理的结果中还包含生成的存款记录。2.2存款功能引言: 接收客户端传送的数据, 增加账户余额并修改相关的数据库信息, 把结果传回给客户 端。输入处理输出1、客户端传送的数1、验证账户 ID 是否存在。1、把服务器端处理的结果返据。2、修改对应账户 ID 的数据库信息。回
8、给客户端。2.3取款功能引言: 接收客户端传送的数据, 减少账户余额并修改相关的数据库信息, 把结果传回给客户 端。输入处理输出1、客户端传送的数 据。1、验证账户 ID 是否存在。2、验证密码是否正确。3、验证余额是否足够。2、修改对应账户 ID 的数据库信息。1、把服务器端处理的结果返 回给客户端。2.4查询功能引言:接收客户端传送的数据,查找账户信息,把结果传回给客户端。输入处理输出1、客户端传送的数 据。1、验证账户 ID 是否存在。2、验证密码是否正确。3、查找对应的账户信息。1、把服务器端处理的结果返 回给客户端。2.5修改功能引言:接收客户端传送的数据,修改账户密码,把结果传回给
9、客户端。输入处理输出1、客户端传送的数 据。1、验证账户 ID 是否存在。2、验证密码是否正确。3、查找对应的账户并修改密码。1、把服务器端处理的结果返 回给客户端。2.6销户功能引言: 接收客户端传送的数据, 通过公式计算客户账户的利息,注销该客户账户。 把结果传 回给客户端。输入处理输出1、客户端传送的数 据。1、验证账户 ID 是否存在。2、验证密码是否正确。3、计算利息, 具体公式如下: 利息 = 存 款额 * 存款天数 * 年利率 / 360 需 要注意的是,账户中的存款额在变化。4、修改对应账户 ID 的数据库。 5、删除用户账户,不是做物理删除处 理。1、把服务器端处理的结果返
10、回给客户端。3具体需求在进行向数据库文件提取数据时, 要求数据记录正确, 在往数据文件中添加数据时, 要求输 入数据正确,金额,身份证,账号等要需求设定字符数。根据软件和用户组织的特性等,某些需求放在下面各项中描述。4设计4.1概念结构设计4.1.1 各个功能模块的 E-R 图( 1)开户 E-R 图2)销户 E-R 图3)存款 E-R 图4)取款 E-R 图5)查询 E-R 图6)修改 E-R 图varchar(8), int, int, varchar(20), intint,int,4.2数据库逻辑设计 将数据库的概念模型转换为关系模型 开户(姓名、性别、密码、身份证号码、开户日期、联系
11、电话) 存款(账号、存款金额、存款时间)取款(账号、密码、群款金额、取款时间)修改密码(账号、身份证、原密码、新密码)查询(余额、利息、记录)销户(账号、身份证、开户时间 、销户时间)4.3数据表建立的脚本create table kh( kh_name kh_ID kh_phone kh_adress kh_mm);(开户表 ) create table cunk( ck_kahao ck_mimack_ckjin_e int);(存款表 )create table qukuan(qk_kahaoint,qk_mimaint,qk_qkjin_eint);(取款表 )create table
12、 chaxun( cx_yu_eint,cx_jilu varchar(50), cx_lixiint);(查询表 )create table xiugai( xg_namevarchar(8),xg_IDint,xg_y_mima int, xg_x_mima int);(修改密码 )create table xiaohu( xh_namevarchar(8),xh_IDint,xh_phone int);(销户表 )1 总体设计1.1 运行界面1.1.1 进入主菜单界面图第二章概要设计主菜单界面1.1.2 选择输入的编号, 1 开户开户菜单界面图1.1.3 存款界面图图存款界面图1.1.4
13、 取款界面图取款界面图1.1.5 销户界面图销户界面图1.1.6 修改界面图修改界面图1.1.7 查询界面图查询界面图2. 源代码#ifndef _DB_STRUCT_H_ #define _DB_STRUCT_H_ /typedef struct account_char acc_name21; / 账户名char id_card19; / 身份证号char pwd7;/ 账户密码double money;/ 开账金额char date20;/ 开账时间T_ACCOUNT;/存款数据typedef struct saving_int acc_id;/ 账户 IDint opter_id;/
14、操作员 IDdouble money;/ 存款金额char date20;/ 操作时间T_SAVING;/取款数据typedef struct withdraw_int acc_id;/ 账户 IDchar pwd7;/ 账户密码int opter_id;/ 操作员 IDdouble money;/ 取款金额char date20;/ 操作时间T_WITHDRAW;/查询数据typedef struct query_int acc_id;/ 账户 IDchar pwd7;/ 账户密码int opter_id;/ 操作员 IDchar date20;/ 操作时间T_QUERY;/交易数据 typ
15、edef struct transfer_ int acc_id; / 账户 ID char pwd7; / 账户密码 int acc_oid; / 对方账户 ID double money; / 交易金额 int opter_id; / 操作员 ID char date20; / 操作时间 T_TRANSFER;/更改密码数据 typedef struct changepwd_ int acc_id; / 账户 ID char pwd7; / 账户旧密码 char newpwd7; / 账户新密码 int opter_id; / 操作员 ID char date20; / 操作时间 T_CH
16、ANGEPWD;/销户数据 typedef struct destroy_ int acc_id; / 账户 ID char pwd7; / 账户密码 int opter_id; / 操作员 ID char date20; / 操作时间 T_DESTROY;/明细数据 typedef struct detail_ int acc_id; / 账户 ID char s_date11; / 起始日期 char e_date11; / 结束日期 T_DETAIL;/明细数据 typedef struct detailall_ char s_date11; / 起始日期char e_date11; /
17、 结束日期 T_DETAILALL;/接收明细数据typedef struct recv_detail_char type_id20;/类型 IDchar opt_date20;/操作时间char d_money20;/处理金额char b_money20;/余额char staffer_id20;/操作员 IDchar oth_id20; / 对方账户 ID RECV_DETAIL;/接收明细数据 typedef struct recv_detail_all_int acc_id; /账户 IDchar type_id20;/ 类型 IDchar opt_date20;/ 操作时间doubl
18、e d_money;/ 处理金额double b_money;/ 余额int staffer_id; /操作员 IDint oth_id; /对方账户 IDRECV_DETAIL_ALL;/黑名单数据typedef struct blackint acc_id; /账户 IDT_BLACK;#define CLIENT_EXIT 0#define OP_ACC1#define SAVING2#define WITHDRAW 3#define QUBALANCE 4#define TRANSFER 5#define CHAPWD 6#define DESTROY 7 #define DETAIL
19、NOTE 8#define DEDATA 9#define BLACKLIST 10#define NOTEALL 11/包头 typedef struct pack_head int len; / 数据长度 int type; / 业务类型 PACK_HEAD;#endif /_DB_STRUCT_H_/ MySocket.cpp: implementation of the MySocket class. #include MySocket.h/ Construction/Destruction MySocket:MySocket() InitSocket();coutinit const
20、ructorendl; MySocket:MySocket()int MySocket:InitSocket() WORD wVersionRequested;WSADATA wsaData;int err; wVersionRequested = MAKEWORD( 2, 2 );err = WSAStartup( wVersionRequested, &wsaData ); if ( err != 0 ) return -1;if ( LOBYTE( wsaData.wVersion ) != 2 |HIBYTE( wsaData.wVersion ) != 2 ) WSACleanup(
21、 );return -1;s = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);return s;int MySocket:ConnectSocket(const char *ip,int port)struct sockaddr_in addr_far; addr_far.sin_family = AF_INET; addr_far.sin_port = htons(port); addr_far.sin_addr.s_addr = inet_addr(ip); memset(addr_far.sin_zero,0,8); coutip:ip,port:po
22、rt0) ret=recv(s,n_data,max_count,0);if (ret=0)break;if (ret0)max_count-=ret;if (max_count = 0)break;n_data+= ret;void MySocket:SendTCPLoop(char* n_data, int max_count)int ret;while (max_count0) ret=send(s,n_data,max_count,0);if (ret=0)break;if (ret0) max_count-=ret;if (max_count = 0)break;n_data+= r
23、et;void MySocket:Close() if(s!=NULL)closesocket(s);#include Tools.h#pragma comment(lib,ws2_32.lib)#include using namespace std;#include DBStruct.h#include int main()MySocket client = Tools:mys;int ret = client.ConnectSocket(127.0.0.1,7000); if (ret = SOCKET_ERROR) / 连接服务器 cout Can not connect to ser
24、ver! endl; return -1;coutconnect to serverendl;/数据打包T_ACCOUNT t_acc; strcpy(t_acc.acc_name,wepull); strcpy(t_acc.id_card,19801012); strcpy(t_acc.pwd,600100);t_acc.money=2030; strcpy(t_acc.date,2010-03-08);PACK_HEAD p_h;p_h.len=sizeof(T_ACCOUNT); p_h.type=OP_ACC;const int max_count=sizeof(T_ACCOUNT)+
25、sizeof(PACK_HEAD); char datamax_count;memset(data,0,max_count);Tools:Package(char*)&t_acc,p_h,data); client.SendTCPLoop(data,max_count);/ 发送数据 int ret_acc_id=0;client.RecvTCPLoop(char*)&ret_acc_id,sizeof(int);/ 接受返回数据 coutret_acc_id:ret_acc_idendl;/ client.Close();/ _getch();/PACK_HEAD p_h;/exitp_h.
26、len=0;p_h.type=CLIENT_EXIT; client.SendTCPLoop(char *)&p_h,sizeof(PACK_HEAD); cout Already exit the system.Thank you for using. endl; exit(0);return 0;#include using namespace std;#include db.h#include #pragma comment(lib,Ws2_32.lib)/接收数据int RecvTCPLoop(SOCKET s, char* n_data, int max_count)int ret;
27、while (max_count0) ret=recv(s,n_data,max_count,0);if (ret=0)接收包头break;if (ret0) max_count-=ret;if (max_count = 0)break;n_data+= ret;return ret;/发送数据void SendTCPLoop(SOCKET s, char* n_data, int max_count)int ret;while (max_count0) ret=send(s,n_data,max_count,0);if (ret=0)break;if (ret0)max_count-=ret
28、;if (max_count = 0)break;n_data+= ret;/线程处理函数void ThreadFun(LPVOID param)SOCKET s_accept = *(SOCKET*)param;/ string welcome(welcome to my server!);/ send(c_s,welcome.c_str(),welcome.size(),0);PACK_HEAD p_h;while (1)int ret = RecvTCPLoop(s_accept,(char*)&p_h,sizeof(PACK_HEAD); / if(ret=0)break;coutre
29、t p_h.len p_h.typeendl; /根据业务类型进行处理if (p_h.type=CLIENT_EXIT) / 客户端退出break;else if (p_h.type=OP_ACC) / 开账T_ACCOUNT t_acc; RecvTCPLoop(s_accept,(char*)&t_acc,p_h.len);cout t_acc.acc_name t_acc.id_card t_acc.pwd t_acc.money t_acc.date endl;int ret_val = 1;/ret_val=db_insert_account(t_acc.acc_name,t_acc
30、.id_card,t_acc.pwd,t_acc.money,t_acc .date);SendTCPLoop(s_accept,(char*)&ret_val,sizeof(int); coutclient exitendl;closesocket(s_accept);int main()/*socket 版本协商*/WORD wVersionRequested;WSADATA wsaData;int err;wVersionRequested = MAKEWORD( 2, 2 );err = WSAStartup( wVersionRequested, &wsaData );if ( er
31、r != 0 ) return -1;if ( LOBYTE( wsaData.wVersion ) != 2 |HIBYTE( wsaData.wVersion ) != 2 ) WSACleanup( );return -1;/*socket 初始化*/SOCKET s = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);if(s=INVALID_SOCKET)coutsock err!endl;return -1;struct sockaddr_in addr;addr.sin_family = AF_INET; addr.sin_addr.s_addr = INADDR_ANY;addr.sin_port = htons(7000); memset(addr.sin_zero,0,8);/reuse addressint opt=1;setsockopt(s,SOL_SOCKET,SO_REUSEADDR,(const char*)opt,sizeof(opt);int ret = 0;ret = bind(s,(struct sockaddr*)&addr,sizeof(sockaddr_in);if(ret =SOCKET_ERROR)coutbind err!endl;return -1;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第14课 光荣的少先队 课件-2024-2025学年道德与法治一年级下册统编版
- 酒店培训感想心得体会模版
- 医院庭院绿化的生态效益与社会价值
- 周围型肺癌的临床护理
- 黄绿卡通动物交通安全模板
- 医疗大数据与健康保险的联动发展
- 婴儿脐疝的临床护理
- 区块链技术助力文字作品版权保护
- 健身房加设施合同范例
- 安全管理知识培训
- 广东省2024-2025学年佛山市普通高中教学质量检测英语试卷及答案(二)高三试卷(佛山二模)
- 江苏省南京市江宁区2024-2025学年统编版二年级下册期中考试语文试卷(含答案)
- 铁路调车综合实训铁鞋的使用和注意事项课件
- 高端定制店面管理制度
- 多模态自适应技术应用于钢材表面缺陷检测的研究与分析
- 无人机配送技术发展-全面剖析
- 广东省江门市2025届高三下学期一模化学试题(原卷版+解析版)
- 2025年上半年广州市海珠区海幢街道招考康园工疗站工作人员易考易错模拟试题(共500题)试卷后附参考答案
- 预设理论在人工智能中的应用-深度研究
- 2025年春季学期形势与政策第二讲-中国经济行稳致远讲稿
- CNAS-CL01:2018 检测和校准实验室能力认可准则
评论
0/150
提交评论