软件工程课程设计银行储蓄管理系统
c银行储蓄管理系统课程设计

c 银行储蓄管理系统课程设计一、教学目标本课程旨在让学生了解和掌握银行储蓄管理系统的相关知识,通过学习,学生能够理解银行储蓄管理的基本概念,掌握银行储蓄管理的基本操作,并能够运用所学知识分析和解决实际问题。
具体目标如下:1.理解银行储蓄管理的基本概念和原理。
2.掌握银行储蓄管理的基本操作流程。
3.了解银行储蓄管理的法律法规。
4.能够运用银行储蓄管理系统进行日常操作。
5.能够对银行储蓄管理数据进行分析。
6.能够独立完成银行储蓄管理项目的实施和维护。
情感态度价值观目标:1.培养学生遵守法律法规,诚实守信的意识。
2.培养学生团队合作,积极进取的精神。
3.培养学生关注社会,服务社会的责任感。
二、教学内容本课程的教学内容主要包括银行储蓄管理的基本概念、基本操作和法律法规。
具体安排如下:1.银行储蓄管理的基本概念:介绍银行储蓄管理的定义、特点和作用。
2.银行储蓄管理的基本操作:讲解银行储蓄管理的操作流程,包括开立账户、存款、取款、转账等。
3.银行储蓄管理的法律法规:介绍我国银行储蓄管理的法律法规体系,包括《银行业监督管理法》、《储蓄存款条例》等。
三、教学方法为了提高教学效果,本课程将采用多种教学方法,包括讲授法、案例分析法、实验法等。
1.讲授法:通过讲解银行储蓄管理的基本概念、基本操作和法律法规,使学生掌握相关知识。
2.案例分析法:通过分析实际案例,使学生了解银行储蓄管理在实际工作中的应用。
3.实验法:通过模拟实验,让学生亲自动手操作,提高学生的实际操作能力。
四、教学资源为了支持教学内容的实施和教学方法的应用,我们将准备以下教学资源:1.教材:选用权威、实用的银行储蓄管理系统教材,作为学生学习的主要参考资料。
2.参考书:推荐学生阅读相关的参考书籍,丰富学生的知识体系。
3.多媒体资料:制作精美的PPT,生动形象地展示银行储蓄管理的相关内容。
4.实验设备:准备计算机、投影仪等实验设备,为学生提供动手操作的机会。
软件工程银行储蓄管理系统设计[2]
![软件工程银行储蓄管理系统设计[2]](https://img.taocdn.com/s3/m/78ea44294b35eefdc8d33342.png)
软件实现报告1.设计目的该阶段是系统开发过程的最后一个阶段,按照前三个阶段的设计,在这个阶段要选择适当的计算机语言来编写程序以及实现该软件的各项功能,并且对软件设计测试方法。
2.软件源代码如下:(1)银行储蓄系统Private Sub cunkuan0_Click()Unload Mecunkuan.ShowEnd SubPrivate Sub denglu1_Click()Unload Medenglu.ShowEnd SubPrivate Sub Form_Load()If flag = 0 Thendenglu1.Enabled = Truezhukong.Enabled = Falsetuichu.Enabled = FalseElseIf flag = 1 Thendenglu1.Enabled = Falsezhukong.Enabled = Truetuichu.Enabled = TrueElseIf flag = 2 Thendenglu1.Enabled = Falsezhukong.Enabled = Falsetuichu.Enabled = FalseElseEndEnd IfEnd IfEnd IfEnd SubPrivate Sub kaihu0_Click()Unload Mekaihu.ShowEnd SubPrivate Sub qukuan0_Click()Unload Mequkuan.ShowEnd SubPrivate Sub tuichu_Click()flag = 0Unload Mekaishi.ShowEnd SubPrivate Sub xiaohu0_Click()Unload Mexiaohu.ShowEnd SubPrivate Sub xingaimima0_Click()Unload Mexiugaimima.ShowEnd SubPrivate Sub zhaxun0_Click()Unload Mechaxun.ShowEnd SubPrivate Sub zhuanzhang0_Click()Unload Mezhuanzhang.ShowEnd Sub(2)查询Private Sub Command1_Click()Set con = New ADODB.Connectioncon.Open connectstringSet rst = New ADODB.Recordsetrst.Open "select * from zhanghaoxinxi where zhanghao='" & Text1.Text & "'", con, adOpenKeyset, adLockOptimisticIf rst.BOF And rst.EOF ThenMsgBox "此用户不存在!"ElseIf Text2.Text = rst!mima Thenchaxunyue.Text1.Text = Text1.TextUnload Mechaxunyue.ShowEnd IfEnd Ifrst.Closecon.CloseEnd SubPrivate Sub Command2_Click()flag = 1Unload Mekaishi.ShowEnd Sub(3)查询余额Private Sub Command1_Click()cunqukuanrili.Text1.Text = Text1.TextUnload Mecunqukuanrili.ShowEnd SubPrivate Sub Command2_Click()yonghuxinxi.Text1.Text = Text1.TextUnload Meyonghuxinxi.ShowEnd SubPrivate Sub Command3_Click()flag = 1Unload Mekaishi.ShowEnd Sub(4)登录Private Sub Command1_Click()Set con = New ADODB.Connectioncon.Open connectstringSet rst = New ADODB.Recordsetrst.Open "select * from yonghuxixin", con, adOpenKeyset, adLockOptimistic If rst.BOF And rst.EOF ThenIf Text1(0).Text = "gyn" And Text2(1).Text = "000" Thenflag = 1Unload Mekaishi.ShowElseMsgBox "输入不正确!"End IfElseDo While Not rst.EOFIf rst!yonghudaihao = Text1(0).Text ThenIf rst!mima = Text2(1).Text Thenflag = 1Unload Mekaishi.ShowEnd IfEnd Ifrst.MoveNextLooprst.Closecon.CloseIf flag = 0 ThenMsgBox " 此用户不存在!"End IfEnd IfEnd SubPrivate Sub Command2_Click()flag = 0Unload Mekaishi.ShowEnd Sub(5)开户Private Sub Command1_Click()If Text1.Text = "" ThenMsgBox "姓名不能为空"Text1.SetFocusEnd IfIf Text4.Text = "" ThenMsgBox "身份证号码不能为空"Text4.SetFocusEnd IfSet con = New ADODB.Connectioncon.Open connectstringSet rst = New ADODB.Recordsetrst.Open "select * from yonghuxinxi1", con, adOpenKeyset, adLockOptimistic rst.AddNewrst!shenfengzheng = Text4.Textrst!xingming = Text1.Textrst!xingbie = Text5.Textrst!zhuzhi = Text2.Textrst!dianhua = Text3.Textrst.Updatekaihu1.Text2.Text = Text1.Textkaihu1.Text8.Text = Text5.Textkaihu1.Text3.Text = Text4.Textkaihu1.Text4.Text = Text2.Textkaihu1.Text5.Text = Text3.Textrst.Closecon.CloseUnload Mekaihu1.ShowEnd SubPrivate Sub Command2_Click()flag = 1kaishi.ShowEnd Sub(6)销户Private Sub Command1_Click()yonghuxinxi.Text1.Text = Text1.TextUnload Meyonghuxinxi.ShowEnd SubPrivate Sub Command2_Click()Set con = New ADODB.Connectioncon.Open connectstringSet rst = New ADODB.Recordsetrst.Open "select * from zhanghaoxinxi", con, adOpenKeyset, adLockOptimistic If rst.BOF And rst.EOF ThenMsgBox "无记录,请先插入记录!"ElseDo While Not rst.EOFIf rst!zhanghao = Text1.Text ThenIf rst!mima = Text2.Text Thenrst.Deleterst.UpdateElseMsgBox "密码不正确!"End IfEnd Ifrst.MoveNextLoopIf rst.EOF ThenMsgBox "此用户不存在!"End Ifrst.Closecon.CloseEnd Ifrst.Closecon.CloseEnd SubPrivate Sub Command3_Click()flag = 1Unload Mekaishi.Show(7)修改密码Private Sub Command1_Click()Set con = New ADODB.Connectioncon.Open connectstringSet rst = New ADODB.Recordsetrst.Open "select * from zhanghaoxinxi where zhanghao='" & Text1.Text & "'", con, adOpenKeyset, adLockOptimisticIf rst.BOF And rst.EOF ThenMsgBox "此用户不存在!"ElseIf Text2.Text = rst!mima Thenxiugaimima1.Text1.Text = Text1.Textxiugaimima1.Text4.Text = Text2.TextUnload Mexiugaimima1.ShowEnd IfEnd Ifrst.Closecon.CloseEnd Sub(8)修改密码1Private Sub Command1_Click()If Text2.Text <> Text3.Text ThenMsgBox "密码不一致!"ElseSet con = New ADODB.Connectioncon.Open connectstringSet rst = New ADODB.Recordsetrst.Open "select * from yonghuxixin where yonghudaihao= '" & Text1.Text & "'", con, adOpenKeyset, adLockOptimisticrst!mima = Text3.Textrst.Updaterst.CloseSet rst = New ADODB.Recordsetrst.Open "select * from zhanghaoxinxi where zhanghao= '" & Text1.Text & "'", con, adOpenKeyset, adLockOptimisticrst!mima = Text3.Textrst.UpdateMsgBox "修改成功!"rst.Closecon.CloseEnd IfSet con = New ADODB.Connectioncon.Open connectstringSet rst = New ADODB.Recordsetrst.Open "select * from cunkuanrili", con, adOpenKeyset, adLockOptimisticrst.AddNewrst!zhanghao = Text1.TextDim nowtime As Stringnowtime = Nowrst!caozuoriqi = Format(nowtime, "yyyy") + "-" + Format(nowtime, "mm") + "-" + Format(nowtime, "dd") + "-" + Format(nowtime, "hh") + ":" + Format(nowtime, "nn") + ":" + Format(nowtime, "ss")rst!caozuo = "修改密码"rst.Updaterst.Closecon.CloseEnd SubPrivate Sub Command3_Click()flag = 1Unload Mekaishi.ShowEnd Sub(9)转账Private Sub Command1_Click()Set con = New ADODB.Connectioncon.Open connectstringSet rst = New ADODB.Recordsetrst.Open "select * from zhanghaoxinxi where zhanghao='" & Text3.Text & "'", con, adOpenKeyset, adLockOptimisticIf rst.BOF And rst.EOF ThenMsgBox "此用户不存在!"ElseIf Text4.Text = rst!mima Thenrst!zhanghuyue = CInt(rst!zhanghuyue) - CInt(Text2.Text)rst.Updaterst.CloseSet rst = New ADODB.Recordsetrst.Open "select * from zhanghaoxinxi where zhanghao='" & Text1.Text & "'", con, adOpenKeyset, adLockOptimisticIf CInt(Text2.Text) > rst!zhanghuyue ThenMsgBox "余额不足!"Elserst!zhanghuyue = CInt(rst!zhanghuyue) + CInt(Text2.Text)rst.Updaterst.Closecon.CloseEnd IfEnd IfEnd IfEnd SubPrivate Sub Command3_Click() flag = 1Unload Mekaishi.ShowEnd Sub3.部分界面如下:。
软件工程-银行计算机储蓄系统

课程设计报告课程名称软件工程课程设计课题名称银行储蓄系统专业计算机科学与技术班级计算机0701学号33姓名钟彪指导教师冯剑2010年6 月2 日《软件工程》实验指导书实验一可行性研究一.实验目的熟悉可行性研究。
二.实验要求实验时间:2学时,使用Word写出可行性研究报告。
三.实验内容采用结构化分析方法进行可行性研究,绘制数据流图,编制可行性研究报告。
四.实验步骤1.引言1.1编写目的1.2项目背景1.3术语说明1.4.系统参考文献参考文献见附录2.可行性研究的前提2.1基本要求(1)功能(2)性能(3)系统的输入和输出(4)处理流程(5)安全保密要求(6)完成期限要求系统完成期限为12个月。
2.2开发目标开发目标应考虑的因素:(1)人力与设备费用的相对减少(2)业务处理速度的提高(3)计算的准确度和精度的提高(4)人员利用率的改进2.3具备条件项目开发中所具备的条件,假定和限制:(1)目标系统运行寿命系统运行寿命的最小值应达三年。
(2)进行系统方案选择比较的时间一个月(3)经费,投资来源经费来源于专业银行(4)软硬件,运行环境和开发环境硬件环境PII或更高档微机运行时内存要求:2MB;安装所需硬盘:10MB打印机:1q_1600k软件环境中文Windows98/20002.4.可行性研究的方法(1)客户调查(2)专家咨询(3)市场调查2.5.评价尺度各项功能的优先次序,开发时间的长短及使用中的难以程度。
3.对现有系统的分析现有系统存在着数据不易更新、容易丢失、容易出错、查询效率低。
业务人员工作强度大,储户等待服务时间长等缺点。
4.目标系统的技术可行性分析4.1对目标系统的简要描述系统采用常规的数据库管理方法4.2流程图给出数据流图4.3与现有系统进行比较系统有利于数据集中,时空利用率高易更新,易备份,查询速度快,响应速度快,基本消除了现有系统的种种缺陷,更为广大储户和柜台工作人员所接受。
4.4采用建议系统可能带来得影响系统极大提高了用户查询相关信息的命中率,有利于决策优化和提高工作效率。
软件工程课程设计_银行储蓄系统

银行储蓄系统系统设计报告目录一、引言 (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.掌握银行储蓄管理系统的基本原理和工作流程。
3.学习银行储蓄管理系统的常见功能和操作方法。
4.能够运用银行储蓄管理系统进行账户管理、交易处理和报表生成。
5.熟悉银行储蓄管理系统在日常银行业务中的应用。
三、课程大纲1. 银行储蓄管理系统简介•银行储蓄管理系统定义•银行储蓄管理系统的重要性•银行储蓄管理系统的分类和功能2. 银行储蓄管理系统的基本原理•银行储蓄管理系统的组成结构•数据存储和管理原理•系统安全和权限控制3. 银行储蓄管理系统的常见功能•客户信息管理•账户管理和资金调拨•交易处理和结算•报表生成和分析4. 银行储蓄管理系统的操作方法•登录系统和权限设置•客户信息录入和修改•账户开立和关闭•交易处理和查询•报表生成和导出5. 银行储蓄管理系统的应用案例•日常存取款操作•贷款和利息计算•资金清算和风险控制•报表分析和经营决策支持四、教学方法本课程将采用讲授理论知识、案例分析和实际操作相结合的教学方法。
学生将通过课堂授课、实验操作和作业练习等方式,逐步掌握银行储蓄管理系统的相关知识和技能。
五、评估方式学生将通过课堂参与、实验报告、作业考核和综合考试等方式进行评估。
其中,实验操作和项目练习将占据较大比重,以考察学生对银行储蓄管理系统的实际应用能力。
六、参考资料1.《银行信息管理系统概论》2.《银行电子商务技术与应用》3.《金融信息系统案例分析》以上为银行储蓄管理系统课程设计的大致框架,希望学生在学习过程中能够认真对待、勤奋学习,掌握系统知识和技能,为将来的职业发展做好准备。
软件工程——银行储蓄系统 -

软件工程——银行储蓄系统 -1.引言1.1 目的本文档旨在描述和规范银行储蓄系统的设计和开发过程,确保系统能够满足用户的需求和预期功能。
1.2 背景银行储蓄系统是为银行提供一种机制,使客户能够进行存款、取款和查询等操作的系统。
2.需求分析2.1 功能需求银行储蓄系统应具备以下功能:- 客户登录与注册- 存款与取款- 余额查询与交易记录查询- 转账与收款- 密码重置2.2 非功能需求银行储蓄系统应具备以下非功能需求:- 用户界面友好、易于使用- 系统响应时间快- 数据安全性高- 高并发能力- 可靠性和可扩展性3.概要设计3.1 系统架构银行储蓄系统采用分层架构,包括以下层:- 用户界面层:提供用户登录、存款、取款等功能的界面- 业务逻辑层:处理用户请求,进行业务逻辑处理- 数据访问层:与数据库进行交互,完成数据的读写操作3.2 模块设计银行储蓄系统的主要模块包括:- 用户管理模块:处理用户注册、登录、密码重置等功能- 账户管理模块:负责处理存款、取款和余额查询等功能- 交易记录模块:记录用户的交易历史- 转账模块:处理用户的转账和收款功能4.详细设计4.1 用户管理模块设计4.1.1 用户注册功能设计- 输入用户名、密码、邮箱等信息- 检查用户名是否已存在- 将用户信息存入数据库4.1.2 用户登录功能设计- 输入用户名和密码- 验证用户名和密码- 登录成功后跳转到账户管理界面4.2 账户管理模块设计4.2.1 存款功能设计- 输入存款金额- 更新账户余额- 记录交易历史4.2.2 取款功能设计- 输入取款金额- 检查账户余额是否充足- 更新账户余额- 记录交易历史5.测试计划5.1 单元测试对各个模块进行单元测试,验证其功能和性能是否达到预期。
5.2 验收测试整体测试银行储蓄系统,确保其符合用户需求和预期功能。
6.附件本文档涉及的附件包括界面原型图、数据库设计文档等。
7.法律名词及注释- 存款:客户将资金存入银行账户- 取款:客户从银行账户中取出资金- 余额查询:客户查询账户中的余额情况- 转账:客户将资金从自己的账户转入其他账户- 收款:客户接收他人转账的资金。
c银行储蓄管理系统课程设计

c 银行储蓄管理系统课程设计一、教学目标本课程旨在让学生了解和掌握银行储蓄管理的基本原理和方法,培养学生运用编程技能解决实际问题的能力。
具体目标如下:1.知识目标:使学生掌握银行储蓄管理的基本概念、业务流程和常用算法;了解编程语言在银行储蓄管理中的应用。
2.技能目标:培养学生使用编程语言进行银行储蓄管理系统的开发和调试;培养学生独立分析问题、解决问题的能力。
3.情感态度价值观目标:培养学生对银行储蓄管理工作的热爱和敬业精神,提高学生对社会金融行业的认识和责任感。
二、教学内容1.银行储蓄管理概述:介绍银行储蓄管理的定义、作用和业务范围。
2.银行储蓄业务流程:讲解银行储蓄业务的各个环节,包括开户、存钱、取钱、转账等。
3.常用算法:介绍在银行储蓄管理中常用的算法,如排序、查找等。
4.编程语言应用:学习编程语言的基本语法,掌握使用编程语言实现银行储蓄管理系统的关键技术。
5.项目实践:以小组为单位,学生自主设计并开发一个简单的银行储蓄管理系统。
三、教学方法1.讲授法:教师讲解银行储蓄管理的基本概念、业务流程和常用算法。
2.案例分析法:分析实际案例,让学生了解编程语言在银行储蓄管理中的应用。
3.实验法:学生动手实践,开发和调试银行储蓄管理系统。
4.讨论法:分组讨论,引导学生独立分析问题、解决问题。
四、教学资源1.教材:选用国内权威出版社出版的银行储蓄管理教材。
2.参考书:推荐学生阅读与银行储蓄管理相关的国内外经典著作。
3.多媒体资料:制作课件、视频等,为学生提供丰富的学习资源。
4.实验设备:为学生提供计算机、网络等实验设备,确保实验教学的顺利进行。
五、教学评估本课程的教学评估将采用多元化的评估方式,以全面、客观、公正地评价学生的学习成果。
评估方式包括:1.平时表现:评估学生在课堂上的参与程度、提问回答等情况,以考察学生的学习态度和积极性。
2.作业:布置课后作业,评估学生的理解和应用能力,以及对银行储蓄管理知识掌握的程度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(芙蓉学院)(芙蓉学院)软件工程实验报告课题: 银行储蓄管理系统*名:**学号:同组姓名:专业班级:芙蓉计科0701指导教师:***设计时间:2011/3/20评阅意见:评定成绩:指导老师签名:年月日银行储蓄管理系统目录1.需求分析1.1系统的功能性需求1.2系统需求分析规格说明书1.3系统实体联系(ER)图1.4系统数据流(DFD)图1.5系统数据字典1.6面向数据流的设计方法1.需求分析系统中要求每个人银行管理者都有一个系统帐号,并每个帐号都有密码,系统的一切操作(如:增加存储用户,提高利率等)都由管理者执行,而不是由存诸用户执行,也主是说存储用户并不直接与系统交互,而是通过管理员与系统交互。
该系统主要有两部份业务功能,存款与取款。
储户填写的存款单或取款单由业务员输入系统,如果是存款则系统记录存款人姓名,住址(或电话号码),身份证号码,存款类型,存款日期,到期日期,利率及密码(可选)等信息,并打印存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算得利息并打印出利息清单给储户。
1.1系统的功能性需求系统为管理者提供主功能界面系统在启动时要求管理者输入登录帐号与密码系统要通过管理员执行一系操作(如:添加用户,修改,查询,删除等)管理员代用户实现存款,取款,查询等操作储户的一切信息,存储在数据库表中1.2系统需求分析规格说明书●实现储户开户登记●办理定期存款帐●办理定期存款手续●办理活期取款帐●办理活期取款手续●实现利息计算●输出明细表●数据备份和数据恢复功能●查看帐户信息1.3系统ER图系统主要关系模式:1.储户(储户姓名,住址,身份证号码)2.管理员(员工号,姓名)3.存款(储户姓名,员工号,金额,存款类型,到期日期,存款日期)4.查询(储户姓名,员工号)5.取款(储户姓名,员工号,金额,取款日期)1.5系统顶层数据流(DFD)图打印存单打印清单1.6系统0层数据流(DFD)图储户信息文件1.8第3层数据流图储户信息文件储户信息文件1.10数据字典1.6.1确定输入流和输出流的边界,从而孤立出变换中心。
如图:1.1图1.11.6.2完成“第一级分解”基于书上第三章第三题实现在银行储蓄管理系统在一级分解中,可将系统分解成三个子功能模块:用户操作,业务员操作,系统输出。
如下图所示:业务员操作 银行存储管理系统用户操作 系统输出1.6.3完成“第二级分解”<1> 用户操作的分解可将用户操作分解为:开户民,存款,取款,查询。
如下图所示:<2>业务员操作的分解业务员的操作是将用户的操作传送给系统,代替用户与系统交互,所以,业务员的操作与系统的操作基本类似,也可以近似地将业务员看作用户。
所以操作员操作可分解为:开户,存款,取款,查询并且如用户在开户时设有密码,则进行密码验证。
所以分解图如下:<3> 系统输出分解系统输出可分解为:计算利息-打印清单,保存新用户信息,更新用户信息,打印存单分解图如下:1.6.4使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化。
由于业务员的操作与用户的操作基本相似,可以简单化地认为系统只与业务员交互,基于这个思想,将有利与简化以后系统程序的设计与开发。
精化图如下:#include<iostream.h>#include<string.h>class Bank{private:Account * account[50];int maxID;int accNum;public:Bank();void Append();void Delete();void Query();};class Account{private:int ID;char * Name;//int Year;double Balance;public:Account();Account(int,const char * ,double); void Saving();int Withdraw();void ShowMe();int getID(){return ID;}};Account::Account(){ID = 0;strcpy(Name," ");Balance = 0;}Account::Account(int id,const char * name,,double balance){ID = id;Name = new char[50];strcpy(Name,name);//Year=year;Balance = balance;}void Account::Saving(){double number;cout<<"Please input saving number:";cin>>number;Balance = Balance + number;cout<<"Now the balance of your account is "<<Balance<<endl;return;}int Account::Withdraw(){double number;cout<<"Please input withdraw number:";cin>>number;if(Balance<number){cout<<"Sorry,now the balance of your accout is less than "<<number<<"."<<"So you can not withdraw!"<<endl;return 0;}elseBalance = Balance - number;cout<<"Now the balance of your account is"<<Balance<<endl;return 1;}void Account::ShowMe(){cout<<"Account ID:"<<ID<<endl;cout<<"Name:"<<Name<<endl;// cout<<"Year:"<<Year<<endl;cout<<"Balance:"<<Balance<<endl;return;}//int Accout::getID()//{//return ID;//}Bank::Bank(){for(int i=0;i<50;i++){account[i] = NULL;}maxID = 0;accNum = 0;}void Bank::Append(){if(accNum == 50){cout<<"Sorry,the bank is full,so can not add new account!"<<endl; return;}int id;char * name = new char[50];double balance;cout<<"Please input the name of the account:";cin>>name;id = maxID;balance = 0;Account * acc = new Account(id,name,balance);account[accNum] = acc;cout<<"Append successful!"<<endl;account[accNum]->ShowMe();maxID++;accNum++;return;}void Bank::Delete(){int ID;cout<<"Please input the accout ID that you want to delete:"; cin>>ID;int flag = 1;int i = 0;while((i<accNum)&&(flag)){if(ID == account[i]->getID()){//flag = 0 indicate had found the accountIDflag = 0;}else{i++;}}if(flag){cout<<"The account does not exists!"<<endl;return;}for(int j=i;j<accNum;j++){account[j] = account[j+1];}delete account[accNum-1];accNum--;cout<<"Delete successful!"<<endl;return;}void Bank::Query(){int ID;cout<<"Please input the account ID that you want to query:"; cin>>ID;int flag = 1;int i=0;while((i<accNum)&&(flag)){if(ID == account[i]->getID())flag = 0;}else{i++;}}if(flag){cout<<"The account does not exist!"<<endl<<endl; return;}account[i]->ShowMe();int choice=0 ;while(choice!=3){cout<<" 1:Save money"<<endl;cout<<" 2:Withdraw money"<<endl;cout<<" 3:Return"<<endl;cout<<" Please input the choice:";cin>>choice;cout<<endl;switch(choice){case 1:account[i]->Saving();break;case 2:account[i]->Withdraw();break;case 3:break;}}return;}void main(){Bank bank;int choice = 0;cout<<"Welcome to bank system"<<endl;while(choice != 4)cout<<"1: Add an account"<<endl; cout<<"2: Delete an account"<<endl; cout<<"3: Query an account"<<endl; cout<<"4: Exit"<<endl<<endl;cout<<"Please input your choice:"; cout<<endl;cin>>choice;switch(choice){case 1:bank.Append();break;case 2:bank.Delete();break;case 3:bank.Query();break;case 4:break;}cout<<endl;}//return;}。