银行账目管理系统设计报告
- 格式:doc
- 大小:2.98 MB
- 文档页数:80
课程设计课程设计名称: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.用户通过用户界面层发送请求,请求被业务逻辑层接收。
银行财资管理系统产品运营1. 简介银行财资管理系统是一种专为银行机构设计的金融产品,旨在帮助银行实现财务资产的高效管理和运营。
该系统通过整合银行的各种财务数据和资产信息,提供全面的财务分析和决策支持,以优化银行的财务运营。
本文档将提供银行财资管理系统产品运营相关的内容,包括产品的特点、功能和优势,以及运营流程和操作指南。
2. 产品特点银行财资管理系统具有以下特点:•全面性:该系统能够整合银行的各种财务数据和资产信息,包括存款、贷款、投资等方面,实现全面的财务管理和分析。
•实时性:系统能够实时更新和展示最新的财务数据和资产情况,帮助银行及时了解和掌握财务变动。
•可定制性:用户可以根据自身需求对系统进行定制配置,包括数据展示方式、报表格式和权限设置等,以满足不同业务部门的需求。
•安全性:系统采用严格的安全控制机制,确保财务数据和资产信息不被泄露或篡改。
3. 产品功能银行财资管理系统具备以下功能:•数据集成:该系统能够自动从银行各个业务系统中获取财务数据和资产信息,实现数据的集成和处理。
•财务分析:系统能够基于财务数据进行各种分析,包括财务比率分析、收入分析、支出分析等,帮助银行了解财务状况和运营效果。
•风险管理:系统能够对银行的财务风险进行评估和管理,包括信用风险、市场风险等,帮助银行做出风险控制和决策。
•资产配置:系统能够根据银行的资产状况和风险偏好,提供资产配置建议和模型,帮助银行优化资产结构和提高收益率。
•报表生成:系统能够生成各类财务报表和分析报告,以供银行管理层和相关部门进行决策和监控。
4. 产品优势银行财资管理系统的优势主要体现在以下几个方面:•提高运营效率:系统能够自动处理和分析大量的财务信息,减少人工操作和错误,提高运营效率。
•实时决策支持:系统能够实时展示最新的财务数据和情况,提供及时的决策支持,帮助银行做出准确的决策。
•风险控制:系统能够对财务风险进行评估和管理,及时发现和控制潜在的风险,保护银行的利益。
数据库原理及应用课程设计报告组号:小组成员:学院:专业班级:指导老师: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 设计题目:题目:银行储蓄管理系统数据库设计本课程的设计的目的是通过实践使同学们经历数据库设计开发的全过程和受到一次综合训练,以便能较全面地理解、掌握和综合运用所学的知识。
结合具体的开发案例,理解并初步掌握系统分析、系统设计、系统实施的主要环节和步骤以及软件文档的制作能力。
《数据库系统概论》课程设计报告设计题目:银行储蓄管理系统姓名:学号:班级:设计起止时间:需求分析:在对软件工程相关知识学习之后,我们对设计软件有了基本的认识和一些应用技能。
在数据库的课程设计中,我们计划做一个小型的银行储蓄管理系统,包括了基本的存取转,和管理员对日常工作的管理功能。
功能设计:(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系统规划开发一个银行账户管理系统。
设计的指导思想是一切为使用者着想,界面要美观大方,操作尽量简单明了,而且作为一个实用的管理系统要有良好的容错性,在出现误操作时能尽量及时地给出警告,以便用户及时地改正。
计算机的资源是受到限制的,因此要充分利用Visio的功能,设计出功能强大的软件,同时要尽可能地减少对系统资源的占用。
本系统开发设计思想:(1)系统应符合银行账户管理的规定,满足银行相关人员日常使用的需要,并达到操作过程中的直观、方便、实用、安全等要求。
(2)系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。
(3)系统应具备数据库维护功能,及时根据用户需求进行数据的添加、删除、修改、备份等操作.(4)尽量采用现有软硬件环境及先进的管理系统开发方案,从而达到充分利用现有资源,提高系统开发水平和应用效果的目的。
2系统分析2。
1可行性分析(1)管理上的可行性使用管理方面的可行性,在没有使用银行管理系统前,采取的是人工方式,相对而言耗时大,效率低且造成一定的资源浪费.我们通过设计银行管理系统,可以对银行的一般业务进行有序管理,对于客户的个人资料也不需要做大量烦琐的登记工作,变的相对简单容易操作且不用耗费大量人力财力(2)技术上的可行性技术方面,我选择的是VF操作系统,是我们相对比较熟悉的语言,且应用简便好掌握.这是我第一次次设计银行管理系统,由于技术和知识层面的欠缺,在制作过程中会遇到许多的困难,在编程和设计过程中,感觉到知识积累的不够并且很多知识点已经淡忘.因为时间和技术方面的不足,使设计的程序依然有很多不完善的地方,我会在以后的开发中努力学习,使这个系统更完善更适合使用。
(3)经济上的可行性经济上,由于我开发的这个系统相对较小也较简单,不需要投入大笔资金,同时又存在着实用性,能改善原使用方法在财力和人力上的过度消耗.因此这个新系统一经使用便可收到很好的成效,做到合理节约和利用资源。
实验一实验内容:设计银行账户类及存取款、账户查询等操作方法。
实验目的:综合掌握类和对象(类的声明与对象的使用),掌握面向对象技术的编程方法。
具体包括:从实体中抽象类的方法;如何声明类、创建类的实例;类和成员对象的修饰符的使用;类的构造函数的使用方法等。
实验要求:使用JA V A语言实现一个可无误运行的完整程序,完成银行账户类的设计及存取款、查询等操作。
实验内容具体要求:1,编写一个类实现银行账户(bank account)的概念。
银行账户的属性包括“账号Ac_id”、“储户姓名Ac_name”、“储户身份证号Ac_card”、“日期Ac_date[]”、“金额Ac_money[]”、“存款余额Ac_rest[]”,以及“操作次数Max”、“账目管理指针top”和“累计余额Ac_sum”;银行账户的方法包括“存款”、“取款”、“查询”等。
2,编写一个带有默认构造函数(没有任何参数)的类,在其中显示一些信息,然后为此类产生一些对象。
3,使用刚才定义的类创建几个实例,然后通过实例来访问其中的变量和方法来完成一定的功能。
4,编写一个具有public, private, final, static等数据成员和方法的类,然后为该类产生一个对象,尝试调用类中的所有成员。
实验步骤:1. 复习巩固教材相关的基础知识和相关内容;2. 认真理解实验要求;3. 完成系统程序开发全过程;4. 提交程序源代码及实验报告。
实验二实验内容:构建计算机类及其子类-笔记本电脑类,描述属性及状态,掌握继承及重载。
实验目的:全面理解OOP的基本思想和核心特征,灵活掌握继承和重载的程序实现。
具体包括:掌握类继承(属性与方法的继承)的规律;掌握构造函数继承的规律;掌握子类的对象就是父类的对象的规律等等。
实验要求:假设笔记本电脑是整个计算机类的一个子类,试编写一段java 程序实现计算机类及这个子类。
计算机:属性——品牌、颜色、CPU型号、内存容量、硬盘容量、价格、工作状态;方法——打开、关闭、挂起。
数据库课程设计报告题目: 银行账户管理系统院系名称: 计算机学院专业名称: 软件工程班级: 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))。
银行业务功能:设置管理员账号,赋予管理员权限以实现开户、销户、存款、取款、查询、办卡和挂失功能。
一、课程设计的目的和要求1.1设计目标运用数据库设计理论设计一个较完善有意义的数据库。
掌握目前流行的数据库管理系统Microsoft SqlServer 2000的使用与应用开发技术。
为数据库开发相应的应用程序,构成完整的数据库应用系统。
将设计在数据库管理系统上Oracle等一个或组合实现,开发工具可以选用VB、VC、java、html或其他程序设计语言。
1.2基本要求采用面向对象的方法开发,按照软件工程课程中讲的有关数据库及其应用系统设计章节的内容,进行分析和设计,并按照面向对象的设计流程给出相应的分析设计文档。
分析文档中应涉及到以下几个基本方面:需求分析与表达(oo分析,需求建模)、oo模型与关系模型的转换(映射方案、数据库结构、建库的sql语句)、完整性考虑(完整性约束、存储过程或触发器)、并发控制(数据并发问题,可加锁)、安全性考虑(数据库安全机制)、数据库备份与恢复、系统体系结构(c/s、b/s)、用户接口设计(操作界面设计)、程序功能设计、关键源程序等等。
1.3课题选择银行储蓄管理系统二、银行储蓄可行性分析2.1基本要求2.1.1 功能要求此系统所要完成的主要功能有两方面:储户填写存款单或取款单交给业务员键入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,完成后由系统打印存款单给储户。
如果是取款,业务员把取款金额输入系统并要求储户输入密码以确认身份,核对密码正确无误后系统计算利息并印出利息清单给储户2.1.2 性能要求为了满足储户的要求,系统必须要有高的运作速度,储户填写的表单输入到系统,系统必须能快速及时作出响应,迅速处理各项数据、信息,显示出所有必需信息并打印出各项清单,所以要求很高的信息量速度和大的主存容量;由于要存贮大量的数据和信息,也要有足够大的磁盘容量;另外,银行计算机储蓄系统必须有可靠的安全措施,以保证储户的存储安全。
2.1.3 接口要求业务员键入储户的资料要全部一直显示在屏幕上;储户键入密码到系统以核对;计算机与打印机有高速传输的连接接口,最后以纸张的形式打印出清单给储户。
商业银行业务参数管理体系研究报告当前,银行业竞争呈现出全方位、白热化态势,商业银行为进一步提升客户服务能力,纷纷将原来各自为政的竖井式系统整合为企业级的组件化、模块化系统,并通过提高信息系统中业务参数应用的广度和深度,来支撑业务的整合和拓展,以快速灵活地响应市场和降低成本。
从业界实践的角度来看,尽管国内外商业银行在业务参数管理领域进行了十余年的研究和探索,但对于传统“以系统为单位分散管理”的业务参数管理模式来说,已越来越无法适应市场的快速变化以及组件化、模块化的信息系统管理需求,做好业务参数管理成了商业银行普遍面临的困难与挑战。
为此,本课题中辖内商业银行构建了一套全生命周期集中统一管理的商业银行业务参数管理体系,并结合实践验证了该体系在快速响应业务需求、有效防范操作风险、合理降低运营成本等方面的应用和推广价值。
一、商业银行业务参数管理面临的困难与挑战1.业务参数管理缺乏统一性及标准性当前,国内商业银行大多采取“以系统为单位分散管理”的业务参数管理模式,即由各部门自行确定业务参数的范围并组织参数的设计实施,导致各系统间参数重复设计、分散部署的情况屡见不鲜,更无法跨系统实现共享。
同时,由于不同部门制定的管理制度、管理标准、管理流程等存在差异,使得跨部门事项也难以得到协调。
此外,随着商业银行信息系统从竖井式逐渐向组件化、模块化转变,业务参数呈现出跨部门使用、变更协同复杂等特点,传统的分散管理模式已难以适应现代商业银行的系统整合与业务拓展要求。
2.业务参数管理缺乏全生命周期管理理念现阶段,国内商业银行业务参数管理工作往往仅着眼于参数变更,而缺少参数全生命周期管理的理念,在参数产生、实施、投产、运维、退出等各阶段往往会相互脱节,从而导致参数管理能力无法与业务要求相匹配,而且由于缺少统一的流程约束,也无法在设计、实施层面保障参数数据的完整性和一致性。
3.业务参数管理缺乏成熟的管理方法论在传统模式中,业务参数管理通常过于依赖人员经验且主观性较强,因此易导致管理水平参差不齐,管理质量难以保障。