银行系统1.1

#include 
#include 
#include 
#include 
using namespace std;

//银行中最大的账户数量
#define MAXACCOUNTNUMBER 20000
//银行卡的开号初始值
#define INITNUMBER 10001

struct Account
{
    long accNumber;   //卡号
    char accName[20]; //户主
    char accPwd[10];  //密码
    double balance;   //余额
    char flag[6];     //卡的状态
};
//银行中所有卡
Account array[MAXACCOUNTNUMBER];
//银行中银行卡数量
int size=0;

//欢迎界面
void welcome();
//登录
void login();
//主界面
void mainFrame();
//生成银行中自增卡号
long autoCreament();
//开户
void openAccount();
//存款
void deposit();
//取款
void draw();
//销户
void closed();
//查询
void demand();
//退出
void quit();
//密码的鉴定
void decide(char Pwd[]);
//输出指定卡的信息
void printAccount(Account acc);
//根据卡号查找卡在数组中的下标
int searchAccount(long accNumber);

int main()
{
	//欢迎界面
	welcome();
	//登录
	login();
	while(1)
	{
		//业务选择
		mainFrame();
	}
	return 0;
}


//管理员登陆
void login()
{
    char loginName[20];
    char loginPwd[20];
    int i;
	//..
    for(i=1;i<4;i++)
    {
        cout<<"请输入管理员账号:";
		fflush(stdin);
		gets(loginName);
		cout<<"请输入管理员密码:";
		fflush(stdin);
		gets(loginPwd);
		//判断
		if(strcmp(loginName,"admin")==0&&strcmp(loginPwd,"admin")==0)
		{
			break;
		}
		else
		{
			if(i<3)
			{
				cout<<"账号或密码错误!请核对后重新输入\n";
				cout<<"您还有"<<3-i<<"次机会重新输入账号和密码。"<>order;
	switch(order){
	case 1:
		openAccount();
		break;
	case 2:
		deposit();
		break;
	case 3:
		draw();
		break;
	case 4:
		closed();
		break;
	case 5:
		demand();
		break;
	case 6:
		quit();
		break;
	default:
		break;
	}
}


//开户
void openAccount()
{
	Account mm;
    cout<<"请输入户主:";
    cin>>array[size].accName;
    cout<<"请输入密码:";
    cin>>array[size].accPwd;
	decide(array[size].accPwd);
	if(strcmp(array[size].accPwd,mm.accPwd)==0)
	{
		cout<<"请输入金额:";
		cin>>array[size].balance;
		strcpy(array[size].flag,"正常");
		//写卡号
		array[size].accNumber=autoCreament();
		printAccount(array[size]);
		size++;
		cout<<"开户成功,按enter键返回"<>mm.accPwd;
	}
}

//卡号的递增
long autoCreament()
{
    if(size==0)
	{
        return INITNUMBER;
    }
	else
	{
        return array[size-1].accNumber+1;
    }
}

//输出指定卡的信息
void printAccount(Account acc)
{
    cout<<"|----------------------------------------|"<=0,卡号是正确
* 若返回值=-1,卡号有误
*/
int searchAccount(long accNumber)
{
    int i,pos=-1;
    for(i=0;i>accNum;
    pos=searchAccount(accNum);
	if(strcmp(array[pos].flag,"已销户")==0)
	{
		cout<<"此卡已销户,重新输入卡号请按Y  返回主菜单请按其他键"<>a;
		if(a=='Y' || a=='y')
		{
			deposit();
		}
		else
		{
			mainFrame();
		}
	}
	
    if(pos==-1)
	{
        //卡号有误
        cout<<"卡号不存在,请重新输入卡号"<>accNum1;
	if(accNum!=accNum1)
	{
		cout<<"两次输入的账号不一致,请确认后再次输入"<>money;
        //展示下存款前卡的信息
        cout<<"存款前卡的信息:"<>accNum;
	pos=searchAccount(accNum);
	if(strcmp(array[pos].flag,"已销户")==0)
	{
		cout<<"此卡已销户,重新输入卡号请按Y  返回主菜单请按其他键"<>a;
		if(a=='Y' || a=='y')
		{
			draw();
		}
		else
		{
			mainFrame();
		}
	}
	if(pos==-1)
	{
		//卡号有误
		cout<<"卡号不存在,请重新输入卡号"<>mm.accPwd;
			if(strcmp(array[pos].accPwd,mm.accPwd)==0)	
			{
				break;
			}
			else
			{
				if(i<3)
				{
					cout<<"账号或密码错误!请核对后重新输入\n";
					cout<<"您还有"<<3-i<<"次机会重新输入账号和密码。"<>money;
	//展示下取款前卡的信息
	cout<<"取款前卡的信息:"<>b;
		if(b=='Y' || b=='y')
		{
			draw();
		}
		else
		{
			mainFrame();
		}
	}
	else
	{
		//找到了取卡号所对应的卡
		array[pos].balance-=money;
	}
	//展示存款后卡的信息
	cout<<"取款后卡的信息:"<>accNum;
	pos=searchAccount(accNum);
	if(pos==-1)
	{
		//卡号有误
		cout<<"卡号不存在,重新输入卡号请按Y  返回主菜单请按其他键"<>a;
		if(a=='Y' || a=='y')
		{
			demand();
		}
		else
		{
			mainFrame();
		}
	}
	else
	{	
		for(i=1;i<4;i++)
		{
			
			cout<<"请输入密码:";
			cin>>mm.accPwd;
			if(strcmp(array[pos].accPwd,mm.accPwd)==0)	
			{
				break;
			}
			else
			{
				if(i<3)
				{
					cout<<"账号或密码错误!请核对后重新输入\n";
					cout<<"您还有"<<3-i<<"次机会重新输入账号和密码。"<>accNum;
	pos=searchAccount(accNum);
	if(pos==-1)
	{
		//卡号有误
		cout<<"卡号不存在,请重新输入卡号"<>mm.accPwd;
			if(strcmp(array[pos].accPwd,mm.accPwd)==0)	
			{
				cout<>a;
				if(a=='Y' || a=='y')
				{
					getchar();
					array[pos].balance=0;
					strcpy(array[pos].flag,"已销户");
					cout<>a;
	if(a=='Y' || a=='y')
	{
		exit(0);
	}
	else
	{
		mainFrame();
	}
}





你可能感兴趣的:(银行系统1.1)