银行账户管理方案系统.docx

上传人:b****2 文档编号:2702548 上传时间:2023-05-04 格式:DOCX 页数:57 大小:391.62KB
下载 相关 举报
银行账户管理方案系统.docx_第1页
第1页 / 共57页
银行账户管理方案系统.docx_第2页
第2页 / 共57页
银行账户管理方案系统.docx_第3页
第3页 / 共57页
银行账户管理方案系统.docx_第4页
第4页 / 共57页
银行账户管理方案系统.docx_第5页
第5页 / 共57页
银行账户管理方案系统.docx_第6页
第6页 / 共57页
银行账户管理方案系统.docx_第7页
第7页 / 共57页
银行账户管理方案系统.docx_第8页
第8页 / 共57页
银行账户管理方案系统.docx_第9页
第9页 / 共57页
银行账户管理方案系统.docx_第10页
第10页 / 共57页
银行账户管理方案系统.docx_第11页
第11页 / 共57页
银行账户管理方案系统.docx_第12页
第12页 / 共57页
银行账户管理方案系统.docx_第13页
第13页 / 共57页
银行账户管理方案系统.docx_第14页
第14页 / 共57页
银行账户管理方案系统.docx_第15页
第15页 / 共57页
银行账户管理方案系统.docx_第16页
第16页 / 共57页
银行账户管理方案系统.docx_第17页
第17页 / 共57页
银行账户管理方案系统.docx_第18页
第18页 / 共57页
银行账户管理方案系统.docx_第19页
第19页 / 共57页
银行账户管理方案系统.docx_第20页
第20页 / 共57页
亲,该文档总共57页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

银行账户管理方案系统.docx

《银行账户管理方案系统.docx》由会员分享,可在线阅读,更多相关《银行账户管理方案系统.docx(57页珍藏版)》请在冰点文库上搜索。

银行账户管理方案系统.docx

银行账户管理方案系统

综合程序课程设计说明书

 

课程设计名称:

12级综合程序课程设计报告

课程设计题目:

银行账户管理系统

学院名称:

信息工程学院

专业:

电子信息工程班级:

学号:

姓名:

评分:

教师:

2015年03月20日

 

综合程序课程设计任务书

题目

银行账户管理系统

内容及要求

设计一个银行账户管理程序,账户的信息有账号(唯一)、姓名、余额、身份证号码、电话号码,允许用户进行如下操作:

开户、销户、存款、取款、转账、查询,一个用户可以有多个户头,账户的数值没有上限。

基本要求:

程序运行时,可以由用户选择进行何种操作,开户操作要求输入用户信息后自动获取账号,用户销户后账号被回收,并且该账号可以继续分配给其它账户,不允许用户透支,根据姓名或账号可以进行用户的信息查询,所有的账户信息应存放到一个文件中,可以随时的访问和更新。

选作内容:

在上述程序的基础上,添加联名账户(一个联名账户有两个拥有者)的管理。

进度安排

3月2~3日:

查找资料

3月4日:

系统框架搭建

3月5~10日:

对系统的各模块进行详细的设计。

3月11~12日:

对系统进行测试、完善

学生姓名:

指导时间第1~2周

指导地点:

任务下达

2015年3月1日

任务完成

2015年3月13日

考核方式

1.评阅□ 2.答辩□3.实际操作□ 4.其它□

指导教师

系(部)主任

2014-2015学年第2学期 第1周-2周

注:

1、此表一组一表二份,课程设计小组组长一份;任课教师授课时自带一份备查。

2、课程设计结束后与“课程设计小结”、“学生成绩单”一并交院教务存档。

摘要

随着社会经济的发展,信息化程度的不断深入,计算机的广泛运用,为了满足新形势下银行客户的需求,使用计算机来进行银行账户的管理是社会发展的新常态。

本文主要介绍一种以C++为系统描述语言,采用自顶向下的的设计方法,通过类来实现相应操作的一种银行账户系统。

该系统具有开户、用户信息存储、查询、转账、取款等功能。

较之其他系统,具有快速、易操作、安全性好等特点。

关键词:

银行账户管理系统C++类

 

 

第一章设计要求

设计一个银行账户管理程序,账户的信息有账号(唯一)、姓名、余额、身份证号码、电话号码,允许用户进行如下操作:

开户、销户、存款、取款、转账、查询,一个用户可以有多个户头,账户的数值没有上限。

