银行账户管理系统设计说明书.docx

上传人:b****6 文档编号:8228055 上传时间:2023-01-30 格式:DOCX 页数:26 大小:209.78KB
下载 相关 举报
银行账户管理系统设计说明书.docx_第1页
第1页 / 共26页
银行账户管理系统设计说明书.docx_第2页
第2页 / 共26页
银行账户管理系统设计说明书.docx_第3页
第3页 / 共26页
银行账户管理系统设计说明书.docx_第4页
第4页 / 共26页
银行账户管理系统设计说明书.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

银行账户管理系统设计说明书.docx

《银行账户管理系统设计说明书.docx》由会员分享,可在线阅读,更多相关《银行账户管理系统设计说明书.docx(26页珍藏版)》请在冰豆网上搜索。

银行账户管理系统设计说明书.docx

银行账户管理系统设计说明书

*******************

实践教学

*******************

 

兰州理工大学

计算机与通信学院

2011年秋季学期

 

面向对象课程设计

 

题目:

银行账户管理系统

专业班级:

计算机科学与技术四班

姓名:

卢文雅

学号:

10240444

指导教师:

朱红蕾

成绩:

 

目录

摘要1

.系统总体框架2

.模块设计与分析3

.类的设计与分析4

.特色算法分析5

.功能测试7

设计总结11

参考文献12

致谢13

附录14

摘要

本文详细介绍了银行账户管理系统程序的设计与实现,该程序具有系统实现的主要有储蓄卡开户管理、存取款管理、用户查询历史数据显示、注销等功能。

程序设计语言采用VisualC++,程序运行平台为WindowsXP。

该银行帐目管理信息系统,优点是设计过程思路清晰、模块划分简洁,设计各阶段分工明确。

经过实践证明,该划分是合理的,极大得提高了本系统的实现。

关键词:

银行账户管理系统程序设计C++

.系统总体框架

图1描述了银行管理系统的主要界面,登录界面,注册开户,主界页面,注销退出。

图1

.模块设计与分析

2.1登录页面

输入卡号和密码,根据用户输入的卡号和密码,到后台文件查询,若正确则登录成功,并保存卡好信息已备后用。

若卡号存在和密码不匹配或无该卡号已经注销,提示该卡号已存在或已注销,保持界面三次不变等待用户的重新输入。

2.2主界面页面

主要导航栏有:

欢迎使用储蓄卡管理(存款、取款、查询余额、查询历史记录、注销退出)

2.3储蓄卡开户页面

提供开户界面,由用户输入新储蓄卡的所有信息,将该信息保存到文件中,并将开户金额作为该卡的第一次存款记录存人文件。

2.4存钱页面

从登录界面得到卡号,并提供数据输入界面,等待用户的输入存款金额。

从后台数据库中找到该用户余额记录,修改余额,并将该存款事件的相应信息写人数据库,同时将存钱的金额显示在页面上。

2.5取款页面

从登录界面得到卡号,并提供数据输入界面,等待用户输入取款金额,如果取款金额大于该用户卡上的余额则不能取款,或者将新的余额写人文件,并将本次取款事件写入文件同时将取钱的金额显示在页面上,。

2.6查询余额页面

从登录界面得到卡好,把该卡上的余额显示到界面中。

2.7查询历史记录页面

2.8注销页面

从关闭文件,状态为注销,最后关闭整个系统。

面得到卡号,把该卡在取款页面中,输入取款金额并对取款金额与存款余额进行比较,如果三次都超过的话就输出:

很抱歉,你重复输入错误多次,在退卡中……,如果取款金额小于存款余额的话就执行,并保存记录。

的所有存款取款查询出来,并显示在页面上。

类的设计与分析

1.User类

classUser主要制定用户的成员数据,并进行登录与保存功能:

表1User类说明表

名称

属性

说明

Accout

数据成员

用户账户数据

Name

数据成员

用户姓名

Fmoney

数据成员

用户首次金额

ID

数据成员

用户身份证号

Address

数据成员

用户地址

Telephone

数据成员

用户电话

Pword1

数据成员

用户密码

Pword2

数据成员

