#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <iomanip>
#include <conio.h>
#include <string.h>//strcmp,strcpy,strlen
#include <fstream>
using namespace std;
struct Account
{
long accNum;//卡号
char Name[9];//用户名
char pass[7];//密码
double balance;//余额
char identity[19];//身份证号
char state[6];//状态(正常,挂失,冻结,销户)
};
//银行中最大的账户数量
#define MAXaccNumBER 2000
//银行卡的开号初始值
#define INITNUMBER 1001;
//银行中所有卡
Account array[MAXaccNumBER];
//银行中银行卡数量
int size=0;
void Hello();//欢迎界面
void login();//工作人员登录
void Mean();//主菜单
int searchAcc(long accNum);//寻找卡
void Inpass(char[]);//输入密码
long autoCreament();//卡状态
void Int_identity(char iden[19]);//输入身份证
void Yan_pass(int );//密码验证
void Acc_Yan(int number);//账户验证
void Yan_exchange(int number1,int number2);//转账验证
void Yan_dong(int number);//冻结验证
void Acc_Inferr(int number);//卡信息
int Yan_identify(char g[19]);//身份证验证
void Yan_gaimi(int );//验证改密
void Yan_gaimii(int );//验证改密次数
//功能
void Acc_Open();//开户=
void Acc_Delete();//销户=
void Acc_Inmoney();//存款=
void Acc_Outmoney();//取款=
void Acc_Infer();//查询=
void Acc_exchange();//转账=
void Acc_dong();//冻结=
void Acc_Ralese();//解冻=
void Acc_Gpass();//修改密码=
void Exit();//退出=
void Find_pass();//找回密码
int main()
{
Hello();//欢迎界面
login();//工作人员登录
return 0;
}
//欢迎界面
void Hello()
{
cout<<" +--------------------------+"<<endl;
cout<<" +欢迎来到储蓄综合业务平台!+"<<endl;
cout<<" +--------------------------+"<<endl;
}
//工作人员登录
void login()
{
char name[9],pass[7];
cout<<"请输入工作人员姓名:";
cin>>name;
cout<<endl;
if(strcmp(name,"玲玲")==0)
{
cout<<"请输入密码(三次机会):";
cin>>pass;
cout<<endl;
if(strcmp(pass,"123456")==0)
{
cout<<"登陆成功!"<<endl;
cout<<endl;
cout<<"请按任意键到主菜单:";
cout<<endl;
fflush(stdin);
getchar();
Mean();//主菜单
}
else
{
static int n=0;
++n;
if(n==2)
{
cout<<"三次机会已用完! 号已被封!"<<endl;
Exit();
}
else
{
cout<<"登录失败!请重新登录!"<<endl;
cout<<endl;
login();
}
}
}
else
{
cout<<"无效工作人员姓名!请重新登录!"<<endl;
cout<<endl;
login();
}
}
//主菜单
void Mean()
{
int n;
cout<<" +--------------------------+"<<endl;
cout<<" + 1.开户 | 2.销户 +"<<endl;
cout<<" + 3.存款 | 4.取款 +"<<endl;
cout<<" + 5.查询 | 6.转账 +"<<endl;
cout<<" + 7.改密 | 8.冻结 +"<<endl;
cout<<" + 9.解冻 | 10.退出 +"<<endl;
cout<<" + 11.寻回密码| +"<<endl;
cout<<" +--------------------------+"<<endl;
cout<<"请选择业务序号:";
fflush(stdin);
cin>>n;
cout<<endl;
switch (n)
{
case 1:
Acc_Open();
break;
case 2:
Acc_Delete();
break;
case 3:
Acc_Inmoney();
break;
case 4:
Acc_Outmoney();
break;
case 5:
Acc_Infer();
break;
case 6:
Acc_exchange();
break;
case 7:
Acc_Gpass();
break;
case 8:
Acc_dong();
break;
case 9:
Acc_Ralese();
break;
case 10:
Exit();
break;
case 11:
Find_pass();
break;
default :
cout<<"选择有误!请重新输入!"<<endl;
cout<<endl;
Mean();
}
}
//开户
void Acc_Open()
{
cout<<"请输入姓名:";
cin>>array[size].Name;
cout<<endl;
if(strlen(array[size].Name)>9)
{
cout<<"超出最高长度!"<<endl;
cout<<endl;
cout<<"请按任意键返回!";
fflush(stdin);
getchar();
cout<<endl;
Mean();
}
cout<<"请输入身份证号(18位):";
Int_identity(array[size].identity);
cout<<endl;
Yan_identify(array[size].identity);//身份证
char passs[7]= {0};
cout<<"请输入密码:";
Inpass(array[size].pass);//调用输入密码函数
fflush(stdin);
getchar();
cout<<endl;
cout<<"请再次输入密码:";
Inpass(passs);
fflush(stdin);
getchar();
cout<<endl;
if (strcmp(passs,array[size].pass)==0)
{
cout<<"密码设置成功!"<<endl;
cout<<endl;
cout<<"请存入金额:";
cin>>array[size].balance;
cout<<endl;
if(array[size].balance<=0)
{
cout<<"输入有误!请按任意键返回!";
fflush(stdin);
getchar();
cout<<endl;
Mean();
}
strcpy(array[size].state,"正常");
array[size].accNum=autoCreament();
size++;
cout<<"开户成功!"<<endl;
cout<<endl;
cout<<"您的信息为:"<<endl;
cout<<endl;
Acc_Inferr(autoCreament()-1);
cout<<"请按任意键返回主菜单:";
fflush(stdin);
getchar();
cout<<endl;
Mean();//主菜单
}
else
{
cout<<"密码两次不一致!请重新开户!"<<endl;
cout<<endl;
Acc_Open();
}
}
//身份证验证
int Yan_identify(char g[])
{
if(strlen(g)!=18)
{
cout<<"输入位数有误!请正确输入!";
Int_identity(array[size].identity);
Yan_identify(g);
cout<<endl;
}
else
{
return g[19];
}
}
//查询卡号信息
void Acc_Infer()
{
cout<<"请输入卡号:";
int number;
cin>>number;
cout<<endl;
Acc_Inferr(number);
cout<<"请按任意键返回主菜单:";
fflush(stdin);
getchar();
cout<<endl;
Mean();//主菜单
}
//卡讯息
void Acc_Inferr(int number)
{
Account acc;
acc=array[searchAcc(number)];
if(searchAcc(number)==-1)//卡号有误
{
cout<<"卡号不存在,请重新选择您要办理的业务!"<<endl;
Mean();
}
else
{
cout<<"+--------------------------------------------------------------------------------------------------------+"<<endl;
cout<<"+"<<setiosflags(ios::left)<<setw(20)<<"卡号"<<"|"<<setiosflags(ios::left)<<setw(20)<<"身份证号"<<"|"<<setiosflags(ios::left)<<setw(20)<<"用户名"<<"|"<<setiosflags(ios::left)<<setw(20)<<"金额"<<"|"<<setw(20)<<"状态"<<"+"<<endl;
cout<<"+--------------------------------------------------------------------------------------------------------+"<<endl;
cout<<"+"<<setiosflags(ios::left)<<setw(20)<< number<<"|"<<setiosflags(ios::left)<<setw(20)<<acc.identity<<"|"<<setiosflags(ios::left)<<setw(20)<<acc.Name<<"|"<<setiosflags(ios::left)<<setw(20)<<setiosflags(ios::fixed)<<setprecision(2)<<acc.balance<<"|"<<setiosflags(ios::left)<<setw(20)<<acc.state<<"+"<<endl;
cout<<"+--------------------------------------------------------------------------------------------------------+"<<endl;
}
cout<<endl;
}
//输入密码
void Inpass(char pas[7])
{
char ch;
int i=0;
while(i<6)
{
ch=getch();
if(ch<='9'&&ch>='0')
{
putch('*');
pas[i]=ch;
i++;
}
}
}
//销户
void Acc_Delete()
{
int number;
Account acc;
cout<<"请输入卡号:";
cin>>number;
cout<<endl;
acc=array[searchAcc(number)];
if(searchAcc(number)==-1)//卡号有误
{
cout<<"卡号不存在,请重新选择您要办理的业务!"<<endl;
cout<<endl;
Mean();
}
else
{
char password[7]= {0};
cout<<"请输入密码(三次机会):";
Inpass(password);
fflush(stdin);
getchar();
if (strcmp(acc.pass,password)==0)
{
cout<<"请按任意键表示确认:";
fflush(stdin);
getchar();
cout<<endl;
cout<<"销户成功!"<<endl;
cout<<endl;
strcpy(array[searchAcc(number)].state,"销户");
cout<<"您的信息为:"<<endl;
cout<<endl;
Acc_Inferr(number);
cout<<"请按任意键返回主菜单:";
array[searchAcc(number)].balance=0;
fflush(stdin);
getchar();
cout<<endl;
Mean();
}
}
}
//存款
void Acc_Inmoney()
{
int accNum;
double money;
cout<<"请输入卡号:";
cin>>accNum;
cout<<endl;
Acc_Yan(accNum);
cout<<"请输入存款金额:";
cin>>money;
cout<<endl;
if(money<=0)
{
cout<<"输入有误!请按任意键返回!"<<endl;
fflush(stdin);
getchar();
cout<<endl;
Mean();
}
array[searchAcc(accNum)].balance+=money;//找到了该卡号所对应的卡
cout<<"您的余额为:"<<setiosflags(ios::fixed)<<setprecision(2)<<array[searchAcc(accNum)].balance<<"元"<<endl;
cout<<endl;
cout<<"请按任意键退回主菜单"<<endl;
cout<<endl;
fflush(stdin);
getchar();
Mean();
}
//取款
void Acc_Outmoney()
{
int number;
cout<<"请输入卡号:";
cin>>number;
cout<<endl;
Acc_Yan(number);
Yan_pass(number);
}
//取款密码验证
void Yan_pass(int number)
{
char passs[7]= {0};
double money;
static int o=0;
Account acc;
acc=array[searchAcc(number)];
cout<<"请输入密码(三次机会):";
Inpass(passs);
fflush(stdin);
getchar();
cout<<endl;
if (strcmp(passs,acc.pass)==0)
{
cout<<"请输入取款金额:";
cin>>money;
cout<<endl;
if(money<=0)
{
cout<<"输入有误!请按任意键返回!"<<endl;
fflush(stdin);
getchar();
cout<<endl;
Mean();
}
if(acc.balance<money)
{
cout<<"您的余额已不足!"<<'\n'<<"请按任意键返回主菜单";
fflush(stdin);
getchar();
cout<<endl;
Mean();
}
else
{
array[searchAcc(number)].balance=array[searchAcc(number)].balance-money;
cout<<"您的余额为:"<<setiosflags(ios::fixed)<<setprecision(2)<<array[searchAcc(number)].balance<<"元"<<endl;
cout<<endl;
cout<<"请按任意键退回主菜单"<<endl;
fflush(stdin);
getchar();
cout<<endl;
Mean();
}
}
else
{
if(o==2)
{
cout<<"三次机会用完,账号已被冻结!"<<endl;
cout<<endl;
int pos;
pos=searchAcc(number);
strcpy(array[pos].state,"冻结");
cout<<"请按任意键返回主菜单:";
fflush(stdin);
getchar();
cout<<endl;
Mean();
}
else
{
cout<<endl;
cout<<"密码错误!"<<endl;
cout<<endl;
++o;
Yan_pass(number);
}
}
}
//冻结
void Acc_dong()
{
int number;
cout<<"请输入卡号:";
cin>>number;
cout<<endl;
Acc_Yan(number);
Yan_dong(number);
cout<<endl;
cout<<"请按任意键确定冻结:"<<endl;
fflush(stdin);
getchar();
cout<<"冻结成功!"<<endl;
cout<<endl;
strcpy(array[searchAcc(number)].state,"冻结");
cout<<"您的信息为:"<<endl;
cout<<endl;
Acc_Inferr(number);
cout<<"请按任意键返回主菜单:";
fflush(stdin);
getchar();
cout<<endl;
Mean();
}
//解冻
void Acc_Ralese()
{
int number;
cout<<"请输入卡号:";
cin>>number;
cout<<endl;
Yan_dong(number);
if(strcmp(array[searchAcc(number)].state,"冻结")!=0)
{
cout<<"该账户未冻结,无需解冻!"<<endl;
cout<<endl;
cout<<"请按任意键返回主菜单:";
cout<<endl;
fflush(stdin);
getchar();
Mean();
}
cout<<"解冻成功!"<<endl;
cout<<endl;
strcpy(array[searchAcc(number)].state,"正常");
cout<<"您的信息为:"<<endl;
cout<<endl;
Acc_Inferr(number);
cout<<"请按任意键返回主菜单:";
cout<<endl;
fflush(stdin);
getchar();
Mean();
}
//冻结验证
void Yan_dong(int number)
{
static int o=0;
cout<<"请输入密码(三次机会):";
char passs[7];
Account acc;
acc=array[searchAcc(number)];
Inpass(passs);
fflush(stdin);
getchar();
if (strcmp(passs,acc.pass)!=0)
{
if(o==2)
{
cout<<"三次机会用完,账号已被冻结!"<<endl;
cout<<endl;
int pos;
pos=searchAcc(number);
strcpy(array[pos].state,"冻结");
cout<<"请按任意键返回主菜单:";
cout<<endl;
fflush(stdin);
getchar();
Mean();
}
else
{
cout<<endl;
cout<<"密码错误!"<<endl;
cout<<endl;
++o;
Yan_dong(number);
}
}
}
//退出
void Exit()
{
cout<<"已退出!"<<endl;
cout<<endl;
exit(0);
}
//寻找卡
int searchAcc(long accNum)
{
int i,pos=-1;
for(i=0; i<size; i++)
{
if(array[i].accNum==accNum)//找到了这张卡
{
pos=i;
break;
}
}
return pos;//返回下标
}
//卡状态
long autoCreament()
{
if(size==0)
{
return INITNUMBER;
}
else
{
return array[size-1].accNum+1;
}
}
//输入身份证
void Int_identity(char iden[19])
{
cin>>iden;
}
//转账
void Acc_exchange()
{
int number1,number2,n;
cout<<"请输入您的卡号:";
cin>>number1;
cout<<endl;
Acc_Yan(number1);
cout<<"请输入对方的卡号:";
cin>>number2;
cout<<endl;
if(number1==number2)
{
cout<<"不能给自己转账!按任意键返回主菜单:";
cout<<endl;
Mean();
}
else
{
Acc_Yan(number2);
cout<<"该用户信息为:"<<endl;
cout<<endl;
Acc_Inferr(number2);
cout<<"确定转账请按1,返回主菜单请按2:";
cin>>n;
cout<<endl;
switch(n)
{
case 1:
Yan_exchange(number1,number2);
break;
case 2:
Mean();
break;
default :
cout<<"选择错误!"<<'\n'<<"按任意键返回主菜单:";
fflush(stdin);
getchar();
cout<<endl;
Mean();
}
}
}
//转账验证
void Yan_exchange(int number1,int number2)
{
char passs[7];
double money;
static int o=0;
Account acc1,acc2;
acc1=array[searchAcc(number1)];
acc2=array[searchAcc(number2)];
cout<<"请输入密码(三次机会):";
Inpass(passs);
fflush(stdin);
getchar();
cout<<endl;
if (strcmp(passs,acc1.pass)==0)
{
cout<<"请输入转账金额:";
cin>>money;
cout<<endl;
if(money<=0)
{
cout<<"输入有误!请按任意键返回!"<<endl;
fflush(stdin);
getchar();
cout<<endl;
Mean();
}
if(acc1.balance<money)
{
cout<<"您的余额已不足!"<<'\n'<<"请按任意键返回主菜单";
fflush(stdin);
getchar();
cout<<endl;
Mean();
}
else
{
array[searchAcc(number1)].balance=acc1.balance-money;
array[searchAcc(number2)].balance=acc2.balance+money;
cout<<"转账成功!"<<endl;
cout<<endl;
cout<<"您的余额为:"<<setiosflags(ios::fixed)<<setprecision(2)<<acc1.balance<<"元"<<endl;
cout<<endl;
cout<<"请按任意键退回主菜单"<<endl;
fflush(stdin);
getchar();
cout<<endl;
Mean();
}
}
else
{
if(o==2)
{
cout<<"三次机会用完,账号已被冻结!"<<endl;
cout<<endl;
strcpy(array[searchAcc(number1)].state,"冻结");
cout<<"请按任意键返回主菜单:";
fflush(stdin);
getchar();
cout<<endl;
Mean();
}
else
{
cout<<endl;
cout<<"密码错误!"<<endl;
cout<<endl;
++o;
Yan_exchange(number1,number2);
}
}
}
//账户信息验证
void Acc_Yan(int number)
{
int pos;
pos=searchAcc(number);
if(pos==-1)//卡号有误
{
cout<<"卡号不存在!请重新选择您要办理的业务!"<<endl;
cout<<endl;
Mean();
}
else if(strcmp(array[pos].state,"冻结")==0)
{
cout<<"账户已被冻结!"<<'\n'<<"请重新选择您要办理的业务!"<<endl;
cout<<endl;
Mean();
}
else if(strcmp(array[pos].state,"销户")==0)
{
cout<<"卡号不存在!请重新选择您要办理的业务!"<<endl;
cout<<endl;
Mean();
}
}
//改密
void Acc_Gpass()
{
int num;
cout<<"请输入卡号:";
cin>>num;
cout<<endl;
Acc_Yan(num);
Yan_gaimi(num);
}
//验证改密
void Yan_gaimi(int num)
{
cout<<"请输入密码(三次机会):";
char pass[7];
Inpass(pass);
if(strcmp(array[searchAcc(num)].pass,pass)==0)
{
fflush(stdin);
getchar();
cout<<endl;
cout<<"登陆成功!"<<endl;
cout<<endl;
Yan_gaimii(num);
}
else
{
static int o=0;
if(o==2)
{
cout<<"三次机会用完,账号已被冻结!"<<endl;
cout<<endl;
int pos;
pos=searchAcc(num);
strcpy(array[pos].state,"冻结");
cout<<"请按任意键返回主菜单:";
fflush(stdin);
getchar();
cout<<endl;
Mean();
}
else
{
cout<<endl;
cout<<"密码错误!"<<endl;
cout<<endl;
++o;
Yan_gaimi(num);
}
}
}
//验证改密次数
void Yan_gaimii(int num)
{
char passs[7]= {0},passss[7]= {0};
static int l=0;
if(l==2)
{
cout<<"三次机会已用完!改密失败!"<<'\n'<<"请按任意键返回主菜单:";
fflush(stdin);
getchar();
cout<<endl;
Mean();
}
else
{
cout<<"请输入新密码:";
Inpass(passs);
fflush(stdin);
getchar();
cout<<endl;
cout<<"请再输入一次新密码:";
Inpass(passss);
fflush(stdin);
getchar();
cout<<endl;
if(strcmp(passs,passss)!=0)
{
cout<<"两次输入密码不一致!"<<endl;
cout<<endl;
l++;
Yan_gaimii(num);
}
else
{
cout<<"改密成功!"<<endl;
cout<<endl;
strcpy(array[searchAcc(num)].pass,passs);
cout<<"请按任意键返回主菜单:";
fflush(stdin);
getchar();
cout<<endl;
Mean();
}
}
}
//找回密码
void Find_pass()
{
char identity[19]= {0};
int number;
cout<<"请输入卡号:";
cin>>number;
cout<<endl;
Acc_Yan(number);
cout<<"请输入身份证号:";
Int_identity(identity);
cout<<endl;
cout<<identity;
if(strcmp(array[searchAcc(number)].identity,identity)==0)
{
cout<<"身份验证成功!"<<endl;
cout<<endl;
cout<<"您的密码为:"<<array[searchAcc(number)].pass<<endl;
cout<<endl;
cout<<"请按任意键返回主菜单:";
fflush(stdin);
getchar();
cout<<endl;
Mean();
}
else
{
cout<<"身份验证失败!按任意键返回主菜单:";
fflush(stdin);
getchar();
cout<<endl;
Mean();
}
}
2013.12.26
储蓄综合业务平台(代码)
最新推荐文章于 2021-05-22 07:28:00 发布