资源描述
河 北 工 程 大 学
《虚拟仪器设计》课程设计汇报
课 题:计算器模拟
姓 名: 需要程序能够联络我
学 号:
班 级: 测控三班
完成日期: 年 6月19日 目 录
一、设计思绪……………………………………………………………………2
二、 实现过程……………………………………………………………………2
1、 面板键入感应…………………………………………………………2
2、 运算变量初始化……………………………………………………2
3、 无操作时默认输出…………………………………………………3
4、 数字键入1-9输入…………………………………………………3
5、 数字0输入…………………………………………………………4
6、 小数点键入……………………………………………………………5
7、 结果去零操作……………………………………………………………5
8、“+/-”键设计…………………………………………………………7
9、“+、-、*、/”四则运算…………………………………………………7
10、 等号键…………………………………………………………………8
11、 开方运算………………………………………………………………9
12、 取倒数倒数运算………………………………………………………9
13、退格键CE设计 ……………………………………………………10
14、 清零键C………………………………………………………………11
15、 停止键OFF……………………………………………………………12
三、整体程序……………………………………………………………………12
四、 前面板设计排版…………………………………………………………12
五、 while循环中寄存器能……………………………………………………13
六、 此计算器能够实现功效…………………………………………………13
一、 设计思绪
完成标准型计算器通常功效。
输入第一个数,进行存放并显示 输入运算类型并存放 输入第二个数,存放并显示 按“=”或则按其它运算符号“+、-、*、/”进行连续运算,最终显示运算结果。
二、 具体实现过程
1、 面板键入感应
在前面板上建立22个布尔量,其中包含0--9十个数字键,1个小数点键,4个“+、-、*、/”运算键,1个等号键,1个开方键,1个符号转换键,1个倒数键,1个清零键,1个退格键,1个退出键。以下图所表示:
2、 运算变量初始化
在运行程序之前,首先对需要用到变量进行初始化,图所表示
3、 无操作时默认输出
当键盘上键没有任何一个按下时,系统仅实施次序结构第一帧,系统处于初始化状态输出。
4、 数字1--9输入
以数字“1”为例,当按下数字“1”后,布尔量为值改变,进入时间结构结构,将1输出到显示中,布尔量再次改变时。(图1.4.1)若再次输入1,为避免出现01这么字符串,先判定之前显示数据是否为0,若为0,则直接输出1,(图1.4.2)若不为0,则将这两次输入数据经过连接字符串连接到一起,在显示中输出。数字2到9也是一样道理。(图1.4.3)
(图1.4.1)
(图1.4.2) (图1.4.3)
5、 数字0输入
当第一次输入0时,和上述真情况相同,现在就零输入时多零问题进行设计。即使以多个零开头不影响输出结果,但考虑到显示形式正确性,只在小数点前显示一个零。
当数据输入后,经过连接字符和00比较,若不等,则将数据直接输出(图1.5.1)。若相等,则直接输出0(图1.5.2)。
(图1.5.1) (图1.5.2)
6、 小数点输入
在小数点输入时,最多只能显示出一个。若直接点击小数点,则以“0.”输出(图1.6.1)。若之前已输入数据,此时再输入小数点首先利用判定已输入数据中是否含有小数点,若不含有,则后输出T,实施程序“真”(图1.6.2);若含有小数点,则输出F,实施程序“假”(图1.6.3)
(图1.6.1)
(图1.6.2)
(图1.6.3)
7、 结果去零操作
在进行“+、-、*、/”运算及取负,取百分数,去倒数,开放运算以后程序默认为以保留6位小数形式输出。而为了显示结果简便,将末位不影响结果零及小数点进行省略。
利用层叠式次序结构,首先将得出结果经过N-1位偏移后和零进行比较,若相等,则进行去零操作,利用while循环结构,直至末位数字不为零,循环结束(图1.7.1------上图表示末位为零,下图表示末位不为零)
(图1.7.1)
在进行去零操作以后,进行层叠式次序结构第二层,对无关小数点进行清除。
(图1.7.2------上图表示末位为小数点,下图表示末位不是小数点)
(图1.7.2)
8、“+/-”键设计
首优异行扫描字符串,将字符串数据转换为数值数据,经过取负数后再转换为字符串形式输出。以下图所表示
其中次序结构为去末尾零和去无关小数点操作。
9、“+、-、*、/”四则运算
以加法为例,当簇中输出数据表示进行加法运算时,程序进入五层层叠式次序结构,首先将字符串进行扫描,转换为数值变量(图1.9.1),以后,对之前数据进行运算,以确保连续运算时得到正确结果:当第一次输入时,默认进行空条件下程序(图1.9.2),若以前已经有运算,以加法为例,先将之前两个数进行相加运算,并进行去零操作,以后再将此次运算符号送入“运算符号”局部变量,方便于进行下次运算(图1.9.3)。
(图1.9.1)
(图1.9.2)
(图1.9.3)
10、等号键
实现最终运算结果,将结果进行去零操作后输出到“显示”中,同时将代表运算符号移位寄存器置为空字符串。以加法为例。
11、开方运算
将字符串转换为数值后进行开放运算,再转换为字符串输出,并进行去零操作。(次序结构后两层为去零操作)
12、 取倒数运算
原理和上述开方运算相同。(次序结构后两层为去零操作)
13、 退格键CE设计
在点击退格键时,要实现从末位开始依次退格,直至输出为0。
首先,将整数部分和小数部分进行分离,利用实现此功效。连接方法图1.13.1
(图1.13.1)
分离后,将小数部分字符串长度和0进行比较,若大于0,则进入到条件结构“真”,将字符串长度减1后和整数部分连接,得到新显示输出。(图1.13.2)
(图1.13.2)
若原字符串只有整数部分或小数部分已经过退格键清除,则进入到条件结构“假”。、
若整数部分字符串长度大于1,则进入到子条件结构“假”,将整数字符串长度减一后输出(图1.13.3)。
(图1.13.3)
若整数部分长度小于1,即小于等于1时,则进入到子条件结构“真”,直接输出0.(图1.13.4)
(图1.13.4)
14、 清零键C
将程序中全部用到变量均进行复位,达成清零复位目标。
15、 停止键OFF
程序结束,将T输入到while循环停止键上。
三、 整体程序
四、 前面板设计排版
五、 while循环中寄存器功效
从上到下寄存器功效依次为:最上面用来存放“显示”数据,第二个用来前一次运算后输出数值,第三个用来存放四则运算符号,最底下用来给出控制变量。
六、 此计算器能够实现功效
经过调试,此计算器能够实现基础四则运算,开放,取负数,取倒数运算。同时,它还能够实现四则运算连续运算,并输出正确结果;对结果进行报错(对0取倒数,报错Inf;对负数开放,报错NaN);对结果进行修正(第一位为零或多零,多小数点,结果末位不影响结论零)。
展开阅读全文