/*******************************头文件*************************************/
#include<stdio.h>
#include <conio.h>
#include<stdlib.h>
#include<time.h>
#include<string.h>
#include<windows.h>
/*******************************结构*************************************/
struct Bank
{
char cName[30]; //姓名
char nMima[7]; //密码
char nZhanghao[30]; //帐号
double dbMoney; //金额
};
static struct Bank user[30];
/*******************************函数*************************************/
void jiemian1(); //开始总界面
void jiemian2(); //登陆界面
void jiemian3(); //管理员界面
void denglu(); //用户登陆
void guanliyuan(); //管理员登陆
void Kaihu(); //开户
void Qukuan(); //取款
void Cunkuan(); //存款
void Zhuanzhang(); //转帐
void Chaxun(); //查询
void xiugaimima1(); //修改密码
void xiugaimima2(); //强行修改密码
void Zhuxiao(); //注销
void Tuichu(); // 退出
void jiami(char jia[7]); //密码变*
/*******************************全局变量*************************************/
char nZhanghao[30];
int nMima;
int nTotal=0; //总人数
void main() //主函数
{
system("color E");
int nChoose1,nChoose2,nChoose3;
loop:
jiemian1();
do
{
printf("\n\t\t 请输入选项(/①/②/③/④)");
scanf("%d",&nChoose1);
system("cls");
switch(nChoose1)
{
case 1:Kaihu(); //开户
break;
case 2:
{
denglu(); //登陆
jiemian2(); //界面2
do
{
printf("请选择(1/2/3/4/5/6)");
scanf("%d",&nChoose2);
system("cls"); //清屏
switch(nChoose2)
{
case 1:Cunkuan(); //取款
break;
case 2:Qukuan();
break;
case 3:Zhuanzhang();//转帐
break;
case 4:Chaxun();//查询
break;
case 5:xiugaimima1(); //修改密码
break;
case 6 : goto loop; //返回到loop位置
break;
}
}while(1);
break; //跳出do-while循环
}
case 3:guanliyuan();
{
jiemian3();
do
{
printf("请选择(1/2/3)");
scanf("%d",&nChoose3);
system("cls");
switch(nChoose3)
{
case 1:xiugaimima2(); //修改密码
break;
case 2:Zhuxiao(); //注销
break;
case 3:goto loop; //返回
break;
default:printf("输入有错,请在1-4中选择。\n");
}
}while(1);
}
break;
case 4:Tuichu(); //退出
break;
default:printf("输入有错,请在1-3中选择。\n");
}
}
while(1);
}
/*******************************************
函数名称:jiemian1
函数作用:开始总界面
函数参数:无
返回值:无
********************************************/
void jiemian1()
{
printf(" \n");
printf(" \t\t\tΨΨΨΨΨΨΨΨΨΨΨΨ \n");
printf(" \t\t\t $ 北大青鸟自助银行 $ \n");
printf(" \t\t\tΨΨΨΨΨΨΨΨΨΨΨΨ \n");
printf(" \n");
printf(" \t\t /*24小时为您服务*/ \n");
printf(" \n");
printf(" ★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★\n");
printf(" \n");
printf(" \t\t┏━━━━━━┯━━━━━━━━┯━━━━━━┓\n");
printf(" \t\t┃ ┇ ┇ ┃\n");
printf(" \t\t┃ ①开户 ┇ ②用户登陆 ┇ ③管理员 ┃ \n");
printf(" \t\t┃ ┇ ┇ ┃\n");
printf(" \t\t┃ ┇ ⊙存款 ┇ ⊙强行改密 ┃\n");
printf(" \t\t┃--您将有属于┇ ⊙取款 ┇ ┃\n");
printf(" \t\t┃ 自己的青鸟┇ ⊙转帐 ┇ ⊙注销帐号 ┃\n");
printf(" \t\t┃ 银行帐号 ┇ ⊙查询 ┇ ┃\n");
printf(" \t\t┃ ┇ ⊙修改密码 ┇ ┃\n");
printf(" \t\t┃┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┃ \n");
printf(" \t\t┃ ④退出 ┃\n");
printf(" \t\t┗━━━━━━━━━━━━━━━━━━━━━━┛ \n");
printf(" \n");
}
/*******************************************
函数名称:Kaihu
函数作用:开户
函数参数:无
返回值:无
********************************************/
void Kaihu()
{
int i,j,k=0,nY,nX; //nY和nX分别代表输入的验正码和电脑随机产生的验正码
char cshenfenzheng[18];
char cName[30];
char nMima1[7],nMima2[7];
int temp1; //随机产生验正码的每一个数
char nZhanghao[]="8888 8888 8888 888"; //帐号的前15位数为确定的
char yuan[100]; //帐号的后3位数为电脑随机产生
printf(" \t\t ┏━━┓ ╓══★══╖ ┏━━┓ \n ");
printf(" \t\t ┃青鸟┃ ╭╩╮ ‖ ╭╩╮ ┃ 开 ┃ \n");
printf(" \t\t ┃银行┃ ╲╱ ‖ ╲╱ ┃ 户 ┃ \n ");
printf(" \t\t ┗━━┛╰☆℡ ╨ ℡☆╯┗━━┛ \n");
printf("请按照以下提示进行注册!\n");
do
{
printf("姓名:");
fflush(stdin);
gets(cName);
if(strlen(cName)==0) //验证姓名是否为空
{
printf("姓名不能为空,请重新输入\n");
continue;
}
else
{
strcpy(user[nTotal].cName,cName); //复制姓名
break;
}
}while(1);
do
{
printf("身份证号:");
fflush(stdin);
gets(cshenfenzheng);
if(strlen(cshenfenzheng)==18) //验证身份证号是否为18位
{
break;
}
else
{
printf("请输入18位法的身份证号码!\n");
}
}while(1);
for(j=0;j<=6;j++)
{
printf("密码:"); //第一次输入密码
fflush(stdin);
jiami(nMima1); //密码变为*
printf("\n");
printf("再次输入密码:"); //第二次输入密码
fflush(stdin);
jiami(nMima2); //密码变为*
printf("\n");
/*判断两次输入的密码是否相同 并且都是六位数*/
if((strcmp(nMima1,nMima2)!=0)||(strlen(nMima1)!=6)||(strlen(nMima2)!=6))
{
printf("两次输入的密码不一致或者密码不是六位,请重新输入!\n");
continue;
}
else
{
strcpy(user[nTotal].nMima,nMima1); //复制密码
break;
}
}
for(i=0;i<=5;i++)
{
printf("请输入验证码:");
srand((unsigned)time(NULL)); //随即产生验证码
temp1 = rand()%100000;
printf("%d",temp1);
nX=temp1;
printf(" ");
scanf("%d",&nY);
if(nY==nX) //判断两次输入的验证码是否相同
{
srand((unsigned)time(NULL));//随即产生帐号的后3位数
for(int i=0;i<3;i++)
{
yuan[i]= rand()%10+48;//把随即产生的数由型int转换为char型
}
yuan[3] = '\0'; //当随即产生到第三个数时结束
strcat(nZhanghao,yuan); //连接帐号
strcpy(user[nTotal].nZhanghao,nZhanghao); //复制帐号
printf("注册成功!\n您的卡号为:%s\n",nZhanghao);
nTotal++;
printf(" \t\t┏━━━━━━┯━━━━━━━━┯━━━━━━┓\n");
printf(" \t\t┃ ┇ ┇ ┃\n");
printf(" \t\t┃ ①开户 ┇ ②用户登陆 ┇ ③管理员 ┃ \n");
printf(" \t\t┃ ┇ ┇ ┃\n");
printf(" \t\t┃ ┇ ⊙存款 ┇ ⊙强行改密 ┃\n");
printf(" \t\t┃--您将有属于┇ ⊙取款 ┇ ┃\n");
printf(" \t\t┃ 自己的青鸟┇ ⊙转帐 ┇ ⊙注销帐号 ┃\n");
printf(" \t\t┃ 银行帐号 ┇ ⊙查询 ┇ ┃\n");
printf(" \t\t┃ ┇ ⊙修改密码 ┇ ┃\n");
printf(" \t\t┃┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┃ \n");
printf(" \t\t┃ ④退出 ┃\n");
printf(" \t\t┗━━━━━━━━━━━━━━━━━━━━━━