版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘 要银行管理系统在无论在网络上,还是各种管理系统软件的资料上都有讲解,而且均非常详细,其难度也可想而知。这次课程设计时间紧迫,另外作者本身能力也十分有限,只能完成银行管理系统中的少量功能,所以该系统还有很多有待扩充及完善的地方,有不妥善的地方还请老师指点。(这些应出现在总结,在此应简要说明选题的目的及意义)这次课程设计只是达到训练、牢固知识的目的,熟悉数据库的前台和后台编程、vc+的控件、如何访问数据库等方面的知识,所以实现的功能也很有限,待以后随着知识的积累,慢慢地扩充完善该系统。本系统采用了可视化的集成开发环境visual c+ 6.0编辑用户操作界面、以sql sever为后台数据库并
2、以crecordset类访问数据库信息的管理系统,该系统能够完成用户帐号的建立、用户存取款、数据备份与恢复等基本功能。关键字:sql数据库、sql语言、vc+、银行管理系统目 录1 绪论1.1 选题目的及意义11.2 设计内容12 需求分析2.1 功能需求12.2 数据需求12.3 其他需求13数据库设计3.1概念结构设计23.2逻辑结构设计23.3物理结构设计24 系统功能设计45 系统实现5.1 开发环境45.2 主要功能的运行结果及代码46 总结18参考文献(页码再核对一下)1 绪论1.1选题的目的及意义 银行管理系统:该系统要求建立的用户表并不是很多,完成的功能也相对有限,但其中各个表
3、之间的联系很紧密,该系统对数据库表的设计要求会很高,所以完成这个题目,能更好的训练数据库设计和vc的编程能力,选择该题目就是充分训练数据库表设计的能力和运用vc的能力。1.2 设计内容用户管理模块:建立新用户、删除老用户、更改用户操作;账户操作模块:账户信息、活期存取款操作、查询活期操作记录、定期存款、定期取款、查询定期操作记录;数据库模块:数据库备份、数据库恢复;2 需求分析2.1 功能需求对于用户部分,能够新建和删除用户,在操作过程中可以更改用户;对于账户部分,可以查询用户的信息,包括各种基本信息、活期余额、定期账单等;对于账户操作部分,有活期存取款、定期存取款操作,另外操作完成之后存储相
4、应的操作记录并能够查询操作记录等功能。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),取款人姓名v
5、arhcar(10),取款金额float,取款日期datetime;定期历史操作记录:帐号varchar(20),存取款人姓名varhcar(10),类型(存入,支出),办理日期datetime,存储年份int,存储利率float;2.3 其它需求完成数据库的备份与恢复,系统登录对话框等功能。3. 数据库设计3.1概念结构设计活期存取款存储帐号银行储户开户地址姓名性别帐户余额开户日期密码身份证号定期存取款定期操作记录活期操作记录 银行管理系统e-r图3.2 逻辑结构设计储户(帐号,姓名,密码,身份证号,性别,帐户余额,开户日期,开户地址);活期存取款(nid,帐号,金额,类型,办理日期,利息,
6、账户余额);定期存款(nid,帐号,存款人姓名,金额,存储年份,年利率,存储日期);定期取款(nid,帐号,取款人姓名,取款金额,取款日期);定期记录(nid,帐号,存取款人姓名,类型,操作金额,年份,操作日期)3.3 物理结构设计储户表序号字段名称字段描述数据类型长度属性1cno帐号varchar20pk2cname开户人姓名varhcar20非空3cpassword登录密码char6非空4cid身份证号varchar20非空5csex性别char 2非空6cbalance帐户余额float8非空7cdate开户日期datetime8非空8caddress开户地址varchar30非空主键:
7、帐号;约束条件:各属性均非空,密码长度为6位;活期存取款表序号字段名称字段描述数据类型长度属性1nid序号int4pk2cno帐号varchar20非空3cmoney操作金额float8非空4cstyle操作类型varchar10非空5cdate操作日期datetime8非空6cinterest利息float8非空7cbalance帐户余额float8非空主键:nid;外键:帐号;被参照表:储户表约束条件:各属性均非空;定期存款表序号字段名称字段描述数据类型长度属性1nid序号int4pk2cno帐号varchar20非空3cname存款人姓名varchar10非空4cmoney存款金额flo
8、at8非空5cdate存款日期datetime8非空6cyear存储年份int4非空7crate存储利率float8非空主键:nid;外键:帐号;被参照表:储户表约束条件:各属性均非空;定期取款表序号字段名称字段描述数据类型长度属性1nid序号int4pk2cno帐号varchar20非空3cname取款人姓名varchar10非空4cmoney取款金额float8非空5cdate取款日期datetime8非空主键:nid;外键:nid;被参照表:定期存款表约束条件:各属性非空定期操作记录表序号字段名称字段描述数据类型长度属性1nid序号int4pk2cno帐号varchar20非空3cnam
9、e存取款人姓名float8非空4cstyle操作类型char4非空5cmoney存取款金额float8非空6cyear存储年份int4非空7cdate存取款日期datetime8非空主键:nid;外键:nid;被参照表:定期存款表,定期取款表约束条件:各属性非空4.系统功能设计银行管理系统银行账户系统管理理新建账户删除账户更改账户账户管理退出系统账户操作查看账户信息活期操作定期操作活期存取款查看历史记录定期存款定期取款查看历史记录数据库管理数据库备份数据库恢复账户登录,身份验证图4-1银行管理系统功能结构图5 .系统实现5.1 系统开发环境软件:sql sever 2000,vc+6.0操作系
10、统:window xp硬件:pentiun 4 ddr 512mb 120g硬盘5.2主要功能的运行结果及代码数据库创建过程及其连接(1).进入企业管理器窗口,选择“新建sql sever注册”;(2).选中“数据库”文件夹,单击鼠标右键,选择“新建数据库”,输入数据库名bank;(3).单击“确定”按钮,关闭对话框,数据库创建成功。完成“账户登录”的窗口id控件类型成员变量说明idc_edit1cstringm_strno用户帐号idc_edit1ceditm_ctrnoidc_edit2cstringm_strpassword登录密码idc_edit2ceditm_ctrpasswordi
11、dc_edit3cstringm_strrepassword确认密码idc_edit3ceditm_ctrrepasswordidok“ok”按钮idcancle“cancle”按钮(1) 添加记录集类caccountset类,基类为crecordset,数据表为account表;(2) 在clogindlg类中添加caccontset类的成员变量m_recordset;(3) 为“cbankapp”类添加为cstring型的成员变量strno;(4) idok控件的消息响应函数:void clogindlg:onok() updatedata(true);if (m_strno = )mes
12、sagebox(please input the account number!);m_ctrno.setfocus();return ;if (m_strpassword = )messagebox(please input the password!);m_ctrpassword.setfocus();return ;if (m_strrepassword = )messagebox(please input the confirm password!);m_ctrrepassword.setfocus();return ;if (m_strpassword != m_strrepassw
13、ord)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
14、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(
15、);(5) 在“cbankapp”类中的“initinstance()”函数中添加登录对话框的对象:clogindlg dlg;if (dlg.domodal() != idok)return false;完成“创建新帐户”的窗口:id控件类型成员变量说明idc_combo1ccomboboxm_ctrsex性别idc_datetimepicker1ctimem_tmdate开户日期idc_edit1cstringm_strno帐号idc_edit1ceditm_ctrnoidc_edit2cstringm_strname开户人姓名idc_edit2ceditm_ctrnameidc_edit
16、3cstringm_strpassword密码idc_edit3ceditm_ctrpasswordidc_edit4cstringm_strcompassword确认密码idc_edit4ceditm_ctrcompasswordidc_edit5cstringm_strid身份证号idc_edit5ceditm_ctrididc_edit6doublem_bbalance帐户余额idc_edit7cstringm_straddress开户地址idc_edit7ceditm_ctraddressidok“确定”按钮idcancle“取消”按钮(1) 在caccountdlg类中添加cacco
17、ntset类的成员变量m_recordset;(2) 添加记录集类ccurrentset类,基类为crecordset,数据表为current表;(3) 添加初始化对话框oninitdialog()方法:bool caccountdlg:oninitdialog() cdialog:oninitdialog();m_tmdate = ctime:getcurrenttime();m_ctrsex.addstring(男);m_ctrsex.addstring(女);updatedata(false);return true; (4) idok控件的消息响应函数,完成对帐户表和活期存取款表的记录
18、添加。完成“删除帐户”的功能:在cmainframe类中添加菜单的消息响应函数,找到当前用户在账户表中的记录,并且判断该帐户是否还有活期存款和定期存款,如果有记录,则无法删除帐户。void cmainframe:ondeleteaccount() / todo: add your command handler code herecbankapp * ptheapp = (cbankapp *) afxgetapp();cstring strsql;strsql.format(select * from account where cno = %s,ptheapp-strno);caccoun
19、tset recordset;if (!recordset.open(afx_db_use_default_type,strsql)messagebox(open database filed!,database error,mb_ok);return ;if (messagebox(确定删除该用户?,提示,mb_yesno) = idyes)if (recordset.m_cbalance != 0)recordset.close();messagebox(用户账户中活期存款仍存有余额,无法进行销户!);return ;ctimedepositset tds;cstring strrecor
20、d;strrecord.format(select * from timedeposit where cno = %s,ptheapp-strno);if (!tds.open(afx_db_use_default_type,strrecord)recordset.close();messagebox(open database filed!,database error,mb_ok);return ;if (tds.getrecordcount() != 0)recordset.close();tds.close();messagebox(用户账户中仍存有定期账目,无法销户!);return
21、 ;recordset.delete();recordset.requery();recordset.close();messagebox(用户账户删除成功!);elserecordset.close();return ;完成“更改帐户”的功能:在cmainframe类中添加菜单的消息响应函数,重新打开登录对话框:void cmainframe:onchangeaccount() / todo: add your command handler code hereclogindlg dlg; dlg.domodal();完成“退出系统”的功能:在cmainframe类中添加菜单的消息响应函数:
22、void cmainframe:onexit() if (messagebox(确定退出该系统?,提示,mb_yesno) = idyes)postquitmessage(1);return ;完成“查询账户信息”的功能:id控件类型成员变量说明idc_datetimepicker1ctimem_tmdate开户日期idc_edit1cstringm_strno帐号idc_edit2cstringm_strname姓名idc_edit3cstringm_straddress开户地址idc_edit4cstringm_strbalance帐户余额idc_list1clistctrlm_ctrli
23、st列表控件idok“确定”按钮(1)添加初始化对话框oninitdialog()响应函数,初始化对话框信息;(2)为caccountinfo类添加void型的成员函数refreshlist(),初始化列表信息。完成“活期存取款”功能id控件类型成员变量说明idc_button_deposit“存款”按钮idc_button_get“取款”按钮idc_button_history“历史记录”按钮idc_edit1cstringm_strname存取款人姓名idc_edit2cstringm_strbalance账户余额idc_edit3doublem_bmoney存取金额idc_edit3ce
24、ditm_ctrmoneyidok“ok”按钮idcancle“cancle”按钮(1) 添加初始化对话框oninitdialog()响应函数,初始化对话框信息;(2) 添加各种操作的消息响应函数,为存取款表添加相应的记录;完成“查看活期存取款历史记录”功能:id控件类型成员变量说明idc_list1mlistctrlm_ctrlistidok“ok”按钮idcancle“cancle”按钮(1) 添加初始化对话框oninitdialog()响应函数,初始化对话框信息;(2) 添加refreshlist()类成员函数,初始化列表信息;bool chistroyrecorddlg:oninitd
25、ialog() cdialog:oninitdialog();m_ctrlist.insertcolumn(0,存取款人姓名);m_ctrlist.insertcolumn(1,操作类型);m_ctrlist.insertcolumn(2,操作金额);m_ctrlist.insertcolumn(3,账户余额);m_ctrlist.insertcolumn(4,操作日期);m_ctrlist.setcolumnwidth(0,120);m_ctrlist.setcolumnwidth(1,80);m_ctrlist.setcolumnwidth(2,80);m_ctrlist.setcolum
26、nwidth(3,80);m_ctrlist.setcolumnwidth(4,100);m_ctrlist.setextendedstyle(lvs_ex_fullrowselect);refreshlist();/ todo: add extra initialization herereturn true; / return true unless you set the focus to a control / exception: ocx property pages should return falsevoid chistroyrecorddlg:refreshlist()m_c
27、trlist.deleteallitems();m_ctrlist.setredraw(false);cbankapp * ptheapp = (cbankapp *) afxgetapp();ccurrentset m_recordset;/*打开用户账户记录*/if (!m_recordset.open(afx_db_use_default_type)messagebox(open database filed!,database error,mb_ok);return ;int i = 0; while (!m_recordset.iseof()if (m_recordset.m_cno
28、 = ptheapp-strno)m_ctrlist.insertitem(i,m_recordset.m_cno);m_ctrlist.setitemtext(i,1,m_recordset.m_cstyle);cstring strmoney;strmoney.format(%.2lf,m_recordset.m_cmoney);m_ctrlist.setitemtext(i,2,strmoney);cstring strbal;strbal.format(%.2lf,m_recordset.m_cbalance);m_ctrlist.setitemtext(i,3,strbal);/*c
29、onvert datatime to cstring */cstring strdate = m_recordset.m_cdate.format(_t(%y %b %d);m_ctrlist.setitemtext(i,4,strdate);i+;m_recordset.movenext();m_ctrlist.setredraw(true);m_recordset.close();完成“定期存款”功能:id控件类型成员变量说明idc_combo1ccomboxboxm_ctryearidc_combo1cstringm_stryear存储年份idc_combo2ccomboxboxm_ct
30、rrateidc_combo2cstringm_strrate存储利率idc_datetimepicker2ctimem_tmdate存储日期idc_edit1cstringm_strname存款人姓名idc_edit1ceditm_ctrnameidc_edit2doublem_bmoney存储金额idc_edit2ceditm_ctrmoneyidok“ok”按钮idcancle“cancle”按钮(1) 添加初始化对话框oninitdialog()响应函数,初始化对话框信息;(2) 添加各种操作的消息响应函数,为存取款表添加相应的记录;完成“定期取款”的功能:id控件类型成员变量说明id
31、c_timedatepicker1ctimem_tmddate存款日期idc_timedatepicker3ctimem_tmgdate取款日期idc_edit1cstringm_strdname存款人姓名idc_edit2doublem_bmoney存款金额idc_edit3longm_nyear存款年份idc_edit4cstringm_strgname取款人姓名 idc_edit4ceditm_ctrgnameidc_edit5cstringm_strinterest存款利息idc_edit6doublem_dsum取款金额idc_list1clistctrlm_ctrlistidokc
32、buttonm_ctrok“取款”按钮idcancle“取消”按钮(1) 添加初始化对话框oninitdialog()响应函数,初始化对话框信息;(2) 添加refreshlist()类成员函数,初始化已存在的定期存单的列表信息;(3) 添加取款操作的消息响应函数,在存款记录中删除该记录,在取款记录表中添加该操作记录,在历史操作记录表中添加该操作记录。完成“查询定期存取款历史记录”功能:id控件类型成员变量说明idc_list1mlistctrlm_ctrlistidok“ok”按钮idcancle“cancle”按钮(1) 添加初始化对话框oninitdialog()响应函数,初始化对话框信
33、息;(2) 添加refreshlist()类成员函数,初始化定期存款历史记录的列表信息;完成“数据库备份”的功能:(1) 在应用类里为master数据库添加名为master的数据源sqlconfigdatasource(null,odbc_add_sys_dsn,sql server,dsn=master0server=(local)0database=master0 trusted_connection=yes);(2) 在mainframe类里添加数据库备份的消息响应函数:void cmainframe:ondatabasebackup() / todo: add your command
34、 handler code herecstring strbackup;cfiledialog dlg(false,bak,null,ofn_hidereadonly,数据库文件 (*.bak)|*.bak|,null);if (dlg.domodal() = idok)strbackup = dlg.getpathname();invalidate(false);if (strbackup != )cdatabase database;if (!database.isopen()if (database.open(_t(master)cstring strsql; strsql.format(backup database bank to disk = %s,str
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 历史隋唐时期的民族交往与交融 课件 2025-2026学年统编版七年级历史下学期
- 医药活动招商策划方案(3篇)
- 住院医师规范化培训《全科医学》模拟练习题与参考答案
- 2025年8月住院医师规范化培训《康复医学》练习题库(附答案)
- 食品饮料行业调研报告:需求稳中向好茅台领衔白酒零食餐供亮眼-2026年食品饮料春节旺季调研反馈
- 医药股票投资可行性研究报告
- 年产1.6GWh户用钠电池储能系统生产项目可行性研究报告
- 温通拨筋罐在脑卒中后便秘中的应用
- 农业领域中的太阳能利用技术探讨
- 传染病防控中护理人员职责与操作规范
- 北交所知识测评题100道含答案
- 电动单梁起重机(双速)设计计算书
- 第二章第一次世界大战
- SB/T 10130-2008绞肉机技术条件
- 无领导小组讨论ppt
- GB/T 15543-2008电能质量三相电压不平衡
- GB/T 15237.1-2000术语工作词汇第1部分理论与应用
- GA/T 686-2018信息安全技术虚拟专用网产品安全技术要求
- FZ/T 93047-2011针刺机
- 2023年煤矿重大灾害防治工作实施方案
- 医院压缩感知磁共振快速成像应用培训
评论
0/150
提交评论