用户再一次确认密码

Get()

构造函数

默认构造函数

Login()

成员方法

登录方法

Password()

成员方法

密码验证

SaveFile()

成员方法

保存数据

2.Function类

Function类主要实现用户的各种功能:

图1

特色算法分析

1.User类中的PassWord方法

功能:

输入密码并进行确认,如果密码确认三次失败,则退出系统。

代码:

voidUser:

:

PassWord(){

intnum=0;

while(num<3){

cout<<"\n\t\t请输入位储蓄密码:

";

for(inti=0;i<8;i++){

Pword1[i]=getch();cout<<"*";}

Pword1[8]='\0';

cout<

cout<<"\n\t\t请再一次确认密码:

";

for(inti=0;i<8;i++)

{Pword2[i]=getch();cout<<"*";}

cout<

Pword2[8]='\0';

if(strcmp(Pword1,Pword2)==0){

cout<<"\n\n\t\t密码确认成功,单击任何键进入主菜单";

return;

}

else{

num++;

cout<<"\n\t\t你输入的密码错误,请重新输入!

\n"<

}

if(num==3){

system("cls");

cerr<<"\n\n\n\t\t对不起,你三次输入不正确\n"<

<<"\t\t感谢你的使用,再见!

"<

exit(0);

}

getch();

}

.功能测试

5.1首页

图2

5.2储蓄卡开户页面

图3

5.3主界面页面

主要导航栏有:

欢迎使用储蓄卡管理(存款、取款、查询余额、查询历史记录、注销退出)

图4

5.4存钱页面

图5

 

5.5取款页面

从登录界面得到卡号,并提供数据输入界面,等待用户输入取款金额,如果取款金额大于该用户卡上的余额则不能取款,或者将新的余额写人文件,并将本次取款事件写入文件同时将取钱的金额显示在页面上。

输入取款金额:

当取款金额大于现有金额:

图6

当取款金额小于或等于现有金额:

图7

5.6查询余额页面

图8

5.7查询历史记录页面

图9

 

5.8用户信息

图10

5.9注销页面

从保存数据并关闭文件,状态为注销,最后关闭整个系统。

图11

设计总结

通过此次课程设计,我发现程序存在的不足之处在于程序以文件方式储存,并且每个用户信息与用户的历史记录分别用一个文件来储存,如果这样的话一个用户就需要二个文件储存信息,那么一万个用户就需要用到二万个文件保存。

这不但浪费内存而已在查找文件也会花费时间。

重要的是,通过此次课程设计我深刻理解到编程员的心理。

知道应如何在困难中一步一步发现问题并解决问题。

知道了软件在程序设计中对界面和功能如何平衡。

参考文献

[1]陈维兴,林小茶.c++面向对象程序设计教程.北京:

清华大学出1996.2004.

[2]张国峰.C++程序设计实用教程.北京:

清华大学出版社,1996.

[3]张松梅.C++语言教程.电子科技大学出版社,1993.

[4]阎龙.C程序员的C++指南.北京航空航天大学出版社,1992.

[5]王博.面向对象的建模、设计技术与方法.北京希望电脑公司,1990.

致谢

首先感谢我的指导老师朱红蕾,她在我的课设中提出了指导性的方案和框

架,并指导我阅读相关资料和书籍,使我在不熟悉的领域中仍能迅速掌握新技术。

在这三周的面向对象课程设计中,对课本中所学的知识进一步理解和掌握,

学会了如何把学到的知识用于解决实际问题,锻炼了自己动手的能力。

在课程设计时遇到了很多的问题,在老师的帮助,和对各种资料的查阅中,将问题解决,培养了我自主动手,独立研究的能力,为今后在学习工作中能更好的发展打下了坚实的基础。

附录:

程序源代码

#include

#include

#include

#include

#include

#include

#include

usingnamespacestd;

classFunction;

classUser

{

public:

voidget(User&);

friendclassFunction;

ostream&print(ostream&os);

//friendostream&operator<<(ostream&o,constUser&u);

friendistream&operator>>(istream&i,User&u);

voidPassWord();

boolLogin(User&);

voidSaveFile(User&);

vectorStrFunction;

User(){}

User(intA,stringN,intF,stringI,stringAd,intT):

Accout(A),Name(N),Fmoney(F),ID(I),Address(Ad),Telephone(T){}

private:

intAccout;

stringName;

intFmoney;

stringID;

stringAddress;

intTelephone;

charPword1[9];

charPword2[9];

};

classFunction

{

public:

voidSaving(User&);

voidDrawing(User&);

voidBalance(User&);

voidRecord(Usprivate:

intSaveAndDrawMoney;

};

voidFunction:

:

Saving(User&u)

{

system("cls");

cout<<"\n\n\n\t\t*********************************************\n"<

cout<<"\t\t请输入存款金额:

";

stringstr1("\n\t\t现存RMB钞+");

cin>>SaveAndDrawMoney;

u.Fmoney+=SaveAndDrawMoney;

strstreamss;

stringstr2;

ss<

ss>>str2;

stringfrist="Record"+str2+".txt";

constchar*RecordFile=frist.c_str();

ofstreamoutfile(RecordFile,ios:

:

out|ios:

:

app);

outfile<

outfile.close();

outfile.clear();

cout<<"\n\n\t\t操作成功,单击任何键返回主菜单!

";

getch();

}

voidFunction:

:

Drawing(User&u)

{

system("cls");

cout<<"\n\n\n\t\t*********************************************\n"<

cout<<"\t\t请输入取款金额:

";

stringstr1("\n\t\t现取RMB钞-");

stringstr2;

intk=0;

while(k<=3)

{

cin>>SaveAndDrawMoney;

u.Fmoney-=SaveAndDrawMoney;

if(u.Fmoney>=0)

{

system("cls");

cout<<"\n\n\n\t\t正在出炒,请稍等!

"<

strstreamss;

ss<

ss>>str2;

stringfrist="Record"+str2+".txt";

constchar*RecordFile=frist.c_str();

ofstreamoutfile(Recooutfile<

outfile.close();

outfile.clear();

break;

}

else

{

k++;

if(k>=3)

{

system("cls");

cerr<<"\n\n\n\t\t很抱歉,你重复输入错误多次"<

<<"\n\t\t正在退卡中……"<

exit(0);

}

system("cls");

u.Fmoney+=SaveAndDrawMoney;

cerr<<"\n\n\n\t\t对不起,你输入的金额超出有效金额。

"<

<<"\n\t\t请重新输入:

";

}

}

cout<<"\n\n\t\t操作成功,单击任何键返回主菜单!

";

getch();

}

voidFunction:

:

Balance(User&u)

{

system("cls");

cout<<"\n\n\n\t\t*********************************************\n"<

cout<<"\t\t你当前的余额是:

";

cout<<"\t\t"<

cout<<"\n\t\t*********************************************\n"<

cout<<"\n\t\t操作成功,单击任何键返回主菜单!

";

getch();

}

voidFunction:

:

Record(User&u)

{

stringstr1,str2;

system("cls");

cout<<"\n\n\n\t\t*********************************************\n"<

cout<<"\t\t摘要币种钞汇存/取款金额"<

strstreamss;

ss<

ss>>str2;

stringfrist="Record"+str2+".txt";

constchar*RecordFile=frist.c_str();

ifstreaminfile(RecordFile,ios:

:

in);

if(!

infile)

{

cout<<"\n\t\t没有任何历史记录!

"<

getch();

return;

}

while(!

infile.eof())

{

getline(infile,str1);

cout<<"\n\t\t"<

}

cout<<"\n\t\t*********************************************\n"<

cout<<"\n\t\t操作成功,单击任何键返回主菜单!

";

getch();

}

ostream&User:

:

print(ostream&os)//mark

{

system("cls");

os<<"\n\n\n\t\t*********************************************\n"<

os<<"\n\t\t用户卡号:

"<

os<<"\n\t\t姓名:

"<

os<<"\n\t\t账户金额:

"<

os<<"\n\t\t身份证号:

"<

os<<"\n\t\t地址:

"<

os<<"\n\t\t联系电话:

"<

os<<"\n\t\t密码:

"<

os<<"\n\t\t*********************************************\n"<

cout<<"\n\t\t操作成功,单击任何键返回主菜单!

";

getch();

returnos;

}

voidUser:

:

SaveFile(User&u)

{

intfilename=u.Accout;

stringfrist;

stringlast(".txt");

strstreamss;

ss<

ss>>frist;

frist+=last;

constchar*UserID=frist.c_str();

rdFile,ios:

:

out|ioofstreamoutfile(UserID,ios:

:

out|ios:

:

trunc);

//outfile<<(*this);

outfile<

outfile.close();

}

boolUser:

:

Login(User&u)

{

intacc;

stringpwd;

cout<<"\n\t\t登陆用户:

"<

cout<<"\t\t卡号:

";

cin>>acc;

cout<<"\t\t密码:

";

cin>>pwd;

intfilename=acc;

stringfrist;

stringlast(".txt");

strstreamss;

ss<

ss>>frist;

frist+=last;

constchar*UserID=frist.c_str();

ifstreaminfile(UserID,ios:

:

in);

while(infile>>(*this))

{

if(u.Accout==acc)

{

stringstr;

str=Pword1;

if(str==pwd)

{

returntrue;

}

}

}

returnfalse;

}

/*ostream&operator<<(ostream&o,constUser&u)

{

o<

returno;

}*/

istream&operator>>(istream&i,User&u)

{

i>>u.Accout>>u.Name>>u.Fmoney>>u.ID>>u.Address>>u.Telephone>>u.Pword1;

returni;

}

voidUser:

:

PassWord()

{

intnum=0;

while(num<3)

{

cout<<"\n\t\t请输入位储蓄密码:

";

for(inti=0;i<8;i++)

{Pword1[i]=getch();cout<<"*";}

Pword1[8]='\0';

cout<

cout<<"\n\t\t请再一次确认密码:

";

for(inti=0;i<8;i++)

{Pword2[i]=getch();cout<<"*";}

cout<

Pword2[8]='\0';

if(strcmp(Pword1,Pword2)==0)

{

cout<<"\n\n\t\t密码确认成功,单击任何键进入主菜单";

getch();

return;

}

else

{

num++;

cout<<"\n\t\t你输入的密码错误,请重新输入!

\n"<

}

if(num==3)

{

system("cls");

cerr<<"\n\n\n\t\t对不起,你三次输入不正确\n"<

<<"\t\t感谢你的使用,再见!

"<

exit(0);

}

}

}

voidUser:

:

get(User&u)

{

system("cls");

cout<<"\n\n\n\t\t请输入用户信息:

\n"<

cout<<"\t\t*********************************************\n"<

cout<<"\n\t\t卡号:

";

cin>>Accout;

cout<<"\n\t\t姓名:

";

cin>>Name;

cout<<"\n\t\t账户金额:

";

cin>>Fmoney;

cout<<"\n\t\t身份证号:

";

cin>>ID;

cout<<"\n\t\t地址:

";

cin>>Address;

cout<<"\n\t\t联系电话:

";

cin>>Telephone;

u.PassWord();

cout<<"\n\t\t*********************************************\n"<

}

voidSign()

{

system("cls");

cout<<"\n\n\n\n\n\n\t\t\t谢谢您使用银行管理系统\t\n\n"<

cout<<"\t\t*********************************************\n"<

cout<<"\t\t姓名:

谢道尔\n\n"

<<"\t\t班级:

计算机班\n\n"

<<"\t\t学号:

200710214217\n\n"<

cout<<"\n\t\t已经成功退出"<

<<"\n\t\t欢迎你的光临!

"<

}

charcustom(User&u)

{

charx;

intk=0;

system("cls");

cout<<"\n\n\n\t\t※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"

<<"\t\t※※\n"

<<"\t\t※欢迎使用储蓄管理系统※\n"

<<"\t\t※※\n"

<<"\t\t※请用户在使用前选择开户:

※\n"

<<"\t\t※※\n"

<<"\t\t※请选择:

※\n"

<<"\t\t※1:

注册开户※\n"

<<"\t\t※2:

用户登录

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

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1