基本要求:

程序运行时,可以由用户选择进行何种操作,开户操作要求输入用户信息后自动获取账号,用户销户后账号被回收,并且该账号可以继续分配给其它账户,不允许用户透支,根据姓名或账号可以进行用户的信息查询,所有的账户信息应存放到一个文件中,可以随时的访问和更新。

选作内容:

在上述程序的基础上,添加联名账户(一个联名账户有两个拥有者)的管理。

第二章系统的组成及设计的原理

2.1系统的组成

通过对该银行账户管理系统的需求进行分析,从增强系统的可维护性以及保密性的角度入手,整体上计划采用两个类,即zhgl类和consumer类来实现。

定义zhgl为基类,定义consumer类为zhgl的派生类、使其的访问属性为public。

zhgl类用来完成功能显示、开户、销户和用户登录功能;consumer类用来存放账户基本信息,进行查询、存款、取款、密码修改和转账操作。

除此之外还有如下子函数组成。

voidkaihu();//普通账户开户

voidshanchu();//删除账号

voidzhuanzhang(int);//转账

voiddenglu();//登陆账号

voidaddmoney(int,float);

voidexitzhgl();//退出系统

voidfunctionshow();

voidsave();//保存

voidqishi();//功能界面

voidload();//载入

voiddisplay();

voidqumoney();//取钱

voidchange_passwd();//改密码

voidb_money(float);//被转账者

voida_money(float);//转账者

voidc_money(float);//联合被转账者

voidd_money(float);//联合转账者

floatget_money();//卡卡转帐

voidsearch();//查询

voidcunmoney();//存钱

2.2表的信息结构

1.普通账户信息表

字段名

字段类型

允许空

说明

ID

int

no

卡号

name

string

no

用户姓名

password

string

no

密码

identification

string

no

身份证

phonenumber

string

no

电话

money

float

no

账户余额(不能为空)

2.联名账户信息表

字段名

字段类型

允许空

说明

ID

int

no

卡1

name

string

no

卡1用户姓名

password

string

no

卡1密码

ID2

int

no

卡2

Name2

string

no

卡2用户姓名

Password2

string

no

卡2密码

money

float

no

账户余额(不能为空)

 

3.用户进行存取的操作表

字段名

字段类型

允许空

说明

ID

int

no

卡号

c

float

no

存/取金额

ch

char

no

判断是否继续该操作

 

4.用户进行转账的操作表

字段名

字段类型

允许空

说明

ID

int

no

转账的卡号

id

int

no

被转账的卡号

b

float

no

转账金额

money

float

no

账户余额

 

5.用户进行密码修改的操作表

字段名

字段类型

允许空

说明

ID

int

no

卡号

pwd

string

no

新密码

repwd

string

no

再次输入的新密码

passwd

string

no

账号密码

第三章概要设计

3.1基本功能设计思路

通过对该银行账户管理系统的需求进行分析,从增强系统的可维护性以及保密性的角度入手,整体上计划采用两个类,即zhgl类和consumer类来实现。

定义zhgl为基类,定义consumer类为zhgl的派生类、使其的访问属性为public。

zhgl类用来完成功能显示、开户、销户和用户登录功能;consumer类用来存放账户基本信息,进行查询、存款、取款、密码修改和转账操作。

定义一个account指针,用来指向已开户的账户,并获得该账户的信息,用来执行存、取、转账等操作。

并用fstream指令进行文件的读写操作,实现将账户所有者的信息存放到一个文件中,并可以随时的访问和更新。

程序运行后用户可根据界面提示自行操作。

由于要实现界面的回复,在控制用户的循环操作时可以采用dowhile匹配的循环结构。

3.2程序框图

第四章详细设计

4.1类的定义

4.1.1zhgl类的定义

classzhgl

{

public:

voidkaihu();//普通账户开户

voidshanchu();//删除账号

voidzhuanzhang(int);//转账

voiddenglu();//登陆账号

voidaddmoney(int,float);

voidexitzhgl();//退出系统

voidfunctionshow();

voidsave();//保存

voidqishi();//功能界面

voidload();//载入

protected:

staticintnum;//账户数

};

consumer*account[20];

4.1.2consumer类的定义

classconsumer:

publiczhgl

