logo资料库

银行储蓄管理系统.doc

第1页 / 共12页
第2页 / 共12页
第3页 / 共12页
第4页 / 共12页
第5页 / 共12页
第6页 / 共12页
第7页 / 共12页
第8页 / 共12页
资料共12页,剩余部分请下载后查看
摘 要 银行管理系统在无论在网络上,还是各种管理系统软件的资料上都有讲解, 而且均非常详细,其难度也可想而知。这次课程设计时间紧迫,另外作者本身能 力也十分有限,只能完成银行管理系统中的少量功能,所以该系统还有很多有待 扩充及完善的地方,有不妥善的地方还请老师指点。(这些应出现在总结,在此 应简要说明选题的目的及意义)这次课程设计只是达到训练、牢固知识的目的, 熟悉数据库的前台和后台编程、VC++的控件、如何访问数据库等方面的知识,所 以实现的功能也很有限,待以后随着知识的积累,慢慢地扩充完善该系统。 本系统采用了可视化的集成开发环境 Visual C++ 6.0 编辑用户操作界面、 以 SQL Sever 为后台数据库并以 CRecordSet 类访问数据库信息的管理系统,该 系统能够完成用户帐号的建立、用户存取款、数据备份与恢复等基本功能。 关键字:SQL 数据库、SQL 语言、VC++、银行管理系统 1
目 录 1 绪论 1.1 选题目的及意义……………………………………………1 1.2 设计内容……………………………………………………1 2 需求分析 2.1 功能需求……………………………………………………1 2.2 数据需求……………………………………………………1 2.3 其他需求……………………………………………………1 3 数据库设计 3.1 概念结构设计………………………………………………2 3.2 逻辑结构设计………………………………………………2 3.3 物理结构设计………………………………………………2 4 系统功能设计……………………………………………………4 5 系统实现 5.1 开发环境………………………………………………4 5.2 主要功能的运行结果及代码…………………………4 6 总结…………………………………………………………18 参考文献 (页码再核对一下) 2
1 绪论 1.1 选题的目的及意义 银行管理系统:该系统要求建立的用户表并不是很多,完成的功能也相对有限,但其中 各个表之间的联系很紧密,该系统对数据库表的设计要求会很高,所以完成这个题目,能更 好的训练数据库设计和 VC 的编程能力,选择该题目就是充分训练数据库表设计的能力和运 用 VC 的能力。 1.2 设计内容 用户管理模块:建立新用户、删除老用户、更改用户操作; 账户操作模块:账户信息、活期存取款操作、查询活期操作记录、定期存款、定期取款、 查询定期操作记录; 数据库模块:数据库备份、数据库恢复; 2 需求分析 2.1 功能需求 对于用户部分,能够新建和删除用户,在操作过程中可以更改用户;对于账户部分, 可以查询用户的信息,包括各种基本信息、活期余额、定期账单等;对于账户操作部分, 有活期存取款、定期存取款操作,另外操作完成之后存储相应的操作记录并能够查询操 作记录等功能。 2.2 数据需求 账户信息:帐号 varchar(20),开户人姓名 varchar(20),账户密码 char(6),身分证 号 varchar(20),账户余额 float,开户日期 datetime,开户地址 varchar(30); 活期操作:帐号 varchar(20),金额 float,类型(存入,支出),账户余额 float,利 息 float,存入日期 datetime; 定期存款:帐号 varchar(20),存款人姓名 varhcar(10),存款金额 float,存款日期 datetime,存储年份 int,存储利率 float; 定期取款:帐号 varchar(20),取款人姓名 varhcar(10),取款金额 float,取款日期 datetime; 定期历史操作记录:帐号 varchar(20),存取款人姓名 varhcar(10),类型(存入,支出), 办理日期 datetime,存储年份 int,存储利率 float; 2.3 其它需求 完成数据库的备份与恢复,系统登录对话框等功能。 3
3. 数据库设计 3.1 概念结构设计 活期操作记录 活期存取款 帐号 姓名 密码 银行 存储 储户 身份证号 性别 定期操作记录 定期存取款 开户地址 开户日期 帐户余额 银行管理系统 E-R 图 3.2 逻辑结构设计 储户(帐号,姓名,密码,身份证号,性别,帐户余额,开户日期,开户地址); 活期存取款(nID,帐号,金额,类型,办理日期,利息,账户余额); 定期存款(nID,帐号,存款人姓名,金额,存储年份,年利率,存储日期); 定期取款(nID,帐号,取款人姓名,取款金额,取款日期); 定期记录(nID,帐号,存取款人姓名,类型,操作金额,年份,操作日期) 3.3 物理结构设计 序号 字段名称 字段描述 储户表 数据类型 Varchar 1 2 3 4 5 6 7 8 CNo CName CPassword CID CSex CBalance CDate CAddress 帐号 开户人姓名 Varhcar 登录密码 身份证号 性别 帐户余额 开户日期 开户地址 Char Varchar Char Float Datetime Varchar 主键:帐号; 约束条件:各属性均非空,密码长度为 6 位; 长度 20 20 6 20 2 8 8 30 属性 PK 非空 非空 非空 非空 非空 非空 非空 4
序号 字段名称 字段描述 数据类型 长度 活期存取款表 1 2 3 4 5 6 7 nID CNo CMoney CStyle CDate 序号 帐号 操作金额 操作类型 操作日期 CInterest 利息 CBalance 帐户余额 Int Varchar Float Varchar Datetime Float Float 4 20 8 10 8 8 8 主键:nID;外键:帐号;被参照表:储户表 约束条件:各属性均非空; 定期存款表 序号 字段名称 字段描述 数据类型 长度 1 2 3 4 5 6 7 nID CNo CName CMoney CDate CYear CRate 序号 帐号 Int Varchar 存款人姓名 Varchar 存款金额 存款日期 存储年份 存储利率 Float Datetime Int Float 4 20 10 8 8 4 8 主键:nID;外键:帐号;被参照表:储户表 约束条件:各属性均非空; 定期取款表 序号 字段名称 字段描述 数据类型 长度 1 2 3 4 5 nID CNo CName CMoney CDate 序号 帐号 Int Varchar 取款人姓名 Varchar 取款金额 取款日期 Float Datetime 4 20 10 8 8 主键:nID;外键:nID;被参照表:定期存款表 约束条件:各属性非空 定期操作记录表 序号 字段名称 字段描述 数据类型 长度 1 2 3 4 5 6 7 nID CNo CName CStyle CMoney CYear CDate 序号 帐号 存取款人姓名 操作类型 存取款金额 存储年份 Int Varchar Float Char float Int 存取款日期 Datetime 4 20 8 4 8 4 8 主键:nID;外键:nID;被参照表:定期存款表,定期取款表 约束条件:各属性非空 属性 PK 非空 非空 非空 非空 非空 非空 属性 PK 非空 非空 非空 非空 非空 非空 属性 PK 非空 非空 非空 非空 属性 PK 非空 非空 非空 非空 非空 非空 5
4.系统功能设计 银行管理系统 账户登录,身份验证 银 行 账 户 系 统 管 理 账户管理 新建账户 退出系统 账户操作 查看账户信息 活期操作 定期操作 数据库管理 数据库备份 数据库恢复 图 4-1 银行管理系统功能结构图 5 .系统实现 删除账户 更改账户 活期存取款 查看历史记录 定期存款 定期取款 查看历史记录 5.1 系统开发环境 软件:SQL Sever 2000,VC++6.0 操作系统:Window XP 硬件:Pentiun 4 DDR 512MB 120G 硬盘 5.2 主要功能的运行结果及代码 数据库创建过程及其连接 (1).进入企业管理器窗口,选择“新建 SQL Sever 注册”; (2).选中“数据库”文件夹,单击鼠标右键,选择“新建数据库”,输入数据库名 Bank; (3).单击“确定”按钮,关闭对话框,数据库创建成功。 完成“账户登录”的窗口 6
ID IDC_EDIT1 IDC_EDIT1 IDC_EDIT2 IDC_EDIT2 IDC_EDIT3 IDC_EDIT3 IDOK IDCANCLE 控件类型 CString CEdit CString CEdit CString CEdit 成员变量 m_strNo m_ctrNo m_strPassword m_ctrPassword 说明 用户帐号 登录密码 m_strRePassword 确认密码 m_ctrRePassword “OK”按钮 “Cancle”按钮 (1) 添加记录集类 CAccountSet 类,基类为 CRecordSet,数据表为 account 表; (2) 在 CLoginDlg 类中添加 CAccontSet 类的成员变量 m_recordset; (3) 为“CBankApp”类添加为 CString 型的成员变量 strNO; (4) IDOK 控件的消息响应函数: void CLoginDlg::OnOK() { UpdateData(TRUE); if (m_strNo == "") { MessageBox("Please Input the Account Number!"); m_ctrNo.SetFocus(); return ; } if (m_strPassword == "") { MessageBox("Please Input the Password!"); m_ctrPassword.SetFocus(); return ; } 7
if (m_strRePassword == "") { MessageBox("Please Input the Confirm Password!"); m_ctrRePassword.SetFocus(); return ; } if (m_strPassword != m_strRePassword) { MessageBox("Two Passwords Are Differed!"); m_strPassword = ""; m_strRePassword = ""; UpdateData(FALSE); m_ctrPassword.SetFocus(); return ; } CString strSQL; strSQL.Format("select * from Account where CNo = '%s'",m_strNo); if (!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)) { MessageBox("Open Database Filed!","Database Error",MB_OK); return ; } if (m_recordset.m_CPassword != m_strPassword) { MessageBox("Password Error! Please Rewrite!"); m_recordset.Close(); m_strPassword = ""; m_strRePassword = ""; UpdateData(FALSE); m_ctrPassword.SetFocus(); return ; } CBankApp * ptheApp = (CBankApp *) AfxGetApp(); ptheApp->strNo = m_strNo; CDialog::OnOK(); } (5) 在“CBankApp”类中的“InitInstance()”函数中添加登录对话框的对象: CLoginDlg dlg; if (dlg.DoModal() != IDOK) { return FALSE; } 完成“创建新帐户”的窗口: 8
分享到:
收藏