问题及代码:
/*
*copyright (t) 2016,烟台大学计算机学院
*All rights reserved.
*文件名称:test.cpp
*作者:张晴晴
*完成日期:2016年6月20日
*版本号:v1.0
*问题描述:
*输入描述:
*程序输出:
*/
#include "stdio.h"
#include "string.h"
char gUser[100][32];
char haoma[12];
double gMoney[100];
int gGuashi[100]={0};
int gIndex=0;
int cmd;
int ret=2;
int yuer=0;
char gmima[100][32];
void gaimi();
void cunkuan();
void qukuan();
void chaxun();
void kaihu();
void xiaohu();
void zhuanzhang();
void guashi();
void jiegua();
void tuichu();
int main()
{
for(;;)
{
printf("```````~~~~~~~~~欢迎进入银行储蓄系统~~~~~~~~~```````\n");
printf("╔━━━═━━━═━━━═━━━═━━━═━━━═╗\n");
printf("┋ ╭─────╮ ╰★【1】存款 【2】取款 ┋\n");
printf("┋ │● ●│ ╰★【3】查询 【4】开户 ┋\n");
printf("┋ ╱ ╭▼▼▼╮ ╲ ╰★【5】销户 【6】转账 ┋\n");
printf("┋ ╰┐│ │┌╯ ╰★【7】挂失 【8】解挂 ┋\n");
printf("┋ │╰▲▲▲╯│ ╰★【9】改密 【0】退出 ┋\n");
printf("┋┗━ ┗━ ┋\n");
printf("╚━━━═━━━═━━━═━━━═━━━━━━━━╝\n");
scanf("%d",&cmd);
switch(cmd)
{
case 1:cunkuan();break;
case 2:qukuan();break;
case 3:chaxun();break;
case 4:kaihu();break;
case 5:xiaohu();break;
case 6:zhuanzhang();break;
case 7:guashi();break;
case 8:jiegua();break;
case 9:gaimi();break;
case 0:break;
}
}
return 0;
}
void cunkuan()//存款
{
char User[32];
char mima[50];
double cunkuan;
int i;
int t=0;
printf("请输入用户名:");
scanf("%s",User);
for (i=0;i<=gIndex;i++)
{
if (strcmp(gUser[i],User)==0)//检测输入的User是否已经存入数组即是否已经开户
{
t=1;
break;
}
}
if (t==1)
{
if(gGuashi[i]==0)//未挂失的情况下
{
printf("请输入您的密码:");
scanf("%s",mima);
if (strcmp(gmima[i],mima)==0)//验证输入的密码是否与数组中该用户名的密码对应
{
printf("请输入存储金额:");
scanf("%lf",&cunkuan);
if(cunkuan>0)
{
gMoney[i]=gMoney[i]+cunkuan;
printf("恭喜您,存款成功,您的余额为%f\n",gMoney[i]);
}
else
printf("对不起,存款金额为正整数,请重新输入存款金额\n");
}
else
{
printf("您输入的密码错误");
}
}
else
{
printf("该账户已挂失无法进行存款");
}
}
else
{
printf("该用户不存在");
}
}
void qukuan()//取款
{
char User[32];
char mima[50];
double qukuan;
int i;
int t=0;
printf("请输入用户名:");
scanf("%s",User);
for (i=0;i<=gIndex;i++)
{
if (strcmp(gUser[i],User)==0)//检测输入的User是否已经存入数组即是否已经开户
{
t=1;
break;
}
}
if (t==1)
{
if(gGuashi[i]==0)//未挂失
{
printf("请输入您的密码:");
scanf("%s",mima);
if (strcmp(gmima[i],mima)==0)//验证输入的密码是否与数组中该用户名的密码对应
{
printf("请输入金额:");
scanf("%lf",&qukuan);
if(qukuan>0)
{
if (qukuan<gMoney[i])//取款的金额比存款少才能取钱
{
gMoney[i]=gMoney[i]-qukuan;
printf("恭喜您,取款成功,您的余额为%lf\n",gMoney[i]);
}
else
{
printf("你的余额不足");
}
}
else
printf("对不起,取款金额为正整数,请重新输入取款金额");
}
else
{
printf("您输入的密码错误");
}
}
else
{
printf("该账户已挂失无法进行取款");
}
}
else printf("该用户名不存在");
}
void chaxun()//查询
{
char User[32];
char mima[50];
int i;
int t=0;
printf("请输入用户名:");
scanf("%s",User);
for (i=0;i<=gIndex;i++)
{
if (strcmp(gUser[i],User)==0)//检测输入的User是否已经存入数组即是否已经开户
{
t=1;
break;
}
}
if (t==1)
{
if(gGuashi[i]==0)//未挂失
{
printf("请输入您的密码:");
scanf("%s",mima);
if (strcmp(gmima[i],mima)==0)//验证输入的密码是否与数组中该用户名的密码对应
{
printf("你的余额为%lf\n",gMoney[i]);
}
else
{
printf("您输入的密码错误");
}
}
else
{
printf("该账户已挂失无法进行查询");
}
}
else
{
printf("该用户不存在");
}
}
void kaihu()//开户
{
char aUser[32];
char xinmima[32];
printf("请输入姓名:\n");
scanf("%s",aUser);
int i;
for (i=0;i<gIndex;i++)
{
ret=strcmp(gUser[i],aUser);
if (ret==0)//检测输入的User是否已经存入数组即是否已经开户
{
printf("该用户已被注册");
break;
}
}
if (ret==0)//
{
}
if(ret!=0)
{
printf("请输入电话号码");
scanf("%s",haoma);
if(strlen(haoma)==11)
{
printf("请输入密码:");
scanf("%s",xinmima);
strcpy(gUser[gIndex],aUser);//将aUser存入gUser[gIndex]的数组中
strcpy(gmima[gIndex],xinmima);//将xinmima存入gmima[gIndex]的数组中
printf("用户%s注册成功,你的账号为%d\n",aUser,gIndex+1);
gIndex++;
}
else
printf("您输入的电话号码位数不为十一位,请重新输入\n");
}
else
printf("您输入的电话号码位数不为十一位,请重新输入");
}
void xiaohu()//销户
{
char User[32];
char mima[50];
int i;
int t=0;
printf("请输入用户名:");
scanf("%s",User);
for (i=0;i<=gIndex;i++)
{
if (strcmp(gUser[i],User)==0)//检测输入的User是否已经存入数组即是否已经开户
{
t=1;
break;
}
}
if (t==1)
{
printf("请输入您的密码:");
scanf("%s",mima);
if (strcmp(gmima[i],mima)==0)//验证输入的密码是否与数组中该用户名的密码对应
{
gUser[i][i]=0;
gmima[i][i]=0;
printf("您销户成功");
}
else
{
printf("您输入的密码错误");
}
}
else
{
printf("该用户不存在");
}
}
void zhuanzhang()//转账
{
char User[32];
char aUser[32];
char mima[50];
double jine;
int i,x;
int t=0,t2=0;
printf("请输入用户名:");
scanf("%s",User);
for (i=0;i<=gIndex;i++)
{
if (strcmp(gUser[i],User)==0)//检测输入的User是否已经存入数组即是否已经开户
{
t=1;
break;
}
}
if (t==1)
{
if(gGuashi[i]==0)//未挂失的情况下
{
printf("请输入您的密码:");
scanf("%s",mima);
if (strcmp(gmima[i],mima)==0)//验证输入的密码是否与数组中该用户名的密码对应
{
printf("请输入您要转账的用户名:");
scanf("%s",aUser);
if(strcmp(aUser,User)!=0)
{
for (x=0;x<=gIndex;x++)
{
if(strcmp(gUser[x],aUser)==0)//检测输入的aUser是否已经存入数组即是否已经开户
{
t2=1;
break;
}
}
if(t2==1)
{
if(gGuashi[x]==0)
{
printf("请输入您要转账的金额");
scanf("%lf",&jine);
if(jine>0)
{
if(jine<gMoney[i])//如果转账的金额小于存款
{
gMoney[i]=gMoney[i]-jine;
gMoney[x]=gMoney[x]+jine;
printf("转账成功,您的账户余额为%lf",gMoney[i]);
}
else
{
printf("您的余额不足");
}
}
else
printf("对不起,转账金额为正整数,请重新输入转账金额\n");
}
else
printf("对不起,您要转账的用户已挂失,无法进行转账。");
}
else
{
printf("您要转账的用户不存在");
}
}
else
printf("对不起,转账用户与被转账用户不能相同");
}
else
{
printf("您输入的密码错误");
}
}
else
{
printf("该账户已挂失无法转账");
}
}
else
{
printf("该用户不存在");
}
}
void guashi()//挂失
{
char oldUser[32];
char nidemima[50];
int i;
int t=0;
printf("请输入用户名:");
scanf("%s",oldUser);
for (i=0;i<=gIndex;i++)
{
if (strcmp(gUser[i],oldUser)==0)//检测输入的oldUser是否已经存入数组即是否已经开户
{
t=1;
break;
}
}
if (t==1)
{
printf("请输入您的密码:");
scanf("%s",nidemima);
if (strcmp(gmima[i],nidemima)==0)//验证输入的密码是否与数组中该用户名的密码对应
{
gGuashi[i]=1;
printf("您的账户挂失成功,无法完成存取款转账等业务");
}
else
{
printf("您输入的密码错误");
}
}
else
{
printf("该用户不存在");
}
}
void jiegua()//解挂
{
char oldUser[32];
int i;
int t=0;
printf("请输入用户名:");
scanf("%s",oldUser);
for (i=0;i<=gIndex;i++)
{
if (strcmp(gUser[i],oldUser)==0)//检测输入的oldUser是否已经存入数组即是否已经开户
{
t=1;
break;
}
}
if (t==1)
{
if(gGuashi[i]==1)
{
char mima[12];
gGuashi[i]=0;
printf("请输入您的密码:");
scanf("%s",mima);
if (strcmp(gmima[i],mima)==0)//验证输入的密码是否与数组中该用户名的密码对应
printf("该账户已解挂");
}
else
{
printf("该账户未挂失");
}
}
}
void gaimi()
{
char User[32];
char mima[50];
char xmima[50];
int i;
int t=0;
printf("请输入用户名:");
scanf("%s",User);
for (i=0;i<=gIndex;i++)
{
if (strcmp(gUser[i],User)==0)//检测输入的User是否已经存入数组即是否已经开户
{
t=1;
break;
}
}
if (t==1)
{
if(gGuashi[i]==0)//未挂失的情况下
{
printf("请输入您的密码:");
scanf("%s",mima);
if (strcmp(gmima[i],mima)==0)//验证输入的密码是否与数组中该用户名的密码对应
{
printf("请输入新密码");
scanf("%s",xmima);
strcpy(gmima[i],xmima);
printf("恭喜您,修改密码成功");
}
else
{
printf("您输入的密码错误");
}
}
else
{
printf("该账户已挂失无法进行查询");
}
}
else
{
printf("该用户不存在");
}
}
运行结果: