银行管理系统设计报告

合集下载

银行账户管理系统-课程设计报告

银行账户管理系统-课程设计报告

课程设计课程设计名称:java课程设计专业班级:计科13级03班****:***学号:****************:***课程设计时间:2015.6.22-2015.7.3计算机科学技术专业课程设计任务书银行帐户管理系统一、需求分析银行账户管理系统中,主要有以下功能:1.添加账户:主要增加账户的账号,姓名,类型以及所存的金额。

2.登陆账户:根据输入的账号以及密码,验证判断其账户的类型以进行操作。

3.存款:输入账号,并向该账号存钱。

4.取款:输入账号和密码,根据不同类型的账户进行取款或者透支取款。

5.转账:输入账号和密码,并向另外一个存在的账号转账。

6.查询账户余额:根据输入的账号和密码,查询并显示出该账户的剩余金额。

二、概要设计图1 系统模块流程图三、运行环境、开发语言运行环境:Windows 8.1,DOS,Eclipse开发语言:Java四、详细设计1程序清单表1 ATM类表2 Bank类表3 SavingAccount类表4 CresitAccount类表5 Account类方法功能void deposit()存款getxx()setxx()获取及操作2 主要代码2.1 ATM类进入银行账户管理系统,进行操作。

图2:银行账户管理系统主界面import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import java.util.Properties;import java.util.Scanner;public class ATM {//属性private Bank bank;//构造函数public ATM() {bank = new Bank();}//main方法public static void main(String[] args){ATM atm = new ATM();//实例化ATMBank bank = atm.bank;//标号,判断是否退出一级菜单boolean firstFlag = true;while(firstFlag){ //一级菜单System.out.println("******欢迎使用XXX银行模拟ATM系统,请按如下步骤操作******");System.out.println(" *1.用已有账户登录");System.out.println(" *2.没有账户,开户");System.out.println(" *3.退出");Scanner scanner = new Scanner(System.in);System.out.print("请选择:");try {int choice1 = scanner.nextInt();switch(choice1){case 1:scanner = new Scanner(System.in);System.out.print("请输入银行卡号:");long id = scanner.nextInt();scanner = new Scanner(System.in);System.out.print("请输入银行密码:");String password = scanner.next();Account account = bank.verifyAccount(id, password);if(account != null){ //标号,判断是否退出二级菜单boolean secondFlag = true;while(secondFlag){ //二级菜单System.out.println("******欢迎使用XXX银行模拟ATM系统,请按如下步骤操作******");System.out.println(" *1.查询账户余额");System.out.println(" *2.存款");System.out.println(" *3.取款");System.out.println(" *4.转账");System.out.println(" *5.退卡");scanner = new Scanner(System.in);System.out.print("请选择:");try {int choice2 = scanner.nextInt();switch(choice2){case 1:System.out.println("您账户的当前余额为:"+account.getBalance());break;case 2:scanner = new Scanner(System.in);System.out.print("请输入您的存款金额:");double money1 = scanner.nextDouble();bank.deposit(account, money1);break;case 3:scanner = new Scanner(System.in);System.out.print("请输入您的取款金额:");double money2 = scanner.nextDouble();bank.withdraw(account, money2);break;case 4:scanner = new Scanner(System.in);System.out.print("请输入您要转入账户的卡号:");long id2 = scanner.nextLong();Account account2 = bank.verifyAccount(id2);if(account2 != null){scanner = new Scanner(System.in);System.out.print("请输入您要转入账户的金额:");double money = scanner.nextLong();if(money <= account.balance){bank.transferAccount(account, account2, money);System.out.println("转账成功!!!");}else{System.out.println("抱歉,您账户没有足够的金额!请查看后重新选择输入!");}}else{System.out.println("抱歉,没有找到您要转入的账户信息!请核对后重新选择输入!");}break;case 5:secondFlag = false;break;default:System.out.println("没有该选项,请重新选择!");break;}} catch (Exception e) {System.out.println("选择输入不合法,请重新选择!");}}}else{System.out.println("没有此账户,请先开户!");}break;case 2://账号id由银行自动提供(从1001递增)scanner = new Scanner(System.in);System.out.print("请输入账户密码:");String passwd1 = scanner.next();scanner = new Scanner(System.in);System.out.print("请再输入账户密码:");String passwd2 = scanner.next();scanner = new Scanner(System.in);System.out.print("请输入户主姓名:");String name = scanner.next();scanner = new Scanner(System.in);System.out.print("请输入户主身份证号码:");String personId = scanner.next();scanner = new Scanner(System.in);System.out.print("请输入账户类型(0储蓄,1信用):");int type = scanner.nextInt();bank.openAccount(passwd1, passwd2, name, personId, type);break;case 3:bank.saveAccountDate();firstFlag = false;break;default :System.out.println("没有该选项,请重新选择!");break;}} catch (Exception e) {System.out.println("选择输入不合法,请重新选择!");}}System.out.println("谢谢使用!");}}2.2 Bank类对系统添加新账户,登陆已有账户,进行操作。

银行管理系统设计报告样板

银行管理系统设计报告样板

银行管理系统设计报告样板一、引言银行作为金融机构,在现代经济社会中扮演着重要的角色。

为了提高银行的运营效率和服务质量,开发一个高效、安全的银行管理系统具有重要意义。

本设计报告旨在对银行管理系统进行设计,并提供详细的功能需求和系统设计方案。

二、功能需求1.客户管理:包括客户信息的录入、修改、查询和删除,客户分类管理,以及客户关系管理等功能。

2.账户管理:包括账户的开户、销户、查询、修改、冻结和解冻等功能。

3.存款管理:支持定期存款、活期存款和整存整取等多种存款方式,并提供存款、取款、存款利息计算等功能。

4.贷款管理:支持个人贷款和企业贷款,包括贷款申请、审批、放款和还款等功能。

5.资金调拨:支持资金的转移、划账和转账功能,确保账户之间的资金流转安全可靠。

6.对账管理:对账系统能够自动对账,及时发现错误和异常交易,并提供异常交易处理功能。

7.报表生成与分析:能够根据需求生成各类报表,并提供数据分析功能,为银行决策提供参考。

8.安全管理:包括用户权限管理、数据备份和恢复、系统日志管理等功能,确保系统的安全性和稳定性。

三、系统设计方案为了满足上述功能需求,我们将采用分层架构进行系统设计,主要分为以下几个层次:1.用户界面层:提供给用户直观友好的界面,包括图形化界面和命令行界面。

用户界面层将与业务逻辑层进行交互,接收用户输入,并将结果展示给用户。

2.业务逻辑层:负责处理用户请求,调用相应的服务层进行业务处理。

该层将实现客户管理、账户管理、存款管理、贷款管理等各部分的业务逻辑,并对请求进行相应的验证和处理。

3.服务层:封装底层的数据存取和业务逻辑,暴露接口供业务逻辑层调用。

服务层将提供客户管理服务、账户管理服务、存款管理服务、贷款管理服务等。

4.数据访问层:负责与数据库进行交互,实现数据的读写。

将提供客户数据、账户数据、存款数据、贷款数据等访问接口。

四、系统流程1.用户通过用户界面层发送请求,请求被业务逻辑层接收。

数据库课程设计报告-银行储蓄管理系统数据库设计[2018年整理]

数据库课程设计报告-银行储蓄管理系统数据库设计[2018年整理]

数据库原理及应用课程设计报告组号:小组成员:学院:专业班级:指导老师:2017/1/10目录第1章概述 (1)1.1设计题目: (1)1.2要求完成的主要任务: (1)第2章需求分析 (6)2.1定义 (6)2.2需求规格说明概览 (6)2.3产品的一般性描述 (7)2.4产品功能 (7)2.5用户特征 (7)2.6功能划分 (7)2.7用户界面 (8)2.8可维护性 (9)2.9可理解性 (9)2.10可移植性 (9)第3章数据库表结构图 (9)3.1实体联系图 (10)3.2程序流程图 (10)第4章功能与实现 (11)4.1客户端登录功能 (11)4.2客户端主界面功能 (12)4.3客户端开户功能 (12)4.4客户端存款功能 (13)4.5客户端取款功能 (13)4.6客户端转账功能 (14)4.7客户端余额查询功能 (14)4.8客户端修改密码功能 (14)4.9客户端销户功能 (15)4.10服务器端用户注册功能 (15)4.11服务器端修改用户登密码功能 (15)第5章实现及测试 (16)5.1系统开发环境 (16)5.2主要功能模块的实现及测试 (16)5.2.1数据表的建立 (16)5.2.2数据库连接与数据提供 (16)第6章总结 (17)第7章参考文献 (17)第1章概述本软件实现银行的活期储蓄存款业务。

整套软件由客户端程序和服务器端程序构成,客户端运行在面向个人业务的银行柜台的电脑上,银行职员输入相关信息并通过网络通讯向服务器发送请求,并接受服务器端程序的应答显示处理的结果。

服务器端处理客户端的各种业务请求。

主要实现银行开户、销户、取款、存款、余额查询、转账、修改密码、打印账户明细记录等功能。

1.1 设计题目:题目:银行储蓄管理系统数据库设计本课程的设计的目的是通过实践使同学们经历数据库设计开发的全过程和受到一次综合训练,以便能较全面地理解、掌握和综合运用所学的知识。

结合具体的开发案例,理解并初步掌握系统分析、系统设计、系统实施的主要环节和步骤以及软件文档的制作能力。

银行储蓄管理系统实验报告

银行储蓄管理系统实验报告

C++面向对象程序设计课程设计报告学生姓名: ___ __________学号: _____ __________班级: ___指导教师: ______________2022 年 6 月 19 日......................................................................................课程设计的目的是总结及运用一学期来所学的知识,训练我们灵便应用所学 C++知识,独 立完成问题分析、总结设计、详细设计和编程实现等软件开辟全过程的综合实践能力。

巩 固、深化理论知识,提高编程水平,并在此过程中培养我们严谨的科学态度和良好的工作 作风。

随着社会经济的发展,信息化程度的不断深入,银行的传统业务已不能满足客户的需 求。

当今,人们的科技意识已经有了很大的提高,在紧张忙碌的生活中已越来不习惯每天 奔波于银行营业柜台去办理各种业务,利用电子化的手段构建一个高效统一的、通用灵便 的系统来管理各种各样的业务,是当前每一个商业银行都要研究的课题。

因此如何应用计算 机技术加强银行账户管理是当前迫切需要解决的一个问题。

所以本次课程设计是摹拟银行 账户的管理,开辟一个银行个人账户管理系统。

设计思想是一切为使用者着想,操作尽量 简单明了,努力做到每一个用户都可以使用这个系统来办理自己的业务。

并且通过该银行 账户管理系统地运行,可以使办公人员轻松快捷的完成对账户管理的任务,提高招募管理 效率,是银行的账目管理工作系统化、规范化、自动化。

主要用于银行的储蓄卡管理系统,它可以帮组我们有效、准确、并且高效实现的完成 存取事件。

系统操作方便效率、安全性高、只要开户并设定好密码就可以轻松的实现存取 款。

系统实现的主要有储蓄卡开户管理、存取款管理、用户查询历史数据显示、注销等功 能。

储蓄卡开户管理模块:卡号、姓名、开户金额、身份证号、地址、电话、密码、确认 密码和保存组成。

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

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

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

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

功能设计:(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) 综合利⽤Internet ⽹和相关书籍整理并完善需求分析。

3) 画出系统数据流图(分清系统是事务型还是加⼯型)。

