ATM

ATM管理系統
软件工程导轮 https://edu.cnblogs.com/campus/ahgc/AHPU-SE-19
作业要求 https://edu.cnblogs.com/campus/ahgc/AHPU-SE-19/homework/11477
作业目标 写一个atm管理系统,完成开户、销户、存款等功能
学号 <3190704126>
ஹூ.ன 2020/11/18 19:48:50

include<stdlib.h>

include <stdio.h>

void main()
{
long int a,b,c,d,e,f,g,k,i,m,n,o,p,h,x,y,v;
x=62170042; //x是银行卡账号62170042(8位数)
y=00000000; //y:身份证号(8位数)
n=0;h=5000; //h是银行账户余额,原本余额为5000
k=111111; //默认银行卡密码111111(6位数)
key: //做标记,程序开始执行,验证密码是否正确
printf("\t\t\t 欢迎使用!\n\n");
printf("插入银行卡之后,输入密码,若三次密码输入错误,将终止程序:\n");
scanf("%ld",&i);
if(k==i) //此时的i指的是用户输入的银行卡密码,密码输入正确(k=i)才能有后续操作
{
menu: //做标记,选择操作继续执行
printf("密码正确,请输入所选择的操作类型:\n");
printf("请在0-4进行选择:\n");
printf(" 1:转账\n\t 2:查询\n\t 3:取款\n\t 4:修改密码\n\t 0:退卡\n\t");
scanf("%ld",&a);
switch(a)
{
case 1: printf("请输入转账账号:\n");
scanf("%d",&o); //o是指银行卡账号
printf("请输入你需要转账的金额:\n"); //p:转账金额
scanf("%d",&p);
printf("请输入你选择的操作类型:\n");
printf("请输入0或1进行选择:\n");
printf(" 1:确认\n\t 0:返回上一层\n\t");
h=5000-p; //h:账户余额
scanf("%ld",&b);
switch(b)
{
case 1:
if(p<h)
printf("\n转账%d元成功!\n\n",p);
else
printf("转账金额大于存款\n");
goto menu;break;
case 0:goto menu;break;
default :printf("\n没有设定此种操作!\n\n");goto menu;
}break;

select: //做标记,查询
case 2:printf("请输入你选择的操作类型:\n");
printf("在0-2进行选择:\n");
printf(" 1:查询余额\n\t 0:返回上一层\n\t");
scanf("%ld",&c);
switch(c) //查询功能
{
case 1:
printf("账单如下: \n");
printf("姓名:张三 \n"); //用户姓名为张三
printf("\n银行卡账号: %1d \n\n",x); //银行卡账号为62170042
printf("\n此时此刻银行卡余额为: %5d元 \n\n",h);
goto select;break;
case 0:goto menu;
default:printf("\n此操作无效!\n\n");goto select;
}
break;
output: // 做标记,取款操作
case 3:printf("请输入你选择的操作类型:\n");
printf("请输入0-5进行选择:\n");
printf(" 1:100元\n\t 2:500元\n\t 3:1000元\n\t 4:2000元\n\t 5:输入金额\n\t 0:返回上一层\n\t");
scanf("%ld",&d);
switch(d) //选择取款金额
{
case 0:goto menu;break;
case 1:h-=100; printf("\n取款100成功!\n\n");goto check;break;
case 2:h-=500; printf("\n取款500成功!\n\n");goto check;break;
case 3:h-=1000;printf("\n取款1000成功!\n\n");goto check;break;
case 4:h-=2000;printf("\n取款2000成功!\n\n");goto check;break;
case 5:
printf("输入取款金额为100的倍数,单次金额最大为2000元: \n");
scanf("%ld",&f);
while(f%100!=0)
{
printf("\n输入取款金额应为100的倍数,请重新输入\n\n");
scanf("%ld",&f);
break;
}
while(f<=2000)
{
h-=f;
printf("\n取款成功!\n\n");break;
}
goto check;break;
default:printf("\n此操作无效!\n\n");goto output;
}
modity: //做标记,修改密码
case 4: printf("请输入你选择的操作类型:\n");
printf("请在0或1中进行选择:\n");
printf(" 1:修改密码\n\t 0:返回上一层\n\t");
scanf("%ld",&m);
switch(m)
{
case 1:
printf("请输入原始密码:\n");//如果输入的密码正确,则验证成功,可以进行修改密码的操作
scanf("%ld",&g);
if(kg)
{
printf("请输入新密码:\n");
scanf("%ld",&g);
k=g;
printf("\n密码修改成功!\n\n");
}
else
{
printf("密码输入错误!\n");
printf("请输入身份证号码进行验证:\n");
scanf("%ld",&v);
if(y
v)
{
printf("\n身份验证成功!\n\n");
printf("请输入新密码: \n");

		 scanf("%ld",&g);
	 	 printf("\n密码修改成功!\n\n");goto menu;
 }
 else
 {
	 printf("\n验证失败!无法修改密码!\n\n");
	goto modity;
 }
 goto menu;break; 
 }
 goto menu;break;  

case 0: goto menu;break;
default:printf("\n密码无法修改!\n\n");
goto modity; }break;
case 5: printf("\n退卡成功!\n\n");
goto key;break;
default: printf("\退卡成功!\n\n");goto key;
}
check: //凭条
printf("请输入你选择的操作编号:\n");
printf("请输入0-3进行选择:\n");
printf(" 1:显示余额\n\t 2:打印凭条\n\t 3:继续\n\t 0:退卡\n\t");
scanf("%ld",&e);
switch(e)
{
case 1:printf("\n你的余额为:%d元!\n\n",h); goto menu;break;
case 2:printf("\n谢谢使用!您的凭条打印如下所示:!\n\n");
printf("姓名:张三 \n"); //用户姓名为张三
printf("银行卡账号:123456789\n"); //银行卡账号为123456789
printf("\n银行卡余额为: %5d元 \n\n",h);
goto menu;break;
case 3:goto output;break;
case 0:goto key;
default:printf("\n无效操作,请重新选择操作!\n\n");goto check;
}
}
else
{
printf("输入原密码错误,请重新输入:\n");
n++; //n:输入密码错误,三次错误密码之后程序将无法执行
if(n<=2)
goto k

ஹூ.ன 2020/11/18 19:50:03

include<stdlib.h>

include <stdio.h>

void main()
{
long int a,b,c,d,e,f,g,k,i,m,n,o,p,h,x,y,v;
x=62170042; //x是银行卡账号62170042(8位数)
y=00000000; //y:身份证号(8位数)
n=0;h=5000; //h是银行账户余额,原本余额为5000
k=111111; //默认银行卡密码111111(6位数)
key: //做标记,程序开始执行,验证密码是否正确
printf("\t\t\t 欢迎使用!\n\n");
printf("插入银行卡之后,输入密码,若三次密码输入错误,将终止程序:\n");
scanf("%ld",&i);
if(k==i) //此时的i指的是用户输入的银行卡密码,密码输入正确(k=i)才能有后续操作
{
menu: //做标记,选择操作继续执行
printf("密码正确,请输入所选择的操作类型:\n");
printf("请在0-4进行选择:\n");
printf(" 1:转账\n\t 2:查询\n\t 3:取款\n\t 4:修改密码\n\t 0:退卡\n\t");
scanf("%ld",&a);
switch(a)
{
case 1: printf("请输入转账账号:\n");
scanf("%d",&o); //o是指银行卡账号
printf("请输入你需要转账的金额:\n"); //p:转账金额
scanf("%d",&p);
printf("请输入你选择的操作类型:\n");
printf("请输入0或1进行选择:\n");
printf(" 1:确认\n\t 0:返回上一层\n\t");
h=5000-p; //h:账户余额
scanf("%ld",&b);
switch(b)
{
case 1:
if(p<h)
printf("\n转账%d元成功!\n\n",p);
else
printf("转账金额大于存款\n");
goto menu;break;
case 0:goto menu;break;
default :printf("\n没有设定此种操作!\n\n");goto menu;
}break;

select: //做标记,查询
case 2:printf("请输入你选择的操作类型:\n");
printf("在0-2进行选择:\n");
printf(" 1:查询余额\n\t 0:返回上一层\n\t");
scanf("%ld",&c);
switch(c) //查询功能
{
case 1:
printf("账单如下: \n");
printf("姓名:张三 \n"); //用户姓名为张三
printf("\n银行卡账号: %1d \n\n",x); //银行卡账号为62170042
printf("\n此时此刻银行卡余额为: %5d元 \n\n",h);
goto select;break;
case 0:goto menu;
default:printf("\n此操作无效!\n\n");goto select;
}
break;
output: // 做标记,取款操作
case 3:printf("请输入你选择的操作类型:\n");
printf("请输入0-5进行选择:\n");
printf(" 1:100元\n\t 2:500元\n\t 3:1000元\n\t 4:2000元\n\t 5:输入金额\n\t 0:返回上一层\n\t");
scanf("%ld",&d);
switch(d) //选择取款金额
{
case 0:goto menu;break;
case 1:h-=100; printf("\n取款100成功!\n\n");goto check;break;
case 2:h-=500; printf("\n取款500成功!\n\n");goto check;break;
case 3:h-=1000;printf("\n取款1000成功!\n\n");goto check;break;
case 4:h-=2000;printf("\n取款2000成功!\n\n");goto check;break;
case 5:
printf("输入取款金额为100的倍数,单次金额最大为2000元: \n");
scanf("%ld",&f);
while(f%100!=0)
{
printf("\n输入取款金额应为100的倍数,请重新输入\n\n");
scanf("%ld",&f);
break;
}
while(f<=2000)
{
h-=f;
printf("\n取款成功!\n\n");break;
}
goto check;break;
default:printf("\n此操作无效!\n\n");goto output;
}
modity: //做标记,修改密码
case 4: printf("请输入你选择的操作类型:\n");
printf("请在0或1中进行选择:\n");
printf(" 1:修改密码\n\t 0:返回上一层\n\t");
scanf("%ld",&m);
switch(m)
{
case 1:
printf("请输入原始密码:\n");//如果输入的密码正确,则验证成功,可以进行修改密码的操作
scanf("%ld",&g);
if(kg)
{
printf("请输入新密码:\n");
scanf("%ld",&g);
k=g;
printf("\n密码修改成功!\n\n");
}
else
{
printf("密码输入错误!\n");
printf("请输入身份证号码进行验证:\n");
scanf("%ld",&v);
if(y
v)
{
printf("\n身份验证成功!\n\n");
printf("请输入新密码: \n");

		 scanf("%ld",&g);
	 	 printf("\n密码修改成功!\n\n");goto menu;
 }
 else
 {
	 printf("\n验证失败!无法修改密码!\n\n");
	goto modity;
 }
 goto menu;break; 
 }
 goto menu;break;  

case 0: goto menu;break;
default:printf("\n密码无法修改!\n\n");
goto modity; }break;
case 5: printf("\n退卡成功!\n\n");
goto key;break;
default: printf("\退卡成功!\n\n");goto key;
}
check: //凭条
printf("请输入你选择的操作编号:\n");
printf("请输入0-3进行选择:\n");
printf(" 1:显示余额\n\t 2:打印凭条\n\t 3:继续\n\t 0:退卡\n\t");
scanf("%ld",&e);
switch(e)
{
case 1:printf("\n你的余额为:%d元!\n\n",h); goto menu;break;
case 2:printf("\n谢谢使用!您的凭条打印如下所示:!\n\n");
printf("姓名:张三 \n"); //用户姓名为张三
printf("银行卡账号:123456789\n"); //银行卡账号为123456789
printf("\n银行卡余额为: %5d元 \n\n",h);
goto menu;break;
case 3:goto output;break;
case 0:goto key;
default:printf("\n无效操作,请重新选择操作!\n\n");goto check;
}
}
else
{
printf("输入原密码错误,请重新输入:\n");
n++; //n:输入密码错误,三次错误密码之后程序将无法执行
if(n<=2)
goto key;
}
scanf("%1d",&c);
}

posted @ 2020-11-18 21:25  金方园  阅读(197)  评论(0编辑  收藏  举报