课程设计银行储蓄管理系统方案

合集下载

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

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

c 银行储蓄管理系统课程设计一、教学目标本课程旨在让学生了解和掌握银行储蓄管理系统的相关知识,通过学习,学生能够理解银行储蓄管理的基本概念,掌握银行储蓄管理的基本操作,并能够运用所学知识分析和解决实际问题。

具体目标如下:1.理解银行储蓄管理的基本概念和原理。

2.掌握银行储蓄管理的基本操作流程。

3.了解银行储蓄管理的法律法规。

4.能够运用银行储蓄管理系统进行日常操作。

5.能够对银行储蓄管理数据进行分析。

6.能够独立完成银行储蓄管理项目的实施和维护。

情感态度价值观目标:1.培养学生遵守法律法规,诚实守信的意识。

2.培养学生团队合作,积极进取的精神。

3.培养学生关注社会,服务社会的责任感。

二、教学内容本课程的教学内容主要包括银行储蓄管理的基本概念、基本操作和法律法规。

具体安排如下:1.银行储蓄管理的基本概念:介绍银行储蓄管理的定义、特点和作用。

2.银行储蓄管理的基本操作:讲解银行储蓄管理的操作流程,包括开立账户、存款、取款、转账等。

3.银行储蓄管理的法律法规:介绍我国银行储蓄管理的法律法规体系,包括《银行业监督管理法》、《储蓄存款条例》等。

三、教学方法为了提高教学效果,本课程将采用多种教学方法,包括讲授法、案例分析法、实验法等。

1.讲授法:通过讲解银行储蓄管理的基本概念、基本操作和法律法规,使学生掌握相关知识。

2.案例分析法:通过分析实际案例,使学生了解银行储蓄管理在实际工作中的应用。

3.实验法:通过模拟实验,让学生亲自动手操作,提高学生的实际操作能力。

四、教学资源为了支持教学内容的实施和教学方法的应用,我们将准备以下教学资源:1.教材:选用权威、实用的银行储蓄管理系统教材,作为学生学习的主要参考资料。

2.参考书:推荐学生阅读相关的参考书籍,丰富学生的知识体系。

3.多媒体资料:制作精美的PPT,生动形象地展示银行储蓄管理的相关内容。

4.实验设备:准备计算机、投影仪等实验设备,为学生提供动手操作的机会。

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

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

软件工程课程设计银行储蓄管理系统(芙蓉学院)(芙蓉学院)软件工程实验报告课题: 银行储蓄管理系统姓名:谭斌学号:同组姓名:专业班级:芙蓉计科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.7第2层DFD 图储户信息文件1.8第3层数据流图储户信息文件款1.9第5层数据流图储户信息文件信息1.10数据字典1.6.1确定输入流和输出流的边界,从而孤立出变换中心。

银行储蓄系统课程设计

银行储蓄系统课程设计

银行储蓄系统课程设计银行计算机储蓄系统目录一、任务 (3)二、总体设计 (3)1、模块结构图 (3)2、数据库总体设计 (5)3、数据库设计与程序关系 (6)4、数据字典 (6)三、详细设计 (7)1、平台支持设计 (7)2、结构程序设计 (8)2.1 3种基本的控制结构(顺序,选择,循环) (8)2.2 功能模块与程序间的关系: .. 93、人机界面设计 (9)3.1 系统响应时间 (9)3.2 用户帮助设施 (10)3.3 出错信息出理 (10)3.4 系统维护设计 (10)4、模块设计 (12)5、数据库详细设计 (13)6、数据字典详细设计 (15)7、技术审查和管理审查 (16)8、总结 (16)9、参考资料 (17)一、任务为方便用户,银行需开发计算机储蓄系统。

储户填写的存款单或取款单由业务员键入系统,如果是存款,系统记录存款人的姓名,住址,存款类型,存款日期,利率等信息,并印出存款单给储户;如果是取款,系统计算利率,并印出取款清单给储户。