4) 得出系统数据字典。

1.软件系统需求描述:(从功能,性能上进⾏描述)(1)功能需求:银⾏系统系统所要完成的主要功能有两⽅⾯:①填写存款单或取款单交给业务员键⼊系统,如果是存款,系统记录存款⼈姓名、住址、存款类型、存款⽇期、利率等信息,完成后由系统打印存款单给储户。

②如果是取款,业务员把取款⾦额输⼊系统并要求储户输⼊密码以确认⾝份,核对密码正确⽆误后系统计算利息并印出利息清单给储户。

(2)性能需求:为了满⾜储户的要求,系统必须要有⾼的运作速度,储户填写的表单输⼊到系统,系统必须能快速及时作出响应,迅速处理各项数据、信息,显⽰出所有必需信息并打印出各项清单,所以要求很⾼的信息量速度和⼤的主存容量;由于要存贮⼤量的数据和信息,也要有⾜够⼤的磁盘容量;另外,银⾏计算机储蓄系统必须有可靠的安全措施,以保证储户的存储安全。

2.软件系统数据流图(由加⼯、数据流、⽂件、源点和终点四种元素组成):1) 顶层数据流打印存单打印清单2) 1层数据流图3) 2层数据流图3.软件系统数据字典:1) 数据流条⽬(1)数据流名:存单(反馈信息)说明:银⾏系统给⽤户每次存款打印的存款资料表单数据流来源:银⾏计算机储蓄系统数据流去向:⽤户数据流组成:存单=存款⼈+存款银⾏+业务员编号+存款⾦额+存款⽇期+⼿续费+帐户余额业务员编号=“01”..“99”存款⽇期=年+⽉+⽇位置:输出到打印机数据量流通量:暂不统计(2)数据流名:取款单说明:记录⽤户每次取款的资料和情况数据流来源:⽤户数据流去向:银⾏计算机储蓄系统数据流组成:取款单=取款⼈+取款银⾏+业务员编号+取款⾦额+取款⽇期业务员编号=“01”..“99”取款⽇期=年+⽉+⽇数据量流通量:暂不统计(3)数据流名:利息清单(或账单)说明:当⽤户取款时,银⾏内库要把利息清单(或账单)给银⾏计算机储蓄系统处理,再把利息清单(或账单)交于⽤户数据流来源:书库数据流去向:事务处理数据流组成:取款信息=取款⼈+取款银⾏+受理业务员+取款⾦额+取款⽇期+⼿续费+帐户余额业务员编号=“01”..“99”取款⽇期=年+⽉+⽇位置:输出到打印机数据量流通量:暂不统计2) 加⼯条⽬a)加⼯名:银⾏计算机储蓄系统加⼯编号:0层简要描述:对⽤户存取款进⾏管理和处理输⼊数据流:存款单、取款单输出数据流:存单、利息清单(或账单)加⼯逻辑:若存取款信息正确且密码正确⽆误则存取款成功,否则提⽰重写或重填。

