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

上传人:b****1 文档编号:14242499 上传时间:2023-06-21 格式:DOCX 页数:23 大小:267.07KB
下载 相关 举报
数据库课程设计 银行储蓄管理系统.docx_第1页
第1页 / 共23页
数据库课程设计 银行储蓄管理系统.docx_第2页
第2页 / 共23页
数据库课程设计 银行储蓄管理系统.docx_第3页
第3页 / 共23页
数据库课程设计 银行储蓄管理系统.docx_第4页
第4页 / 共23页
数据库课程设计 银行储蓄管理系统.docx_第5页
第5页 / 共23页
数据库课程设计 银行储蓄管理系统.docx_第6页
第6页 / 共23页
数据库课程设计 银行储蓄管理系统.docx_第7页
第7页 / 共23页
数据库课程设计 银行储蓄管理系统.docx_第8页
第8页 / 共23页
数据库课程设计 银行储蓄管理系统.docx_第9页
第9页 / 共23页
数据库课程设计 银行储蓄管理系统.docx_第10页
第10页 / 共23页
数据库课程设计 银行储蓄管理系统.docx_第11页
第11页 / 共23页
数据库课程设计 银行储蓄管理系统.docx_第12页
第12页 / 共23页
数据库课程设计 银行储蓄管理系统.docx_第13页
第13页 / 共23页
数据库课程设计 银行储蓄管理系统.docx_第14页
第14页 / 共23页
数据库课程设计 银行储蓄管理系统.docx_第15页
第15页 / 共23页
数据库课程设计 银行储蓄管理系统.docx_第16页
第16页 / 共23页
数据库课程设计 银行储蓄管理系统.docx_第17页
第17页 / 共23页
数据库课程设计 银行储蓄管理系统.docx_第18页
第18页 / 共23页
数据库课程设计 银行储蓄管理系统.docx_第19页
第19页 / 共23页
数据库课程设计 银行储蓄管理系统.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

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

《数据库课程设计 银行储蓄管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计 银行储蓄管理系统.docx(23页珍藏版)》请在冰点文库上搜索。

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

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

 

《数据库系统概论》

课程设计报告

 

设计题目:

银行储蓄管理系统

 

姓名:

学号:

班级:

 

设计起止时间:

 

需求分析:

在对软件工程相关知识学习之后,我们对设计软件有了基本的认识和一些应用技能。

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

功能设计:

(1).客户:

包括存款,取款,转账,查询余额,查看流水,密码修改功能

(2).管理员:

新增用户,删除用户,查看用户,员工绩效,VIP用户判别,储备金预警分析。

3.功能流程图:

 

详细设计:

1.E-R图模型

 

2.根据E-R图设计关系表

(1).银行信息表(bank)

字段名

字段类型及长度

允许空

主键

说明

Bid

nchar(9)

no

PK

银行号

Bname

nchar(20)

no

银行名

Bmoney

numeric(20,3)

no

银行余额

(2).客户信息表(custom)

字段名

字段类型及长度

允许空

主键

说明

Cid

nchar(9)

no

PK

客户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)

no

PK

员工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语句:

/*建表*/

createtableBank

