1、摘 要银行管理系统在无论在网络上,还是多种管理系统软件资料上均有讲解,并且均非常详细,其难度也可想而知。这次课程设计时间紧迫,此外作者自身能力也十分有限,只能完毕银行管理系统中少许功能,因此该系统尚有诸多有待扩充及完善地方,有不妥善地方还请老师指点。这次课程设计只是到达训练、牢固知识目,熟悉数据库前台和后台编程、VC+控件、怎样访问数据库等方面知识,因此实现功能也很有限,待后来伴随知识积累,慢慢地扩充完善该系统。本系统采用了可视化集成开发环境Visual C+ 6.0编辑顾客操作界面、以SQL Sever为后台数据库并以CRecordSet类访问数据库信息管理系统,该系统可以完毕顾客帐号建立、
2、顾客存取款、数据备份与恢复等基本功能。关键字: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选题目及意义 银行管理系统:该系统规定建立顾客表并不是诸多,完毕功能也相对有限,但其中各个表之间联络很紧密,该系统对数据库表设计规定会很高,因此完毕这个题目,能更好训练数据库设计和ja
3、va编程能力,选择该题目就是充足训练数据库表设计能力和运用java能力。1.2 设计内容顾客管理模块:建立新顾客、删除老顾客、更改顾客操作;账户操作模块:账户信息、活期存取款操作、查询活期操作记录、定期存款、定期取款、查询定期操作记录;数据库模块:数据库备份、数据库恢复;2 需求分析2.1 功能需求对于顾客部分,可以新建和删除顾客,在操作过程中可以更改顾客;对于商品部分,可以查询商品信息,包括多种商品信息、商品单价、商品名单等;对于顾客操作部分,有顾客登录,顾客注册操作,此外操作完毕之后存储对应操作记录并可以查询操作记录等功能。2.2 数据需求账户信息:帐号varchar(20),开户人姓名v
4、archar(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
5、(20),存取款人姓名varhcar(10),类型(存入,支出),办理日期datetime,存储年份int,存储利率float;2.3 其他需求完毕数据库备份与恢复,系统登录对话框等功能。3. 数据库设计3.1概念构造设计活期存取款存储帐号银行储户开户地址姓名性别帐户余额开户日期密码身份证号定期存取款定期操作记录活期操作记录 银行管理系统E-R图3.2 逻辑构造设计储户(帐号,姓名,密码,身份证号,性别,帐户余额,开户日期,开户地址);活期存取款(nID,帐号,金额,类型,办理日期,利息,账户余额);定期存款(nID,帐号,存款人姓名,金额,存储年份,年利率,存储日期);定期取款(nID,帐号
6、,取款人姓名,取款金额,取款日期);定期记录(nID,帐号,存取款人姓名,类型,操作金额,年份,操作日期)3.3 物理构造设计储户表序号字段名称字段描述数据类型长度属性1CNo帐号Varchar20PK2CName开户人姓名Varhcar20非空3CPassword登录密码Char6非空4CID身份证号Varchar20非空5CSex性别Char 2非空6CBalance帐户余额Float8非空7CDate开户日期Datetime8非空8CAddress开户地址Varchar30非空主键:帐号;约束条件:各属性均非空,密码长度为6位;活期存取款表序号字段名称字段描述数据类型长度属性1nID序号
7、Int4PK2CNo帐号Varchar20非空3CMoney操作金额Float8非空4CStyle操作类型Varchar10非空5CDate操作日期Datetime8非空6CInterest利息Float8非空7CBalance帐户余额Float8非空主键:nID;外键:帐号;被参照表:储户表约束条件:各属性均非空;定期存款表序号字段名称字段描述数据类型长度属性1nID序号Int4PK2CNo帐号Varchar20非空3CName存款人姓名Varchar10非空4CMoney存款金额Float8非空5CDate存款日期Datetime8非空6CYear存储年份Int4非空7CRate存储利率F
8、loat8非空主键:nID;外键:帐号;被参照表:储户表约束条件:各属性均非空;定期取款表序号字段名称字段描述数据类型长度属性1nID序号Int4PK2CNo帐号Varchar20非空3CName取款人姓名Varchar10非空4CMoney取款金额Float8非空5CDate取款日期Datetime8非空主键:nID;外键:nID;被参照表:定期存款表约束条件:各属性非空定期操作登记表序号字段名称字段描述数据类型长度属性1nID序号Int4PK2CNo帐号Varchar20非空3CName存取款人姓名Float8非空4CStyle操作类型Char4非空5CMoney存取款金额float8非空
9、6CYear存储年份Int4非空7CDate存取款日期Datetime8非空主键:nID;外键:nID;被参照表:定期存款表,定期取款表约束条件:各属性非空4.系统功能设计银行管理系统银行账户系统管理理新建账户删除账户更改账户账户管理退出系统账户操作查看账户信息活期操作定期操作活期存取款查看历史记录定期存款定期取款查看历史记录数据库管理数据库备份数据库恢复账户登录,身份验证图4-1银行管理系统功能构造图5 .系统实现5.1 系统开发环境软件:SQL Sever ,VC+6.0操作系统:Window XP硬件:Pentiun 4 DDR 512MB 120G硬盘5.2重要功能运行成果及代码数据库
10、创立过程及其连接(1).进入企业管理器窗口,选择“新建SQL Sever注册”;(2).选中“数据库”文献夹,单击鼠标右键,选择“新建数据库”,输入数据库名Bank;(3).单击“确定”按钮,关闭对话框,数据库创立成功。完毕“账户登录”窗口ID控件类型组员变量阐明IDC_EDIT1CStringm_strNo顾客帐号IDC_EDIT1CEditm_ctrNoIDC_EDIT2CStringm_strPassword登录密码IDC_EDIT2CEditm_ctrPasswordIDC_EDIT3CStringm_strRePassword确认密码IDC_EDIT3CEditm_ctrRePass
11、wordIDOK“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 = )MessageBox(Please Input the Account Number!);m_ctrNo.SetFocus();r
12、eturn ;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_strRePassword)MessageBox(Two Passwords Are Differed!);m_strPassword = ;m
13、_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_strPassw
14、ord)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;
15、if (dlg.DoModal() != IDOK)return FALSE;完毕“创立新帐户”窗口:ID控件类型组员变量阐明IDC_COMBO1CComboBoxm_ctrSex性别IDC_DATETIMEPICKER1CTimem_tmDate开户日期IDC_EDIT1CStringm_strNo帐号IDC_EDIT1CEditm_ctrNoIDC_EDIT2CStringm_strName开户人姓名IDC_EDIT2CEditm_ctrNameIDC_EDIT3CStringm_strPassword密码IDC_EDIT3CEditm_ctrPasswordIDC_EDIT4CStrin
16、gm_strComPassword确认密码IDC_EDIT4CEditm_ctrComPasswordIDC_EDIT5CStringm_strID身份证号IDC_EDIT5CEditm_ctrIDIDC_EDIT6Doublem_bBalance帐户余额IDC_EDIT7CStringm_strAddress开户地址IDC_EDIT7CEditm_ctrAddressIDOK“确定”按钮IDCANCLE“取消”按钮(1) 在CAccountDlg类中添加CAccontSet类组员变量m_recordset;(2) 添加记录集类CCurrentSet类,基类为CRecordSet,数据表为cu
17、rrent表;(3) 添加初始化对话框OnInitDialog()措施:BOOL CAccountDlg:OnInitDialog() CDialog:OnInitDialog();m_tmDate = CTime:GetCurrentTime();m_ctrSex.AddString(男);m_ctrSex.AddString(女);UpdateData(FALSE);return TRUE; (4) IDOK控件消息响应函数,完毕对帐户表和活期存取款表记录添加。完毕“删除帐户”功能:在CMainFrame类中添加菜单消息响应函数,找到目前顾客在账户表中记录,并且判断该帐户与否尚有活期存款和
18、定期存款,假如有记录,则无法删除帐户。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);CAccountSet recordset;if (!recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)Messa
19、geBox(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 strRecord;strRecord.Format(select * from TimeDeposit where CNo = %s,ptheApp-str
20、No);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 ;recordset.Delete();recordset.Requery();recordset.Close();MessageBox(顾
21、客账户删除成功!);elserecordset.Close();return ;完毕“退出系统”功能:在CMainFrame类中添加菜单消息响应函数: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_ctrList列表控件IDOK“确定”按钮(1)添加初始化对话框OnInitDialog()响应函数,初始化对话框信息;(2)为CAccountInfo类添加void型组员函数RefreshList(),初始化列表信息。