做程序开发的,大都会思考过如何使得自己开发的软件更加适合用户使用。其实只要用心的站在用户的角度多加思考,很多时候就能解决大部分的使用问题。我在这里拿了一个前段时间写的小程序来作为例子来说明,这个例子虽然小,但反映的思考过程却是比较普遍和适用的。
软件开发说明
前段时间有位朋友让我帮忙做个计算彩票AC的小软件。基于偷懒的做法,我本来是准备上网找个共享软件给他,不过找了半天,要么就是计算的数值不对,要么安装复杂无比。想想这个软件也不是很难做,就决定给他顺手写一个算了。首先上网查了一下AC值的定义:
“AC值实际上也称做“数字复杂值”,它是引自国外乐透型彩票分析研究的一个概念,是评估乐透型彩票号码价值的一个重要的参数。在乐透型彩票中,是指任何一组号码中所有两个号码数字的正数差值的总数减去(R-1)的值,其中R为投注号码数。”
举例来说:以下一组数: 02 10 20 31 ,其中R=(4-1) =3,各个值的差为:
10-02 = 8
20-02 =18
31-02 = 29
20-10 = 10
31-10 = 21
31-20 = 11
因此不同差值一共有6组:8 10 11 18 21 29 AC值 = 6 - (4-1) = 3
计算原理明白以后,就开始写程序......(我这里用的是C#+.Net Framework2.0来开发)
第一版(Ver 1.0)的界面:
由于受到之前下载的软件的影响,刚开始的考虑也是用多个输入框来让用户输入数字,然后点击按钮计算AC值。因此我选择了MaskTextBox这个控件,其实这个版本已经可以满足朋友的需求。不过....我那个朋友对于电脑不是很熟悉,看着他看一个数字,然后在键盘上辛苦的找那个数字输入,真的十分不方便。就想能不能不看键盘也能选择数字呢?
于是,改版后的软件出来了。
第二版(Ver 1.1)的界面:
在第二版中,我选择了NumericUpDown这个控件,既可以输入数字,又可以用上下箭头选择数字。这样,朋友就不用先找键盘上的数字,再看屏幕了。
到了这一步,似乎可以结尾了,不过再进一步想一想,这个小程序还是有不尽如人意的地方:
- 用上下箭头来选数字还是太慢,还有没有更快的?
- 一二版的数值组数是固定的,也就是说,我不能随心所欲的计算各种彩票的AC值,因为不用彩票的号码个数是不一样的。
基于以上两个问题的思考,就升级成了第三版的虚拟键盘
第三版(Ver 2.0)的界面:
在这个版本中,使用界面来显示虚拟的按键,点击后,按钮变成别的颜色,如果要取消选择,再点击一次即可。这样一来,输入的速度快了2-3倍(朋友说的^_^)。并且号码的个数限制变成了按钮个数的限制,目前的这个虚拟键盘已经可以满足国内绝大部分彩票的AC值的计算。
后话:
其实软件的使用性是相对于用户群体而言的,比如说,如果用户是个键盘录入高手,那可能在第一版的基础上,修改成回车换格,更加适合用户的需求。所以,确定用户群,然后再决定软件的开发方向,是一个好软件的开始。
至于第三版之后的扩展(虚拟键盘按钮数量设置,不同数值的计算......),就等待大家去完善了。