数据库课程设计报告银行管理系统(总18页)
《数据库系统》教学设计
本课选自浙教版普通高中《信息技术基础》第四章第四节,本章
主要学习信息数据的管理,本节内容是这一章的第二节,主要从概念、
简单数据库的组成以及创建和字段的修改等来展开对数据库的进一
步学习,同时也为选修模块中数据库的学习奠定基础,呈现了知识逻
辑性和系统性。
学情分析
本次授课对象是高一年级的学生,他们是典型的数字时期的原生
关操作
PPT 呈现连连看小活动
第三环节
层层深入 实践体验
教师活动
学生活动
设计意图
(20 分钟) PPT 呈现本节课的实 阅读课本中给出的 由于学生初次结束
践任务(P86 在数据 相关操作提示
数据库,因此任务
表中添加记录)
按 照 步 骤 先 找 到 不易过难。
演示基本操作
Acess,在找到数据 知识与技能的学习
教师活动
学生活动
设计意图
(6 分钟) 展示个别优秀学生的 个别学生的作品被 心理学研究表明,
作品
展示
期待“肯定”是人
要求其他学生对作品 参与作品的评价 类最迫切的心理需
进行简单评价
分享实际过程的体 求,学生亦是如此;
让这些学生分享成功 验
让学生参与评价体
的体验和经验
根据教师的板书和 现 了 评 价 的 多 维
教学方法
【教法】 任务驱动法
演示法 讲授法 【学法】 讨论法(合作探讨) 上机操练
【运用体现】 实践操练的任务 Access 的操作演示 概念的具体解析 【运用体现】 难点知识的探讨 数据表中记录的添加
教学准备 多媒体电子教室、教学课件(PPT)、相关教学媒体资源
教学媒体选择与运用
编号
呈现内容
管理信息系统课程设计(终版)精选全文完整版
可编辑修改精选全文完整版管理信息系统课程设计(终版)1.1 系统名称本文介绍的系统名称为“企业信息管理系统”。
1.2 系统开发背景随着信息技术的发展,企业管理越来越重视信息化建设。
为了提高企业信息管理的效率和准确性,本系统应运而生。
1.3 选题说明本系统旨在帮助企业实现信息化管理,包括信息管理和财务管理两个方面。
1.4 系统目标本系统的目标是提高企业管理的效率和准确性,降低管理成本,提高企业竞争力。
1.5 系统主要功能本系统主要包括信息管理和财务管理两个方面。
信息管理包括员工信息管理、客户信息管理、供应商信息管理等;财务管理包括财务报表管理、成本管理、收支管理等。
1.6 可行性分析1.6.1 可行性研究的前提在进行可行性研究之前,需要对企业的发展状况、市场竞争情况、管理需求等进行全面分析。
1.6.2 系统的可行性研究通过市场调研和用户需求分析,本系统的开发是可行的。
同时,本系统的开发也符合企业的发展战略和管理需求。
2.1 信息管理信息管理是本系统的核心功能之一,包括员工信息管理、客户信息管理、供应商信息管理等。
通过对信息的集中管理,可以提高信息的准确性和及时性,为企业管理提供有力支持。
2.2 财务管理财务管理是企业管理的重要组成部分,也是本系统的主要功能之一。
通过对财务数据的集中管理和分析,可以帮助企业实现成本控制、收支管理等目标。
3.1 系统功能结构为了更好地了解系统的功能结构,本文进行了功能结构调查和组织结构调查。
通过调查分析,得出了系统的功能结构图。
3.2 业务流程分析业务流程分析是系统设计的重要组成部分,通过对业务流程的分析,可以更好地设计系统的功能和流程。
本文对系统的业务流程进行了详细的分析,并绘制了业务流程图。
3.3 数据流程分析数据流程分析是系统设计的另一个重要组成部分,通过对数据流程的分析,可以更好地设计系统的数据结构和流程。
本文对系统的数据流程进行了详细的分析,并绘制了数据流程图。
管理信息系统课程设计报告范文免费
管理信息系统课程设计报告范文免费(实用版)编制人:__________________审核人:__________________审批人:__________________编制单位:__________________编制时间:____年____月____日序言下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!并且,本店铺为大家提供各种类型的教育资料,如工作总结、工作计划、心得体会、演讲稿、条据文书、作文大全、合同范文、教案大全、祝福语、其他范文等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor.I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!Moreover, this store provides various types of educational materials for everyone, such as work summaries, work plans, experiences, speeches, written documents, complete essays, contract samples, lesson plans, blessings, and other sample articles. If you want to learn about different data formats and writing methods, please pay attention!管理信息系统课程设计报告范文免费目前国内物流人才的短缺,并不是总量上的短缺,而是掌握现代物流管理技术的实用型人才的短缺,也就是懂得建立在信息系统平台上物流供应链管理的综合性人才的短缺。
数据库课程设计报告-银行储蓄管理系统数据库设计[2018年整理]
数据库原理及应用课程设计报告组号:小组成员:学院:专业班级:指导老师:2017/1/10目录第1章概述 (1)1.1设计题目: (1)1.2要求完成的主要任务: (1)第2章需求分析 (6)2.1定义 (6)2.2需求规格说明概览 (6)2.3产品的一般性描述 (7)2.4产品功能 (7)2.5用户特征 (7)2.6功能划分 (7)2.7用户界面 (8)2.8可维护性 (9)2.9可理解性 (9)2.10可移植性 (9)第3章数据库表结构图 (9)3.1实体联系图 (10)3.2程序流程图 (10)第4章功能与实现 (11)4.1客户端登录功能 (11)4.2客户端主界面功能 (12)4.3客户端开户功能 (12)4.4客户端存款功能 (13)4.5客户端取款功能 (13)4.6客户端转账功能 (14)4.7客户端余额查询功能 (14)4.8客户端修改密码功能 (14)4.9客户端销户功能 (15)4.10服务器端用户注册功能 (15)4.11服务器端修改用户登密码功能 (15)第5章实现及测试 (16)5.1系统开发环境 (16)5.2主要功能模块的实现及测试 (16)5.2.1数据表的建立 (16)5.2.2数据库连接与数据提供 (16)第6章总结 (17)第7章参考文献 (17)第1章概述本软件实现银行的活期储蓄存款业务。
整套软件由客户端程序和服务器端程序构成,客户端运行在面向个人业务的银行柜台的电脑上,银行职员输入相关信息并通过网络通讯向服务器发送请求,并接受服务器端程序的应答显示处理的结果。
服务器端处理客户端的各种业务请求。
主要实现银行开户、销户、取款、存款、余额查询、转账、修改密码、打印账户明细记录等功能。
1.1 设计题目:题目:银行储蓄管理系统数据库设计本课程的设计的目的是通过实践使同学们经历数据库设计开发的全过程和受到一次综合训练,以便能较全面地理解、掌握和综合运用所学的知识。
结合具体的开发案例,理解并初步掌握系统分析、系统设计、系统实施的主要环节和步骤以及软件文档的制作能力。
UML建模--银行管理系统
银行管理系统的UML建模课程设计报告专业:学号:姓名:任课教师:一、系统概述银行是与人们生活密切相关的一个机构,银行可以提供存款、取款、转账等业务。
在银行设立账户的人或机构被称为银行的客户(customer)。
一个客户可以在银行开设多个账户(account),客户可以存钱到账户中,也可以从自己的账户中取钱,还可以将存款从一个账户转到另一个账户。
另外,客户可以随时查询自己的账户情况,以及查询以前所进行的存款、取款等交易记录。
客户还有权利要求关闭自己的账户。
实际生活中的银行功能其实还要复杂得多,但为了简化系统,本次设计只考虑银行的基本功能。
简化版的银行信息系统至少应具有如下功能:1.一个银行可以有多个账户;2.一个银行可以有多个客户;3.一个客户可以持有多个账户;4.一个账户可以有多个持有者;5.银行可以为客户开设账户;6.银行可以为客户注销账户;7.客户可以从自己账户中取钱;8.客户可以向自己账户中存钱;9.客户可以在同一银行的不同账户之间转账;10.客户可以在不同银行的不同账户之间转账;请完成登录、存款、取款、转账和查询几个模块的设计。
二、需求分析银行系统是与生活紧密相关的一个机构,银行提供了存款、取款、转账等业务。
在银行设立账户的人或机构通常被称为银行的储户。
一个储户可以在银行开多个账户,储户可以存钱到账户中,也可以从自己的账户中取现,还可以将存款从一个账户转到另一个账户。
储户还可以随时查询自己账户的情况,并查询以前所进行的存款、取款等交易记录。
后台管理员可以对客户的账户进行注销、删除、查询等管理,还有就是银行利息、汇率、手续费之类参数的设置,以及财务管理以及财务分析。
软件分别有开户,查询存取款,转账等功能。
各个模块各有不同的功能,但都能完成查询和存取功能。
各模块的数据都存放在数据库中。
数据的调用和连接都有程序来完成。
此软件所要完成的主要功能有三方面:如果是存款,用户填写存款单,然后交给收银员键入系统,同时系统还要记录存款人姓名,住址,身份证号码,存款类型,存款日期,利率及密码(可选)等信息,完成后由系统反馈成功存款信息给用户。
银行储蓄管理系统实验报告
C++面向对象程序设计课程设计报告学生姓名: ___ __________学号: _____ __________班级: ___指导教师: ______________2022 年 6 月 19 日......................................................................................课程设计的目的是总结及运用一学期来所学的知识,训练我们灵便应用所学 C++知识,独 立完成问题分析、总结设计、详细设计和编程实现等软件开辟全过程的综合实践能力。
巩 固、深化理论知识,提高编程水平,并在此过程中培养我们严谨的科学态度和良好的工作 作风。
随着社会经济的发展,信息化程度的不断深入,银行的传统业务已不能满足客户的需 求。
当今,人们的科技意识已经有了很大的提高,在紧张忙碌的生活中已越来不习惯每天 奔波于银行营业柜台去办理各种业务,利用电子化的手段构建一个高效统一的、通用灵便 的系统来管理各种各样的业务,是当前每一个商业银行都要研究的课题。
因此如何应用计算 机技术加强银行账户管理是当前迫切需要解决的一个问题。
所以本次课程设计是摹拟银行 账户的管理,开辟一个银行个人账户管理系统。
设计思想是一切为使用者着想,操作尽量 简单明了,努力做到每一个用户都可以使用这个系统来办理自己的业务。
并且通过该银行 账户管理系统地运行,可以使办公人员轻松快捷的完成对账户管理的任务,提高招募管理 效率,是银行的账目管理工作系统化、规范化、自动化。
主要用于银行的储蓄卡管理系统,它可以帮组我们有效、准确、并且高效实现的完成 存取事件。
系统操作方便效率、安全性高、只要开户并设定好密码就可以轻松的实现存取 款。
系统实现的主要有储蓄卡开户管理、存取款管理、用户查询历史数据显示、注销等功 能。
储蓄卡开户管理模块:卡号、姓名、开户金额、身份证号、地址、电话、密码、确认 密码和保存组成。
软件工程课程设计_银行储蓄系统
银行储蓄系统系统设计报告目录一、引言 (3)1.编写目的 (3)2.项目背景 (3)3.开发人员 (3)4.参考文献 (3)二、问题定义 (4)1.目标 (4)2.系统功能 (4)三、可行性研究分析 (4)四、需求分析 (5)1. 功能需求分析 (5)2. 建立功能模型和数据需求 (5)3. 建立逻辑模型 (13)4. 建立行为模型 (14)5. 性能需求分析 (14)6. 系统可用性和可靠性需求分析 (14)五、概要设计报告 (15)1 数据库概要设计 (15)2 系统总体设计 (16)3 测试计划 (17)4 接口设计 (17)5 运行设计 (18)6 出错处理设计 (18)7 安全保密设计 (18)8 维护设计 (18)六、详细设计报告 (19)1 用户界面设计 (19)2 测试用例及预测结果 (25)七、运行环境和编译环境说明书 (27)1 开发编译环境 (27)2 运行使用环境 (27)3 错误处理 (27)八、总结报告 (28)1一、引言1、编写目的为了规范化软件开发,提高开发过程的能见度,便于控制和管理软件开发过程,提高软件质量,降低开发风险,减少需求变更,便于日后的维护工作,文档定制了软件开发的细节问题,明确软件需求,便于与用户协调开发,确认需求。
对软件的开发相关文档及用户使用手册进行了整理。
2、项目背景非电子化的银行储蓄系统工作效率较低,且安全性,准确性得不到保证。
越来越满足不了用户的需求和银行自身发展的需要。
建立一个高效,准确,方便,安全的银行储蓄系统是用户需求和技术进步的共同推动。
3、开发人员组长:xxx组员:xx xxx xxx xxx xxxxx作为项目经理,在人员沟通,质量管理,进度管理,风险管理方面进行了着重管理,并对里程碑进行了评审,确认。
并对变更进行评审,控制,记录。
需求分析以及系统编码由xxx完成。
用户界面设计以及系统测试由xxx完成。
数据库设计工作由xx完成。
数据库课程设计 银行储蓄管理系统
《数据库系统概论》课程设计报告设计题目:银行储蓄管理系统姓名:学号:班级:设计起止时间:需求分析:在对软件工程相关知识学习之后,我们对设计软件有了基本的认识和一些应用技能。
在数据库的课程设计中,我们计划做一个小型的银行储蓄管理系统,包括了基本的存取转,和管理员对日常工作的管理功能。
功能设计:(1).客户:包括存款,取款,转账,查询余额,查看流水,密码修改功能(2).管理员:新增用户,删除用户,查看用户,员工绩效,VIP用户判别,储备金预警分析。
3.功能流程图:银行管理系统登陆管理员客户销户查看员工绩效VIP判别资金储备金判别开户存款取款转账余额显示查看流水修改密码详细设计:1.E-R图模型operatecustombankstaffCphoneCtimeCpassCRmoneyCnameCidBidSphoneSnameSidSpassSItimeBname BmoneyBid1112.根据E-R 图设计关系表 (1).银行信息表(bank )字段名 字段类型及长度 允许空 主键说明 Bid nchar (9) no PK 银行号 Bname nchar (20) no银行名 Bmoney numeric (20,3) no 银行余额(2).客户信息表(custom )字段名 字段类型及长度 允许空主键说明 Cid nchar (9) noPK 客户ID Cname nchar (10) no 客户姓名 Cpass nchar (10) no 密码 Ctime nchar (20) no注册时间Bid nchar (9) no 所在银行行号 外码(Bank (Bid )) Crmoney numeric (10,3) no账户余额 Cphone nchar (11) no 客户电话 (3).员工(管理员)表(staff ) 字段名 字段类型及长度 允许空主键 说明 Sid nchar (9) noPK 员工ID Sname nchar (10) no 员工姓名 Spass nchar (10) no 登陆密码 SItime nchar (20) no入行时间Sphone nchar(11) no 联系电话(4).流水信息表字段名字段类型及长度允许空主键说明Oid nchar(9) no PK 流水号Cid nchar(9) no 客户ID 外码(Custom(Cid))Bid nchar(9) no 银行ID 外码(Bank(Bid))Sid nchar(9) no 员工ID 外码(Staff(Sid))Otype smallint no 操作类型Otime nchar(20) no 操作时间Omoney numeric(10,3) yes 交易金额OBmoney numeric(10,3) yes 上次余额OAmoney numeric(10,3) yes 账户余额三个实体:bank,staff,custom一个联系:operate关系图:SQL语句:/*建表*/create table Bank(Bid nchar(9) primary key,Bname nchar(20) not null,Bmoney numeric(20,3) not null)create table Custom( Cid nchar(9) not null,Cname nchar(10) not null,Cpass nchar(10) not null,Ctype smallint not null,Ctime nchar(20) not null,Ccode nchar(18) not null,Bid nchar(9) not null,Crmoney numeric(10,3) not null,Cphone nchar(11) not null,primary key(Cid),foreign key(Bid) references Bank(Bid) /*在客户表中以Bank表的主码作为一个外键,并对他进行级联更新*/on update cascade,)create table Staff(Sid nchar(9) primary key, /*在列级定义主码*/Sname nchar(10) not null,Spass nchar(10) not null,SItime nchar(20) not null,Sphone nchar(11) not null)create table Operate(Oid nchar(9) not null,Cid nchar(9) not null,Bid nchar(9) not null,Sid nchar(9) not null,Otype nchar(10) not null,Otime nchar(20) not null,Oflag smallint not null,Omoney numeric(10,3),OBmoney numeric(10,3),OAmoney numeric(10,3),primary key(Oid,Cid,Sid),foreign key (Cid) references Custom(Cid) /*以用户表主码为一个外键,进行级联删除*/on delete cascade,foreign key(Sid) references Staff(Sid) /*以员工表的主码作为外键,当删除引起冲突的时候,拒绝删除*/on delete no action,foreign key (Bid) references Bank(Bid)on update cascade)insert into Bank values('00001','中国银行小寨分行',10000)update Bank set Bname='中国银行经开分行' where Bid='00002'select * from Bank;delete from Bank where Bid='1' or Bid='2';insert into Custom values('6505001','花花','111',0,'2012/12/10/08:26:00','610424************','00001','1500','14345678912')insert into Staff values('7985000','自助服务','111','2002/01/07','12331654613')delete from Custom where Bid='2';insert into Operate values('2406002','6505001','00001','7985001','哈哈','2012年12月18日14时12分',0,0,2900,2900)insert into Operate values('2406005','6505007','00001','7985001','嘿嘿','2012年12月18日14时12分',0,0,2900,2900)select * from Custom;select * from Operate;select * from Staff;select * from Bank;delete from Operatedrop table Customdrop table Bankdrop table Staff;drop table Operate;select * from Bank;delete from Operate where Oid='6505001'drop view BMoney;create view BMoneyasselect Omoneyfrom Operatewhere Oflag = 0 and Omoney>2000 and Otype = '取款';create view BInMoneyasfrom Operatewhere Oflag = 0 and Omoney>2000 and Otype='存款';create view VIPasselect Ctypefrom Customwhere Ctype=1;select count(*) from BMoney;select count(*) from BInMoney;select count(*) from VIP;update Bank set Bmoney='10000' where Bid='00001';update Bank set Bmoney='+bmoney' where Bid='"+Bid+"'";update Bank set Bmoney='10200.000000' where Bid='00001'程序代码:客户部分:a.void CClientDlg::OnButtonIn() //存款函数{// TODO: Add your control notification handler code hereCInDlg InDlg;if (InDlg.DoModal()==IDOK){double temp,temp1;ADOConn ado;CString sql = "select * from Custom where Cname='"+Cname+"'";_RecordsetPtr ResultSet = ado.GetRecordSet((_bstr_t)sql);CString str = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Crmoney");CString bid = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Bid");CString str4 = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Cid");CString str2= str; //将交易前钱数暂存temp=atof(str);temp1=(double)InDlg.m_InNum;temp+=temp1;str.Format("%f",temp);CString str3 = str; //暂存交易后金额sql = "update Custom set Crmoney='"+str+"' "+"where Cname='"+Cname+"'";ado.ExecuteSQL((_bstr_t)sql);sql = "select count(*) num from Operate";ResultSet = ado.GetRecordSet((_bstr_t)sql);int num = atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("num"));str = "240600";CString Oid,Cid,Sid,Bid,Otime,Omoney,OAmoney,OBmoney;Oid.Format("%d",++num); Oid=str+Oid;Sid="7985001";Bid = bid; double temp2;sql = "select * from Bank where Bid='"+Bid+"'";ResultSet = ado.GetRecordSet((_bstr_t)sql);CString bmoney = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Bmoney");temp2 = atof(bmoney); temp2+=temp1; bmoney.Format("%f",temp2);sql = "update Bank set Bmoney='"+bmoney+"' where Bid='"+Bid+"'";ado.ExecuteSQL((_bstr_t)sql);CString Otype = "存款";CString m_time; CTime time;time = CTime::GetCurrentTime();m_time = time.Format("%Y年%m月%d日%X");Otime = m_time; int flag = 0;Omoney.Format("%f",temp1); OAmoney = str2;OBmoney = str3;sql.Format("insert into Operate values('%s','%s','%s','%s','%s','%s',%d,%s,%s,%s)",Oid,str4,Bid,Sid,Otype,m_ time,flag,Omoney,OAmoney,OBmoney);ado.ExecuteSQL((_bstr_t)sql);ado.E xitConnect(); }}b.v oid CClientDlg::OnButtonGet() //取款函数{// TODO: Add your control notification handler code hereCGetDlg GetDlg;;if (GetDlg.DoModal()==IDOK){double temp,temp1;ADOConn ado;CString sql = "select * from Custom where Cname='"+Cname+"'";_RecordsetPtr ResultSet = ado.GetRecordSet((_bstr_t)sql);CString str = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Crmoney");CString bid = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Bid");CString str4 = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Cid");CString str2= str;//将交易前钱数暂存temp=atof(str);temp1=(double)GetDlg.m_GetNum;if (temp>temp1){temp-=temp1; str.Format("%f",temp); CString str3 = str;//暂存交易后金额sql = "update Custom set Crmoney='"+str+"' "+"whereCname='"+Cname+"'";ado.ExecuteSQL((_bstr_t)sql);sql = "select count(*) num from Operate";ResultSet = ado.GetRecordSet((_bstr_t)sql) int num= atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("num"));str = "240600";CString Oid,Cid,Sid,Bid,Otime,Omoney,OAmoney,OBmoney;Oid.Format("%d",++num);Oid=str+Oid; Sid="7985001"Bid = bid; double temp2;sql = "select * from Bank where Bid='"+Bid+"'";ResultSet = ado.GetRecordSet((_bstr_t)sql);CString bmoney = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Bmoney");temp2 = atof(bmoney); temp2-=temp1;bmoney.Format("%f",temp2);sql = "update Bank set Bmoney='"+bmoney+"' whereBid='"+Bid+"'";ado.ExecuteSQL((_bstr_t)sql);CString Otype = "取款";CString m_time; CTime time;time = CTime::GetCurrentTime();m_time = time.Format("%Y年%m月%d日%X");Otime = m_time; int flag = 0;Omoney.Format("%f",temp1);OAmoney = str2;OBmoney = str3; sql.Format("insert into Operate values('%s','%s','%s','%s','%s','%s',%d,%s,%s,%s)",Oid,str4,Bid,Sid,Otype,m_time,flag,Omoney,OAmoney,OBmoney); ado.ExecuteSQL((_bstr_t)sql);ado.ExitConnect();}else{AfxMessageBox("账户余额不足!"); }}}c.void CClientDlg::OnButtonTurn(){/ TODO: Add your control notification handler code hereCTurnDlg TurnDlg;if (TurnDlg.DoModal()==IDOK){ADOConn ado;CString sql = "select * from Custom";_RecordsetPtr ResultSet = ado.GetRecordSet((_bstr_t)sql);int flag = 0;while (!ResultSet->adoEOF)CString TCusId = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Cid");CString TCusMon = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Crmoney"); //收钱客户在操作前的余额CString str5 = TCusMon; TCusId.Remove(' ');if (TCusId==TurnDlg.m_TurnId){double temp,temp1;sql = "select * from Custom where Cname='"+Cname+"'";ResultSet = ado.GetRecordSet((_bstr_t)sql);CString str = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Crmoney");CString bid = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Bid");CString str4 = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Cid");CString str2= str; //将交易前钱数暂存temp=atof(str);temp1=(double)TurnDlg.m_TurnNum; if (temp>temp1){flag = 1;temp-=temp1; //住客户钱数减少str.Format("%f",temp);CString str3 = str; //暂存交易后金额sql = "update Custom set Crmoney='"+str+"' "+"where Cname='"+Cname+"'";do.ExecuteSQL((_bstr_t)sql); temp=atof(TCusMon);//收钱客户钱数增加temp+=temp1;TCusMon.Format("%f",temp); sql = "update Custom set Crmoney='"+TCusMon+"' "+"where Cid='"+TCusId+"'";ado.ExecuteSQL((_bstr_t)sql); sql = "select count(*) num from Operate";ResultSet = ado.GetRecordSet((_bstr_t)sql);int num = atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("num"));str = "240600";CString Oid,Cid,Sid,Bid,Otime,Omoney,OAmoney,OBmoney;int Otype; Oid.Format("%d",++num); Oid=str+Oid;Sid="7985001";Bid = bid; Otype = 2; CString m_time; CTime time;time = CTime::GetCurrentTime();m_time = time.Format("%Y年%m月%d 日%X");Otime = m_time; Omoney.Format("%f",temp1);OAmoney = str2; OBmoney = str3;sql.Format("insert into Operate values('%s','%s','%s','%s',%d,'%s',%s,%s,%s)",Oid,str4,Bid,Sid,Otype,m_time ,Omoney,OAmoney,OBmoney); ado.ExecuteSQL((_bstr_t)sql);sql.Format("insert into Operate values('%s','%s','%s','%s',%d,'%s',%s,%s,%s)",TCusId,str4,Bid,Sid,Otype,m_t ime,Omoney,str5,TCusMon); ado.ExecuteSQL((_bstr_t)sql);ado.ExitConnect();break; }else{AfxMessageBox("账户余额不足!");break; }}ResultSet->MoveNext();}if(flag==0){AfxMessageBox("该账户不存在!"); }}}d.v oid CClientDlg::OnButtonHistoy() //历史记录查询{// TODO: Add your control notification handler code hereCShowHistory showDlg;ame = Cname;showDlg.DoModal();}e.v oid CClientDlg::OnButtonAlter(){// TODO: Add your control notification handler code hereCAlterDlg alteDlg;if(alteDlg.DoModal()==IDOK){ if (alteDlg.m_AItem==0){if (alteDlg.m_Alter1==alteDlg.m_Alter2) {ADOConn ado; CString sql = "update Custom set Cname='"+alteDlg.m_Alter1+"' where Cname='"+Cname+"'";ado.ExecuteSQL((_bstr_t)sql);AfxMessageBox("姓名修改成功!"); }else {AfxMessageBox("两次姓名输入不一致,请重新输入!"); }}else if(alteDlg.m_AItem==1){if (alteDlg.m_Alter1==alteDlg.m_Alter2) { ADOConn ado;CString sql = "update Custom set Cpass='"+alteDlg.m_Alter1+"' whereCname='"+Cname+"'";ado.ExecuteSQL((_bstr_t)sql); AfxMessageBox("密码修改成功!"); }else{AfxMessageBox("两次密码输入不一致,请重新输入!"); }elseif (alteDlg.m_Alter1==alteDlg.m_Alter2){if (alteDlg.m_Alter1.GetAt(0)=='1'&&alteDlg.m_Alter1.GetLength()==11)ADOConn ado; CString sql = "update Custom setCphone='"+alteDlg.m_Alter1+"' where Cname='"+Cname+"'";ado.ExecuteSQL((_bstr_t)sql); AfxMessageBox("电话号码修改成功!"); }else {AfxMessageBox("电话号码格式不对!");} } else{AfxMessageBox("两次电话输入不一致,请重新输入!"); } }}}管理员部分:a.void CStaffDlg::OnButtonInsert() //添加新成员{// TODO: Add your control notification handler code hereCInsertDlg insertDlg;if (insertDlg.DoModal()==IDOK){if (insertDlg.m_Phone.GetAt(0)=='1'&&insertDlg.m_Phone.GetLength()==11){ADOConn ado;CString sql = "select count(*) Num from Custom whereCcode='"+insertDlg.m_Code+"'";_RecordsetPtr ResultSet = ado.GetRecordSet((_bstr_t)sql);int Num = atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("Num"));if (Num==0){CString str = "650500";sql = "select count(*) num from Custom";ResultSet = ado.GetRecordSet((_bstr_t)sql);Num = atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("num"));CString Cid,Cpass,Bid,Pmoney; double dou;Cid.Format("%d",++Num); Cid = str+Cid;Cpass = "000000";CString m_time; Bid= "00001";CTime time; time = CTime::GetCurrentTime();m_time = time.Format("%Y年%m月%d日%X");dou = (double)insertDlg.m_Pmoney;Pmoney.Format("%f",dou);// Otime = m_time; sql.Format("insert into Custom values('%s','%s','%s','%s',%s,'%s',%s,%s)",Cid,insertDlg.m_Name,Cpass,m_time,insertDlg.m_Code,Bid,Pmoney,insertDlg.m_Phone);ado.ExecuteSQL((_bstr_t)sql);sql = "select count(*) num from Operate";ResultSet = ado.GetRecordSet((_bstr_t)sql);Num = atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("num"));CString Oid,OAmoney,Otype; Otype = "新注册";Oid.Format("%d",++Num);str = "240600";Oid = str+Oid; Bid= "00001";int flag = 0; OAmoney = "0";sql.Format("insert into Operatevalues('%s','%s','%s','%s','%s','%s',%d,%s,%s,%s)",Oid,Cid,Bid,Sid,Otype,m_time,flag,Pmoney,OAmoney,Pmoney); ado.ExecuteSQL((_bstr_t)sql);AfxMessageBox("新增客户成功!"); }else{AfxMessageBox("该证件号已经注册!"); }}}b.void CStaffDlg::OnButtonDelete() //注销客户{// TODO: Add your control notification handler code hereCDelDlg delDlg;if (delDlg.DoModal()==IDOK){if (delDlg.m_DelId1==delDlg.m_DelId2){ADOConn ado;count(*) Num from Custom where Cid='"+delDlg.m_DelId1+"'";_RecordsetPtr ResultSet = ado.GetRecordSet((_bstr_t)sql);int Num = atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("Num"));if (Num!=0){CString str = "650500";sql = "delete from Custom whereCid='"+delDlg.m_DelId1+"'";ado.ExecuteSQL((_bstr_t)sql); CString Bid,Cid;Cid = "6505000";CString m_time;CTime time; time = CTime::GetCurrentTime();m_time = time.Format("%Y年%m月%d日%X");sql = "select count(*) numfrom Operate";ResultSet = ado.GetRecordSet((_bstr_t)sql);Num = atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("num"));CString Oid,OAmoney,Otype; Otype = "注销用户";Oid.Format("%d",++Num);tr = "240600";Oid = str+Oid; Bid= "00001";int flag = 2; OAmoney = "0";sql.Format("insert into Operatevalues('%s','%s','%s','%s','%s','%s',%d,%s,%s,%s)",Oid,Cid,Bid,Sid,Otype,m_time,flag,OAmoney,OAmoney,OAmoney); ado.ExecuteSQL((_bstr_t)sql);AfxMessageBox("注销客户成功!"); }else{AfxMessageBox("不存在该用户!"); }}else {AfxMessageBox("两次输入用户ID不一致,请重新输入!"); }}}c.void CStaffDlg::OnButtonResher() 查询客户{// TODO: Add your control notification handler code hereCAlterDlg altDlg; if (altDlg.DoModal()==IDOK){if (altDlg.m_AItem==0) {if (altDlg.m_Alter1==altDlg.m_Alter2) {ADOConn ado;CString sql = "update Staff set Sname='"+altDlg.m_Alter1+"' whereSname='"+Sname+"'";ado.ExecuteSQL((_bstr_t)sql);AfxMessageBox("姓名修改成功!");}else{AfxMessageBox("两次姓名输入不一致,请重新输入!"); }} else if(altDlg.m_AItem==1){if (altDlg.m_Alter1==altDlg.m_Alter2){ADOConn ado;CString sql = "update Custom set Spass='"+altDlg.m_Alter1+"' where Sname='"+Sname+"'";ado.ExecuteSQL((_bstr_t)sql); AfxMessageBox("密码修改成功!"); }else{AfxMessageBox("两次密码输入不一致,请重新输入!"); }}else{if (altDlg.m_Alter1==altDlg.m_Alter2){if (altDlg.m_Alter1.GetAt(0)=='1'&&altDlg.m_Alter1.GetLength()==11){ADOConn ado;CString sql = "update Custom set Sphone='"+altDlg.m_Alter1+"' where Sname='"+Sname+"'";ado.ExecuteSQL((_bstr_t)sql);AfxMessageBox("电话号码修改成功!"); }else{AfxMessageBox("电话号码格式不对!");} }else{AfxMessageBox("两次电话输入不一致,请重新输入!"); } } }d.void CStaffDlg::OnButtonMoneyctrl() //资金管理{// TODO: Add your control notification handler code hereCSerchDlg serDlg;if (serDlg.DoModal()==IDOK){ADOConn ado;CString sql = "select count(*) Num from Custom where Cid='"+serDlg.m_Cid+"'";_RecordsetPtr ResultSet = ado.GetRecordSet((_bstr_t)sql);int Num = atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("Num"));if (Num!=0){CCusInfoDlg cusDlg;cusDlg.Cid = serDlg.m_Cid ADOConn ado;CString sql = "select * from Custom where Cid='"+cusDlg.Cid+"'";_RecordsetPtr ResultSet = ado.GetRecordSet((_bstr_t)sql);cusDlg.m_Cname = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Cname");cusDlg.m_Cid = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Cid");cusDlg.m_Code = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Ccode");cusDlg.m_Phone = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Cphone");cusDlg.m_Rmoney = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Crmoney");cusDlg.DoModal();ado.ExitConnect();}else{AfxMessageBox("不存在该客户!"); }}}e.void CStaffDlg::OnButtonAlter() //信息修改{CMoneyDlg monDlg; ADOConn ado;CString sql = "select count(*) Num from BMoney ";_RecordsetPtr ResultSet = ado.GetRecordSet((_bstr_t)sql);monDlg.m_GetNum = atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("Num"));sql = "select count(*) Num from BInMoney";ResultSet = ado.GetRecordSet((_bstr_t)sql);monDlg.m_InNum = atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("Num"));sql = "select count(*) Num from VIP";ResultSet = ado.GetRecordSet((_bstr_t)sql);monDlg.m_VIPNum= atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("Num"));sql = "select * from Bank where Bid='00001'";ResultSet = ado.GetRecordSet((_bstr_t)sql);monDlg.m_Cash = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Bmoney");ado.ExitConnect();monDlg.DoModal();}f.void CStaffDlg::OnButtonAnyse() //员工业绩分析{// TODO: Add your control notification handler code hereCStaffIDlg staDlg;staDlg.DoModal();}心得体会:这次课程设计体会非常深刻,首先在团队合作方面,我觉得自己作为队长没有两道好我的小队,这是我的失职。
数据库原理课程设计银行储蓄管理系统
目录一、需求与功能分析 1二、系统总体框架 2三、逻辑设计 2四、类的设计与分析 4五、数据库表结构设计 8六、特色算法分析 8七、功能测试 9八、存在的不足与对策 12九、程序源代码 12银行储蓄管理系统一银行储蓄系统需求分析系统功能简介:信息系统:主要是在里面输入用户信息(户名,帐号,开户日期)主要功能:记录用户所要进行的各种存取操作(存钱,取钱),并对操作数据做好记录记录时间:主要是记录每个用户开户,存取,取钱的日期相关金额:该用户的存款金额,取款金额,执行操作后账户余额保存系统:可以以连接数据库模式保存查询过的内容,对于刚刚查询过的内容不必重复登陆工作环境:该程序可用在各种银行性质的单位,能有效管理用户信息。
方便,快捷,容易上手,安全保密,资料齐整构造该程序,主要是使用C++ & SQL系统。
在MS-DOS以及WINDOWS95以上的操作系统上可以正常运行。
现今的社会,资金流动十分频繁。
不单单是企业、厂商,连个人也不例外。
银行作为一个金融机构,在现代人们的生活中扮演着及其重要的角色。
为生活节奏飞快的现代人提供快速、便捷、高效理财服务,是每一个银行机构的共同职责。
伴随着电脑技术的发展,各大银行储蓄管理软件也随之出现在这一舞台之上。
银行储蓄管理程序的主要功能就是记录用户的账户信息,已经对用户的存取款操作作好记录及数据更新。
银行储蓄管理的特点是数据量大。
数据更新频繁。
因此便捷的操作,数据更新准确度,成了这一系统的主要指标。
二系统总框图三逻辑设计任何建模语言都以静态建模机制为基础,标准建模语言UML也不例外。
所谓静态建模是指对象之间通过属性互相联系,而这些关系不随时间而转移。
类和对象的建模,是UML建模的基础。
面向对象的开发方法的基本任务是建立对象模型,是软件系统开发的基础。
UML中的对象类图表达了对象模型的静态结构,能够有效地建立专业领域的计算机系统对象模型。
图1 系统类图动态模型主要描述系统的动态行为和控制结构。
C#课程设计-银行个人账户管理系统
5.2.3 底部
SystemFrame.aspx底部div代码: <div style="margin-top: 10px; height: 500px;"> <%--下部分--%> <iframe src="Main.aspx" name="MainFrame" id="MainFrame" style="border-width: 1px; border-color: red; width: 100%; height: 100%;"> </iframe> </div> MainFrame.aspx代码: <div> <h2 style="margin-top: 30px;">欢迎使用银行管理系统</h2> </div>
5.4.1 登录界面 5.4.2 流程图 5.4.3 进入账户 5.5 存款 14 5.5.1 运行界面 5.5.2 主要代码 5.6 取款 16 5.6.1 运行界面 5.6.2 主要代码 5.7 收支明细 19 5.7.1 运行页面 5.7.2 主要代码 5.8 删除账户 22 5.8.1 运行界面 5.8.2 主要代码 5.8.3 结果 6 设计过程及心得 分工说明 25 24 25
5.3 创建账户 5.3.1 界面
界面居中,并且顶部留有一定空间,聚焦在账号:
5.3.2 流程图
5.3.3 主要代码
CreateAccount.aspx.cs部分代码: SqlConnection con = new SqlConnection(); try { con.ConnectionString = "server=.\\sqlexpress;database=银行个人账户管 理系统;integrated security=true;"; if (con.State == System.Data.ConnectionState.Closed)
数据库课程设计实验报告-银行账户管理系统
数据库课程设计报告题目: 银行账户管理系统院系名称: 计算机学院专业名称: 软件工程班级: 09级01班学生姓名: ***学号(8位): *******指导教师: ***设计起止时间:2011年12月19日~2011年12月30日一. 设计目的银行账户管理是银行业务流程中十分重要的且必备的环节,由于银行有大量数据需要处理,全部采用人工方式明显不现实:这不仅需要花费很高的成本,而且处理事务的效率和质量都存在很大的问题,出于这些问题的考虑,使用计算机来处理这类问题就成为一个相当理想的方案。
利用计算机可以极大地降低成本,更重要的是可以几乎没有错误地高效地处理所有的事务,所以做一款基于银行账户管理方面的系统是十分必要的。
本次课程设计通过对《银行账户管理系统》中银行业务流程的基本实现以及用户环节的事务处理,旨在体验数据库设计和实现的基本过程中掌握数据库模式的设计、分析和实现方法,了解数据库应用系统软件开发的一般过程。
二. 设计内容分别完成银行业务功能、ATM功能和用户管理功能,并设计数据库以支持这些功能的实现,最后通过代码进行具体实现以及数据库链接。
所用数据库:SQL Server 2008开发语言:Java数据库设计:使用了六张表,分别为:管理员表(admin)、ATM机表(ATM)、ATM 机出纳表(ATMOutIn)、银行柜台出纳表(BankOutIn)、银行卡表(card)、用户表(users)。
三个触发器,分别为:冻结用户账号操作(userstatus_update)、ATM机存取款操作(ATMOutIn_insert)和银行存取款操作(BankOutIn_insert)。
一个视图、一个虚表:用户操作查询(allInfo(userId,cunquTime,cunquAddress,cunquMoney,cunquSummary,balanceMoney))。
银行业务功能:设置管理员账号,赋予管理员权限以实现开户、销户、存款、取款、查询、办卡和挂失功能。
银行储蓄系统报告面向对象
一、课程设计的目的和要求1.1设计目标运用数据库设计理论设计一个较完善有意义的数据库。
掌握目前流行的数据库管理系统Microsoft SqlServer 2000的使用与应用开发技术。
为数据库开发相应的应用程序,构成完整的数据库应用系统。
将设计在数据库管理系统上Oracle等一个或组合实现,开发工具可以选用VB、VC、java、html或其他程序设计语言。
1.2基本要求采用面向对象的方法开发,按照软件工程课程中讲的有关数据库及其应用系统设计章节的内容,进行分析和设计,并按照面向对象的设计流程给出相应的分析设计文档。
分析文档中应涉及到以下几个基本方面:需求分析与表达(oo分析,需求建模)、oo模型与关系模型的转换(映射方案、数据库结构、建库的sql语句)、完整性考虑(完整性约束、存储过程或触发器)、并发控制(数据并发问题,可加锁)、安全性考虑(数据库安全机制)、数据库备份与恢复、系统体系结构(c/s、b/s)、用户接口设计(操作界面设计)、程序功能设计、关键源程序等等。
1.3课题选择银行储蓄管理系统二、银行储蓄可行性分析2.1基本要求2.1.1 功能要求此系统所要完成的主要功能有两方面:储户填写存款单或取款单交给业务员键入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,完成后由系统打印存款单给储户。
如果是取款,业务员把取款金额输入系统并要求储户输入密码以确认身份,核对密码正确无误后系统计算利息并印出利息清单给储户2.1.2 性能要求为了满足储户的要求,系统必须要有高的运作速度,储户填写的表单输入到系统,系统必须能快速及时作出响应,迅速处理各项数据、信息,显示出所有必需信息并打印出各项清单,所以要求很高的信息量速度和大的主存容量;由于要存贮大量的数据和信息,也要有足够大的磁盘容量;另外,银行计算机储蓄系统必须有可靠的安全措施,以保证储户的存储安全。
2.1.3 接口要求业务员键入储户的资料要全部一直显示在屏幕上;储户键入密码到系统以核对;计算机与打印机有高速传输的连接接口,最后以纸张的形式打印出清单给储户。
银行管理系统
3.2 系统界面的设计
该界面主要给新老用户一个友好的欢迎,用户可根据自己的要求选择注册账号或者办理其他业务。
欢迎运行效果图如下:
(1) 新用户注册界面
当用户点击“我是新用户”,可以完成两个功能,一,系统录入输入用户基本信息,以及注册一个新用户;二是旧用户注册新的账号。
注册有两个界面,一个是申请注册,需用户输入必要的信息,当你申请注册时,系统会去数据库查询该身份证号以前是否注册,如果该用户注册过,直接弹出新的确认注册界面,如果该用户没有注册过,系统会将输入的信息先存进数据库中,然后确认注册。
别名:ID
含义说明:账户的唯一标识符
类型:字符型
长度:18
数据项名称:电话
别名:Tel
类型:字符型
长度:50
数据项名称:账号
别名:Number
含义说明:账号的唯一标识符
类型:字符型
长度:20
数据项名称:密码
别名:Password
类型:字符型
长度:6
数据项名称:余额
别名:Balance
类型:浮点型
(2)数据结构
3.1 程序流程图 12
3.2 系统界面的设计 13
第四章 实验小结 18
参考文献 19
附录 20
附录一 登录界面代码 20
附录二 申请注册代码 21
附录三 自动获取账号代码 22
附录四 立即注册代码 23
附录五 查询代码 24
附录六 存款代码 25
附录七 取款代码 26
附录八 转账代码 28
附录九 销户代码 30
(2) 账号(账号,密码,身份证,余额);
(3) 销户(账户);
2.3 数据库基本表
本系统的数据库有SQLserver创建,共创建了三张基本表,分别为“用户信息”、“账户”、“销户”。详细设计如下:
管理信息系统课程设计--银行储蓄管理系统
管理信息系统课程设计--银行储蓄管理系统管理信息系统课程设计银行储蓄管理系统一、引言随着经济的快速发展和金融行业的日益繁荣,银行储蓄业务作为金融服务的重要组成部分,对于银行的运营和管理至关重要。
为了提高银行储蓄业务的效率和服务质量,设计一个高效、稳定、安全的银行储蓄管理系统成为了必然需求。
本课程设计旨在开发一个功能齐全、操作便捷的银行储蓄管理系统,以满足银行储蓄业务的日常管理和客户需求。
二、系统需求分析(一)功能需求1、开户管理:能够为新客户办理储蓄账户开户手续,包括收集客户信息、设置账户类型、初始存款等。
2、存款与取款:支持客户进行存款和取款操作,实时更新账户余额。
3、账户查询:客户可以查询自己账户的余额、交易明细等信息。
4、利息计算:根据不同的储蓄类型和利率,自动计算账户利息。
5、转账业务:实现客户账户之间的资金转账。
6、报表生成:生成各类储蓄业务报表,如日结报表、月结报表等,供银行管理人员进行分析和决策。
(二)性能需求1、响应时间:系统对于各种操作的响应时间应在可接受范围内,确保客户体验良好。
2、稳定性:系统应能够长时间稳定运行,避免出现故障和数据丢失。
3、安全性:保障客户信息和资金的安全,防止数据泄露和非法操作。
(三)数据需求1、客户信息:包括姓名、身份证号码、联系方式等。
2、账户信息:账户号码、账户类型、余额、开户日期等。
3、交易记录:存款、取款、转账的时间、金额、操作类型等。
三、系统设计(一)总体架构设计银行储蓄管理系统采用 C/S(客户端/服务器)架构,客户端负责与用户进行交互,服务器端负责数据存储和业务逻辑处理。
系统分为表示层、业务逻辑层和数据访问层。
表示层:采用图形用户界面(GUI),为用户提供直观、友好的操作界面。
业务逻辑层:处理各种业务逻辑,如开户、存款、取款、转账等。
数据访问层:负责与数据库进行交互,实现数据的增删改查操作。
(二)数据库设计1、数据库表结构设计客户表(customer):包含客户编号(customer_id)、姓名(name)、身份证号码(id_number)、联系方式(contact_info)等字段。
c++课程设计报告银行账户管理系统
**理工大学C++面向对象课程设计报告目录1.概要设计 (1)1.1设计思想 (1)1.2设计方法 (1)1.3系统中主要模块和其他模块间的关系描述 (1)2.需求分析 (2)3.总体设计 (2)4.模块设计 (3)4.1开户功能模块 (3)功能模块分析 (3)代码设计及分析 (4)运行结果 (5)4.2销户功能模块 (5)功能模块分析 (5)代码设计及分析 (5)运行结果 (7)5.系统使用说明 (7)6.附录 (7)6.1设计体会 (7)6.2源程序 (8)1.概要设计1.1设计思想银行账户管理系统,通过设计一个控制台应用程序来实现工作人员遍历管理所有银行用户的银行账户功能。
通过C++面向对象的程序设计语言,利用面向对象的设计思想,将程序运用面向对象的方法逐块划分,对每个对象的性质进展分析设计。
1.2实现方法总体设计方法,是构建一个链表,来存储用户的资料,数据存储方面,用存储文件技术代替存储数据库技术。
构建一个银行账户类,封装链表的头结点,创立用户银行账户各个属性的函数及其变量。
构建一个程序操作类,用于封装实现打印操作菜单,实现主程序的操作选择等方法。
1.3系统中主要模块及各模块间的关系的描述系统中的主要模块:构造体节点:用于存放用户所用的账户信息〔,单位,,账户号,余额,地址,是否为联名账户等〕银行账户类:用于封装链表的头结点,记录删除所回收的账户号,和删除回收的账户数目;构造函数在创立对象时,完成从文件中读出用户账户所有信息的操作,析构函数在对象即将消亡时,完成将整个链表中的所有信息逐个节点的存入文件中的操作。
程序操作类:用于实现程序中,菜单打印操作,菜单项选择择等操作。
其他各个模块:节点构建函数构〔开户函数〕:链表构建函数为银行账户类的私有函数成员,银行账户类的大三功能函数之一,即是链表构建的方法,也是用户开户的方法,当构造函数运行时从文件中读入数据存入链表时调用,在用户选择开户操作时调用,实现添加一个节点的功能,进而实现链表一个节点逐个构造的功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库课程设计报告银行管理系统(总18页)-CAL-FENGHAI.-(YICAI)-Company One1-CAL-本页仅作为文档封面,使用请直接删除1 绪论1.1 选题目的及意义 (2)1.2 设计内容 (2)2 需求分析2.1 功能需求 (2)2.2 数据需求 (2)3数据库设计3.1概念结构设计 (7)3.2逻辑结构设计 (9)3.3物理结构设计 (11)4.设计结果及分析4.1查询与结果分析 (24)5.设计体会 (29)参考文献参与设计人员:姓名学号班级负责项目陈盛业信管(2)需求分析李宁信管(2)数据库设计、分析向绍鹏信管(2)绪论、设计体会阳治安信管(2)数据库设计、分析1.1选题的目的及意义银行管理系统:该系统要求建立的用户表并不是很多,完成的功能也相对有限,但其中各个表之间的联系很紧密,该系统对数据库表的设计要求会很高,所以完成这个题目,能更好的训练数据库设计和VC的编程能力,选择该题目就是充分训练数据库表设计的能力和运用VC的能力。
1.2 设计内容用户管理模块:建立新用户、删除老用户、更改用户操作;账户操作模块:账户信息、活期存取款操作、查询活期操作记录、定期存款、定期取款、查询定期操作记录;数据库模块:数据库备份、数据库恢复;2需求分析2.1功能需求对于用户部分,能够新建和删除用户,在操作过程中可以更改用户;对于账户部分,可以查询用户的信息,包括各种基本信息、活期余额、定期账单等;对于账户操作部分,有活期存取款、定期存取款操作,另外操作完成之后存储相应的操作记录并能够查询操作记录等功能。
2.2数据需求2.21数据字典银行管理系统数据流图中,数据信息和处理过程需要通过数据字典才能描述清楚。
在定义的银行数据库管理系统数据字典中,主要对数据流图中的账户信息定期历史操作记录定期存款定期取款活期操作进行说明。
【1】数据需求的描述(1)数据项名称:帐号含义说明:惟一标识一个用户类型:数字型长度:20逻辑关系:不允许为空(2)数据项名称:开户人姓名类型:字符型长度:20逻辑关系:不允许为空(3)数据项名称:账户密码类型:数字型长度:6逻辑关系:不允许为空(4)数据项名称:身分证号类型:数字型长度:20逻辑关系:不允许为空(5)数据项名称:账户余额类型:数字型逻辑关系:不允许为空(6)数据项名称:开户日期类型:数字型逻辑关系:不允许为空(7)数据项名称:开户地址类型:字符型长度:30逻辑关系:不允许为空(8)数据项名称:利息类型:数字型逻辑关系:不允许为空(9)数据项名称:金额含义说明:可以表示为存入和支出类型:数字型逻辑关系:不允许为空(10)数据项名称:存入日期类型:数字型逻辑关系:不允许为空(11)数据项名称:存款人姓名类型:字符型长度:10逻辑关系:不允许为空(12) 数据项名称:存储年份类型:数字型逻辑关系:不允许为空(13) 数据项名称:存储利率类型:float型逻辑关系:不允许为空(14)数据项名称:取款人姓名类型:字符型长度:10逻辑关系:不允许为空【2】.数据结构的描述(1)数据名字:注册申请表数据来源:储户数据目的:储户信息数据组成:姓名+密码+住址+身份证号码(2)数据名字:储户信息表数据来源:储户数据目的:身份验证数据组成:姓名+密码+住址+身份证号码+现有金额(3)数据名字:利息清单数据来源:系统数据目的:储户数据组成:利息+姓名+取款时间(4)数据名字:存单数据来源:存款信息表数据目的:储户数据组成:姓名+到期时间+存入类型+存入时间+利率+存入金额(5)数据名字:取款单数据来源:储户数据目的:取款信息表数据组成:姓名+到期时间+存入类型+存入时间+利率+取款金额+身份证号(6)数据名字:存款单数据来源:储户数据目的:存款信息表数据组成:姓名+到期时间+存入类型+存入时间+利率+存入金额+身份证号【3】. 数据存储描述(1)数据存储名称:储户基本表含义说明:存放储户的有关信息组成结构:储户信息包括账号,姓名,密码,身份证号,性别,帐户余额,开户日期,开户地址。
说明:储户帐号具有惟一性和非空性。
(2)数据存储名称:活期存取款表含义说明:存放活期存取款的信息组成结构:活期存取款包括帐号,金额,办理日期,利息,账户余额;说明:帐号具有惟一性和非空性.(3)数据存储名称:定期存款表;含义说明:存放定期存款的信息组成结构:帐号,存款人姓名,金额,存储年份,年利率,存储日期说明:帐号,存储日期,存储年份,年利率具有惟一性和非空性.(4)数据存储名称:定期取款表;含义说明:存放定期取款的信息组成结构:帐号,取款人姓名,取款金额,取款日期.说明:帐号,取款人姓名,取款日期具有惟一性和非空性. (5)数据存储名称:定期记录表含义说明:存放定期存取款的信息组成结构:帐号,存取款人姓名,操作金额,年份,操作日期说明:帐号,操作日期具有惟一性和非空性.3. 数据库设计3.1概念结构设计图1银行基本信息实体图 图2储户基本信息实体图图3定期记录基本信息实体图图4 合并部分视图生成E-R图3.2 逻辑结构设计3.2.1 E-R图向关系模型的转换(1)一个1:1联系可转换为一个独立的关系模式,可以与任意一端对应的关系模式合并;(2)一个1:n联系可以转换为独立的关系模式,也可以与n端对应的关系模式合并;(3)一个m:n联系转换为一个关系模式。
与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分;将实体转化为关系模式。
由E-R图转换成关系模式储户(帐号,姓名,密码,身份证号,性别,帐户余额,开户日期,开户地址);活期存取款(nID,帐号,金额,办理日期,利息,账户余额);定期存款(nID,帐号,存款人姓名,金额,存储年份,年利率,存储日期);定期取款(nID,帐号,取款人姓名,取款金额,取款日期);定期记录(nID,帐号,存取款人姓名,操作金额,操作类型,操作日期)3.2.2判断每个表分别属于第几范式(1)由储户表(姓名,账号,密码,身份证号,性别,帐户余额,开户日期,开户地址)写出数据依赖:储户姓名→身份证号,储户姓名→账号,储户姓名→地址该表中的各个元组都不可再分、并且无部分函数依赖和传递函数依赖、主码都是候选码,所以该表满足BCNF范式。
(2)由活期存取款表(序号,利息,帐号,金额,办理日期,账户余额);写出数据依赖:利息→帐号,利息→办理日期,利息→金额该表中的每个元组都不可再分、并且无部分函数依赖和传递函数依赖、主码都是候选码,所以该表也满足BCNF范式。
(3)由定期存款表 (序号,年利率,帐号,存款人姓名,金额,存储年份,存储日期)写出数据依赖:年利率→存储年份,年利率→存储日期,该表中每个元组都不可再分并且无部分函数依赖和传递函数依赖、主码都是候选码,所以该表同样满足BCNF范式。
(4)由定期取款表 (序号,取款人姓名,帐号,取款金额,取款日期)写出数据依赖:取款人姓名→帐号该表中各个元组都不可再分同样无部分函数依赖和传递函数依赖并且主码都是候选码,所以该表同样满足BCNF范式。
(5)由定期记录表(序号,存取款人姓名,帐号,操作金额,操作类型,操作日期)写出数据依赖:存取款人姓名→帐号储户(帐号,姓名,密码,身份证号,性别,帐户余额,开户日期,开户地址);活期存取款(nID,帐号,金额,类型,办理日期,利息,账户余额);定期存款(nID,帐号,存款人姓名,金额,存储年份,年利率,存储日期);定期取款(nID,帐号,取款人姓名,取款金额,取款日期);定期记录(nID,帐号,存取款人姓名,类型,操作金额,年份,操作日期)3.3 物理结构设计储户表主键:帐号;约束条件:各属性均非空,密码长度为6位;活期存取款表主键:nID;外键:帐号;被参照表:储户表约束条件:各属性均非空;定期存款表主键:nID;外键:帐号;被参照表:储户表约束条件:各属性均非空;定期取款表主键:nID;外键:nID;被参照表:定期存款表约束条件:各属性非空定期操作记录表主键:nID;外键:nID;被参照表:定期存款表,定期取款表约束条件:各属性非空3.4创建基本表提高查询速度,分别为各表经常查询的列建立索引。
(1)为chuhu(储户表)中的cno属性建立唯一索引cno:CREATE UNIQUE INDEX cno_index on chuhutable(cno);(2)为Hcq(活期存取款表)中nid属性建立唯一索引nid:CREATE UNIQUE INDEX nid_index ON Hcq(nid);(3)为dqcun (定期存款表)中nid属性建立降序唯一索引niddesc:CREATE UNIQUE INDEX niddesc ON dqcun(nid desc); (4)为dqqu (定期取款表)中nid属性建立升序唯一索引nidasc:CREATE UNIQUE INDEX nidasc ON dqqu(nid asc);(5)为dqjilu (定期记录表)中nid属性建立降序唯一索引niddesc:CREATE UNIQUE INDEX niddesc ON dqjilu n (nid desc);数据的载入是一个非常繁杂和重要的过程需要很大的工作量,可分为人工输入与其它格式数据文件导入。
该系统只是一个简单的实验系统,所以采用手工输入少量的数据可满足实验要求即可。
分别给储户基本信息表,活期存取款基本信息表,定期存款基本信息表,定期取款基本信息表和定期操作记录基本信息表输入数据。
下面若干个表分别显示了所要求的表基本信息息的录入和显示的结果(1)创建储户表Create table chuhu(CNo int primary key,CName char(20) not null,CPassword int not null,CID int not null,CAddress char(20) not null,CBalance int not null,CDate datetime not null,CSex char(2) not null,)图5利用查询编辑器创建储户信息表图6储户信息表(2)创建活期存取款表Create table Hcq(nID int primary key,CNo int not null,CMoney int not null,CBalance int not null,CDate datetime not null,CInterest int not null,)图7利用查询编辑器创建活期存取款表图8活期存取款表(3)创建定期存款表Create table dqcun(nID int primary key,CNo int not null,CName char(10) not null,CMoney int not null,Crate float not null,CYear int not null,CDate datetime not null,)图9利用查询编辑器创建定期存款表图10定期存款表(4)创建定期取款表Create table dqqu(nID int primary key,CNo int not null,CDate datetime not null,CMoney int not null,CName char(20) not null,)图11利用查询编辑器创建定期取款表图12定期取款表(5)定期操作记录表Create table dqjilu(nID int primary key,CNo int not null,CDate datetime not null,CStyle char(4) not null,CMoney int not null,CName char(8) not null,)图13利用查询编辑器创建定期操作记录表图14定期操作记录表3.4.1为系统创建视图(1)储户表的视图图15 储户表的视图(2)活期存取款表的视图图16活期存取款表的视图(3)定期存款表的视图图17 定期存款表的视图(4)定期取款表的视图图18 定期取款表的视图(5)定期操作记录的视图图19 定期操作记录的视图4.设计结果及分析4.1 查询与结果分析(1)查询储户姓名为王刚的用户的信息结果为:图20查询储户姓名为王刚的用户的信息(2)查询操作金额为85000元用户的帐号结果为:图21查询操作金额为85000元用户的帐号(3)查询定期存取款表中序号为1的用户的名字结果为:图22查询定期存取款表中序号为1的用户的名字结果为:图23为储户表插入一条数据信息(5)创建角色u1并将对储户表查询,修改和插入的功能赋给角色u1create role u1grant select,update,inserton chuhuto u1结果为:图24创建角色u1并将对储户表查询,修改和插入的功能赋给角色u1(6)收回角色u1储户表修改的功能revoke updateon chuhufrom u1结果为:图25收回角色u1储户表修改的功能(7)删除角色u1结果为:图26删除角色u1(8)建立触发器,当向储户表插入新信息后,打印出又添加了一个供应商信息字样结果为:图27建立触发器(9)创建查看一个储户的基本信息的存储过程结果为:图28创建存储过程5.设计体会这次银行管理系统课程设计,我主要采用是Microsoft SQL Severe2005数据库设计软件。