模拟ATM机存取款管理系统面对对象课程设计Word格式.docx
《模拟ATM机存取款管理系统面对对象课程设计Word格式.docx》由会员分享,可在线阅读,更多相关《模拟ATM机存取款管理系统面对对象课程设计Word格式.docx(20页珍藏版)》请在冰豆网上搜索。
实现查询银行卡余额、取款、修改密码、退出系统等功能
2.系统分析
人们的金融意识、科技意识己经有了很大的提高,在紧张忙碌的生活中,己越来越来不习惯每月奔忙于各银行营业柜台之问去排队缴各种各样的费用了;
同时,各种经营单位如电信、移动、供电、煤气、自来水、证券等等一是为了提高服务质量、方便客户,二是为了减轻自己日趋繁重的工作量,纷纷委托银行为其开展代收代付业务。
银行每天要处理大量的存取款事件,做好存取款是银行工作重要的环节,然而要有效处理必须要有良好的程序和数据管理系统来建立一个良好的软件系统来实现快速、有效、准确、安全的处理银行事物。
(1)卡号、密码输入最多三次,否则直接退出系统。
(2)取款功能:
取款金额受卡余额、机单笔最大取款金额及机当前剩余金额的限制。
(3)查询功能:
实现查询余额功能。
(4)更改密码:
实现密码更改功能,对于密码要有2次验证。
(5)锁卡功能:
实现卡被锁的功能。
(6)退卡功能:
实现退出系统功能。
软硬件环境
环境:
Visual
c++
硬件:
lenovoidea-pad
3系统概要设计
系统整体架构设计
系统总体框架
管理模块
(1)登录页面
输入卡号和密码,根据用户输入的卡号和密码,到后台文件查询,若正确则登录成功,并保存卡好信息已备后用。
若卡号存在和密码不匹配或无该卡号已经注销,提示该卡号已存在或已注销,保持界面三次不变等待用户的重新输入。
(2)主界面页面
主要导航栏有:
欢迎使用储蓄卡管理(存款、取款、修改密码、转账功能、注销退出)
(3)储蓄卡开户页面
提供开户界面,由用户输入新储蓄卡的所有信息,将该信息保存到文件中,并将开户金额作为该卡的第一次存款记录存人文件。
(4)存钱页面
从登录界面得到卡号,并提供数据输入界面,等待用户的输入存款金额。
从后台数据库中找到该用户余额记录,修改余额,并将该存款事件的相应信息写人数据库,同时将存钱的金额显示在页面上。
(5)取款页面
从登录界面得到卡号,并提供数据输入界面,等待用户输入取款金额,如果取款金额大于该用户卡上的余额则不能取款,或者将新的余额写人文件,并将本次取款事件写入文件同时将取钱的金额显示在页面上,。
(6)注销页面
从关闭文件,状态为注销,最后关闭整个系统。
(1)comsumer类
classcomsumer主要制定用户的成员数据,并进行登录与保存功能:
comsumer类说明表
名称
属性
说明
ID
数据成员
用户账户数据
name
用户姓名
money
用户首次金额
in
用户身份证号
address
用户地址
number
用户电话
Passwd
用户密码
savemoney()
成员方法
存钱
fetchmoney()
取钱
change_passwd()
修改密码
get_money()
卡卡转账
(2)YH类
YH类主要实现用户的各种功能:
YH类说明表
acnum
账户数
set_account()
开户功能
del_account()
注销账户功能
transfer()
转账功能
functionshow()
主界面显示功能
addmoney()
存钱功能
exitYH()
退出系统功能
5.系统实现
类的实现
(1)consumer类
classconsumer:
publicYH开户㊣"
<
endl;
cout<
"
㊣㊣"
㊣2.账户登录㊣"
㊣3.账户注销㊣"
㊣4.退出系统㊣"
㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣"
→"
;
cin>
>
n;
while(n<
1||n>
4)
{
cout<
操作错误,请输入正确的操作序号!
cin>
}
switch(n)
{
case1:
set_account();
看账户信息◎"
◎◎"
◎2.取款◎"
◎3.存款◎"
◎4.修改密码◎"
◎5.转账◎"
◎6.返回上一菜单◎"
◎☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆◎"
(5)添加/删除账户功能实现:
switch(n)
{case1:
account[i]->
display();
break;
case2:
fetchmoney();
save();
考文献
[1]高俊文。
c/c++程序设计
。
北京:
人民邮电出版社,2005
[2]谭浩强。
C++程序设计。
清华大学出版社,2004
源程序:
#include<
iostream>
#include<
string>
fstream>
usingnamespacestd;
classconsumer;
classYH开户㊣"
//从2-5功能,每执行一次调用一次save函数,重新写入数据
case3:
account[i]->
savemoney();
case4:
change_passwd();
case5:
transfer(i);
case6:
return;
}();
();
}
while
(1);
voidYH:
:
set_account()
{
intid;
stringnam;
stringpassw;
floatm;
stringcompany;
stringaddress;
intnumber;
doublein;
请输入开户号:
id;
请输入开户人姓名:
nam;
请输入开户密码:
passw;
请输入存入金额:
m;
cout<
请输入开户人电话:
number;
请输入开户人公司:
company;
请输入开户人地址:
address;
请输入开户人身份证号码:
in;
while(m<
=0)
请输入正确的数字!
consumer*acc=newconsumer(id,nam,number,in,company,address,passw,m);
account[acnum]=acc;
开户成功!
!
endl<
acnum++;
del_account()
请输入你要注销的帐户号:
intflag=1;
inti=0;
while((i<
acnum)&
&
(flag))//循环查找
{
if(id==account[i]->
get_id())
flag=0;
}
else
i++;
if(flag)
该帐号不存在,请重新输入!
//返回到登陆界面
for(intj=i;
j<
acnum;
j++)//所有被删号后的数据重新存储
account[j]=account[j+1];
account[acnum-1]=NULL;
acnum--;
//账号总数自减一次
你的账号已注销!
voidconsumer:
stringpwd,repwd;
请输入新密码:
pwd;
请再输入一次新密码:
repwd;
if(pwd!
=repwd)
你输入的两次密码不一样,按输入键返回上一层菜单!
else
密码修改成功,请牢记!
fetchmoney()
floatm;
charch;
do
输入取款金额:
¥>
endl;
if(money<
m)
对不起,你的余额不足!
else
{money=money-m;
操作成功,请收好钱!
是否要继续该项操作:
(Y/N)"
ch;
while(ch!
='
n'
ch!
N'
Y'
y'
)//选择错误时判定
}while(ch=='
||ch=='
);
savemoney()//存钱函数功能实现
floatc;
charch;
请输入要存入的金额:
c;
while(c<
输入错误,请重新输入!
money=money+c;
操作已成功!
)
intYH:
acnum=0;
display()//用户信息界面
{system("
cls"
#####################################"
#"
# 用户姓名:
name<
# 帐号:
"
ID<
# 余额:
"
money<
#按输入键回到上一菜单"
exitYH()//退出系统
感谢您对本银行的支持,欢迎下次光临!
exit(0);
精心搜集整理,只为你的需要