基于java的银行账户管理系统设计与实现开题报告文献

基于java的银行账户管理系统设计与实现开题报告文献摘要:一、引言1.背景介绍2.研究目的3.研究意义二、相关工作与技术分析1.银行账户管理系统的发展历程2.基于Java的银行账户管理系统的优势3.技术架构选型三、系统需求分析1.功能需求2.性能需求3.安全需求四、系统设计1.系统架构设计2.模块划分3.数据库设计五、系统实现1.关键技术与解决方案2.系统模块实现3.系统测试六、系统部署与维护1.系统部署2.系统维护七、总结与展望1.工作总结2.创新与不足3.未来展望正文:一、引言1.背景介绍随着互联网技术的飞速发展,银行业务逐渐向线上迁移,银行账户管理系统成为银行业务的核心系统之一。

银行账户管理系统负责处理客户的账户开户、存款、取款、转账等业务,对于保障客户资金安全和提高银行服务质量具有重要意义。

2.研究目的本文旨在设计与实现一个基于Java的银行账户管理系统,提高银行工作效率,降低人力成本,同时确保客户账户安全。

3.研究意义基于Java的银行账户管理系统具有较强的可移植性、稳定性和安全性,有利于银行实现业务信息化、自动化,满足客户对便捷、高效、安全的金融服务需求。

二、相关工作与技术分析1.银行账户管理系统的发展历程银行账户管理系统经历了从传统人工管理到单机版管理系统,再到网络版管理系统的演变。

随着互联网技术的不断发展,银行账户管理系统逐渐向着智能化、人性化的方向发展。

2.基于Java的银行账户管理系统的优势Java具有跨平台、面向对象的特点,可以提高系统的可移植性和稳定性。

基于Java的银行账户管理系统可以轻松实现与其他系统的集成,降低系统开发和维护成本。

3.技术架构选型本文选取Java作为开发语言,搭配Spring Boot、MyBatis、MySQL等技术框架和数据库,构建一个高效、稳定的银行账户管理系统。

三、系统需求分析1.功能需求系统需实现以下功能:账户开户、存款、取款、转账、查询余额、账单查询等。

数据库课程设计实验报告-银行账户管理系统

数据库课程设计报告题目: 银行账户管理系统院系名称: 计算机学院专业名称: 软件工程班级: 09级01班学生姓名: ***学号(8位): *******指导教师: ***设计起止时间:2011年12月19日~2011年12月30日一. 设计目的银行账户管理是银行业务流程中十分重要的且必备的环节,由于银行有大量数据需要处理,全部采用人工方式明显不现实:这不仅需要花费很高的成本,而且处理事务的效率和质量都存在很大的问题,出于这些问题的考虑,使用计算机来处理这类问题就成为一个相当理想的方案。

利用计算机可以极大地降低成本,更重要的是可以几乎没有错误地高效地处理所有的事务,所以做一款基于银行账户管理方面的系统是十分必要的。

本次课程设计通过对《银行账户管理系统》中银行业务流程的基本实现以及用户环节的事务处理,旨在体验数据库设计和实现的基本过程中掌握数据库模式的设计、分析和实现方法,了解数据库应用系统软件开发的一般过程。

二. 设计内容分别完成银行业务功能、ATM功能和用户管理功能,并设计数据库以支持这些功能的实现,最后通过代码进行具体实现以及数据库链接。

所用数据库:SQL Server 2008开发语言:Java数据库设计:使用了六张表,分别为:管理员表(admin)、ATM机表(ATM)、ATM 机出纳表(ATMOutIn)、银行柜台出纳表(BankOutIn)、银行卡表(card)、用户表(users)。

三个触发器,分别为:冻结用户账号操作(userstatus_update)、ATM机存取款操作(ATMOutIn_insert)和银行存取款操作(BankOutIn_insert)。

一个视图、一个虚表:用户操作查询(allInfo(userId,cunquTime,cunquAddress,cunquMoney,cunquSummary,balanceMoney))。

银行业务功能:设置管理员账号,赋予管理员权限以实现开户、销户、存款、取款、查询、办卡和挂失功能。

python银行管理系统设计报告总结

python银行管理系统设计报告总结【深度评估】对于设计一个Python银行管理系统的报告总结,我们需要对系统的设计和功能进行深入评估。

一个银行管理系统作为金融机构的核心系统,必须具备高效、安全、可扩展的特点,并且能够满足银行各种业务的需求。

在设计该系统时,我们应该考虑以下几个方面:1. 数据库设计:银行管理系统需要处理大量的客户、账户和交易信息。

一个合理的数据库设计是至关重要的。

在设计数据库时,我们应该考虑数据的结构、关系和安全性。

还应该预留足够的扩展空间,以便在未来增加新的功能和业务。

2. 用户界面设计:银行管理系统的用户界面应该简洁、直观,并且易于使用。

用户应该能够方便地进行各种操作,如开户、存款、取款、转账等。

合理的界面设计可以提升用户的体验,并减少操作错误的可能性。

3. 安全性设计:由于银行管理系统涉及大量的敏感信息,如账户密码、交易记录等,系统的安全性设计至关重要。

我们应该采取各种措施来保护用户的隐私和数据的安全,如数据加密、访问控制、身份验证等。

4. 功能设计:银行管理系统需要满足多种业务需求,如开户、销户、查询余额、转账等。

在设计功能时,我们应该考虑各种操作的流程和逻辑,确保系统的功能完备,并且能够满足用户的各种需求。

【广度评估】接下来,我们对Python银行管理系统的设计进行广度评估,考虑如何从简到繁、由浅入深地探讨该主题。

