版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
银行数据库表的设计系统需求分析:1.在学习了数据库之后,为了更进一步巩固所学知识,将其用于实践,我们选择了银行管理系统,来完成最基本的一些操作。2.功能(1)•客户:包括存款,取款,转账,查询余额,查看流水,密码修改这些功能⑵•管理员:1•新增用户2•删除3•查看4•员工绩效(就是根据流水表中的员工号,select出员工一天内做的所有单,用来考评绩效)5.VIP判别(就是账户存储资金大于某个值的时候在账户表的一个字段上赋值为VIP)6•资金储备金判别,当库存资金总数小于一个值的时候,系统对管理者要提出风险警告。3.功能流程图:详细设计:详细设计:1.E-R图模型2.根据E-R图设计关系表(1).银行信息表(bank)字段名字段类型及长度允许空主键说明Bidnchar(9)noPK银行号Bnamenchar(20)no银行名Bmoneynumeric(20,3)no银行余额(2)•客户信息表(custom)字段名字段类型及长度允许空主键说明Cidnchar(9)noPK客户IDCnamenchar(10)no客户姓名Cpassnchar(10)no密码Ctimenchar(20)no注册时间Bidnchar(9)no所在银行行号外码(Bank(Bid))Crmoneynumeric(10,3)no账户余额Cphonenchar(11)no客户电话(3)•员工(管理员)表(staff)字段名字段类型及长度允许空主键说明Sidnchar(9)noPK员工IDSnamenchar(10)no员工姓名Spassnchar(10)no登陆密码SItimenchar(20)no入行时间Sphonenchar(11)no联系电话(4).流水信息表字段名字段类型及长度允许空主键说明Oidnchar⑼noPK流水号Cidnchar⑼no客户ID外码(Custom(Cid))Bidnchar⑼no银行ID外码(Bank(Bid))Sidnchar⑼no员工ID外码(Staff(Sid))Otypesmallintno操作类型Otimenchar(20)no操作时间Omoneynumeric(10,3)yes交易金额OBmoneynumeric(10,3)yes上次余额OAmoneynumeric(10,3)yes账户余额三个实体:bank’staff,custom一个联系:operate关系图:
KUN-PC.master-KUN-PC.master-dbo.Banlc>列名KnM-bC-uja^&L-qpo'Obei.s|&程序代码:客户部分:a.voidCClientDlg::OnButtonIn()〃存款函数a.{//TODO:AddyourcontrolnotificationhandlercodehereCInDlgInDlg;if(InDlg.DoModal()==IDOK){doubletemp,temp1;ADOConnado;CStringsql="select*fromCustomwhereCname='"+Cname+"'";_RecordsetPtrResultSet=ado.GetRecordSet((_bstr_t)sql);TOC\o"1-5"\h\zCStringstr=(LPCTSTR)(_bstr_t)ResultSet->GetCollect("Crmoney");CStringbid=(LPCTSTR)(_bstr_t)ResultSet->GetCollect("Bid");CStringstr4=(LPCTSTR)(_bstr_t)ResultSet->GetCollect("Cid");CStringstr2=str;〃将交易前钱数暂存temp二atof(str);temp1=(double)InDlg.m_InNum;temp+二temp1;str.Format("%f",temp);CStringstr3=str;//暂存交易后金额sql="updateCustomsetCrmoney='"+str+"'"+"whereCname='"+Cname+"'";ado.ExecuteSQL((_bstr_t)sql);sql="selectcount(*)numfromOperate";ResultSet=ado.GetRecordset((_bstr_t)sql);intnum=atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("num"));str="240600";CStringOid,Cid,Sid,Bid,Otime,Omoney,OAmoney,OBmoney;Oid.Format("%d",++num);Oid=str+Oid;Sid二"7985001";Bid=bid;doubletemp2;sql="select*fromBankwhereBid='"+Bid+"'";ResultSet二ado.GetRecordSet((_bstr_t)sql);CStringbmoney=(LPCTSTR)(_bstr_t)ResultSet->GetCollect("Bmoney");temp2=atof(bmoney);temp2+二templ;bmoney.Format("%f",temp2);sql="updateBanksetBmoney='"+bmoney+"'whereBid='"+Bid+"'";ado.ExecuteSQL((_bstr_t)sql);CStringOtype="存款";CStringm_time;CTimetime;time二CTime::GetCurrentTime();m_time=time.Format("%Y年%m月%d日%X");0time=m_time;intflag=0;Omoney.Format("%f",temp1);OAmoney=str2;OBmoney=str3;sql・Format("insertintoOperatevalues('%s','%st,'%st,'%s',t%s',t%s',%d,%s,%s,%s)",Oid,str4,Bid,Sid,Otype,m_time,flag,Omoney,OAmoney,OBmoney);ado.ExecuteSQL((_bstr_t)sql);ado.ExitConnect();}}b.voidCClientDlg::OnButtonGet()//取款函数{〃TODO:AddyourcontrolnotificationhandlercodehereCGetDlgGetDlg;;if(GetDlg・DoModal()==IDOK){doubletemp,temp1;ADOConnado;CStringsql="select*fromCustomwhereCname='"+Cname+"'";TOC\o"1-5"\h\z_RecordsetPtrResultSet=ado・GetRecordSet((_bstr_t)sql);CStringstr=(LPCTSTR)(_bstr_t)ResultSet->GetCollect("Crmoney");CStringbid=(LPCTSTR)(_bstr_t)ResultSet->GetCollect("Bid");CStringstr4=(LPCTSTR)(_bstr_t)ResultSet->GetCollect("Cid");CStringstr2=str;//将交易前钱数暂存temp=atof(str);temp1=(double)GetDlg・m_GetNum;if(temp>temp1){temp-=temp1;str.Format("%f",temp);CStringstr3=str;〃暂存交易后金额sql="updateCustomsetCrmoney='"+str+"'"+"whereCname='"+Cname+"'".9ado・ExecuteSQL((_bstr_t)sql);sql="selectcount(*)numfromOperate";ResultSet=ado.GetRecordSet((_bstr_t)sql)intnum=atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("num"));str="240600";CStringOid,Cid,Sid,Bid,Otime,Omoney,OAmoney,OBmoney;Oid.Format("%d",++num);Oid=str+Oid;Sid="7985001"Bid=bid;doubletemp2;sql="select*fromBankwhereBid='"+Bid+"'";ResultSet=ado・GetRecordSet((_bstr_t)sql);CStringbmoney=(LPCTSTR)(_bstr_t)ResultSet->GetCollect("Bmoney");temp2=atof(bmoney);temp2-=temp1;bmoney.Format("%f",temp2);sqlBank"updatesetBmoney='"+bmoney+"'whereBid='"+Bid+"'";ado・ExecuteSQL((_bstr_t)sql);CStringOtype="取款";CStringm_time;CTimetime;time=CTime::GetCurrentTime();m_time=time.Format("%Y年%皿月%4日%X");Otime=m_time;intflag=0;Omoney・Format("%f",temp1);OAmoney=str2;OBmoney=str3;sql.Format("insertintoOperatevalues('%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.voidCClientDlg::OnButtonTurn(){/TODO:AddyourcontrolnotificationhandlercodehereCTurnDlgTurnDlg;if(TurnDlg.DoModal()==IDOK){ADOConnado;CStringsql="select*fromCustom";_RecordsetPtrResultSet=ado・GetRecordSet((_bstr_t)sql);intflag=0;while(!ResultSet->adoEOF)CStringTCusId=(LPCTSTR)(_bstr_t)ResultSet->GetCollect("Cid");CStringTCusMon=(LPCTSTR)(_bstr_t)ResultSet->GetCollect("Crmoney");//收钱客户在操作前的余额CStringstr5=TCusMon;TCusId・Remove('');if(TCusId==TurnDlg.m_TurnId){doubletemp,temp1;sql="select*fromCustomwhereCname='"+Cname+"'";TOC\o"1-5"\h\zResultSet=ado・GetRecordSet((_bstr_t)sql);CStringstr=(LPCTSTR)(_bstr_t)ResultSet->GetCollect("Crmoney");CStringbid=(LPCTSTR)(_bstr_t)ResultSet->GetCollect("Bid");CStringstr4=(LPCTSTR)(_bstr_t)ResultSet->GetCollect("Cid");CStringstr2=str;//将交易前钱数暂存temp=atof(str);temp1=(double)TurnDlg.m_TurnNum;if(temp>temp1){flag=1;temp-=temp1;〃住客户钱数减少str.Format("%f",temp);CStringstr3=str;//暂存交易后金额sql="updateCustomsetCrmoney='"+str+"'"+"whereCname='"+Cname+"'";do・ExecuteSQL((_bstr_t)sql);temp=atof(TCusMon);II收钱客户钱数增加temp+=temp1;TCusMon・Format("%f",temp);sql="updateCustomsetCrmoney='"+TCusMon+"'"+"whereCid='"+TCusId+"'";ado.ExecuteSQL((_bstr_t)sql);sql="selectcount(*)numfromOperate";ResultSetado.GetRecordSet((_bstr_t)sql);intnum=atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("num"));str="240600";CStringOid,Cid,Sid,Bid,Otime,Omoney,OAmoney,OBmoney;intOtype;Oid.Format("%d",++num);Oid=str+Oid;Sid="7985001";Bid=bid;Otype=2;CStringm_time;CTimetime;time=CTime::GetCurrentTime();m_time=time・Format("%Y年%m月%d日%X");Otime=m_time;Omoney・Format("%f",temp1);OAmoney=str2;OBmoney=str3;sql.Format("insertintoOperatevalues('%s','%st,'%st,'%s',%d,'%st,%s,%s,%s)",Oid,str4,Bid,Sid,Otype,m_time,Omoney,OAmoney,OBmoney);ado.ExecuteSQL((_bstr_t)sql);sql.Format("insertintoOperatevalues('%s','%s','%s','%s',%d,'%s',%s,%s,%s)",TCusId,str4,Bid,Sid,Otype,m_time,Omoney,str5,TCusMon);ado・ExecuteSQL((_bstr_t)sql);ado・ExitConnect();break;}else{AfxMessageBox("账户余额不足!");break;}}ResultSet->MoveNext();}if(flag==0){AfxMessageBox("该账户不存在!");}}}d・voidCClientDlg::OnButtonHistoy()//历史记录査询{〃TODO:AddyourcontrolnotificationhandlercodehereCShowHistoryshowDlg;showDlg.Cname=Cname;showDlg.DoModal();}e.voidCClientDlg::OnButtonAlter(){//TODO:AddyourcontrolnotificationhandlercodehereCAlterDlgalteDlg;if(alteDlg.DoModal()==IDOK){if(alteDlg.m_AItem==0){if(alteDlg.m_Alter1==alteDlg.m_Alter2){ADOConnado;CStringsql="updateCustomsetCname='"+alteDlg.m_Alter1+"'whereCname='"+Cname+"'";ado.ExecuteSQL((_bstr_t)sql);AfxMessageBox("姓名修改成功!”);}else{AfxMessageBox("两次姓名输入不一致,请重新输入!");}}elseif(alteDlg.m_AItem==1){if(alteDlg.m_Alter1==alteDlg.m_Alter2){ADOConnado;CStringsql="updateCustomsetCpass='"+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)==T&&alteDlg.m_Alter1.GetLength()==11)ADOConnado;CStringsql="updateCustomsetCphone='"+alteDlg.m_Alter1+"'whereCname='"+Cname+"'";ado・ExecuteSQL((_bstr_t)sql);AfxMessageBox("电话号码修改成功!");}else{AfxMessageBox("电话号码格式不对!");}}else{AfxMessageBox("两次电话输入不一致,请重新输入!");}}}}高磊磊:心得体会:这次课程设计体会非常深刻,首先在团队合作方面,我觉得自己作为队长没有两道好我的小队,这是我的失职。因此导致我们小队没有按时完成任务,在这里我向老师道歉。其次在本次课程设计中我们在设计表的时候使用了级联删除,级联更新,外码以及视图等数据库功能。这个过程中我又了解到了数据的一字儿基础知识,把自己以前在认知上有盲点的地方又重新学习了一次。并且看到了数据库对数据处理的方便,对于其中封装的好多方法以及其他的对表格进行处理的方式需要我们更进一步的去学习。在MFC工程中,我是用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025国家锦泰财产保险股份有限公司招聘非车险理赔管理岗等岗位笔试历年难易错考点试卷带答案解析试卷2套
- 2026散装沥青道路建设投资周期与库存管理优化研究
- 2025年干部监督管理方案
- 2026散装天然橡胶主产区气候影响与期货市场关联报告
- 2026散装咖啡行业市场供需状况及投资价值预测研究报告
- 2026散装化肥市场消费特征与渠道拓展战略规划分析报告
- 2026散装化工原料市场供需平衡与投资风险评估报告
- 2026散装农产品批发市场发展趋势与投资机会研究
- 2026工业软件开发市场现状技术壁垒及商业化应用分析报告
- 2026工业机器人自动化生产线市场供需结构与投资机会评估报告
- 2025年三力测试70岁题库及答案
- 2025年大学《水生动物医学-水生动物免疫学》考试模拟试题及答案解析
- 2025年湖南省高职单招中职类文化素质测试(语文)
- 炭晶板背景墙施工方案
- 会计学(第七版)全套课件
- 江苏财经考试真题及答案
- 蒸压加气混凝土课件
- 2025年个人自查剖析材料与整改措施
- 2026人教版中考复习英语必背1600单词(30天背诵)
- 2025年融媒体中心全媒体记者招聘考试笔试试题(含答案)
- 血透室病区环境管理
评论
0/150
提交评论