师创年终任务-银行系统(销户待解决)

#include <iostream>
#include<string.h>
#include<iomanip>
#include <stdio.h>
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;
long autoCreament();
//生成银行中自增卡号
void welcome();
void login();
void work();
void depositmoney();
void drawmoney();
void showbalance();
void openaccount();
void closeaccount();
//根据卡号查询指定的账户所在的下标
int searchAccount(long accNumber);
void putout(Account acc);
void deposit();
void exit();


int main()
{
	welcome();
	login();
    return 0;
}
void welcome()
{
    cout<<"+----------------------------------+"<<endl;
    cout<<"|                                  |"<<endl;
    cout<<"|                                  |"<<endl;
    cout<<"|     欢迎使用储蓄综合业务平台     |"<<endl;
    cout<<"|                                  |"<<endl;
    cout<<"|                                  |"<<endl;
    cout<<"+----------------------------------+"<<endl;
	
}
void login()
{
    int i=0;
    char bankname[10]="admin";
	char bankpassword[10]="admin";
	for(i=0;i<3;i++)
	{
		cout<<"请输入用户名:";
		char name[10]={0};
		cin>>name;
		cout<<"请输入密码:";
		char password[10]={0};
		cin>>password;
		if (strcmp(bankname,name)!=0||strcmp(bankpassword,password)!=0)
		{
			if(i==2)
			{
				cout<<"您输入的错误次数太多,不允许继续操作!"<<endl;
				break;
			}
			cout<<"用户名或则密码错误请重新输入:" <<endl;
		}
		else{
			work();
			break;
		}
	}
}
void work()
{
	int cChoice;
	cout<<"+----------------------------------+"<<endl;
	cout<<"|                                  |"<<endl;
	cout<<"|   存款 请按1        开户 请按4   |"<<endl;
	cout<<"|   取款 请按2        销户 请按5   |"<<endl;
	cout<<"|   查询 请按3        退出 请按0   |"<<endl;
	cout<<"|                                  |"<<endl;
	cout<<"+----------------------------------+"<<endl;
	cout<<"请输入您的选择(0-5):";
	cin>>cChoice;
	switch(cChoice)
	{
	case 1:
		depositmoney();
		break;
	case 2:
		drawmoney();
		break;
	case 3:
		showbalance();
		break;
	case 4:
		openaccount();
		break;
	case 5:
		closeaccount();
		break;
	case 0:
		exit();
		break;
		
	}
	return;
}

void depositmoney()
{
	cout<<"+----------------------------------+"<<endl;
	cout<<"                                    "<<endl;
	cout<<"          欢迎进入存款系统          "<<endl;
	cout<<"                                    "<<endl;
	cout<<"+----------------------------------+"<<endl;
    long accNum;//存款的账号
    double money;//存款的金额
    int pos;
    cout<<"请输入存款的账号:";
    cin>>accNum;
	cout<<"请输入存款金额:";
	cin>>money;
    pos=searchAccount(accNum);
	if(pos==-1)
	{
        //卡号有误
        cout<<"卡号不存在,请重新输入卡号"<<endl;
        depositmoney();
    }
	else
	{
        //展示下存款前卡的信息
        cout<<"存款前卡的信息:"<<endl;
		putout(array[pos]);
        //找到了该卡号所对应的卡
        array[pos].balance+=money;
		//展示存款后卡的信息
        cout<<"存款后卡的信息:"<<endl;
		putout(array[pos]);
        cout<<"存款成功,按任意键返回"<<endl;
        fflush(stdin);
        getchar();
        work();
		
	}
}