二、总体设计1、模块结构图初始业务员信取款信息储户信息存款信息收/付款登录主批量实时系统记总账1.报表打印数据备份存款3.1取款3.2查询3.32、数据库总体设计业务员信息表业务员编号姓名性别出生年月年龄密码取款信息卡号密码取款人取款金额取款类型利率取款日期余额利息存款信息卡号存款人储户姓名存款金额存款日期存款类型利率存款期限余额身份证接受储户存/取款时填写的单据后,产生相应的存/取款信息写入数据库收/付款信息卡号储户姓名业务员编号收/付款金额收/付款日期在业务员收/付款之后打印相应的存款凭证并修改账户余额。

储户信息卡号储户姓名联系电话身份证地址备注主要在存取款时将客户信息写入数据库并返回。

2.3 数据库设计与程序关系程序在对存/取款进行操作时需对数据库数据结构,也就是数据表进行查询和修改:在存/取款过程中都需要对数据库中的所有表,进行联合查询、修改。

数据库银行储蓄系统课程设计

数据库银行储蓄系统课程设计

数据库银行储蓄系统课程设计一、课程设计目的数据库银行储蓄系统课程设计旨在使学生掌握数据库技术的基础知识和实际应用,提高学生对数据库系统设计、开发和管理的认识和能力。

通过实际操作,培养学生分析问题、解决问题的能力,为学生将来从事相关工作打下基础。

二、课程设计要求1. 数据库系统需求分析:学生需分析系统需求,确定系统所需数据和功能,制定数据库设计计划。

2. 数据库设计:学生需根据需求分析结果,设计出合适的数据库结构,包括表、视图、触发器等,保证数据的完整性、一致性和安全性。

3. 系统功能开发:学生需使用所学知识,编写数据库查询、插入、更新、删除等操作代码,实现银行储蓄系统的各项功能。

4. 系统测试与优化:学生需对所开发的系统进行测试,查找并修复潜在的问题,优化系统性能,提高系统的可靠性和稳定性。

5. 文档编写:学生需编写详细的系统设计文档,包括需求分析文档、数据库设计文档、系统功能文档等,以便于他人理解和维护系统。

三、课程设计内容1. 数据库系统需求分析:学生需分析银行储蓄系统的需求,包括客户信息管理、账户信息管理、存取款管理等功能需求。

2. 数据库设计:学生需根据需求分析结果,设计出合适的数据库结构,包括客户表、账户表、交易表等,并定义表之间的关系。

3. 系统功能开发:学生需使用所学知识,编写数据库操作代码,实现银行储蓄系统的各项功能。

4. 系统测试与优化:学生需对所开发的系统进行测试,查找并修复潜在的问题,优化系统性能。

5. 文档编写:学生需编写详细的系统设计文档,包括需求分析文档、数据库设计文档、系统功能文档等。

四、课程设计步骤1. 需求分析:首先,我们需要对银行储蓄系统的需求进行深入分析。

这包括了解客户信息管理、账户信息管理、存取款管理等功能的具体需求。

通过这一步骤,我们将能够明确系统需要的数据和功能,为后续的数据库设计打下基础。

2. 数据库设计:在需求分析的基础上,我们需要设计出合适的数据库结构。

数据库课程设计 银行储蓄管理系统

数据库课程设计 银行储蓄管理系统

《数据库系统概论》课程设计报告设计题目:银行储蓄管理系统姓名:学号:班级:设计起止时间:需求分析:在对软件工程相关知识学习之后,我们对设计软件有了基本的认识和一些应用技能。

在数据库的课程设计中,我们计划做一个小型的银行储蓄管理系统,包括了基本的存取转,和管理员对日常工作的管理功能。

