HVML / PurC

The prime HVML interpreter for C Language.
GNU Lesser General Public License v3.0
1.05k stars 54 forks source link

产品需求文档-任意进度计算器 #73

Closed yongkangl closed 9 months ago

yongkangl commented 9 months ago

任意精度计算器产品需求文档

本产品“任意精度计算器”的设计目标:

为了体现HVML本身的特点,本产品的设计宗旨如下:

设计需求

为了达到基本的实用性,本计算器需必须要实现的功能:

本产品的界面应包含以下几个功能区块:

按照惯例,最终结果显示区应在界面的最上方,下方紧接着输入区。状态区可以处于最下方,亦可放置在显示区与输入区之间。

本产品的名称可以显示在程序的标题栏等地方,要求能够明显的被看到,但是总体显示尺寸不得大于某个功能区块的大小,以防喧宾夺主。

其他空白部位可以放置一些背景或者文字,要求实现此种放置的代码不能够太复杂以免影响代码阅读。

overall

显示区

因为是任意精度计算器,需要一个进度条用来表示当前显示的位置。下方有一个显示框用来显示数字。显示字体要求较大 (18pt以上)。

display

当显示结果未超出显示范围时,进度条为锁定状态,无法使用鼠标或者热键进行操作。 当显示结果超出显示范围时,进度条需要激活。进度条可以使用鼠标进行拖动,或者使用进度条默认绑定的热键进行操作。通过操作进度条,能够使用户看到结果所有的片段,不得有死区。

输入区

输入区主要为按钮,包含数字键,运算键和功能键。

数字键和小数点的排列要求与小键盘排列基本相似;且数字键和加减乘除回车要与小键盘的按键进行热键绑定,以方便输入数字。

按下任意数字键和符号键进入输入过程,结果显示在显示区。 按下运算键,则当前运算被设置为按键代表的运算。如当前已有在记录的运算,则将当前缓存(历史)中的数据现有的运算操作进行运算并把结果显示在显示区,以替代之前的数字。同时将被取代的数字和运算写入历史。 按下回车则以当前记录的运算操作进行运算;如无运算符则设置 加法 为当前运算操作。

功能键-复制:将当前选中的数字以字符串的形式复制到剪贴板中。 功能键-黏贴:试图将粘贴板内容以数字的形式读取进来。

状态区

status

状态区主要是数字和运算操作的历史记录。右边有一个进度条可供翻页,当历史记录较多时。

单击状态条的某个条目,会将选中的数字覆盖当前记录的数字,选中运算操作历史时无动作。当前显示区的数字被替换时,当前显示区的数字需要被记录为历史记录,处在最新的状态,可以影响进度条长短但是当前状态去显示不得翻页。