银行储蓄系统.docx
《银行储蓄系统.docx》由会员分享,可在线阅读,更多相关《银行储蓄系统.docx(25页珍藏版)》请在冰豆网上搜索。
银行储蓄系统
//头文件
#include
#include
#include
#include
#include
#defineMAXNUM10000//银行中最大开户数
usingnamespacestd;
//定义卡的结构体
structAccount
{
charcardId[20];//银行卡的卡号
charname[9];//开户人
charidentity[19];//身份证号
charpassword[7];//密码
floatbalance;//余额
intstate;//状态0-正常-1-挂失-2-冻结-3-销户
};
//银行中所有卡
Accountarray[MAXNUM];
//银行中现已开户的数量
intsize=0;
voidmainface();//主界面
voidopenAccount();//1开户
voidsave();//2存款
voidwithdraw();//3取款
voidquery();//4查询
voidzhuangtai();
voidloss();//5挂失
voidtransfer();//6转账
voidfreeze();//7冻结
voidcloseAnAcount();//8销户
//公共函数
//根据卡的下标打印该卡的信息
voidprintCardInfo(intposition);//打印信息
voidshuchuzhuangtai();//判断卡的状态是处于:
正常/挂失/冻结/销户
intchakahao(charusecard[]);//查找卡号的函数
intchakahaomima();//查找卡号和密码信息的函数
voidgetPassword(charpass[],intnum);//被调用函数,密码以星号形式输出
charshenfenzhenghao[19];//身份证号
intposition=0;//位置
charusecard[20];//卡号
charname1[9];//用户名
charpass1[7],pass2[7];//密码
floatcash;//存/取款现金
intmain()
{
charusename[10];//输入的用户名
charusepass[10];//输入的密码
intn=2,i=0;
//银行系统首页
cout<<"★☆★☆★☆★☆★☆★☆★☆★☆★☆★"<cout<<"☆☆"<cout<<"★***********************★"<cout<<"☆*欢迎进入银行储蓄系统!
*☆"<cout<<"★***********************★"<cout<<"☆☆"<cout<<"★☆★☆★☆★☆★☆★☆★☆★☆★☆★"<//根据输用户名和密码是否正确判断还有几次输入机会
do
{
cout<<"请输入银行工作人员姓名:
"<cin>>usename;
cout<<"请输入工作人员密码:
"<getPassword(usepass,6);
cout<//设定银行工作人员输入姓名与密码在系统中
if(strcmp("chl",usename)==0&&strcmp("123456",usepass)==0)//判断银行工作人员姓名与工作人员密码是否与输入的一致
{
mainface();
}
else
{
//判断还有几次输入机会,根据输入的密码是否正确
if(n>0)
{
cout<<"输入有误,请重新输入。
您还有"<"<n=n-1;
}
else
{
cout<<"账户已被锁定24小时!
"<}
}
}
while(strcmp("chl",usename)!
=0||strcmp("123456",usepass)!
=0);//如果银行工作人员姓名与密码与系统中的不一致,将继续循环程序,直到被锁定
return0;
}
voidmainface()//主界面
{
intorder;//选择键
//业务界面
cout<<"\n+--------------------------+"<cout<<"|开户请按1存款请按2|"<cout<<"|取款请按3查询请按4|"<cout<<"|挂失请按5转账请按6|"<cout<<"|冻结请按7销户请按8|"<cout<<"+--------------------------+"<cout<<"请输入你的选择业务:
"<cin>>order;
switch(order)
{
case1:
openAccount();//开户
cout<<"请按任意键返回:
"<//执行完上面功能,按任意键返回主界面
getch();
system("cls");//清屏
mainface();
break;
case2:
save();//存款
cout<<"请按任意键返回:
"<//执行完上面功能,按任意键返回主界面
getch();
system("cls");//清屏
mainface();
break;
case3:
withdraw();//取款
cout<<"请按任意键返回:
"<//执行完上面功能,按任意键返回主界面
getch();
system("cls");//清屏
mainface();
break;
case4:
query();//查询
cout<<"请按任意键返回:
"<//执行完上面功能,按任意键返回主界面
getch();
system("cls");//清屏
mainface();
case5:
loss();
cout<<"请按任意键返回:
"<//执行完上面功能,按任意键返回主界面
getch();
system("cls");//清屏
mainface();//挂失
case6:
transfer();//转账
cout<<"请按任意键返回:
"<//执行完上面功能,按任意键返回主界面
getch();
system("cls");//清屏
mainface();
case7:
freeze();//冻结
cout<<"请按任意键返回:
"<//执行完上面功能,按任意键返回主界面
getch();
system("cls");//清屏
mainface();
case8:
closeAnAcount();//销户
cout<<"请按任意键返回:
"<//执行完上面功能,按任意键返回主界面
getch();
system("cls");//清屏
mainface();
default:
cout<<"对不起,您的选择超出了我们的服务范围"<mainface();//其他情况直接回到主界面
}
}
voidopenAccount()//1.开户操作
{
cout<<"请输入卡号:
"<cin>>usecard;
cout<<"请输入开户人:
"<cin>>name1;
cout<<"请输入身份证号:
";
cin>>shenfenzhenghao;
cout<<"请输入密码:
"<getPassword(pass1,6);
cout<<"\n请确认密码:
"<getPassword(pass2,6);
//判断两次输入的密码是一样
if(strcmp(pass1,pass2)==0)
{
cout<<"\n请输入金额:
"<cin>>cash;
//将开户信息赋予开户的这张卡中
strcpy(array[size].cardId,usecard);
strcpy(array[size].name,name1);
strcpy(array[size].password,pass1);
array[size].identity,shenfenzhenghao;
array[size].state=0;
array[size].balance=cash;
//账户数量+1
size++;
cout<<"\n开户成功!
"<printCardInfo(size-1);//打印
}
else
{
//两次输入的密码不一样
cout<<"\n两次输入的密码不一致,请重新操作!
";
openAccount();
}
}
//打印卡的信息
voidprintCardInfo(intposition)
{
cout<<"+-------------------------------------------------+"<cout<<"|\t卡号|\t"<cout<<"+-------------------------------------------------+"<cout<<"|\t开户人|\t"<cout<<"+-------------------------------------------------+"<cout<<"|\t金额|\t"<:
fixed)<(2)<cout<<"+-------------------------------------------------+"<cout<<"|\t状态|\t";shuchuzhuangtai();
cout<<"+-------------------------------------------------+"<}
//判断卡的状态是处于:
正常/挂失/冻结/销户
voidshuchuzhuangtai()
{
if(array[position].state==0)
cout<<"正常"<if(array[position].state==-1)
cout<<"以挂失"<if(array[position].state==-2)
cout<<"已被冻结"<if(array[position].state==-3)
cout<<"已销户"<}
voidsave()//2.存款
{
intn=2;
if(array[position].state!
=0)
{
cout<<"卡的状态异常,不能进行存款!
"<}
else
{
cout<<"请输入银行卡卡号:
"<cin>>usecard;
position=chakahao(usecard);
//根据卡下标判断是否存在
if(position==-1)
cout<<"找不到该卡信息,不能进行存款!
";
if(position!
=-1)
{
cout<<"请输入现金金额:
"<cin>>cash;
if(cash>0)//判断输入现金是否有意义
{
array[position].balance+=cash;
printCardInfo(position);//打印
}
else
{
cout<<"输入金额不正确,请重新输入!
";
save();
}
}
}
}
//被调用函数,用来检验卡的信息是否存在
intchakahao(charusecard[])
{
inti,position=-1;
for(i=0;i<=size-1;i++)
{
if(strcmp(array[i].cardId,usecard)==0)
{
position=i;
break;
}
}
return(position);
}
//被调用函数,用来检验卡和密码信息是否存在
intchakahaomima(charusecard[],charpass1[])
{
inti,position=-1;
for(i=0;i<=size-1;i++)
{
if(strcmp(array[i].cardId,usecard)==0&&strcmp(array[i].password,pass1)==0)
{
position=i;
break;
}
}
return(position);//返回给主函数
}
voidwithdraw()//3.取款
{
if(array[position].state!
=0)
{
cout<<"卡的状态异常,不能进行取款!
"<}
else
{
intn=2;
cout<<"请输入银行卡卡号:
"<cin>>usecard;
cout<<"请输入银行卡密码:
"<getPassword(pass1,6);
position=chakahaomima(usecard,pass1);
if(position==-1)
cout<<"\n找不到该卡信息,不能进行取款!
";
if(position!
=-1)
{
cout<<"\n请输入取出现金金额:
"<cin>>cash;
if(cash=0)
{
array[position].balance-=cash;
printCardInfo(position);
}
else
{
cout<<"余额不足,请重新输入!
";
withdraw();
}
}
}
}
voidquery()//4.查询
{
cout<<"请输入银行卡卡号:
"<cin>>usecard;
cout<<"请输入密码:
"<getPassword(pass1,6);
position=chakahaomima(usecard,pass1);
if(position==-1)
{
cout<<"\n查询不到该卡信息!
"<cout<<"\n请按任意键返回主界面:
";
getchar();
mainface();
}
if(position!
=-1)
{
if(strcmp(array[position].password,pass1)==0&&strcmp(array[position].cardId,usecard)==0)
printCardInfo(position);
zhuangtai();
}
}
voidzhuangtai()//检验卡的状态,根据不同的状态输出不同的结果
{
if(array[position].state==0)
{
cout<<"\n该账户信息正常!
"<}
elseif(array[position].state==-1)
{
cout<<"\n该账户已挂失!
"<}
elseif(array[position].state==-2)
{
cout<<"\n该账户已冻结!
"<}
else
{
cout<<"\n该账户已销户!
"<}
}
voidloss()//5.挂失
{
if(array[position].state==-1)
{
cout<<"卡已处于挂失状态,不能进行挂失!
"<}
if(array[position].state==0)
{
cout<<"请输入银行卡卡号:
"<cin>>usecard;
cout<<"请输入银行卡密码:
"<getPassword(pass1,6);
position=chakahaomima(usecard,pass1);
if(position==-1)
cout<<"\n找不到该卡信息,不能进行挂失!
";
if(position!
=-1)
{
if(strcmp(array[position].password,pass1)==0&&strcmp(array[position].cardId,usecard)==0)
{
cout<<"\n是否确认挂失?
"<cout<<"\n如果是,请按1,否则请按2"<intorder;
cin>>order;
switch(order)
{
//判断条件
//1.挂失
//2.取消挂失
//3.重新挂失
case1:
array[position].state=-1;
cout<<"\n挂失成功!
"<case2:
array[position].state=0;
cout<<"\n取消挂失成功"<default:
cout<<"\n挂失失败,请重新挂失!
"<}
}
}
}
}
voidtransfer()//6.转账
{
if(array[position].state!
=0)
{
cout<<"卡的状态异常,不能进行转账!
"<}
else
{
intposition2;
charusecard1[20];
cout<<"请输入卡号:
"<cin>>usecard1;
cout<<"请输入密码:
"<getPassword(pass1,6);
position2=chakahaomima(usecard1,pass2);//验证卡号和密码
cout<<"\n请输入要转入的卡号:
"<cin>>usecard;
position=chakahao(usecard);
//查找转入账号
if(position==-1)
{
cout<<"\n查不到该卡信息!
"<}
else
{
if(position2==-1)
{
if(strcmp(array[position].password,pass1)==0&&strcmp(array[position].cardId,usecard)==0)
cout<<"\n密码或卡号错误!
"<}
else
{
if(strcmp(array[position].password,pass1)==0&&strcmp(array[position].cardId,usecard)==0)
cout<<"\n请输入转账金额:
"<cin>>cash;
if(array[position].balance>=cash&&cash>0)//判断金额是否有效
{
//执行转账
array[position2].balance-=cash;
array[position].balance+=cash;
cout<<"\n转账成功!
"<printCardInfo(position2);//打印
}
else
{
cout<<"\n余额不足!
"<}
}
}
}
}
voidfreeze()//7.冻结
{
if(array[position].state==-2)
{
cout<<"卡处于冻结状态,不能进行再次冻结!
"<}
if(array[position].state==0)
{
cout<<"请输入银行卡卡号:
"<cin>>usecard;
cout<<"请输入银行卡密码:
"<getPassword(pass1,6);
intorder;
cout<<"\n是否冻结该账户?
"<cout<<"\n如果是,请按1,否则,请按2"<cin>>order;
position=chakahaomima(usecard,pass1);//检验卡号和密码
if