功能设计:(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.储蓄管理系统在实际生活中的应用教学内容将按照教材的章节安排进行讲解,并结合实际情况进行举例和拓展。

三、教学方法为了激发学生的学习兴趣和主动性,本节课将采用多种教学方法:1.讲授法:讲解储蓄管理系统的相关知识,阐述概念和原理。

2.案例分析法:分析实际生活中的储蓄案例,引导学生运用所学知识解决问题。

3.讨论法:学生进行小组讨论,分享各自的观点和经验,互相学习。

4.实验法:安排课后实践任务,让学生亲自动手操作储蓄管理系统,巩固所学知识。

四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:提供给学生最新的储蓄管理系统教材,以便他们随时查阅和复习。

2.参考书:推荐一些与储蓄管理系统相关的参考书籍,拓展学生的知识视野。

3.多媒体资料:制作课件、视频等多媒体资料,帮助学生更好地理解和掌握知识。

4.实验设备:准备计算机、储蓄管理系统软件等实验设备,让学生进行实际操作。

五、教学评估本节课的评估方式包括:1.平时表现:观察学生在课堂上的参与程度、提问回答等情况,评估他们的学习态度和积极性。

2.作业:布置与课程内容相关的作业,评估学生对知识的理解和应用能力。

银行储蓄管理系统课程设计

银行储蓄管理系统课程设计

银行储蓄管理系统课程设计一、介绍银行储蓄管理系统在现代银行业中具有重要意义。

本课程设计旨在让学生深入了解银行储蓄管理系统的基本原理、功能和实际运用,帮助他们掌握相关技能,为将来从事银行业务和金融管理工作打下坚实基础。

二、课程目标1.理解银行储蓄管理系统的定义和作用。

2.掌握银行储蓄管理系统的基本原理和工作流程。

3.学习银行储蓄管理系统的常见功能和操作方法。

4.能够运用银行储蓄管理系统进行账户管理、交易处理和报表生成。

5.熟悉银行储蓄管理系统在日常银行业务中的应用。

三、课程大纲1. 银行储蓄管理系统简介•银行储蓄管理系统定义•银行储蓄管理系统的重要性•银行储蓄管理系统的分类和功能2. 银行储蓄管理系统的基本原理•银行储蓄管理系统的组成结构•数据存储和管理原理•系统安全和权限控制3. 银行储蓄管理系统的常见功能•客户信息管理•账户管理和资金调拨•交易处理和结算•报表生成和分析4. 银行储蓄管理系统的操作方法•登录系统和权限设置•客户信息录入和修改•账户开立和关闭•交易处理和查询•报表生成和导出5. 银行储蓄管理系统的应用案例•日常存取款操作•贷款和利息计算•资金清算和风险控制•报表分析和经营决策支持四、教学方法本课程将采用讲授理论知识、案例分析和实际操作相结合的教学方法。

学生将通过课堂授课、实验操作和作业练习等方式,逐步掌握银行储蓄管理系统的相关知识和技能。

五、评估方式学生将通过课堂参与、实验报告、作业考核和综合考试等方式进行评估。

其中,实验操作和项目练习将占据较大比重,以考察学生对银行储蓄管理系统的实际应用能力。

六、参考资料1.《银行信息管理系统概论》2.《银行电子商务技术与应用》3.《金融信息系统案例分析》以上为银行储蓄管理系统课程设计的大致框架,希望学生在学习过程中能够认真对待、勤奋学习,掌握系统知识和技能,为将来的职业发展做好准备。

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

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

c 银行储蓄管理系统课程设计一、教学目标本课程旨在让学生了解和掌握银行储蓄管理的基本原理和方法,培养学生运用编程技能解决实际问题的能力。

具体目标如下:1.知识目标:使学生掌握银行储蓄管理的基本概念、业务流程和常用算法;了解编程语言在银行储蓄管理中的应用。

2.技能目标:培养学生使用编程语言进行银行储蓄管理系统的开发和调试;培养学生独立分析问题、解决问题的能力。

3.情感态度价值观目标:培养学生对银行储蓄管理工作的热爱和敬业精神,提高学生对社会金融行业的认识和责任感。

二、教学内容1.银行储蓄管理概述:介绍银行储蓄管理的定义、作用和业务范围。

2.银行储蓄业务流程:讲解银行储蓄业务的各个环节,包括开户、存钱、取钱、转账等。

3.常用算法:介绍在银行储蓄管理中常用的算法,如排序、查找等。

4.编程语言应用:学习编程语言的基本语法,掌握使用编程语言实现银行储蓄管理系统的关键技术。

5.项目实践:以小组为单位,学生自主设计并开发一个简单的银行储蓄管理系统。

三、教学方法1.讲授法:教师讲解银行储蓄管理的基本概念、业务流程和常用算法。

2.案例分析法:分析实际案例,让学生了解编程语言在银行储蓄管理中的应用。

3.实验法:学生动手实践,开发和调试银行储蓄管理系统。

4.讨论法:分组讨论,引导学生独立分析问题、解决问题。

四、教学资源1.教材:选用国内权威出版社出版的银行储蓄管理教材。

2.参考书:推荐学生阅读与银行储蓄管理相关的国内外经典著作。

3.多媒体资料:制作课件、视频等,为学生提供丰富的学习资源。

4.实验设备:为学生提供计算机、网络等实验设备,确保实验教学的顺利进行。

五、教学评估本课程的教学评估将采用多元化的评估方式,以全面、客观、公正地评价学生的学习成果。

评估方式包括:1.平时表现:评估学生在课堂上的参与程度、提问回答等情况,以考察学生的学习态度和积极性。

2.作业:布置课后作业,评估学生的理解和应用能力,以及对银行储蓄管理知识掌握的程度。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《数据结构》课程设计报告设计题目活期储蓄账目学院名称信息工程学院专业班级13计本1姓名学号000000000000目录一、实验题目—活期储蓄账理-------------------------------二、问题描述-----------------------------------------------三、设计目标-----------------------------------------------四、需求分析-----------------------------------------------五、概要设计-----------------------------------------------1---系统流程图--------------------------------------2--各个模块功能的详细描-------------------------------六、详细设计-----------------------------------------------七、测试分析-----------------------------------------------八、使用说明-----------------------------------------------九、课程设计总结-------------------------------------------一活期储蓄账目管理二问题描述活期储蓄处理中,储蓄开户、销户、存款、取款活动频繁,系统设计要求:•能够比较迅速地找到储户的账户,以实现存款、取款记账;•能比较简单,迅速地插入和删除,以实现开户和销户的需要。

三设计目标编写一个程序,要求该程序可以实现储蓄开户,及储蓄销户。

同时,该程序具有在储蓄账户中实现存款、取款,查看该账户信息的功能。

四需求分析本演示程序用c语言编写,完成银行管理系统的生成,储户开户、销户、存入、支出。

a输入的形式和输入值的范围:开户时自定义输入账号、用户姓名、密码、及开户金额;用户登陆时输入正确的账号及密码,完成登陆后即可进行存款、取款及销户。

b输出的形式:在所有三种操作中都显示操作是否正确以及相应操作后的内容。

其中输入错误回到主页面,可继续选择操作。

c 程序所能达到的功能:用户开户账户登陆(存款、取款、查询余额、退出登录)账户注销d测试数据五概要设计:1、系统流程图2、各个模块功能的详细描本程序主要包括11个函数void choice():该函数可以实现选择功能void DeleteList(LINK *L):该函数可以实现销户操作void Deposit(LINK *L,LINK *p):该函数可以实现存款功能void InitList(LINK *L):构造函数void InsertList(LINK *L)该函数可以实现开户操作void main()定义主函数void menu() 该函数可以输出菜单页面的功能void PrinList(LINK*L)把存放在链表中的数据输出来void Print(LINK*L)该函数可以将账户信息释放出来void save(LINK *L)该函数可以将账户信息存储起来void Search(LINK *L)该函数可以实现查询账户是否存在的功能六详细设计(给出算法的伪码描述)#include<stdio.h>#include<string.h>#include<stdlib.h>int total=1;typedef struct ElemType{char name[8];int account;char password[6];float money;} ElemType;typedef struct Inode{ElemType data;struct Inode *next;}LINK;LINK * InitList(LINK *L){L=(LINK *)malloc (sizeof(LINK));L->next=NULL;return L;}void InsertList(LINK *L){LINK*s;s=(LINK*)malloc(sizeof(LINK));printf("请输入你要开户的姓名:");scanf("%s",s->);s->data.account=10001000+total++;printf("\n你开户的账号为:%d\n",s->data.account);printf("\n请输入你账户的密码:");scanf("%s",s->data.password);s->data.money=0.00;s->next=NULL;if(L->next==NULL)L->next=s;else{s->next=L->next;L->next=s;}printf("开户成功。

\n");}void DeleteList(LINK *L){LINK*p=L,*q;char pass[6];int s;printf("请输入你要销户的账号:");scanf("%d",&s);printf("请输入该账号的密码:");scanf("%s",pass);while (p->next!=NULL){if(p->next->data.account==s)break;p=p->next;}if(p->next!=NULL){while(strcmp((p->next->data.password),pass)!=0){printf("密码错误!请重新输入:");scanf("%s",pass);}q=p->next;p->next=q->next;free(q);printf("账户销户成功。

\n");}elseprintf("你所要销户的账户不存在或者该账户已销户。

\n"); }void PrinList(LINK*L){LINK*p=L->next;while(p!=NULL){printf("%s\t",p->);printf("%d\t%s\t%2f\n",p->data.account,p->data.password,p->da ta.money);p=p->next;}}void Deposit(LINK *L,LINK *p){int cq;float mn;while(1)if(p!=NULL){printf("请输入存款(1)、取款(2)、查询余额(3)、退出账号(4)。

\n(请输入括号内的数字,输入其他数字默认为取款):");scanf("%d",&cq);if (cq==1){printf("请输入你的存款金额:");scanf("%f",&mn);p->data.money=p->data.money+mn;printf("存款成功!\n");}else if(cq==3){printf("你的账户余额为:%.2f\n",p->data.money);}else if(cq==4){printf("账号退出成功。

\n");return;}else{printf("请输入你的取款金额:");FH: scanf("%f",&mn);if((p->data.money-mn)>=0){p->data.money=p->data.money-mn;printf("取款成功!\n");}else{printf("取款失败!\n");printf("你账户上的余额不足!你的账户余额为:%.2fRMP\n",p->data.money);printf("请输入合适的取款金额:");goto FH;}}}}void Search(LINK *L){LINK *p=L->next;int acc;char pass[6];printf("请输入你要登录的账号:");scanf("%d",&acc);printf("请输入你的密码:");scanf("%s",pass);while(p!=NULL){if(p->data.account==acc)break;p=p->next;}if(p==NULL)printf("不存在该账户\n");else{if(strcmp((p->data.password),pass)==0)printf("账户登录成功。

\n");else{while(strcmp(p->data.password,pass)!=0){char pa;printf("密码错误\n");printf("是否重新输入(是,就输入任意键)、(否,从键盘输入N or n):");scanf("\n%c",&pa);if(pa=='n'||pa=='N'){system("cls");return;}printf("\n 请重新输入你的密码:");scanf("%s",pass);}}Deposit (L,p);}}void save(LINK *L){FILE*fp;fp=fopen("Account.txt","w");LINK*p;p=(LINK *)malloc (sizeof(LINK));p=L->next;while(p!=NULL){if(fwrite(p,sizeof(struct Inode),1,fp)!=1) printf("file write error\n");p=p->next;}fclose(fp);}void Print(LINK * L){FILE* fp;LINK * p,* s;if((fp=fopen("Account.txt","r"))==NULL){printf("can not open.\n");exit(0);}s=(LINK *)malloc(sizeof(LINK));s->next=NULL;for(;fread(s,sizeof(struct Inode),1,fp)!=0;){total++;if(L->next==NULL){L->next=s;p=s;p->next=s->next;}else{p->next=s;p=s;p->next=s->next;}s=(LINK*)malloc(sizeof(LINK));s->next=NULL;}fclose(fp);}void menu(){printf("********欢迎进入活期储蓄账目管理*******\n");printf("1.储蓄开户。

相关文档
最新文档