#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);elseprintf("转账金额大于存款\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);      //银行卡账号为62170042printf("\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(k==g) { 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");      //银行卡账号为123456789printf("\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("%ld",&c);
}

思路:

在我的ATM程序设计中,设计所存入的金额原始值(h)为5000元;在程序设计中,原始金额可以根据用户需求自行更改;

用户姓名:张三;
身份证号码:00000000
银行卡账号:123456789
插入银行卡之后,输入密码,密码初始值设为111111(可以进行更改);
密码若连续输入错误三次,程序退出;
取款金额应该为100的整数倍,且取款金额应该少于卡内余额;
单次取款金额应该小于等于2000元;

修改密码时,如果忘记原密码,可以使用身份证号码进行身份验证,验证成功任然可以进行密码修改;

运行结果展示;

ATM自动取款机程序设计相关推荐

  1. 模拟atm取款机 php,C语言模拟ATM自动取款机系统

    C语言实验报告 题目名称:C语言模拟ATM自动取款机系统 一:问题描述: C语言模拟实现ATM自动取款机功能:输入密码,余额查询,取款,存款,转账,修改密码,退出功能: 代码实现的功能: 账号及密码输 ...

  2. 【历史上的今天】9 月 2 日:互联网的“诞生日”;三星逐步跌落神坛;世界上第一个 ATM 自动取款机

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 将计算机网络相互连接在一起称为"网络互联",在其基础上连接覆盖全世界的"网络互联" ...

  3. 【历史上的今天】9 月 2 日:互联网的“诞生日”;三星逐步跌落神坛;世界上第一个ATM自动取款机

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 将计算机网络相互连接在一起称为"网络互联",在其基础上连接覆盖全世界的"网络互联" ...

  4. Java语言实现 ATM 自动取款机系统

    ATM自动取款机 ​​​ 实现 ATM 自动取款机系统,本系统有如下功能: 1.登陆    用户通过输入卡号和密码登陆本系统,如果输入错误,提示错误并重新输入,连续三次错误吞卡. 2.取款    系统 ...

  5. 写一个简单的自动取款机c语言程序,C语言编程模仿银行ATM自动取款机功能

    编程模仿银行ATM自动取款机功能,要求能实现以下功能: 1. 输入储户基本信息(既开户功能,开户成功需要打印储户基本信息): 2. 开户成功后打印欢迎界面,比如"开户成功,欢迎使用**银行自 ...

  6. 基于C++的ATM自动取款机设计

    一.ATM自动取款机设计要求 1.实现ATM取款机的基本功能,如给用户提供开户.查询余额.取款.修改密码.吃卡.退出系统等服务,可根据实际情况添加(如缴费.转账等服务). 2.对于用户要求输入相应的帐 ...

  7. atm自动取款机c语言编码,ATM自动取款机C语言源代码.doc

    #includevoid main() { int choice(int n,int money); int balance=1000000; int password,m=0; int n=0; p ...

  8. C语言ATM自动取款机系统项目的设计与开发

    文章目录 基于C语言的ATM自动取款机系统项目设计与开发 一.ATM自动取款机系统功能分析与介绍 二.开发ATM自动取款机系统的工具以及创建项目的过程 2.1.本项目使用Visual Studio 2 ...

  9. 银行ATM自动取款机模拟程序C语言——课程设计实习

    绪论 ATM即自动取款机的意识,ATM是最普遍的自助银行设备,可以提供最基本的银行服务之一,即出钞交易,有些全功能的产品还可以提供信封存款业务.在ATM自动取款机上也可以进行账户查询和改密的业务.作为 ...

最新文章

  1. SVO学习笔记(一)
  2. 开源加持 NFV借势OPNFV实现进阶之路
  3. 【并发编程】线程锁--Synchronized、ReentrantLock(可重入锁)
  4. UVA11419 我是SAM
  5. docker容器相关
  6. Qt学习之路(1)------Qt常用类用法说明
  7. 如何使用Java 8函数式编程生成字母序列
  8. 远控免杀专题(23)-SharpShooter免杀
  9. MyIbatis使用trim灵活的插入
  10. C# 用委托实现Callback
  11. 调用接口登录禅道_干货,调用api获取禅道需求列表等
  12. python 两点曲线_全方位比较3种数据科学工具的比较:Python、R和SAS(附链接)
  13. 两种分布式锁实现方案(一)
  14. 爬取B站程序猿up主,分析程序猿up出什么类型的视频会受欢迎
  15. 解决Glide 4.8.0 圆角与CenterCrop 的冲突问题
  16. ‘javah‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件
  17. 我本一心向明月,奈何明月照沟渠。真是知我者谓我心忧,不知我者谓我何求啊。
  18. flink cdc 2.2.1 mysql connector
  19. 使用hicanu组装hifi基因组的方法介绍
  20. 阿里云OCR通用文字识别和自定义模板OCR识别Python代码及一站式教程

热门文章

  1. c语言开发apu,三款新APU E-450、E-300、C-60开始列装
  2. Paul Graham:未来的互联网创业(下)
  3. 贪心算法(最优装载问题,田忌赛马,雷达问题)
  4. 学生成绩预测模型_华中农大学子在美国大学生数学建模竞赛中获佳绩
  5. 花费1800元学习的seo内容公开
  6. 万网服务器 https证书,教你申请免费https证书!
  7. ubuntu安装xcode包_Ubuntu12.04 安装 Mac OSX 10.9.5和 Xcode 6.2
  8. 32位与64位操作系统以及CPU的关系
  9. 寂然解读设计模式 - 单一职责原则
  10. 学习在kvm上创建vtpm