流程图:

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. 【easyui】treegrid逐级加载源码

    当初看这源码的目的是: 1.treegrid是怎么实现逐级加载树结构的. 解: 见demo,主要就是点击节点的时候会请求后台. 2.treegrid加载后,第二次展开节点会不会再次请求后台. 解:第二 ...

  2. Linux查看系统硬件信息命令

    Linux查看系统硬件信息命令 查看磁盘类型(是否SSD) cat /sys/block/sda/queue/rotational code:0 SSD盘 code:1 SATA盘 查看物理CPU个数 ...

  3. ASP.NET Identity系列教程-4【Identity高级技术】

    https://www.cnblogs.com/r01cn/p/5194257.html 15 ASP.NET Identity高级技术 In this chapter, I finish my de ...

  4. laravel 解决 sql mode only_full_group_by

    this is incompatible with sql_mode=only_full_group_by 先贴报错是这样的哦,sql 中使用到了 group by 然后这是mysql-5.7以上版本 ...

  5. IO流学习之字符流(一)

    IO流(Input/Output) 简介: 流是一种抽象概念,它代表了数据的无结构化传递.按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列.从流中取得数据的操作称为提取操作,而向流中添加数 ...

  6. PAT (Basic Level) Practice (中文)1041 考试座位号 (15 分)

    每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考 ...

  7. ubuntu18.04图形模式切换到命令模式

    命令模式 :Ctrl+Alt+F5 图形模式:Ctrl+Alt+F1

  8. 0219 springmvc-拦截器和响应增强

    拦截器 拦截器分同步拦截器和异步拦截器: HandlerInterceptor 方法和执行时机 可以看DispathcerServlet的原来确定它的三个方法的执行时机: AsynHandlerInt ...

  9. knitr::kable实现结构化展示数据

    一般做检验,直接会summary结果,通常情况下,会看到很多很多,口区~ 如何提取有用的信息,然后结构化展示数据呢? kable函数了. 我先给出学长给我的一部分,回头整理好了再补充 culture_ ...

  10. [Python]find_all函数 2020.2.7

    .find_all(name,attrs,recursive,string,**kwargs) name:对标签名称的检索字符串attrs:对标签属性值的检索字符串,可标注属性检索recursive: ...