C++课程设计面向对象课程设计报告材料银行管理系统完整报告材料文档格式.docx
《C++课程设计面向对象课程设计报告材料银行管理系统完整报告材料文档格式.docx》由会员分享,可在线阅读,更多相关《C++课程设计面向对象课程设计报告材料银行管理系统完整报告材料文档格式.docx(21页珍藏版)》请在冰豆网上搜索。
密码确认成功后,即可显示用户名、号、余额以及用户状态(正常或销户)。
6.退出功能:
用户在完成所需功能实现后,根据指令退出程序。
二、系统总体框架
三、模块设计与分析
储蓄卡开户管理模块:
3.1主界面页面
主要导航栏有:
欢迎使用储蓄卡管理(开户、销户、存款、取款、账户信息、退出)
3.2开户页面
输入卡号和密码,再输入开户金额。
开户成功后,系统会分配一个六位数的账号给用户(第一个账号为默认为100000)
3.3存钱页面
从登录界面得到卡号,并提供数据输入界面,等待用户的输入存款金额。
从后台数据库中找到该用户余额记录,修改余额,并将该存款事件的相应信息写人数据库。
系统将显示存款成功。
3.5取款页面
从登录界面得到卡号,并提供数据输入界面,等待用户输入取款金额,如果取款金额大于该用户卡上的余额则显示余额不足。
3.6账户信息页面
从登录界面得到的卡号,并提供数据输入界面,输入密码后,显示出用户名,账户名,余额和用户状态信息。
3.7销户页面
选择销户选项,输入用户的账户号和密码后,系统会询问是否销户,输入0后,即销户成功。
3.8退出页面
从关闭文件,最后关闭整个系统。
列举取款模块进行分析:
intBank:
:
draMon(){
doublemoney=0;
Account*account=getAcoNum();
if(ps->
state==0){
cout<
<
"
\n该账户已销户,不能继续进行取款"
;
return0;
}
if(account!
=NULL&
&
pasCheck(account)){
cout<
"
\n请输入取款金额:
cin>
>
money;
while(money>
account->
money){
inti=0;
\n余额不足!
请输重新入有效的取款金额:
cin>
if(i>
=3&
money>
money){
cout<
\n金额输入无效次数已超过"
i<
次,是否继续输入"
<
\n1.是2.否"
intj;
cin>
j;
if(j==1)
continue;
if(j==2){
cout<
\n系统将自动跳转至系统首页\n"
break;
}
}
i++;
money-=money;
account->
record[account->
insert]-=money;
//char*ctime(consttime_t*timer);
insert++;
\n取款成功.\n"
return0;
}
在取款页面中,若输入账户已销户,则输出:
该账户已销户,不能继续进行取款。
若存在该账户,输入取款金额并对取款金额与存款余额进行比较,如果三次都超过的话就输出:
金额输入无效次数已超过"
3<
,如果取款金额小于存款余额的话就执行,并保存记录。
四、类的设计与分析
1.Bank类
classBank主要制定用户的成员数据,并进行登录与保存功能:
画出Bank类的类图
相关代码:
classBank{
public:
Bank();
voidbankEntrance();
intcreAco();
intdeposit();
intdraMon();
intcloAco();
intinquir();
Account*getAcoNum();
boolpasCheck(Account*account);
~Bank();
private:
Account*head;
Account*ps;
Account*pEnd;
intcreAcoNum;
};
表1Bank类说明表
名称
属性
说明
Bank
构造函数
构建一个类成员
~Bank
析构函数
bankEntrance
数据成员
系统首界面
cloAco
销户
creAco
开户
deposit
存款
draMon
取款
inquir
用户信息
pasCheck
效验密码
getAcoNum
账户信息的效验
2.Account结构
Account结构主要实现用户的各种功能:
画出Account结构的结构图:
Account结构
相关代码
structAccount{
std:
stringname;
intacoNum;
stringpassWord;
doublemoney;
doublerecord[20];
intinsert;
intstate;
Account*right;
Account*left;
五、特色算法分析
1.Bank类中的pasCheck方法
功能:
输入密码并进行确认,如果密码确认三次失败,则退回主界面。
流程图:
暂无
代码:
boolBank:
pasCheck(Account*account){
stringpasWord;
inti;
cout<
\n请输入您的密码:
cin>
pasWord;
for(i=0;
i<
3;
i++){
if(account->
passWord!
=pasWord){
\n密码输入错误!
请您重新您的密码:
else
break;
if(i==3){
\n密码输入错误次数已超过3次,系统将自动跳转至系统首页\n"
returnfalse;
}
returntrue;
六、功能测试
6.1首页:
图6-1:
6.2开户页面
图6-2:
6.3存款页面
图6-3:
6.4取款页面
图6-4
6.5账户信息页面
图6-5:
6.6销户页面
图6-6:
6.7退出页面
从保存数据并关闭文件,关闭整个系统。
图6-7:
七、存在的不足
暂无对策
八、程序源代码
//*********************************
//******Bank.h***************
//******Bank.cpp***************
#include"
stdafx.h"
#include<
string>
Bank.h"
iostream"
//#include"
time.h"
stdio.h"
usingnamespacestd;
Bank:
Bank(){
head=NULL;
ps=NULL;
pEnd=NULL;
creAcoNum=100000;
voidBank:
bankEntrance(){
inta=0;
*****************************************************\n\n"
***欢迎进入银行存取款系统***\n\n"
*****************************************************\n"
while(a==0){
\n请选择服务项目:
\n"
***********************************************\n"
<
**"
1.开户"
**"
2.存款"
3.取款"
**\n"
4.销户"
5.信息"
6.退出"
a;
switch(a)
{
case1:
cout<
**开户**"
a=creAco();
break;
case2:
**存款**"
a=deposit();
case3:
**取款**"
a=draMon();
case4:
**销户**"
a=cloAco();
case5:
**信息**"
a=inquir();
case6:
default:
退出.\n"
a=1;
return;
***您的使用。
***\n\n"
creAco(){
stringname;
stringpassWord;
\n请输入用户名:
name;
\n请输入密码:
passWord;
\n请输入开户金额:
cin>
Account*account=newAccount;
name=name;
passWord=passWord;
money=money;
acoNum=creAcoNum++;
state=1;
for(inti=0;
20;
i++)
record[i]=0;
insert=0;
if(head==NULL){
head=account;
pEnd=head;
pEnd->
left=head;
right=head;
\n您的账号为:
head->
acoNum<
endl;
else{
ps=pEnd;
pEnd=account;
left=ps;
ps->
right=pEnd;
right=pEnd;
\n您的账号为:
pEnd->
acoNum;
return0;
deposit(){
\n该账户已销户,不能继续进行存款"
\n请输入存款金额:
money+=money;
insert]+=money;
\n存款成功.\n"
cloAco(){
if(pasCheck(account)){
\n请确定是否要销户(0销户,1不销户):
i;
if(i==0){
state=0;
\n销户成功.\n"
\n销户取消\n."
return0;
inquir(){
\n用户名:
name
\n号:
<
acoNum
\n余额:
if(account->
state==1)
\n用户状态:
正常\n"
else
销户\n"
Account*Bank:
getAcoNum(){
inti=0;
\n请输入您的账号:
ps=head;
while(acoNum!
=ps->
acoNum){
if(ps==pEnd&
ps->
right==pEnd&
acoNum!
acoNum){
\n账号输入错误!
请您重新输入您的账号:
ps=head;
i++;
ps=ps->
right;
if(i==3&
acoNum!
intj;
\n账号输入错误次数已超过"
<
if(j==1)
continue;
if(j==2)
returnNULL;
}
returnps;
~Bank(){};
//bankSystem.cpp:
定义控制台应用程序的入口点。
//******bankSystem.cpp***************
intmain()
{
Bank*bank=newBank();
bank->
bankEntrance();
//******stdafx.h***************
九、心得与体会
此次的上机实验,我所属小组的项目是银行管理系统。
通过小组各成员的精确分工与合作关于本次实验的设计的银行存取款系统,完成如上。
通过小组的分工,各自完成各个部分的程序容,并进行整合通过实验,进一步掌握了面向对象的思路方法和容,另一方面通过小组合作,模拟了在工作中共同完成项目的过程,加强了成员之间的合作关系,但是,仍存在许多关于技术方面的不足之处有待提升,在今后的学习中仍应当努力加强,通过不断提升自己的