数据库课程设计报告银行管理系统.docx
- 文档编号:30117586
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:17
- 大小:132.54KB
数据库课程设计报告银行管理系统.docx
《数据库课程设计报告银行管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计报告银行管理系统.docx(17页珍藏版)》请在冰豆网上搜索。
数据库课程设计报告银行管理系统
摘要
银行治理系统在无论在网络上,照旧种种治理系统软件的资料上都有解说,并且均非常详细,其难度也可想而知。
这次课程设计时间紧迫,另外作者自己能力也十分有限,只能完成银行治理系统中的少量功效,所以该系统另有许多有待扩充及完善的地方,有不当善的地方还请老师指点。
(这些应出现在总结,在此应扼要说明选题的目的及意义)这次课程设计只是到达训练、牢固知识的目的,熟悉数据库的前台和背景编程、VC++的控件、如何访问数据库等方面的知识,所以实现的功效也很有限,待以后随着知识的积聚,慢慢地扩充完善该系统。
本系统接纳了可视化的集成开发情况VisualC++6.0编辑用户操纵界面、以SQLSever为背景数据库并以CRecordSet类访问数据库信息的治理系统,该系统能够完成用户帐号的创建、用户存取款、数据备份与规复等根本功效。
要害字:
SQL数据库、SQL语言、VC++、银行治理系统
1绪论
1.1选题目的及意义……………………………………………1
1.2设计内容……………………………………………………1
2需求阐发
2.1功效需求……………………………………………………1
2.2数据需求……………………………………………………1
2.3其他需求……………………………………………………1
3数据库设计
3.1观点结构设计………………………………………………2
3.2逻辑结构设计………………………………………………2
3.3物理结构设计………………………………………………2
4系统功效设计……………………………………………………4
5系统实现
5.1开发情况………………………………………………4
5.2主要功效的运行结果及代码…………………………4
6总结…………………………………………………………18
参考文献
(页码再查对一下)
1绪论
1.1选题的目的及意义
银行治理系统:
该系统要求创建的用户表并不是许多,完成的功效也相对有限,但其中各个表之间的联系很紧密,该系统对数据库表的设计要求会很高,所以完成这个题目,能更好的训练数据库设计和VC的编程能力,选择该题目就是充实训练数据库表设计的能力和运用VC的能力。
1.2设计内容
用户治理模块:
创建新用户、删除老用户、变动用户操纵;
账户操纵模块:
账户信息、活期存取款操纵、查询活期操纵记载、定期存款、定期取款、查询定期操纵记载;
数据库模块:
数据库备份、数据库规复;
2需求阐发
2.1功效需求
对付用户部门,能够新建和删除用户,在操纵历程中可以变动用户;对付账户部门,可以查询用户的信息,包罗种种根本信息、活期余额、定期账单等;对付账户操纵部门,有活期存取款、定期存取款操纵,另外操纵完成之后存储相应的操纵记载并能够查询操纵记载等功效。
2.2数据需求
账户信息:
帐号varchar(20),开户人姓名varchar(20),账户密码char(6),身分证号varchar(20),账户余额float,开户日期datetime,开户地点varchar(30);
活期操纵:
帐号varchar(20),金额float,类型(存入,支出),账户余额float,利息float,存入日期datetime;
定期存款:
帐号varchar(20),存款人姓名varhcar(10),存款金额float,存款日期datetime,存储年份int,存储利率float;
定期取款:
帐号varchar(20),取款人姓名varhcar(10),取款金额float,取款日期datetime;
定期历史操纵记载:
帐号varchar(20),存取款人姓名varhcar(10),类型(存入,支出),治理日期datetime,存储年份int,存储利率float;
2.3其它需求
完成数据库的备份与规复,系统登录对话框等功效。
3.数据库设计
3.1观点结构设计
银行治理系统E-R图
3.2逻辑结构设计
储户(帐号,姓名,密码,身份证号,性别,帐户余额,开户日期,开户地点);
活期存取款(nID,帐号,金额,类型,治理日期,利息,账户余额);
定期存款(nID,帐号,存款人姓名,金额,存储年份,年利率,存储日期);
定期取款(nID,帐号,取款人姓名,取款金额,取款日期);
定期记载(nID,帐号,存取款人姓名,类型,操纵金额,年份,操纵日期)
3.3物理结构设计
储户表
序号
字段名称
字段描述
数据类型
长度
属性
1
CNo
帐号
Varchar
20
PK
2
CName
开户人姓名
Varhcar
20
非空
3
CPassword
登录密码
Char
6
非空
4
CID
身份证号
Varchar
20
非空
5
CSex
性别
Char
2
非空
6
CBalance
帐户余额
Float
8
非空
7
CDate
开户日期
Datetime
8
非空
8
CAddress
开户地点
Varchar
30
非空
主键:
帐号;
约束条件:
各属性均非空,密码长度为6位;
活期存取款表
序号
字段名称
字段描述
数据类型
长度
属性
1
nID
序号
Int
4
PK
2
CNo
帐号
Varchar
20
非空
3
CMoney
操纵金额
Float
8
非空
4
CStyle
操纵类型
Varchar
10
非空
5
CDate
操纵日期
Datetime
8
非空
6
CInterest
利息
Float
8
非空
7
CBalance
帐户余额
Float
8
非空
主键:
nID;外键:
帐号;被参照表:
储户表
约束条件:
各属性均非空;
定期存款表
序号
字段名称
字段描述
数据类型
长度
属性
1
nID
序号
Int
4
PK
2
CNo
帐号
Varchar
20
非空
3
CName
存款人姓名
Varchar
10
非空
4
CMoney
存款金额
Float
8
非空
5
CDate
存款日期
Datetime
8
非空
6
CYear
存储年份
Int
4
非空
7
CRate
存储利率
Float
8
非空
主键:
nID;外键:
帐号;被参照表:
储户表
约束条件:
各属性均非空;
定期取款表
序号
字段名称
字段描述
数据类型
长度
属性
1
nID
序号
Int
4
PK
2
CNo
帐号
Varchar
20
非空
3
CName
取款人姓名
Varchar
10
非空
4
CMoney
取款金额
Float
8
非空
5
CDate
取款日期
Datetime
8
非空
主键:
nID;外键:
nID;被参照表:
定期存款表
约束条件:
各属性非空
定期操纵记载表
序号
字段名称
字段描述
数据类型
长度
属性
1
nID
序号
Int
4
PK
2
CNo
帐号
Varchar
20
非空
3
CName
存取款人姓名
Float
8
非空
4
CStyle
操纵类型
Char
4
非空
5
CMoney
存取款金额
float
8
非空
6
CYear
存储年份
Int
4
非空
7
CDate
存取款日期
Datetime
8
非空
主键:
nID;外键:
nID;被参照表:
定期存款表,定期取款表
约束条件:
各属性非空
4.系统功效设计
图4-1银行治理系统功效结构图
5.系统实现
5.1系统开发情况
软件:
SQLSever2000,VC++6.0
操纵系统:
WindowXP
硬件:
Pentiun4DDR512MB120G硬盘
5.2主要功效的运行结果及代码
数据库创建历程及其连接
(1).进入企业治理器窗口,选择“新建SQLSever注册”;
(2).选中“数据库”文件夹,单击鼠标右键,选择“新建数据库”,输入数据库名Bank;
(3).单击“确定”按钮,封闭对话框,数据库创建乐成。
完成“账户登录”的窗口
ID
控件类型
成员变量
说明
IDC_EDIT1
CString
m_strNo
用户帐号
IDC_EDIT1
CEdit
m_ctrNo
IDC_EDIT2
CString
m_strPassword
登录密码
IDC_EDIT2
CEdit
m_ctrPassword
IDC_EDIT3
CString
m_strRePassword
确认密码
IDC_EDIT3
CEdit
m_ctrRePassword
IDOK
“OK”按钮
IDCANCLE
“Cancle”按钮
(1)添加记载集类CAccountSet类,基类为CRecordSet,数据表为account表;
(2)在CLoginDlg类中添加CAccontSet类的成员变量m_recordset;
(3)为“CBankApp”类添加为CString型的成员变量strNO;
(4)IDOK控件的消息响应函数:
voidCLoginDlg:
:
OnOK()
{
UpdateData(TRUE);
if(m_strNo=="")
{
MessageBox("PleaseInputtheAccountNumber!
");
m_ctrNo.SetFocus();
return;
}
if(m_strPassword=="")
{
MessageBox("PleaseInputthePassword!
");
m_ctrPassword.SetFocus();
return;
}
if(m_strRePassword=="")
{
MessageBox("PleaseInputtheConfirmPassword!
");
m_ctrRePassword.SetFocus();
return;
}
if(m_strPassword!
=m_strRePassword)
{
MessageBox("TwoPasswordsAreDiffered!
");
m_strPassword="";
m_strRePassword="";
UpdateData(FALSE);
m_ctrPassword.SetFocus();
return;
}
CStringstrSQL;
strSQL.Format("select*fromAccountwhereCNo='%s'",m_strNo);
if(!
m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
{
MessageBox("OpenDatabaseFiled!
","DatabaseError",MB_OK);
return;
}
if(m_recordset.m_CPassword!
=m_strPassword)
{
MessageBox("PasswordError!
PleaseRewrite!
");
m_recordset.Close();
m_strPassword="";
m_strRePassword="";
UpdateData(FALSE);
m_ctrPassword.SetFocus();
return;
}
CBankApp*ptheApp=(CBankApp*)AfxGetApp();
ptheApp->strNo=m_strNo;
CDialog:
:
OnOK();
}
(5)在“CBankApp”类中的“InitInstance()”函数中添加登录对话框的工具:
CLoginDlgdlg;
if(dlg.DoModal()!
=IDOK)
{
returnFALSE;
}
完成“创建新帐户”的窗口:
ID
控件类型
成员变量
说明
IDC_COMBO1
CComboBox
m_ctrSex
性别
IDC_DATETIMEPICKER1
CTime
m_tmDate
开户日期
IDC_EDIT1
CString
m_strNo
帐号
IDC_EDIT1
CEdit
m_ctrNo
IDC_EDIT2
CString
m_strName
开户人姓名
IDC_EDIT2
CEdit
m_ctrName
IDC_EDIT3
CString
m_strPassword
密码
IDC_EDIT3
CEdit
m_ctrPassword
IDC_EDIT4
CString
m_strComPassword
确认密码
IDC_EDIT4
CEdit
m_ctrComPassword
IDC_EDIT5
CString
m_strID
身份证号
IDC_EDIT5
CEdit
m_ctrID
IDC_EDIT6
Double
m_bBalance
帐户余额
IDC_EDIT7
CString
m_strAddress
开户地点
IDC_EDIT7
CEdit
m_ctrAddress
IDOK
“确定”按钮
IDCANCLE
“取消”按钮
(1)在CAccountDlg类中添加CAccontSet类的成员变量m_recordset;
(2)添加记载集类CCurrentSet类,基类为CRecordSet,数据表为current表;
(3)添加初始化对话框OnInitDialog()要领:
BOOLCAccountDlg:
:
OnInitDialog()
{
CDialog:
:
OnInitDialog();
m_tmDate=CTime:
:
GetCurrentTime();
m_ctrSex.AddString("男");
m_ctrSex.AddString("女");
UpdateData(FALSE);
returnTRUE;
}
(4)IDOK控件的消息响应函数,完成对帐户表和活期存取款表的记载添加。
完成“删除帐户”的功效:
在CMainFrame类中添加菜单的消息响应函数,找到当前用户在账户表中的记载,并且判断该帐户是否另有活期存款和定期存款,如果有记载,则无法删除帐户。
voidCMainFrame:
:
OnDeleteAccount()
{
//TODO:
Addyourcommandhandlercodehere
CBankApp*ptheApp=(CBankApp*)AfxGetApp();
CStringstrSQL;
strSQL.Format("select*fromAccountwhereCNo='%s'",ptheApp->strNo);
CAccountSetrecordset;
if(!
recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
{
MessageBox("OpenDatabaseFiled!
","DatabaseError",MB_OK);
return;
}
if(MessageBox("确定删除该用户?
","提示",MB_YESNO)==IDYES)
{
if(recordset.m_CBalance!
=0)
{
recordset.Close();
MessageBox("用户账户中活期存款仍存有余额,无法进行销户!
");
return;
}
CTimeDepositSettds;
CStringstrRecord;
strRecord.Format("select*fromTimeDepositwhereCNo='%s'",ptheApp->strNo);
if(!
tds.Open(AFX_DB_USE_DEFAULT_TYPE,strRecord))
{
recordset.Close();
MessageBox("OpenDatabaseFiled!
","DatabaseError",MB_OK);
return;
}
if(tds.GetRecordCount()!
=0)
{
recordset.Close();
tds.Close();
MessageBox("用户账户中仍存有定期账目,无法销户!
");
return;
}
recordset.Delete();
recordset.Requery();
recordset.Close();
MessageBox("用户账户删除乐成!
");
}
else
{
recordset.Close();
return;
}
}
完成“退出系统”的功效:
在CMainFrame类中添加菜单的消息响应函数:
voidCMainFrame:
:
OnExit()
{
if(MessageBox("确定退出该系统?
","提示",MB_YESNO)==IDYES)
{
PostQuitMessage
(1);
return;
}
}
完成“查询账户信息”的功效:
ID
控件类型
成员变量
说明
IDC_DATETIMEPICKER1
CTime
m_tmDate
开户日期
IDC_EDIT1
CString
m_strNo
帐号
IDC_EDIT2
CString
m_strName
姓名
IDC_EDIT3
CString
m_strAddress
开户地点
IDC_EDIT4
CString
m_strBalance
帐户余额
IDC_LIST1
CListCtrl
m_ctrList
列表控件
IDOK
“确定”按钮
(1)添加初始化对话框OnInitDialog()响应函数,初始化对话框信息;
(2)为CAccountInfo类添加void型的成员函数RefreshList(),初始化列表信息。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 报告 银行 管理 系统