银行账户管理方案系统.docx
- 文档编号:11749521
- 上传时间:2023-03-31
- 格式:DOCX
- 页数:57
- 大小:391.62KB
银行账户管理方案系统.docx
《银行账户管理方案系统.docx》由会员分享,可在线阅读,更多相关《银行账户管理方案系统.docx(57页珍藏版)》请在冰豆网上搜索。
银行账户管理方案系统
综合程序课程设计说明书
课程设计名称:
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 银行 账户 管理 方案 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)