#include <iostream>
#include <string.h>
#include <iomanip>
#include <stdio.h>
using namespace std;
//银行中卡数
#define MAXRECORDNUMBER 20000
//银行卡的卡号初始值
#define INITNUMBER 10001
struct Account
{
int accNumber;//账户
char accName[9];//户名
char accPWD[7];//密码
double balance;//余额
char flag[6];//销户标志
};
//银行中所有卡
Account array[MAXRECORDNUMBER];
//银行中银行卡的数量
int size=0;
//生成银行卡的卡号
long autoCreament();
//欢迎界面
void welcome();
//主界面
void mainmenu();
//取款
void withdraw();
//存款
void deposit();
//查询
void query();
//开户
void openAnAccount();
//销户
void closeAnAcount();
//输出指定卡的信息
void printAccount(Account acc);
//根据卡号查找卡在数组中的下标
int searchAccount(long accNumber);
int main()
{
welcome();
char name0[]="admin";
char password0[]="admin";
int t=0;
while (t<3)
{
cout<<"请输入用户名:"<<endl;
char name[9];
cin>>name;
cout<<"请输入密码:"<<endl;
char password[6];
cin>>password;
if(strcmp(name0,name)!=0||strcmp(password,password0)!=0)
{
t++;
cout<<"用户名或密码输入错误,请重新输入!"<<endl;
}
else
break;
}
if(t>=3)
{
cout<<"对不起,您已经连续输入错误3次,请您退出操作!"<<endl;
}
if(t<3)
{
mainmenu();
}
return 0;
}
void welcome()
{
cout<<"+--------------------------+"<<endl;
cout<<"| |"<<endl;
cout<<"| 欢迎使用储蓄综合业务平台 |"<<endl;
cout<<"| |"<<endl;
cout<<"+--------------------------+"<<endl;
}
void mainmenu()
{
int c;
c=-1;
cout<<"+--------------------------+"<<endl;
cout<<"| 0.退出 1.存款 |"<<endl;
cout<<"| 2.取款 3.查询 |"<<endl;
cout<<"| 4.开户 5.销户 |"<<endl;
cout<<"+--------------------------+"<<endl;
cout<<" 请输入选择业务的代号: "<<endl;
cin>>c;
switch (c)
{
case 0:
cout<<"————————感谢使用储蓄平台系统,再见!————————"<<endl;
break;
case 1:
cout<<"————————现在进入存款系统————————"<<endl;
deposit();
break;
case 2:
cout<<"————————现在进入取款系统————————"<<endl;
withdraw();
break;
case 3:
cout<<"————————现在进入查询系统————————"<<endl;
query();
break;
case 4:
cout<<"————————现在进入开户系统————————"<<endl;
openAnAccount();
break;
case 5:
cout<<"————————现在进入销户系统————————"<<endl;
closeAnAcount();
break;
case 6:
break;
default:
cout<<"\n"<<"无效选项!"<<endl;
break;
}
}
void openAnAccount()
{
cout<<"请输入户主:"<<endl;
cin>>array[size].accName;
cout<<"请输入密码:"<<endl;
cin>>array[size].accPWD;
cout<<"请输入金额:"<<endl;
cin>>array[size].balance;
strcpy(array[size].flag,"正常");
array[size].accNumber=autoCreament();
printAccount(array[size]);
cout<<"-------------开户业务已成功!请继续其他交易---------------"<<endl;
size++;
cout<<"-------开户成功,按任意键返回-------"<<endl;
fflush(stdin);
getchar();
mainmenu();
}
long autoCreament()
{
if(size==0)
{
return INITNUMBER;
}
else
{
return array[size-1].accNumber+1;
}
}
//输出指定卡的信息
void printAccount(Account acc)
{
cout<<"|----------------------------------------|"<<endl;
cout<<setiosflags(ios::left)<<"|"<<setw(8)<<"卡号"<<setw(8)<<"户主"<<setw(8)<<"密码"<<setw(8)<<"金额"<<setw(8)<<"状态"<<"|"<<endl;
cout<<setiosflags(ios::left)<<"+----------------------------------------+"<<endl;
cout<<setiosflags(ios::left)<<"|"<<setw(8)<<acc.accNumber<<setw(8)<<acc.accName<<setw(8)<<acc.accPWD<<setw(8)<<acc.balance<<setw(8)<<acc.flag<<"|"<<endl;
cout<<"|----------------------------------------|"<<endl;
}
/*根据卡号查找卡的下标
* 若返回值>=0,卡号是正确
* 若返回值=-1,卡号有误
*/
int searchAccount(long accNumber)
{
int i,pos=-1;
for(i=0; i<size; i++)
{
if(array[i].accNumber==accNumber&&strcmp(array[i].flag,"销户")!=0)
{
//找到了这张卡
pos=i;
break;
}
}
return pos;
}
void deposit()
{
int j;
long accNum;//存款的账号
double money;//存款的金额
int pos;
cout<<"请输入存款的账号:";
cin>>accNum;
pos=searchAccount(accNum);
if(pos==-1)
{
//卡号有误
cout<<"卡号不存在,请重新输入卡号"<<endl;
cout<<"是否继续操作?请选择您要进行的操作的代号:"<<endl;
cout<<"1.继续 "<<endl;
cout<<"其他数字键.退出 "<<endl;
cin>>j;
if(j==1)
deposit();
else
mainmenu();
}
else
{
//展示下存款前卡的信息
cout<<"存款前卡的信息:"<<endl;
printAccount(array[pos]);
cout<<"请输入存款金额:";
cin>>money;
//找到了该卡号所对应的卡
array[pos].balance+=money;
//展示存款后卡的信息
cout<<"存款后卡的信息:"<<endl;
printAccount(array[pos]);
cout<<"存款成功,按任意键返回"<<endl;
fflush(stdin);
getchar();
mainmenu();
}
}
void withdraw()
{
int j;
char pwd[10];
long accNum;//取款的账号
double money1;
double money;//取款的金额
int pos;
cout<<"请输入取款的账号:"<<endl;
cin>>accNum;
pos=searchAccount(accNum);
if(pos==-1)
{
//卡号有误
cout<<"卡号不存在,请重新输入卡号"<<endl;
cout<<"是否继续操作?请选择您要进行的操作的代号:"<<endl;
cout<<"1.继续 "<<endl;
cout<<"其他数字键.退出 "<<endl;
cin>>j;
if(j==1)
withdraw();
else
mainmenu();
}
else
{
//展示下取款前卡的信息
cout<<"取款前卡的信息:"<<endl;
printAccount(array[pos]);
cout<<"请输入密码:"<<endl;
cin>>pwd;
if(strcmp(array[pos].accPWD,pwd)==0)
{
cout<<"密码正确!"<<endl;
cout<<"请输入取款金额:";
cin>>money;
//找到了该卡号所对应的卡
money1=array[pos].balance-money;
if(money1<=0)
{
cout<<"您账户内的余额不足,请及时充值!";
cout<<endl;
mainmenu();
}
else
{
array[pos].balance-=money;
//展示取款后卡的信息
cout<<"取款后卡的信息:"<<endl;
printAccount(array[pos]);
cout<<"取款成功,按任意键返回"<<endl;
fflush(stdin);
getchar();
mainmenu();
}
}
else
{
cout<<"对不起,密码错误!请退出!"<<endl;
mainmenu();
}
}
}
void query()
{
int j;
char pwd[10];
long accNum;//查询的账号
int pos;
cout<<"请输入查询的账号:"<<endl;
cin>>accNum;
pos=searchAccount(accNum);
if(pos==-1)
{
//卡号有误
cout<<"卡号不存在,请重新输入卡号"<<endl;
cout<<"是否继续操作?请选择您要进行的操作的代号:"<<endl;
cout<<"1.继续 "<<endl;
cout<<"任意数字键.退出 "<<endl;
cin>>j;
if(j==1)
query();
else
mainmenu();
}
else
{
cout<<"请输入密码:"<<endl;
cin>>pwd;
if(strcmp(array[pos].accPWD,pwd)==0)
{
cout<<"密码正确!"<<endl;
cout<<"银行卡的信息:"<<endl;
printAccount(array[pos]);
cout<<"查询成功,按任意键返回"<<endl;
fflush(stdin);
getchar();
mainmenu();
}
else
{
cout<<"对不起,密码错误!请退出!"<<endl;
mainmenu();
}
}
}
void closeAnAcount()
{
int j;
char pwd[10];
long accNum;//销户的账号
int pos;
cout<<"请输入销户的账号:"<<endl;
cin>>accNum;
pos=searchAccount(accNum);
if(pos==-1)
{
//卡号有误
cout<<"卡号不存在,请重新输入卡号"<<endl;
cout<<"是否继续操作?请选择您要进行的操作的代号:"<<endl;
cout<<"1.继续 "<<endl;
cout<<"其他数字键.退出 "<<endl;
cin>>j;
if(j==1)
closeAnAcount();
else
mainmenu();
}
else
{
cout<<"请输入密码:"<<endl;
cin>>pwd;
if(strcmp(array[pos].accPWD,pwd)==0)
{
cout<<"密码正确!"<<endl;
cout<<"销户信息如下:"<<endl;
array[pos].balance=0;
strcpy(array[pos].flag,"销户");
cout<<"销户已成功,按任意键返回!"<<endl;
printAccount(array[pos]);
fflush(stdin);
getchar();
mainmenu();
}
else
{
cout<<"对不起,密码错误!请退出!"<<endl;
mainmenu();
}
}
}
银行系统。。改进版
最新推荐文章于 2020-04-23 22:04:44 发布