在写作过程中,我们可以按照以下几个层次进行思考和撰写:1. 简单的账户管理功能:在最初的版本中,我们可以实现最基本的功能,如开户、查询余额、存款和取款。

这一层次的设计可以帮助读者快速了解系统的基本特点,并提供一个简单的使用示例。

2. 账户间的转账功能:在第二个层次中,我们可以扩展系统的功能,实现账户间的转账操作。

这一功能不仅可以帮助读者更加深入地理解系统的设计和逻辑,同时也拓宽了系统的应用场景。

3. 多种账户类型的管理:在第三个层次中,我们可以引入不同类型的账户,如储蓄账户、信用卡账户等,并实现相应的管理和操作。

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)。

银行管理系统设计报告学生姓名:宋科超冯瑞刘林锋学生学号:******** ******** ********班级:软件学院三班一、需求分析设计一个银行账户管理系统,要求实现以下功能:1.实现银行管理员管理的功能,要求完成以下功能:1)管理员的登录(设本系统的管理员只有一个,管理员信息包括管理员姓名,管理员密码);2)修改管理员密码;3)为新用户创建账户信息,账户信息包括用户帐号(要求系统自动分配用户账号)、用户账户密码(为用户设置初始密码123456)、用户身份证号码、用户姓名、用户地址、帐户金额;4)删除需要注销账户的用户的账户信息;5)查询银行信息,包括:该银行的总客户数,总的存款金额;6)某个用户的账户信息。

2.实现客户对自己账户的操作功能,要求完成以下功能:1)用户的登录(未登录或登录失败时不能执行用户账户的操作);2)修改帐户信息,要求用户输入帐号,根据用户需要修改除了帐号之外的其余信息;3)模拟用户实现存款和取款的功能;4)记录用户账户的历史账单,方便用户查阅,如用户何时从银行取款多少等;5)查询账户信息,根据输入的帐号查询用户信息、帐户金额和用户的明细账单。

3.以上功能要求以分级菜单的形式提供,不同的角色状态得到不同的菜单。

二、设计思想:定义一个用户类customer,数据成员主要有姓名、身份证号码、住址、余额等内容,可供用户操作的功能有开户,销户、存款、取款、转账、余额查询等。

用户可根据界面提示自行操作。

定义一个管理员administrator:管理员信息包括管理员姓名,管理员密码;管理员的登录;修改管理员密码;可操作的功能有:1 为新用户创建账户信息,账户信息包括用户帐号、用户账户密码(为用户设置初始密码123456)、用户身份证号码、用户姓名、用户地址、工作单位、帐户金额;2 删除需要注销账户的用户的账户信息;3 查询银行信息,包括:该银行的总客户数,总的存款金额;4 某个用户的账户信息。

由于要实现界面的回复,所以用了大量的函数调用。

在控制用户的循环操作时采用了for循环与break匹配的结构。

在整体设计上将程序分为四个部分,第一个部分“customer.h”,在这个文件中对所要用到的类customer和administrator进行了申明;第二个部分“administrator.cpp”,在这个文件里定义了管理员,并且实现了管理员对系统的管理功能;第三个部分“customer.cpp”是对在“customer.h”中所声明的类customer定义了一个实体,也可以说是完成了了帐户的操作函数;第四个部分“main.cpp”是主函数main(),所在文件,在其中不仅定义了主函数,而且完成了菜单操作函数。

简易流程图:三.测试结果分析与讨论:首先进入管理员登陆界面如下:再选择管理员相应的服务(1--4),管理员注册:然后进行管理员登陆服务:修改密码服务:第二步进入用户界面:进入新开账户服务:再进行其他用户服务:李强取了5000元新开户张三预存金额20000元;进行转账服务:查询服务:李强账户应剩12000元:张三账户23000元:新注册账户李四预存30000元:进行删账户服务,删除张三:总金额查询:测试结果完毕退出程序:测试过程中的问题及采取的措施:•全局变量之间的冲突?取消一个进行重新测试。

•循环判定条件的不完整?进行分步调试,结合程序的执行结果和目标结果进行修改。

