最近参加了UPA的世界可用性日的活动。上海这边有若干个主题都是讲地铁。但是讲的内容都不甚对我胃口。其实我很久以前就对上海地铁一肚子火,但本来懒懒不想写,现在看到别人讨论了,又讨论不到点子上【比如淘宝的小麦写的《
上海地铁的自动贩卖机》(标题有误啊,贩卖机!=售票机)和
上海地铁自动售票机(续)】,就忍不住要插嘴。
小麦分析了一些售票机交互上的问题,但是我认为
首要问题并不在于交互流程上,而是在于对用户的认识上。
显然,用户至少可分为截然不同的两大类:
一种是需要寻找目的站点和票价信息的。
一种是不需要的。如每天上下班的白领。
对于上班族来说,本来就是赶时间,他所需要的就是
扔钱拿票走人。对于这些人来说,地铁售票机倒是真的应该简单到自动贩卖机一样。
这两类用户的需求天差地别,想要用一种地铁售票机包打天下,那当然是搞不好的了。结果就是经常看到这样的情形:售票机前排起长队,后面的人不耐烦,前面的人手忙脚乱。
不熟悉系统的新手在机器前要浪费太多时间,赶时间的人则因为排队也被浪费时间,地铁工作人员时不时要来帮忙。结果是自动售票机完全没有达到方便快速以及减轻地铁工作人员工作压力的设计目标,大家的效率反而都下降了。
如果了解用户其实有两大类,就可以做出针对性的设计和部署。
比如,购票排队现象主要出现在上下班高峰。要解决这个问题,实际上很简单,就是将惜时如金的白领们分流到专门针对他们设计的售票机上。
这种售票机就是直接投入硬币或纸币(为效率起见只收1元硬币和20元以下纸币),选择票价和数量,然后吐票和找零。在步骤上还可优化,比如通常上班族都是个人,只会买1张票,所以选择数量的步骤其实可以化简。
小麦的第一篇其实也发现了许多人习惯先投钱这个行为,但是推理过于大条,有欠严谨。自动售票机的问题并不是如小麦认为的,源自于模仿人工售票先问地点再问几张——实际上许多人到人工售票窗口也是直接说3元一张的——问题关键在于许多人根本不需要问站点和票价——反过来说,恰恰是没有如实模仿人工售票在特定情况下的行为。
(“许多人”到底是多少人?我们很容易定性分析得出早晚高峰时的主力人群是根本不需要问票价的。但是也要考虑这类人大多数都会使用交通卡而无需购票,那么到底购票人群中直接购票者占多大比例?这个需要有数据来定量分析。)
或许设计者认为现有的售票机能同时满足两类人——现在常见的自动售票机是屏幕左侧下方选线路,屏幕右侧可以直接选金额——但是这种设计实际上是错误的。
为了同时兼容两种模式(选站模式和选价模式),选价模式就无法让用户先投币(否则会造成交互的混乱)。而且选站模式的操作复杂度和一次操作的时间花费远超过选价模式,将两者放在一个机器上,必定导致采用选价模式的用户会因为排队等候采用选站模式的用户而浪费大量时间。
除非有数据证明,购票者绝大多数是采用先选站模式的,现在的设计才是合理的。否则就应该在选站模式的自动售票机之外,单独设计适用于直接购买特定面值票的快速出票机。
以下是一个想象中的快速出票机的简单示意图:
------------------------------------
| | [中文] | [lang] 表示语言选择按键
| 信息屏 | [English] |
| | |
|----------------------------------|
| [¥3] [¥4] [¥5] | (-) 代表投币口
| [¥6] [¥7] (-) ==== | ==== 代表纸币口
| |
| [-] ¥M×N [+] [ OK ] |
| |
| {_______} | {_______} 代表出票及找零口
| |
------------------------------------
|| ||
|| ||
|| ||
|| ||
== ==
信息屏用来显示一些提示信息,比如“请投入硬币或放入纸币”、“请选择票价”、“2张4元,找零2元”之类的。
信息屏右侧是语言选择按钮。
信息屏下方,[¥M] 是一组票价选择按键。当前选中的那个面值的按键以高亮显示。
下面的 [-] ¥M×N [+] 中间是数字显示,表示当前选择购买M面值的票N张,左右按键用于控制数量N。
右手侧是投币口和纸币口。
然后 [ OK ] 是确认按键,确认按键下方则是出票和找零口(一起出来比较节约时间)。
交互实例:
投入4个一元硬币,按[OK],获得4元面值票。
投入1张五元纸币,按[OK],获得5元面值票。
投入1张五元纸币,按[¥4],按[OK],获得4元面值票和1元找零。
投入1张十元纸币,按[OK],获得7元面值票(假设7元为最大面值)和3元找零。
投入1张十元纸币,按[¥5]两次(或按[¥5]再按[+]),按[OK],获得5元面值票2张。
投入1张十元纸币,按[¥3]三次(或按[¥3]再按[+]两次),按[OK],获得3元面值票3张和1元找零。
具体交互规则如下:
1. 初始时[¥M]一律处于未被选中状态,¥M×N显示¥0×0。信息屏显示:“请投入硬币或放入纸币。本机只接受1元硬币和20元以下(含20元)纸币。”
2. 用户放入钱,但是不足最低票价时,信息屏显示:“已放入m元,请继续投币。”
3. m大于等于最低票价而小于等于最高票价时,自动选中对应m的[¥M],大于最高票价但小于2倍最高票价时,自动选中最高票价对应的[¥M]。¥M×N显示为¥M×1。信息屏显示:“1张M元?按[OK]确认出票,按[¥面值]选择其他面值。”(在正好等于最低面值时,不必显示“按[¥面值]选择其他面值”,因为没得选。)
4. m大于等于最高票价两倍时,[¥M]一律处于未被选中状态,¥M×N显示¥0×0。信息屏显示:“请按[¥ ]选择面值。”
5. 用户按某个[¥M]后,即选中[¥M],¥M×N显示¥M×1。按[+]和[-]控制N增减,连续按[¥M]等同按[+]。信息屏显示:“N张M元?按[OK]确认出票,按[+][-]修改数量,按[¥面值]选择其他面值。”(最多只够买1张票时,不必显示“按[+][-]修改数量”。)
6. 用户按[OK]后,信息屏显示:“N张M元,找零X元。请取票。”
7. 用户取走票和零头,1秒以后恢复到初始状态。
8. 如用户执行不合理操作时(比如没有选面值,或者所选面值超出已放入的金额,等等),信息屏给出一定提示。
根据2/8法则,解决了高峰时上班族的购票问题,其实就基本解决了问题。而且成本方面,这样的机器根本用不到华而不实的触摸屏之类的设备,信息屏也只要单色即可。造价非常低廉。
下篇将讨论如何满足另一类人的需求,他们需要寻找目的地站点和票价信息。
分享到:
相关推荐
本工程设计是基于FPGA设计一个地铁自动售票系统。近年来,集成电路技术的迅猛发展,特别是可编程逻辑器件的高速发展,电子设计自动化EDA技术成为电子设计工程师的新宠。
广州地铁一二号线自动售票机模拟程序
基于Java的自动售票机系统的设计与实现
运用VHDL语言实现自动售票的功能,设有找零等基本功能。
本题内容为:用C语言编写一个模拟广州市地铁一号线某车站自动售票机售单程票的过程的程序。 要求按“选到达站”→“投币“→“出票”的过程准确无误地完成一次购票操作。
地铁自动售票机计算当前站和目的站的站数,计算任意两站之间的经历了多少站
VHDL 地铁自动售票系统 等待状态 自检状态 详细注释 状态机编写
Python实现模拟电影院自动售票机系统,原创源码。 Python实现模拟电影院自动售票机系统,原创源码。
数字电路课程设计(自动售票机) 课程设计
使用 verilog 实现地铁售票
地铁自动售票机系统 题目描述:地铁是当今城市较为流行的一种铁路运输的形式,地铁能避免城市地面拥挤, 充分利用空间,具有运量大、准时、正点率较其他公交高、速度快等优点。 请设计一个简易的地铁自动售票...
基于QUARTUS II 的自动售票机原理图 数电课程设计 亲身做过 保证能够实现
基于VHDL语言的地铁自动售票系统设计与实现.pdf
本资源是用Quartus||原理图输入实现电子自动售票机功能,可以选择不同价格的票,选择票数,可以投币
基于FPGA设计地铁自动售票系统基于FPGA设计地铁自动售票系统基于FPGA设计地铁自动售票系统基于FPGA设计地铁自动售票系统
verilog地铁自助售票机.zip,完整代码,包括RTL、Testbench、Tcl和makefile脚本
课程设计自动售票机的原仿真图,multisim下的仿真图
数字电子技术课程设计,关于自动售票机的设计要求原理及过程,心得体会等
bdf格式文件,1. 售卖的票共有3种,每种的单价用1个LED显示(假设面额分别为9元、8元、5元); 2. 用3个按键分别代表这3...当投入的钱达到或者超过所需的金额时,用1个绿灯亮来表示,同时用LED显示应找回给用户的钱数额
1.售卖的票共有3种(自拟票价,比如1元、2元、5元), 用3个按键分别代表这3种面额的票,按下按键就表示选中该种票,同时用一个数码管显示所选中的票价。...设置一个清零按钮,用于清楚上一次售票的显示,高电平清零。