{

public:

friendclasszhgl;

consumer(intid,stringName,stringPassWord,floatm,stringIdentification,stringPhoneNumber)

{

ID=id;

name=Name;

money=m;

passwd=PassWord;

identification=Identification;

phonenumber=PhoneNumber;

}

stringget_passwd()//取得密码

{

returnpasswd;

}

stringget_name()

{

returnname;

}

intget_id()//返回账号

{

returnID;

}

voiddisplay();

voidqumoney();//取钱

voidchange_passwd();//改密码

voidb_money(float);//被转账者

voida_money(float);//转账者

voidc_money(float);//联合被转账者

voidd_money(float);//联合转账者

floatget_money();//卡卡转帐

voidsearch();//查询

voidcunmoney();//存钱

private:

intID;//开户帐号

stringpasswd;//用户密码

stringname;//用户姓名

stringidentification;//身份证

stringphonenumber;//电话号码

floatmoney;//初始资金

};

4.2银行账户系统其他功能的实现

4.2.1账户开户

账户开户使用cin接收键盘中输入的数据,并使用指向类对象的指针,将接收的值传回。

voidzhgl:

:

kaihu()//开户的实现

{

intid;

stringnam;

stringpassw;

stringidentif;

stringphonen;

floatm;

cout<

";

cin>>id;

cout<

";

cin>>nam;

cout<

";

cin>>identif;

cout<

";

cin>>phonen;

cout<

";

cin>>passw;

cout<

";

cin>>m;

while(m<=0)

{

cout<<"请输入正确的数字!

"<

cin>>m;

}

consumer*acc=newconsumer(id,nam,passw,m,identif,phonen);

account[num]=acc;

system("cls");

cout<<"开户成功!

!

"<

num++;

save();

return;

}

4.2.2账户注销

注销账户时先要将输入的账户号与已开户的账户进行比对,匹配上后,将账户号按位依次赋空,实现账户注销。

voidzhgl:

:

shanchu()//注销账号的实现

