流程图:

1.不插入卡时,ATM界面显示正常(广告状态)

2.插入非银行卡响应 (积分卡、公交卡片等)

3.卡或正或反插入响应

4.跨行插入银行卡响应(某些银行不支持跨行取钱)

5.卡是否过期 (比如招行卡是由10年有效期的,过期后应该是没用的)

6.卡磁道是否有效 (是否被消磁)

7.插入有效银行卡时,显示输入密码界面

8.输入密码: 正确密码、错误密码(修改前密码、空)、输入密码错误多次是否会被锁定冻结卡退卡 。

注:输入的密码显示为* .密码等于6位时,不能再输入

9.进入操作页面之后,各操作服务显示正常:有对应的取款服务可选  (没取款选项:ATM机内没有钱了、选错机器(查看下该机器是否支持取款)、机器出现故障、操作有误)

10.当有取款服务时,选择取款服务可以进入金额选择 或输入界面 (选择金额测试、 输入金额测试。只能是100的倍数)

11.银行卡取款的限额(单笔3K、单日2w)

12.ATM机内余额是否足够

13.银行账户内余额是否足够 (边界值: 和余额一致取款、比余额少取款、比余额多取款-取款失败)

14.跨行、异地取款时,手续费收取

15.余额足够确认取款时,ATM机吐钞的金额和选择取款的金额一致,且余额同时较少

16.取款成功后,可以在ATM机新出的页面上选择继续服务 、打印凭条、退卡等

17.打印凭条时,凭条上金额与用户选择取款金额一致。继续其他服务、退卡等操作能正常进行。

以上,在各个步骤操作时, 会有语音提示,需要测试语音提示是否正确。

20160704 所想到的整理如上,后续如有突破 继续补充

1.4 面试问题整理: ATM机取款的更多相关文章

  1. ATM机取款过程

    假设一个简单的ATM机的取款过程是这样的:首先提示用户输入密码,最多只能输入三次,超过3次则提示用户“密码错误,请取卡”结束交易.如果用户密码正确,再提示用户输入取款金额,ATM机只能输出100元的纸 ...

  2. 第一次尝试使用JAVA编写的ATM机程序

    package study; import java.util.Scanner; public class ATM { private static int[] users = { 111111, 2 ...

  3. ATM跨行取款的清算方式

    ATM跨行取款和POS机是类似的,因为没有商户参与,所以不需要收单清算,过程更为简单. 回到文章最开头的例子:你拿着一张工行卡去建行的ATM取了100元,这个跨行业务在CNAPS体系中的过程如下: 你 ...

  4. 模拟ATM机银行系统

    淄博汉企Java基础考核项目 模拟银行自助终端系统 一. 本系统模拟银行用户使用ATM机开户.查询.存款.取款功能,要求使用java语言编程实现. 说明: 1. 对于数据输入异常,可使用java异常处 ...

  5. JAVA - ATM机程序

    ATM机程序 UnionPayTest.java package oo.day06.work; public class UnionPayTest { } interface UnionPay{ // ...

  6. 连接数据库——模拟ATM机查、存、取、开户功能

    1.界面:包含开户.查询.存款.取款.功能 package com.bank.test; /** * * @author Administrator *界面类 */ public class Jiem ...

  7. ATM机模拟系统

    实验要求 https://pan.baidu.com/s/1Sq5joWyVsNhY8DYiyI4UmQ 源代码 /*信1705-1 20173458 王嘉梁*/ package atm; impor ...

  8. 简易ATM机

    简易ATM机(代码如下): /* * 功能:简易银行系统 */package day8; import java.util.Scanner; /** * * @FengYan Huang Admini ...

  9. 多用户ATM机(面向对象编程)

    let readline = require('readline-sync'); // 清屏函数 let clear = () => process.stdout.write(process.p ...

随机推荐

  1. mybatis+maven自动生成代码框架

    说明 通过可配置化,通过数据库自动生成model,da和mapper文件,这对于可定制化开发来说是非常有用的,减少了很多重复的工作. 添加依赖 <properties> <proje ...

  2. 获取指定key对应的node节点信息

    需求:之前写的脚本(https://www.cnblogs.com/imdba/p/10197192.html),每个node上都只有一个slot段范围的情况,本次通过测试,实现了,任意段范围的获取方 ...

  3. mysql 零基础 开始过程

    2016-11-07 算是差不多是两个月的学习,我也马上要结课了.今天才勉强把mysql装上,之前还有因为用户权限的问题,以及用户为创建的问题.应该早点就把该准备的开发平台准备好,而不是在最后快考试了 ...

  4. open()和with open()的区别

    open 1,打开文件 file=open("文件名",“读写模式”) 2,操作文件 *** 3,关闭文件 file.close() 注意事项: 使用open方法,文件操作完毕之后 ...

  5. 剑指offer-基础练习-快速排序-排序

    /* 题目:快速排序 */ /* 思路:将一个数组分为两份,左边的数字小于index,右边的数字大于index,递归划分后形成一个排序后的数组. */ void QuickSort(int data[ ...

  6. UVA1395 (最苗条的最小生成树)

    链接 https://vjudge.net/problem/UVA-1395 代码 #include<bits/stdc++.h> using namespace std; #define ...

  7. EF Code-First(Oracle)通过Migration来更新数据库的表的字段

    关于Oracle中使用Entity Framework 6.x Code-First方式开发,请参考博客(菩提树下的杨过)https://www.cnblogs.com/yjmyzz/p/how-to ...

  8. 牛客网 —— 爱奇艺2020校招C++方向笔试题 总结

    错了5,6个,主要集中在数据库和操作系统上.    C++还需要提高熟练度. 总结 第6题: 折半查找树:根据二分查找构造得到的树,它一定是一个二叉排序树,是一个特殊的二叉排序树.  (接近于平衡二叉 ...

  9. Charles抓包问题

    Charles抓包问题 抓包失败解决方法之一:在proxy下的Recording Setting找到解决方法 找到里面的include 把勾去掉,点击OK,然后就恢复正常可以抓包了.

  10. Java锁机制深入理解

    Java锁机制 背景知识 指令流水线 ​ CPU的基本工作是执行存储的指令序列,即程序.程序的执行过程实际上是不断地取出指令.分析指令.执行指令的过程. ​ 几乎所有的冯•诺伊曼型计算机的CPU,其工 ...