void drawmoney()
{
    cout<<"+----------------------------------+"<<endl;
	cout<<"                                    "<<endl;
	cout<<"          欢迎进入取款系统          "<<endl;
	cout<<"                                    "<<endl;
	cout<<"+----------------------------------+"<<endl;
	long accNum;//存款的账号
    double money;//存款的金额
    int pos;
	char wrd[20]={0};
    cout<<"请输入取款的账号:";
    cin>>accNum;
    cout<<"请输入账号密码:";
	cin>>wrd;
    cout<<"请输入取款金额:";
    cin>>money;
    pos=searchAccount(accNum);
	
    if(pos==-1)
	{
        //卡号有误
        cout<<"卡号不存在,请重新输入卡号"<<endl;
        drawmoney();
    }
	else
	{
		if(strcmp(array[pos].accPwd,wrd)!=0)
		{
			cout<<"您输入的密码有误!"<<endl;
			depositmoney();
		}
		else
		{
			//展示取款前卡的信息
			cout<<"取款前卡的信息:"<<endl;
			putout(array[pos]);
			//找到了该卡号所对应的卡
			array[pos].balance-=money;
			if(array[pos].balance<=0)
			{
			cout<<"对不起,您的余额不足!"<<endl;
			work();
			}

			else
			{
			//展示取款后卡的信息
			cout<<"取款后卡的信息:"<<endl;
			putout(array[pos]);
			cout<<"取款成功,按任意键返回"<<endl;
			fflush(stdin);
			getchar();
			}
		}
	}
}
void showbalance()
{
    cout<<"+----------------------------------+"<<endl;
	cout<<"                                    "<<endl;
	cout<<"          欢迎进入查询系统          "<<endl;
	cout<<"                                    "<<endl;
	cout<<"+----------------------------------+"<<endl;
    int pos;
	long accNum;
	char wrd[20]={0};
    cout<<"请输入存款的账号:";
    cin>>accNum;
	cout<<"请输入账号密码:";
	cin>>wrd;
    pos=searchAccount(accNum);
	if(pos==-1)
	{
        //卡号有误
        cout<<"卡号不存在,请重新输入卡号"<<endl;
		showbalance();
    }
	else
	{
		if(strcmp(array[pos].accPwd,wrd)!=0)
		{
			cout<<"您输入的密码有误!"<<endl;
			showbalance();
		}
		else
		{
			//展示下卡的信息
			cout<<"您的银行卡的信息:"<<endl;
			putout(array[pos]);
			cout<<"按任意键返回"<<endl;
			fflush(stdin);
			getchar();
			work();
		}
		
	}
}
void openaccount()
{
	cout<<"+----------------------------------+"<<endl;
	cout<<"                                    "<<endl;
	cout<<"          欢迎进入开户系统          "<<endl;
	cout<<"                                    "<<endl;
	cout<<"+----------------------------------+"<<endl;
	cout<<"请输入户名:";
    cin>>array[size].accName;
    cout<<"请输入密码:";
    cin>>array[size].accPwd;
    cout<<"请输入金额:";
    cin>>array[size].balance;
    strcpy(array[size].flag,"正常");
    array[size].accNumber=autoCreament();
    putout(array[size]);
	size++;
    cout<<"开户成功,按任意键返回"<<endl;
    fflush(stdin);
    getchar();
    work();
}
void closeaccount()
{
    cout<<"+----------------------------------+"<<endl;
	cout<<"                                    "<<endl;
	cout<<"          欢迎进入销户系统          "<<endl;
	cout<<"                                    "<<endl;
	cout<<"+----------------------------------+"<<endl;
}
long autoCreament()
{
	if(size==0){
		return INITNUMBER;
	}else{
		return array[size-1].accNumber+1;
	}
}
void exit()
{
	cout<<"欢迎您下次办理银行储蓄综合业务!"<<endl;
}
void putout(Account acc)
{
    cout<<"+--------------------------------------------+"<<endl;
	cout<<"|"<<setiosflags(ios::left)<<setw(8)<<"账号"<<"|"<<setiosflags(ios::left)<<setw(8)<<"户名"<<"|"<<setiosflags(ios::left)<<setw(8)<<"密码"<<"|"<<setiosflags(ios::left)<<setw(8)<<"余额"<<"|"<<setiosflags(ios::left)<<setw(8)<<"状态"<<"|"<<endl;
	cout<<"+--------------------------------------------+"<<endl;
	cout<<"|"<<setiosflags(ios::left)<<setw(8)<<acc.accNumber<<"|"<<setiosflags(ios::left)<<setw(8)<<acc.accName<<"|"<<setiosflags(ios::left)<<setw(8)<<acc.accPwd<<"|"<<setiosflags(ios::left)<<setw(8)<<acc.balance<<"|"<<setiosflags(ios::left)<<setw(8)<<acc.flag<<"|"<<endl;
    cout<<"+--------------------------------------------+"<<endl;
}

int searchAccount(long accNumber)
{
    int i,pos=-1;
    for(i=0;i<size;i++){
        if(array[i].accNumber==accNumber){
            //找到了这张卡
            pos=i;
            break;
        }
    }
    return pos;
}

你可能感兴趣的:(师创年终任务-银行系统(销户待解决))