吉林建筑大学城建学院电气信息工程学院课程设计
图3-3 键入感应过程图
这样就实现了每个键与数字(1--23)之间的对应。每次按下一个键时,通过搜索一维数组函数 查找出对应的键并把其加1后对应的数字连接到一个case结构,然后执行对应case结构中的程序,至此就完成了对一个键的感应过程。
3.2.2 后面板设计图
图3-4 后面板设计图
3.2.3 运算量的初始变化
在运行程序之前,首先对需要用到的变量进行初始化,如图3-5所示:
第6页 共18页
吉林建筑大学城建学院电气信息工程学院课程设计
图3-5 运算量的初始化图
在没有键按下的情况下,数值显示控件显示的是0。从上到下的寄存器功能依次为:最上面的用来存储display中的数据,第二个用来存放四则运算的符号,第三个用来前一次运算后输出的数值,最底下的用来给出控制变量。
3.3 操作设置
3.3.1 数字的输入
由于第一个输入和第二个输入所存放的地方不同(第一个存于num1,第二个存于num2→mun3再清空num2),所以有必要对此分开处理。创建2分支(真、假)的case
结构。用change控制分支的选择:在处创建局部变量并转换为读入。由于
数字的键入是数据输入,change3用来保证backspace键仅对输入的数据有效,故应设置
。
分支结构的设计:由于初始化中布尔量改变设置都为“F”,则若change为假,表示数字为第一个输入,将得到的数据送给result1经处理后由result显示,同时送入num1用于即将的运算。
考虑到计算的连续性,即:当前一次计算结束后,不需要再次清零即可进行下一次的运算,还需用到change1。由于上一次运算结束后,所得到的结果可能会出现多零现象,所以又必要设置change2状态。
具体的设计如图3-6,图3-7:
第7页 共18页
吉林建筑大学城建学院电气信息工程学院课程设计
图3-6 Change为假时的图
Change为真时,表示数据的第二次输入,具体设计如下:
图3-7 Change为真时的图
3.3.2 数字0的输入
当第一次输入0时,与输入数字1-9的情况相同,现在就零输入时的多零问题进行设计。虽然以多个零开头不影响输出的结果,但考虑到显示形式的正确性,只在小数点前显示一个零。当数据输入后,通过连接字符与00比较,若不等,则将数据直接输出如图3-8所示。
第8页 共18页
吉林建筑大学城建学院电气信息工程学院课程设计
图3-8 输入不是00时图
当数据输入后,通过连接字符与00比较,若相等,则直接输出0,如图3-9所示。
图3-9 输入是00时图
3.3.3 小数点的输入
在小数点的输入时,最多只能显示出一个。若直接点击小数点,则以“0.”输出。若之前已输入数据,此时再输入小数点首先利用如图3-10所示程序:
图3-10 判断小数点的有无图
判断已输入的数据中是否含有小数点,若不含有,则执行程序“真”,如图3-11所示;
第9页 共18页
吉林建筑大学城建学院电气信息工程学院课程设计
图3-11 输入不含小数点时图
若已输入的数据中含有小数点,则执行程序“假”,如图3-12所示。
图3-12 输入含小数点图
3.3.4 “+/-”键的设计
首先进行扫描字符串,将字符串数据转换为数值数据,经过取负数后再转换为字符串形式输出。如图3-13所示,其中的顺序结构为去末尾零和去无关小数点的操作。
图3-13 去0和小数点设计图
第10页 共18页