•输入数据不正当?通过if语句进行取舍结合测试进行调整。

•有时还存在语法问题?进行查找结合测试进行调整。

四.源程序:“customer.h”#include<iostream>#include <string>#ifndef CUSTOMER_H#define CUSTOMER_Hclass customer {private:double customer_Num;char secret[7];int test;char Name[8];char ID[30];char Work_Group[80];char Tel_Num[20];char Address[60];char password[10];float Money;public:void save_money();void get_money();void change_money();void find_infor();void lin_money();friend void open_account();friend void save_money();friend void get_money();friend void change_money();friend void find_infor();friend void del_account();friend void lin_money();};class administrator {private:int Administrator_Num;char Secret[7];char Name[10];int test;public:void open_Admin();void get_Admin();void chg_secret();friend void open_Admin();friend void get_Admin();friend void chg_secret();friend void lin_money();};#endif;“administrator.cpp”#include "customer.h"#include<iostream>#include <string>using namespace std;void Administrator();void slect_Admin();int Administrator_Num=1000;int T=-1; //整型变量administrator *q[1]; //指针变量本程序支持1个管理员void open_Admin(){char Secret[7];char Name[10];if(Administrator_Num==1001) {cout<<"对不起,管理员已经存在,你没权限注册!"<<endl;Administrator();slect_Admin();return;}T++;Administrator_Num++;q[T]=new administrator;cout<<"请输入您的姓名:"<<endl;cin>>Name;char Resecret[7];do{cout<<"请输入你的密码(6位):"<<endl;cin>>Secret;cout<<"请重新输入你的密码:"<<endl;cin>>Resecret;if(strcmp(Secret,Resecret)==0){cout<<"密码设置成功"<<endl;break;}elsecout<<"你两次输入有误!"<<endl;cout<<"请重新设置密码!"<<endl;}while(1);q[T]->Administrator_Num=Administrator_Num;for(int a=0;a<10;a++){q[T]->Name[a]=Name[a];}for(int f=0;f<7;f++){q[T]->Secret[f]=Secret[f];}q[T]->test=1;cout<<"恭喜您,注册成功! 您成为管理员!你的账号:"<<Administrator_Num<<"要牢记!"<<endl;cout<<"您需要继续服务吗(Y/N)?"<<endl;char cn;cin>>cn;for(;cn!='n'&&cn!='N'&&cn!='y'&&cn!='Y';){cout<<"您刚才输入的既不是“Y”也不是“N”!"<<endl;cout<<"您需要继续服务吗(Y/N)?"<<endl;cin>>cn;}if(cn=='y'||cn=='Y'){Administrator();slect_Admin();return;}if(cn=='n'||cn=='N'){cout<<"感谢您的使用,再见!"<<endl;return;}}void get_Admin(){cout<<"请输入管理员您的账号:"<<endl;int z=0;int cn;char a[80];for(;;){cin>>a;cn=atoi(a);if(cn!=1001){cout<<"对不起,你不是管理员或你的账号有误!"<<endl;cout<<"您需要继续此服务吗?(Y/N)"<<endl;char cn;cin>>cn;for(;cn!='n'&&cn!='N'&&cn!='y'&&cn!='Y';){cout<<"您刚才输入的既不是“Y”也不是“N”!"<<endl;cout<<"您需要继续此服务吗?(Y/N)"<<endl;cin>>cn;}if(cn=='y'||cn=='Y'){get_Admin();return;}if(cn=='n'||cn=='N'){Administrator();slect_Admin();return;}}elsez=cn-1001;break;}do{cout<<"请输入你的密码:"<<endl;char ser[7];cin>>ser;if(strcmp(ser,q[z]->Secret)==0)break;else{cout<<"输入密码有误!"<<endl;cout<<"请重新输入!"<<endl;}}while(1);cout<<"管理员登陆成功!"<<endl;cout<<"您需要继续使用此系统吗(Y/N)?"<<endl;char cn1;cin>>cn1;for(;cn1!='n'&&cn1!='N'&&cn1!='y'&&cn1!='Y';){cout<<"您刚才输入的既不是“Y”也不是“N”!"<<endl;cout<<"您需要继续使用此系统吗(Y/N)?"<<endl; cin>>cn1; }if(cn1=='y'||cn1=='Y'){Administrator();slect_Admin();return;}if(cn1=='n'||cn1=='N')return;}void chg_secret(){cout<<"请输入管理员您的账号:"<<endl;int z=0;int cn;char a[80];for(;;){cin>>a;cn=atoi(a);if(cn!=1001){cout<<"对不起,你不是管理员或你的账号有误!"<<endl;cout<<"您需要继续此服务吗?(Y/N)"<<endl;char cn;cin>>cn;for(;cn!='n'&&cn!='N'&&cn!='y'&&cn!='Y';){cout<<"您刚才输入的既不是“Y”也不是“N”!"<<endl;cout<<"您需要继续此服务吗?(Y/N)"<<endl;cin>>cn;}if(cn=='y'||cn=='Y'){get_Admin();return;}if(cn=='n'||cn=='N'){Administrator();slect_Admin();return;}}elsez=cn-1001;break;}do{cout<<"请输入你的密码:"<<endl;char ser[7];cin>>ser;if(strcmp(ser,q[z]->Secret)==0)break;else{cout<<"输入密码有误!"<<endl;cout<<"请重新输入!"<<endl;}}while(1);char SSecret[7];do{cout<<"请输入你的新密码(6位):"<<endl;cin>>SSecret;cout<<"请重新输入你的新密码:"<<endl;char Resecret[7];cin>>Resecret;if(strcmp(SSecret,Resecret)==0){cout<<"密码设置成功"<<endl;break;}elsecout<<"你两次输入有误!"<<endl;cout<<"请重新设置新密码!"<<endl;}while(1);strcpy(q[z]->Secret,SSecret);cout<<"您需要继续使用此系统吗(Y/N)?"<<endl;char cn1;cin>>cn1;for(;cn1!='n'&&cn1!='N'&&cn1!='y'&&cn1!='Y';){cout<<"您刚才输入的既不是“Y”也不是“N”!"<<endl;cout<<"您需要继续使用此系统吗(Y/N)?"<<endl; cin>>cn1; }if(cn1=='y'||cn1=='Y'){Administrator();slect_Admin();return;}if(cn1=='n'||cn1=='N')return;}“customer.cpp”#include "customer.h"#include<iostream>#include <string>using namespace std;void dis_menu();void slect_menu();double customer_Num=10000; //用户帐号int Z=0; //变量 //指针变量customer *p[10000]; //指针变量本程序支持10000个用户administrator *Q[1]; //指针变量本程序支持1个管理员void open_account() // 开户函数{char secret[7];char Name[8];char ID[30];char Work_Group[80];char Tel_Num[20];char Address[60];float Money(0);if(customer_Num==20000) {cout<<"对不起,系统存储空间已满,无法开户,对此带来的不便我们深表歉意!"<<endl;dis_menu();slect_menu();return;}Z++;customer_Num++;p[Z]=new customer;cout<<"请输入您的姓名:"<<endl;cin>>Name;char resecret[7];do{cout<<"请输入你的密码(6位):"<<endl;cin>>secret;cout<<"请重新输入你的密码:"<<endl;cin>>resecret;if(strcmp(secret,resecret)==0)cout<<"密码设置成功"<<endl;break;}elsecout<<"你两次输入有误!"<<endl;cout<<"请重新设置密码!"<<endl;}while(1);cout<<"请输入您的身份证件号码:"<<endl;cin>>ID;cout<<"请输入您的单位地址:"<<endl;cin>>Work_Group;cout<<"请输入您的电话号码:"<<endl;cin>>Tel_Num;cout<<"请输入您的住址:"<<endl;cin>>Address;cout<<"请输入您的金额(开户¥50.00元起):"<<endl; //cin>>Money;//银行开户50元起char a1[80];for(;;) {cin>>a1;Money=atoi(a1);if(Money<50||Money>100000000){cout<<"对不起,您输入的金额不正确。

相关文档
最新文档