(Bidnchar(9)primarykey,

Bnamenchar(20)notnull,

Bmoneynumeric(20,3)notnull

createtableCustom

(Cidnchar(9)notnull,

Cnamenchar(10)notnull,

Cpassnchar(10)notnull,

Ctypesmallintnotnull,

Ctimenchar(20)notnull,

Ccodenchar(18)notnull,

Bidnchar(9)notnull,

Crmoneynumeric(10,3)notnull,

Cphonenchar(11)notnull,

primarykey(Cid),

foreignkey(Bid)referencesBank(Bid)/*在客户表中以Bank表的主码作为一个外键,并对他进行级联更新*/

onupdatecascade,

createtableStaff

(Sidnchar(9)primarykey,/*在列级定义主码*/

Snamenchar(10)notnull,

Spassnchar(10)notnull,

SItimenchar(20)notnull,

Sphonenchar(11)notnull

createtableOperate

(Oidnchar(9)notnull,

Cidnchar(9)notnull,

Bidnchar(9)notnull,

Sidnchar(9)notnull,

Otypenchar(10)notnull,

Otimenchar(20)notnull,

Oflagsmallintnotnull,

Omoneynumeric(10,3),

OBmoneynumeric(10,3),

OAmoneynumeric(10,3),

primarykey(Oid,Cid,Sid),

foreignkey(Cid)referencesCustom(Cid)/*以用户表主码为一个外键,进行级联删除*/

ondeletecascade,

foreignkey(Sid)referencesStaff(Sid)/*以员工表的主码作为外键,当删除引起冲突的时候,拒绝删除*/

ondeletenoaction,

foreignkey(Bid)referencesBank(Bid)

onupdatecascade

insertintoBankvalues('00001','中国银行小寨分行',10000)

updateBanksetBname='中国银行经开分行'whereBid='00002'

select*fromBank;

deletefromBankwhereBid='1'orBid='2';

insertintoCustomvalues('6505001','花花','111',0,'2012/12/10/08:

26:

00','610424199310100002','00001','1500','14345678912')

insertintoStaffvalues('7985000','自助服务','111','2002/01/07','12331654613')

deletefromCustomwhereBid='2';

insertintoOperatevalues('2406002','6505001','00001','7985001','哈哈','2012年12月18日14时12分',0,0,2900,2900)

insertintoOperatevalues('2406005','6505007','00001','7985001','嘿嘿','2012年12月18日14时12分',0,0,2900,2900)

select*fromCustom;

select*fromOperate;

select*fromStaff;

select*fromBank;

deletefromOperate

droptableCustom

droptableBank

droptableStaff;

droptableOperate;

select*fromBank;

deletefromOperatewhereOid='6505001'

dropviewBMoney;

createviewBMoney

as

selectOmoney

fromOperate

whereOflag=0andOmoney>2000andOtype='取款';

createviewBInMoney

as

fromOperate

whereOflag=0andOmoney>2000andOtype='存款';

createviewVIP

as

selectCtype

fromCustom

whereCtype=1;

selectcount(*)fromBMoney;

selectcount(*)fromBInMoney;

selectcount(*)fromVIP;

updateBanksetBmoney='10000'whereBid='00001';

updateBanksetBmoney='+bmoney'whereBid='"+Bid+"'";

updateBanksetBmoney='10200.000000'whereBid='00001'

程序代码:

客户部分:

a.voidCClientDlg:

:

OnButtonIn()//存款函数

{

//TODO:

Addyourcontrolnotificationhandlercodehere

CInDlgInDlg;

if(InDlg.DoModal()==IDOK)

{doubletemp,temp1;

ADOConnado;

CStringsql="select*fromCustomwhereCname='"+Cname+"'";

_RecordsetPtrResultSet=ado.GetRecordSet((_bstr_t)sql);

CStringstr=(LPCTSTR)(_bstr_t)ResultSet->GetCollect("Crmoney");

CStringbid=(LPCTSTR)(_bstr_t)ResultSet->GetCollect("Bid");

CStringstr4=(LPCTSTR)(_bstr_t)ResultSet->GetCollect("Cid");

CStringstr2=str;//将交易前钱数暂存

temp=atof(str);

temp1=(double)InDlg.m_InNum;

temp+=temp1;

str.Format("%f",temp);

CStringstr3=str;//暂存交易后金额

sql="updateCustomsetCrmoney='"+str+"'"+"whereCname='"+Cname+"'";

ado.ExecuteSQL((_bstr_t)sql);

sql="selectcount(*)numfromOperate";

ResultSet=ado.GetRecordSet((_bstr_t)sql);

intnum=atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("num"));

str="240600";CStringOid,Cid,Sid,Bid,Otime,Omoney,OAmoney,OBmoney;

Oid.Format("%d",++num);Oid=str+Oid;

Sid="7985001";Bid=bid;doubletemp2;

sql="select*fromBankwhereBid='"+Bid+"'";

ResultSet=ado.GetRecordSet((_bstr_t)sql);

CStringbmoney=(LPCTSTR)(_bstr_t)ResultSet->GetCollect("Bmoney");

temp2=atof(bmoney);temp2+=temp1;bmoney.Format("%f",temp2);

sql="updateBanksetBmoney='"+bmoney+"'whereBid='"+Bid+"'";

ado.ExecuteSQL((_bstr_t)sql);

CStringOtype="存款";CStringm_time;CTimetime;

time=CTime:

:

GetCurrentTime();

m_time=time.Format("%Y年%m月%d日%X");Otime=m_time;intflag=0;

Omoney.Format("%f",temp1);OAmoney=str2;OBmoney=str3;

sql.Format("insertintoOperatevalues('%s','%s','%s','%s','%s','%s',%d,%s,%s,%s)",Oid,str4,Bid,Sid,Otype,m_time,flag,Omoney,OAmoney,OBmoney);ado.ExecuteSQL((_bstr_t)sql);ado.ExitConnect();}}

b.voidCClientDlg:

:

OnButtonGet()//取款函数

{//TODO:

Addyourcontrolnotificationhandlercodehere

CGetDlgGetDlg;;

if(GetDlg.DoModal()==IDOK)

{doubletemp,temp1;

ADOConnado;

CStringsql="select*fromCustomwhereCname='"+Cname+"'";

_RecordsetPtrResultSet=ado.GetRecordSet((_bstr_t)sql);

CStringstr=(LPCTSTR)(_bstr_t)ResultSet->GetCollect("Crmoney");

CStringbid=(LPCTSTR)(_bstr_t)ResultSet->GetCollect("Bid");

CStringstr4=(LPCTSTR)(_bstr_t)ResultSet->GetCollect("Cid");CStringstr2=str;//将交易前钱数暂存temp=atof(str);

temp1=(double)GetDlg.m_GetNum;

if(temp>temp1)

{temp-=temp1;str.Format("%f",temp);CStringstr3=str;//暂存交易后金额

sql="updateCustomsetCrmoney='"+str+"'"+"whereCname='"+Cname+"'";

ado.ExecuteSQL((_bstr_t)sql);

sql="selectcount(*)numfromOperate";

ResultSet=ado.GetRecordSet((_bstr_t)sql)intnum=atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("num"));

str="240600";

CStringOid,Cid,Sid,Bid,Otime,Omoney,OAmoney,OBmoney;

Oid.Format("%d",++num);

Oid=str+Oid;Sid="7985001"Bid=bid;doubletemp2;

sql="select*fromBankwhereBid='"+Bid+"'";

ResultSet=ado.GetRecordSet((_bstr_t)sql);

CStringbmoney=(LPCTSTR)(_bstr_t)ResultSet->GetCollect("Bmoney");

temp2=atof(bmoney);temp2-=temp1;

bmoney.Format("%f",temp2);

sql="updateBanksetBmoney='"+bmoney+"'whereBid='"+Bid+"'";

ado.ExecuteSQL((_bstr_t)sql);

CStringOtype="取款";CStringm_time;CTimetime;

time=CTime:

:

GetCurrentTime();

m_time=time.Format("%Y年%m月%d日%X");

Otime=m_time;intflag=0;

Omoney.Format("%f",temp1);OAmoney=str2;

OBmoney=str3;sql.Format("insertintoOperatevalues('%s','%s','%s','%s','%s','%s',%d,%s,%s,%s)",Oid,str4,Bid,Sid,Otype,m_time,flag,Omoney,OAmoney,OBmoney);ado.ExecuteSQL((_bstr_t)sql);

ado.ExitConnect();}else{AfxMessageBox("账户余额不足!

");}}}

c.voidCClientDlg:

:

OnButtonTurn()

{/TODO:

Addyourcontrolnotificationhandlercodehere

CTurnDlgTurnDlg;

if(TurnDlg.DoModal()==IDOK)

{ADOConnado;

CStringsql="select*fromCustom";

_RecordsetPtrResultSet=ado.GetRecordSet((_bstr_t)sql);

intflag=0;

while(!

ResultSet->adoEOF)

CStringTCusId=(LPCTSTR)(_bstr_t)ResultSet->GetCollect("Cid");

CStringTCusMon=(LPCTSTR)(_bstr_t)ResultSet->GetCollect("Crmoney");//收钱客户在操作前的余额

CStringstr5=TCusMon;TCusId.Remove('');

if(TCusId==TurnDlg.m_TurnId)

{doubletemp,temp1;

sql="select*fromCustomwhereCname='"+Cname+"'";

ResultSet=ado.GetRecordSet((_bstr_t)sql);

CStringstr=(LPCTSTR)(_bstr_t)ResultSet->GetCollect("Crmoney");

CStringbid=(LPCTSTR)(_bstr_t)ResultSet->GetCollect("Bid");

CStringstr4=(LPCTSTR)(_bstr_t)ResultSet->GetCollect("Cid");

CStringstr2=str;//将交易前钱数暂存temp=atof(str);

temp1=(double)TurnDlg.m_TurnNum;if(temp>temp1)

{flag=1;

temp-=temp1;//住客户钱数减少str.Format("%f",temp);

CStringstr3=str;//暂存交易后金额

sql="updateCustomsetCrmoney='"+str+"'"+"whereCname='"+Cname+"'";

do.ExecuteSQL((_bstr_t)sql);temp=atof(TCusMon);//收钱客户钱数增加temp+=temp1;

TCusMon.Format("%f",temp);sql="updateCustomsetCrmoney='"+TCusMon+"'"+"whereCid='"+TCusId+"'";

ado.ExecuteSQL((_bstr_t)sql);sql="selectcount(*)numfromOperate";

ResultSet=ado.GetRecordSet((_bstr_t)sql);

intnum=atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("num"));

str="240600";CStringOid,Cid,Sid,Bid,Otime,Omoney,OAmoney,OBmoney;

intOtype;Oid.Format("%d",++num);Oid=str+Oid;

Sid="7985001";Bid=bid;Otype=2;CStringm_time;CTimetime;

time=CTime:

:

GetCurrentTime();m_time=time.Format("%Y年%m月%d日%X");Otime=m_time;Omoney.Format("%f",temp1);

OAmoney=str2;OBmoney=str3;

sql.Format("insertintoOperatevalues('%s','%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("insertintoOperatevalues('%s','%s','%s','%s',%d,'%s',%s,%s,%s)",TCusId,str4,Bid,Sid,Otype,m_time,Om

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2