{

intid;

cout<

";

cin>>id;

intflag=1;

inti=0;

while((i

{

if(id==account[i]->get_id())

{flag=0;}

else

{i++;}

}

if(flag)

{

cout<<"帐号不存在!

"<

return;

}

for(intj=i;j

{

account[j]=account[j+1];

}

account[num-1]=NULL;//按位依次赋空实现销户

num--;

cout<<"注销成功!

!

"<

return;

}

程序框图如下:

4.2.3账户登录

首先读取bankdata.TXT保留的账户信息,首先对银行账号进行匹配,匹配上后再对密码进行匹配,在登陆后,会有2级菜单供用户选择自己想要的操作,能够查询,取款,存款,转账,修改密码和返回主菜单。

voidzhgl:

:

denglu()//登陆账号的实现

{

intid;

cout<<"请输入帐号:

";

cin>>id;

intflag=1;

inti=0;

while((i

{

if(id==account[i]->get_id())

flag=0;

else

i++;

}

if(flag)

{

cout<<"帐号不存在!

"<

return;}

cout<<"请输入密码:

";

stringpassw;

cin>>passw;

if(passw!

=account[i]->get_passwd())

return;

intn;

do{

cout<<"请选择你要进行的操作:

"<

cin>>n;

switch(n)

{case0:

account[i]->search();break;

case1:

account[i]->display();break;

case2:

account[i]->qumoney();save();break;

case3:

account[i]->cunmoney();save();break;

case4:

account[i]->change_passwd();save();break;

case5:

zhuanzhang(i);save();break;

case6:

return;

}

}

while

(1);

}

4.2.4退出系统

voidzhgl:

:

exitzhgl()

{

cout<

"<

exit(0);}

4.2.5查询其他用户信息

voidconsumer:

:

search()

{

stringch;

intID;

intflag=1;

intQ=0;

cout<

";

cin>>ID;

while((Q

{

if(ID==account[Q]->get_id())

{flag=0;}

else

{Q++;}

}

if(flag)

{

cout<<"帐号不存在!

"<

return;

}

ch=account[Q]->get_name();

cout<<"对应的用户名为:

"<

}

4.2.6查看本用户信息

用cout输出本用户的基本信息

voidconsumer:

:

display()

{system("cls");

cout<<"**********************************"<

cout<<"*"<

cout<<"*用户姓名:

"<

cout<<"*身份证号码:

"<

cout<<"*电话号码:

"<

cout<<"*帐号:

"<

cout<<"*余额:

"<

cout<<"**********************************"<

}

4.2.7取款

用户选择取款功能后,先提示用户输入取款金额,取款金额应大于0元,所以要先对输入的金额进行判断,当其大于0后再账户余额进行比较。

若输入金额大于账户余额,提示用户账户余额不足;若输入金额小于等于账户余额,执行取款操作,并相应的减去取款金额。

执行完操作后询问用户是否继续当前操作。

voidconsumer:

:

qumoney()//取钱的实现

{

floatm;

charch;

do

{

cout<

"<<"$>"<

cin>>m;

while(m<=0)

{

cout<<"请输入正确的数字!

"<

cout<<"$>";

cin>>m;

}

if(money

{

cout<<"对不起,你的余额不足!

"<

}

else

{

money=money-m;

cout<

"<

}

cout<<"是否要继续该项操作:

(Y/N)"<

cout<<"$>";

cin>>ch;

while(ch!

='n'&&ch!

='N'&&ch!

='Y'&&ch!

='y')

{

cout<<"$>";

cin>>ch;

}}

while(ch=='y'||ch=='Y');

}

4.2.8存款

存款功能和取款功能类似,用户选择存款功能后,先提示用户输入存款金额,存款金额应大于0元,当存款金额大于0后执行存款操作,并相应的账户余额应为之前的金额加上存款金额。

执行完操作后询问用户是否继续当前操作。

voidconsumer:

:

cunmoney()//存钱的实现

{

floatc;

charch;

do

{

cout<

"<<"$>"<

cin>>c;

while(c<=0)

{

cout<<"请输入正确的数字!

"<

cout<<"$>";

cin>>c;

}

money=money+c;

cout<<"操作已成功!

"<

cout<<"是否要继续该项操作:

(Y/N)"<

cout<<"$>";

cin>>ch;

while(ch!

='n'&&ch!

='N'&&ch!

='Y'&&ch!

='y')

{

cout<<"$>";

cin>>ch;

}}

while(ch=='y'||ch=='Y');}

4.2.9密码修改

密码修改时,新密码需要输两次,且两次输入的密码都相等才能完成密码修改。

因此在密码修改程序中需要定义两个变量,分别存放这两次输入的密码。

在这个程序中pwd表示第一次输入的密码,repwd表示第二次输入的密码,完成新密码输入后,当pwd和repwd时将新密码赋给passwd,否则提醒用户重新输入新密码。

voidconsumer:

:

change_passwd()//变更密码的实现

{

stringpwd,repwd;

cout<<"请输入新密码:

";

cin>>pwd;

cout<<"请再输入一次新密码:

";

cin>>repwd;

if(pwd!

=repwd)

cout<<"你输入的两次密码不一样,请重新输入!

"<

passwd=pwd;

cout<<"密码修改成功,请牢记!

"<

}

4.2.10转账

转账时,应先获得被转账者的账户,确认该账户存在后,还需对转账金额进行判断,规定转账金额必须大于0元。

完成转账功能还需借用两个子函数来对转账者和被转账者的账户金额进行操作。

这里用a_money、b_money分别对转账者和被转账者的账户余额进行操作。

voidconsumer:

:

b_money(floatx)

{

money=x+money;

}

voidconsumer:

:

a_money(floatx)

{

money=money-x;

}

voidzhgl:

:

zhuanzhang(intx)//转账的实现

{intid;

intflag=1;

inti=0;

cout<<"请输入帐号:

";

cin>>id;

while((i

{

if(id==account[i]->get_id())

flag=0;

else

i++;

}

if(flag)

{

cout<<"帐号不存在!

"<

return;

}

floatb;

cout<<"请输入你要转帐的金额:

"<

cin>>b;

while(b<=0)

{

cout<<"请输入正确的数字!

"<

cout<<"$>";

cin>>b;

}

if(account[x]->get_money()

cout<<"对不起,金额不够!

!

"<

else

{

account[x]->a_money(b);//转出

account[i]->b_money(b);//转入

cout<<"转帐成功!

";

}

return;}

4.3读取和保存

根据系统的功能中有一个要求:

可以随时的访问和更新。

考虑到这一点,在程序中计划用fstream指令来完成,因此在系统运行前,应先进行文件的读取,读取之前已开户的账户信息,并在执行操作之后保存更改,实现随时的访问和更新。

4.3.1读取

vo

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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