测试用例设计-计算器
计算器测试用例
⑴测试用例说明名称计算器四则运算的测试用例(2)测试项计算器能够实现数字与数字之间的加(+)、减(・)、乘(*)、除(/), 通过计算器的运行,方便实现较大数据在短时间内的处理,为用户大大的减少了运算时间,提高了运算的效率以及运算的精确值。
⑶输入说明输入数据均为有效实数(4)输出说明a・输出值范围:108到10・8b・精确值:小数点后两位(.00)c・计算结果将会在求算按钮点击后1秒内给出,如果屏幕显示乱码“表示计算结果超出了运算范围或者运算不符合运算要求!⑸环境a・硬件:长度:60cm宽度:30cm高度:15cm内存:4MB存储空间:1024KBb・软件:C语言运算代码⑹特殊的规程要求使用计算器之前确保电池的电量,如需对计算器原有的记忆全部删除,可以在计算器背面的原孔处点击,实现计算器的出厂还原!(7)用例间的依赖关系:无基于等价类的测试用例输入条件加法运算有效等价类1+1=2 (1)-1+ (-1) =-2 (2)-1-1=-2 (6)10-9=1 (7)2*2=4 (10)-1* (-2) =2 (11)-1/1=-1(14)10/5=2(15)无效等价类・1+ (-1) =-3 (3) 1+2=5 (4) 10A8+10A8=输出错误(5) 10A (-8) 减法运算乘法运算除法运算1-9=-10 (8) -10A8=输出错误(9) 2*10=19 (12) 10A8*10A8=输出错误(13)・1/10=1(16)10/0=输出错误(17)基于边界值分析法的测试用例编号35678输入数据2+110A8+l2-110A (・8)测试的边界条件和为正数和为正数差为正数差为负数积为负数积为正数商为负数商为正数预期结果10A8+l10A-410A10-110A(-10)(・8)实际输出结果3输出无效1输出无效-4输出无效备注(预期结果与实际结果比较)相符不符相符不符相符不符相符不符-1-12* (-2)10A8*10A22/ (-2)10A (-8) /10A2输出无效。
个税计算器测试用例
内存:8G
有
网络环境:互联网独立的12兆网络 编制人 执行人 功能特性 测试目的 预置条件 参考信息 用例编号 用例说明 输入数据 特殊规程说明 预期结果
任强 任强
编制时间 执行时间
自动检测用户这侧信息的合法性、有理性、安全性等 检测用户注册功能
1
不填写收入金 额,点击开始 计算
弹出提示对话框,提示收入 金额不能为空
能输入不同的起征额
收入金额正确
计算器并未报错,输出结 果为NaN
1
输入类型错 误,输出结 果错误
能正确选择
能正确输出结果
不能输入
所得税-15
税后收入3015
2
②
③
2
点击重置按钮
输入项清空
3
在起征额处输 入不同的金额
0, 100,300,10000
能输入
4
填写正确的输 入金额
10000
收入金额正确
5
输入错误的数 据类型
a,b,c
弹出提示对话框,输入不正 确,请重新输入
6
选择收入类型
能正确选择
7
填写正确的各 项输入,能根 据起征额的不 同输出不同的 结果 在计算结果中 输入数字 收入金额 各项社会保险 费
10000
能输出正确结果
8
不能输入
9
4500 1500
所得税0
税后收入3000
注:黄色部分的测试用例为未通过。
1.0版
钮是 2.40GHz
内存:8G
有网络接口卡 ,硬
2015年4月7日 2015年4月7日
性等
无 测试结果 缺陷编号 备注
此项不能为空
输入项清空
数据结构课程设计-计算器
数据结构课程设计-计算器数据结构课程设计计算器在计算机科学的学习中,数据结构是一门重要的基础课程。
通过这门课程的学习,我们能够深入理解和掌握如何有效地组织和管理数据,以提高程序的运行效率和性能。
本次课程设计的任务是开发一个简单的计算器程序,通过运用所学的数据结构知识,实现基本的算术运算功能。
一、需求分析首先,我们需要明确计算器程序的功能需求。
这个计算器应该能够支持常见的四则运算,即加法、减法、乘法和除法。
用户可以通过输入表达式,例如“2 +3”、“5 2”、“3 4”、“8 /2”等,程序能够正确计算并输出结果。
此外,为了提高用户体验,计算器还应该能够处理错误输入,例如输入的表达式不符合语法规则或者除数为 0 等情况,并给出相应的错误提示信息。
二、数据结构选择为了实现上述功能,我们需要选择合适的数据结构来存储和处理输入的表达式。
在这个计算器程序中,我们可以使用栈这种数据结构。
栈是一种后进先出(Last In First Out,LIFO)的数据结构,非常适合处理表达式的计算。
我们可以创建两个栈,一个用于存储操作数,另一个用于存储操作符。
当用户输入一个表达式时,我们按照从左到右的顺序逐个字符进行处理。
如果是数字,则将其转换为整数并压入操作数栈;如果是操作符,则将其压入操作符栈。
在计算过程中,我们从操作符栈中取出操作符,从操作数栈中取出相应数量的操作数进行计算,将计算结果压回操作数栈。
三、算法设计1、表达式解析算法从左到右扫描表达式。
如果遇到数字,将其作为一个整数提取出来,并压入操作数栈。
如果遇到操作符(+、、、/),则将其压入操作符栈。
如果遇到左括号“(”,则将其压入操作符栈。
如果遇到右括号“)”,则从操作符栈中弹出操作符,从操作数栈中弹出操作数,进行计算,直到遇到左括号为止。
2、计算算法当操作符栈不为空时,从操作符栈中弹出一个操作符。
根据操作符的类型,从操作数栈中弹出相应数量的操作数。
进行计算,并将结果压回操作数栈。
单元测试案例
单元测试案例:计算器背景计算器是一个常见的应用程序,用于执行各种数学运算。
为了确保计算器的正确性和稳定性,我们需要进行单元测试来验证每个功能模块的正确性。
过程我们将使用Python编写一个简单的计算器,并对其进行单元测试。
计算器具有以下功能: - 加法 - 减法 - 乘法 - 除法首先,我们创建一个名为calculator.py的文件,并定义一个名为Calculator的类。
在这个类中,我们实现了四个基本运算方法:add()、subtract()、multiply()和divide()。
class Calculator:def add(self, a, b):return a + bdef subtract(self, a, b):return a - bdef multiply(self, a, b):return a * bdef divide(self, a, b):if b == 0:raise ValueError("除数不能为零")return a / b接下来,我们使用Python内置的unittest模块编写单元测试。
在同一目录下创建一个名为test_calculator.py的文件,并导入unittest模块和我们要测试的Calculator类。
import unittestfrom calculator import Calculatorclass TestCalculator(unittest.TestCase):def setUp(self):self.calculator = Calculator()def test_add(self):result = self.calculator.add(2, 3)self.assertEqual(result, 5)def test_subtract(self):result = self.calculator.subtract(5, 3)self.assertEqual(result, 2)def test_multiply(self):result = self.calculator.multiply(2, 3)self.assertEqual(result, 6)def test_divide(self):result = self.calculator.divide(6, 3)self.assertEqual(result, 2)with self.assertRaises(ValueError):self.calculator.divide(6, 0)if __name__ == "__main__":unittest.main()在单元测试中,我们使用setUp()方法来创建一个Calculator对象,这样每个测试方法都可以共享同一个实例。
简述判定表法设计用例步骤
简述判定表法设计用例步骤判定表法是一种用于设计测试用例的有效方法,它可以帮助测试人员针对复杂的业务规则设计出全面的测试用例。
本文将介绍判定表法的基本步骤,以及如何应用该方法来设计测试用例。
下面是本店铺为大家精心编写的4篇《简述判定表法设计用例步骤》,供大家借鉴与参考,希望对大家有所帮助。
《简述判定表法设计用例步骤》篇1一、判定表法的基本步骤判定表法是一种用于设计测试用例的方法,它通常分为以下几个步骤:1. 识别条件和动作测试人员需要先了解业务规则,识别出所有可能的条件和动作。
条件是指影响业务规则执行的因素,动作是指在条件满足时需要执行的操作。
2. 生成判定表根据识别出的条件和动作,测试人员可以生成一个判定表。
判定表通常由四个部分组成,即条件桩、条件项、动作桩和动作项。
条件桩列出决定一组条件的对象,条件项列出各种可能的条件组合,动作桩列出所有的操作,动作项列出在对应的条件组合下的动作。
3. 简化判定表在生成判定表后,测试人员需要对其进行简化。
如果表中有两条或多条规则具有相同的动作,并且其条件项之间存在极为相似的关系,我们就可以将其合并。
4. 转化为测试用例每一条规则都可以转化为测试用例。
测试人员可以根据判定表中的规则,设计出对应的测试用例,以覆盖所有的业务规则。
二、应用判定表法设计用例的案例以一个交易所的手续费计算规则为例,根据交易金额和每股价格和股数的关系,手续费分为三种情况:1. 如果交易金额少于 1000 元,则基本手续费为交易金额的8.4%;2. 如果交易总金额在 1000 元~10000 元之间,则基本手续费为交易金额的 5%,再加 34 元;3. 如果金额超过 10000 元,则基本手续费为交易金额的 4% 加上 134 元。
当每股售价低于 14 元时,附加手续费为基本手续费的 5%,除非买进、卖出的股数不是 100 的倍数,在这种情况下附加手续费的9%。
当每股售价在 14 元到 25 元之间时,附加手续费为基本手续费的某个百分比。
手机MTK测试用例
模块测试项测试点用例级别预置条件计算器界面界面测试1在待机界面,通过菜单,进入计算器界面L1手机插有SIM卡界面测试2通过快捷功能,进入计算器界面L2手机插有SIM卡界面测试3通过指定功能键,进入计算器界面L2手机插有SIM卡界面测试4在计算器界面,按返回键L1手机插有SIM卡界面测试5在计算器界面,按END键L1手机插有SIM卡界面测试6在计算器界面,有触摸笔点击返回L1手机插有SIM卡界面测试7在飞航模式下,通过菜单进入计算器界面L2手机插有SIM卡界面测试8在不插卡的情况下,通过菜单进入计算器界面L2手机不插SIM卡界面测试9在飞航模式下,通过指定功能键,进入计算器界面L2手机插有SIM卡界面测试10在不插卡的情况下,通过指定功能键,进入计算器界面L2手机不插SIM卡功能功能测试1输入两个计算数字后,左键的计算功能L1手机不插SIM卡功能测试2输入数字后,右键的清除功能L1手机不插SIM卡功能测试3MR的输入框内清零功能L1手机插有SIM卡功能测试4累加时,MR的使输入框显示结果的功能L1手机插有SIM卡功能测试5MC的累计结果清零功能L1手机插有SIM卡功能测试6MC的等于功能L1手机插有SIM卡功能测试7两个最大整数计算和功能L2手机插有SIM卡功能测试8最大整数与零相加L2手机插有SIM卡功能测试9最大整数与整数相加L2手机插有SIM卡功能测试10最大整数与小数相加L2手机插有SIM卡功能测试11整数与小数相加L1手机插有SIM卡功能测试12整数与零相加L1手机插有SIM卡功能测试13小数与小数相加L1手机插有SIM卡功能测试14小数与零相加L1手机插有SIM卡功能测试15两个最大整数计算差功能L2手机插有SIM卡功能测试16最大整数与零相减L2手机插有SIM卡功能测试17最大整数与小数相减L2手机插有SIM卡功能测试18整数与小数相减L1手机插有SIM卡功能测试19整数与零相减L1手机插有SIM卡功能测试20零与零相减L1手机插有SIM卡功能测试21小数与小数相减L1手机插有SIM卡功能测试22小数与零相减L1手机插有SIM卡功能测试23零与最大整数相减L2手机插有SIM卡功能测试24小数与最大整数相减L2手机插有SIM卡功能测试25小数与整数相减L1手机插有SIM卡功能测试26零与整数相减L1手机插有SIM卡功能测试27零与小数相减L1手机插有SIM卡功能测试28两个最大整数计算积功能L2手机插有SIM卡功能测试29最大整数与零相乘L2手机插有SIM卡功能测试30最大整数与小数相乘L2手机插有SIM卡功能测试31整数与小数相乘L1手机插有SIM卡功能测试32整数与零相乘L1手机插有SIM卡功能测试33小数与小数相乘L1手机插有SIM卡功能测试34小数与零相乘L1手机插有SIM卡功能测试35两个最大整数计算商功能L2手机插有SIM卡功能测试36最大整数与零相除L2手机插有SIM卡功能测试37最大整数与小数相除L2手机插有SIM卡功能测试38整数与小数相除L1手机插有SIM卡功能测试39整数与零相除L1手机插有SIM卡功能测试40小数与小数相除L1手机插有SIM卡功能测试41小数与零相除L1手机插有SIM卡功能测试42零与最大整数相除L2手机插有SIM卡功能测试43小数与最大整数相除L2手机插有SIM卡功能测试44小数与整数相除L1手机插有SIM卡功能测试45零与整数相除L1手机插有SIM卡功能测试46零与小数相除L1手机插有SIM卡功能测试47M+的累加功能的使用L1手机插有SIM卡功能测试48M-的累减功能的使用L1手机插有SIM卡功能测试49上下键调节加减功能L1手机插有SIM卡功能测试50左右键调节乘除功能L1手机插有SIM卡交叉交叉1在计算器界面,来电,接听L2手机插有SIM卡交叉2在计算器界面,来电,拒接L2手机插有SIM卡交叉3在计算器界面,闹铃响,关闭闹钟L2手机插有SIM卡交叉4在计算器界面,闹铃响,点击睡眠L2手机插有SIM卡交叉5在计算器界面,闹铃响,待铃声响毕L2手机插有SIM卡交叉6在计算器界面,拨插充电器L2手机插有SIM卡交叉7在计算器界面,拨插USB线L2手机插有SIM卡交叉8在计算器界面,备忘录闹铃响,点击确认L2手机插有SIM卡交叉9在计算器界面,备忘录闹铃响,待铃声响毕L2手机插有SIM卡交叉10在计算器界面,低电量提醒L2手机插有SIM卡交叉11在计算器界面,来短消息L2手机插有SIM卡交叉12在计算器界面,接收蓝牙请求L2手机插有SIM卡交叉13在计算器界面,放弃蓝牙请求L2手机插有SIM卡单位换算界面界面测试1在待机界面,通过菜单,进入单位换算界面L1手机插有SIM卡界面测试2通过快捷功能,进入单位换算界面L2手机插有SIM卡界面测试3在单位换算界面,按返回键L1手机插有SIM卡界面测试4在单位换算界面,按END键L2手机插有SIM卡重量界面界面测试1在单位换算界面,进入重量换算界面L1手机插有SIM卡界面测试2在重量换算界面,按返回键L1手机插有SIM卡界面测试3在重量换算界面,按END键L2手机插有SIM卡功能功能测试1公斤转化为磅L1手机插有SIM卡功能测试2磅转化为公斤L1手机插有SIM卡功能测试3公斤转化为盎司L1手机插有SIM卡功能测试4盎司转化为公斤L1手机插有SIM卡功能测试5输入框数字的清除L1手机插有SIM卡功能测试6计算结果与输入框数字的清除L1手机插有SIM卡长度界面手机插有SIM卡界面测试1在单位换算界面,进入长度换算界面L1手机插有SIM卡界面测试2在长度换算界面,按返回键L1手机插有SIM卡界面测试3在长度换算界面,按END键L2手机插有SIM卡功能功能测试1公里转化为英里L1手机插有SIM卡功能测试2英里转化为公里L1手机插有SIM卡功能测试3米转化为码L1手机插有SIM卡功能测试4码转化为米L1手机插有SIM卡功能测试5米转化为英尺L1手机插有SIM卡功能测试6英尺转化为码L1手机插有SIM卡功能测试7厘米转化为英寸L1手机插有SIM卡功能测试8英寸转化为厘米L1手机插有SIM卡功能测试9输入框数字的清除L1手机插有SIM卡功能测试10计算结果与输入框数字的清除L1手机插有SIM卡交叉交叉1在重量/长度转换界面,来电,接听L2手机插有SIM卡交叉2在重量/长度转换界面,来电,拒接L2手机插有SIM卡交叉3在重量/长度转换界面,闹铃响,关闭闹钟L2手机插有SIM卡交叉4在重量/长度转换界面,闹铃响,点击睡眠L2手机插有SIM卡交叉5在重量/长度转换界面,闹铃响,待铃声响毕L2手机插有SIM卡交叉6在重量/长度转换界面,拨插充电器L2手机插有SIM卡交叉7在重量/长度转换界面,拨插USB线L2手机插有SIM卡交叉8在重量/长度转换界面,备忘录闹铃响,点击确认L2手机插有SIM卡交叉9在重量/长度转换界面,备忘录闹铃响,待铃声响毕L2手机插有SIM卡交叉10在重量/长度转换界面,低电量提醒L2手机插有SIM卡交叉11在重量/长度转换界面,来短消息L2手机插有SIM卡交叉12在重量/长度转换界面,接收蓝牙请求L2手机插有SIM卡交叉13在重量/长度转换界面,放弃蓝牙请求L2手机插有SIM卡汇率换算界面界面测试1在待机界面,通过菜单,进入汇率输入界面level 1手机插有SIM卡界面测试2通过快捷功能,进入汇率输入界面level 2手机插有SIM卡界面测试3在汇率输入界面,按返回键level 1手机插有SIM卡界面测试4在汇率输入界面,按END键level 2手机插有SIM卡界面测试5进入货币转化界面level 1手机插有SIM卡界面测试6在货币转化界面,按返回键level 1手机插有SIM卡界面测试7在货币转化界面,按END键level 2手机插有SIM卡界面测试8在货币转化运算完成后,按END键level 2手机插有SIM卡功能功能测试1汇率数值的清除功能level 1手机插有SIM卡功能测试2(汇率:1),本国转化为外国level 1手机插有SIM卡功能测试3(1:汇率),本国转化为外国level 1手机插有SIM卡功能测试4本国数值的清除功能level 1手机插有SIM卡功能测试5将输入框和计算结果清空level 1手机插有SIM卡交叉交叉1在货币转化界面,来电,接听level 2手机插有SIM卡交叉2在货币转化界面,来电,拒接level 2手机插有SIM卡交叉3在货币转化界面,闹铃响,关闭闹钟level 2手机插有SIM卡交叉4在货币转化界面,闹铃响,点击睡眠level 2手机插有SIM卡交叉5在货币转化界面,闹铃响,待铃声响毕level 2手机插有SIM卡交叉6在货币转化界面,拨插充电器level 2手机插有SIM卡交叉7在货币转化界面,拨插USB线level 2手机插有SIM卡交叉8在货币转化界面,备忘录闹铃响,点击确认level 2手机插有SIM卡交叉9在货币转化界面,备忘录闹铃响,待铃声响毕level 2手机插有SIM卡交叉10在货币转化界面,低电量提醒level 2手机插有SIM卡交叉11在货币转化界面,来短消息level 2手机插有SIM卡交叉12在货币转化界面,接收蓝牙请求level 2手机插有SIM卡交叉13在货币转化界面,放弃蓝牙请求level 2手机插有SIM卡健康管理界面界面测试1在待机界面,通过菜单,进入健康管理界面L1手机插有SIM卡界面测试2通过快捷功能,进入健康管理界面L2手机插有SIM卡界面测试3通过指定功能键,进入健康管理界面L2手机插有SIM卡界面测试4在健康管理界面,按返回键L1手机插有SIM卡界面测试5在健康管理界面,按END键L2手机插有SIM卡界面测试6进入身体质量指数界面L1手机插有SIM卡界面测试7在身体质量指数界面,按返回键L1手机插有SIM卡界面测试8在身体质量指数界面,按END键L2手机插有SIM卡界面测试9在指数计算结果界面,按返回键L1手机插有SIM卡界面测试10在指数计算结果界面,按END键L2手机插有SIM卡界面测试11进入女性生理周期界面L1手机插有SIM卡界面测试12在女性生理周期输入界面,按返回键L1手机插有SIM卡界面测试13在女性生理周期输入界面,按END键L2手机插有SIM卡界面测试14在女性生理周期判定界面,按返回键L1手机插有SIM卡界面测试15在女性生理周期判定界面,按END键L2手机插有SIM卡界面测试16在受孕结果界面,按确定键L1手机插有SIM卡界面测试17在受孕结果界面,按END键L2手机插有SIM卡身体质量指数功能功能测试1选择男性,输入不符合要求的身高L2手机插有SIM卡功能测试2选择男性,输入不符合要求的体重L2手机插有SIM卡功能测试3选择男性,输入不符合要求的身高和体重L2手机插有SIM卡功能测试4选择女性,输入不符合要求的身高L2手机插有SIM卡功能测试5选择女性,输入不符合要求的身高L2手机插有SIM卡功能测试6选择女性,输入不符合要求的身高L2手机插有SIM卡功能测试7选择男性,输入符合要求的身体与体重(判断结果为胖)L1手机插有SIM卡功能测试8选择男性,输入符合要求的身体与体重(判断结果为瘦)L1手机插有SIM卡功能测试9选择男性,输入符合要求的身体与体重(判断结果为正常)L1手机插有SIM卡功能测试10选择女性,输入符合要求的身体与体重(判断结果为胖)L1手机插有SIM卡功能测试11选择女性,输入符合要求的身体与体重(判断结果为瘦)L1手机插有SIM卡功能测试12选择女性,输入符合要求的身体与体重(判断结果为正常)L1手机插有SIM卡女性生理周期功能功能测试1输入错误的上次生理周期日期(日期大于当前日期)L2手机插有SIM卡功能测试2输入错误的上次生理周期日期(日期前于当前日期100天)L2手机插有SIM卡功能测试3输入错误的平均周期(小于14)L2手机插有SIM卡功能测试4输入错误的平均周期(大于99)L2手机插有SIM卡功能测试5正确输入,进入结果判定界面L1手机插有SIM卡功能测试6在结果判定界面,将光标超出范围L2手机插有SIM卡功能测试7受孕结果判定L1手机插有SIM卡交叉交叉1在身体质量指数界面/女性生理周期输入界面,来电,接听L2手机插有SIM卡交叉2在身体质量指数界面/女性生理周期输入界面,来电,拒接L2手机插有SIM卡交叉3在身体质量指数界面/女性生理周期输入界面,闹铃响,关闭闹钟L2手机插有SIM卡交叉4在身体质量指数界面/女性生理周期输入界面,闹铃响,点击睡眠L2手机插有SIM卡交叉5在身体质量指数界面/女性生理周期输入界面,闹铃响,待铃声响毕L2手机插有SIM卡交叉6在身体质量指数界面/女性生理周期输入界面,拨插充电器L2手机插有SIM卡交叉7在身体质量指数界面/女性生理周期输入界面,拨插USB线L2手机插有SIM卡交叉8在身体质量指数界面/女性生理周期输入界面,备忘录闹铃响,点击确认L2手机插有SIM卡交叉9在身体质量指数界面/女性生理周期输入界面,备忘录闹铃响,待铃声响毕L2手机插有SIM卡交叉10在身体质量指数界面/女性生理周期输入界面,低电量提醒L2手机插有SIM卡交叉11在身体质量指数界面/女性生理周期输入界面,来短消息L2手机插有SIM卡交叉12在身体质量指数界面/女性生理周期输入界面,接收蓝牙请求L2手机插有SIM卡交叉13在身体质量指数界面/女性生理周期输入界面,放弃蓝牙请求L2手机插有SIM卡测试步骤预期输出测试结果1、在待机界面,菜单-附加功能-计算器,观察界面显示情况。
简易计算器实验报告
简易计算器实验报告一、实验目的本次实验的目的是设计并实现一个简易计算器,能够进行基本的四则运算(加、减、乘、除),以及处理括号的优先级运算,提高对程序设计和逻辑思维的理解与应用能力。
二、实验原理1、四则运算的优先级规则在数学运算中,先计算括号内的表达式,然后按照先乘除后加减的顺序进行计算。
乘除法的优先级高于加减法,如果在同一级运算中,按照从左到右的顺序进行。
2、数据结构的选择使用栈(Stack)数据结构来存储操作数和运算符。
栈具有先进后出的特点,非常适合处理表达式中的括号和优先级。
3、算法思路首先,将输入的表达式进行解析,将数字和运算符分别存储到不同的栈中。
然后,根据运算符的优先级进行计算,将计算结果重新压入栈中,直到表达式计算完毕。
三、实验设备及环境1、编程工具:选择了 Python 语言作为主要的编程工具,使用PyCharm 集成开发环境进行代码编写和调试。
2、操作系统:Windows 10 操作系统。
四、实验步骤1、定义数据结构定义两个栈,一个用于存储操作数(operandStack),一个用于存储运算符(operatorStack)。
2、表达式解析遍历输入的表达式字符串,将数字转换为整数并压入操作数栈,将运算符压入运算符栈。
遇到左括号直接压入运算符栈,遇到右括号则进行括号内的运算。
3、运算处理当运算符栈不为空时,取出栈顶的运算符和两个操作数进行计算。
根据运算符的优先级进行相应的运算,将结果压入操作数栈。
4、最终结果当表达式解析完毕后,操作数栈中的唯一元素即为表达式的计算结果。
五、代码实现```pythonclass SimpleCalculator:def __init__(self):selfoperandStack =selfoperatorStack =def calculate(self, expression):for char in expression:if charisdigit():selfoperandStackappend(int(char))elif char in '+/()':if char =='(':selfoperatorStackappend(char)elif char ==')':while selfoperatorStack-1!='(':operator = selfoperatorStackpop()operand2 = selfoperandStackpop()operand1 = selfoperandStackpop()result = selfperformOperation(operand1, operand2, operator)selfoperandStackappend(result)selfoperatorStackpop()else:while selfoperatorStack and selfhasHigherPrecedence(selfoperatorStack-1, char):operator = selfoperatorStackpop()operand2 = selfoperandStackpop()operand1 = selfoperandStackpop()result = selfperformOperation(operand1, operand2, operator)selfoperandStackappend(result)selfoperatorStackappend(char)while selfoperatorStack:operator = selfoperatorStackpop()operand2 = selfoperandStackpop()operand1 = selfoperandStackpop()result = selfperformOperation(operand1, operand2, operator)selfoperandStackappend(result)return selfoperandStackpop()def hasHigherPrecedence(self, op1, op2):if op1 in '/' and op2 in '+':return Trueelif op1 in '+' and op2 in '+':return Falseelif op1 in '/' and op2 in '/':return Falsereturn Falsedef performOperation(self, operand1, operand2, operator):if operator =='+':return operand1 + operand2elif operator =='':return operand1 operand2elif operator =='':return operand1 operand2elif operator =='/':if operand2 == 0:raise ValueError("除数不能为 0")return operand1 / operand2if __name__ =="__main__":calculator = SimpleCalculator()expression ="2 + 3 (4 1) / 2"result = calculatorcalculate(expression)print("计算结果:", result)```六、实验结果与分析1、测试用例及结果输入表达式:"2 + 3 4",计算结果:14输入表达式:"(2 + 3) 4",计算结果:20输入表达式:"5 2 3",计算结果:-1输入表达式:"10 / 2 + 1",计算结果:62、结果分析对于简单的四则运算表达式,计算器能够正确计算出结果。
Python实现简单的四则运算计算器
Python实现简单的四则运算计算器⼀、算法1、算法的主要思想就是将⼀个中缀表达式(Infix expression)转换成便于处理的后缀表达式(Postfix expression),然后借助于栈这个简单的数据结构,计算出表达式的结果。
2、关于如何讲普通的表达式转换成后缀表达式,以及如何处理后缀表达式并计算出结果的具体算法描述不在此叙述了,书上有详细的说明。
⼆、简易计算器使⽤说明使⽤该计算器类的简单⽰例如下:# usagec = Calculator()print('result: {:f}'.formart(c.get_result('1.11+2.22-3.33*4.44/5.55')))# output:result: 0.666000测试案例为了对这个计算器进⾏有效地检验,设计了⼏组测试案例,测试结果如下:Test No.1: (1.11) = 1.110000Test No.2: 1.11+2.22-3.33*4.44/5.55 = 0.666000Test No.3: 1.11+(2.22-3.33)*4.44/5.55 = 0.222000Test No.4: 1.11+(2.22-3.33)*(4.44+5.55)/6.66 = -0.555000Test No.5: 1.11*((2.22-3.33)*(4.44+5.55))/(6.66+7.77) = -0.852992Test No.6: (1.11+2.22)*(3.33+4.44)/5.55*6.66 = 31.048920Test No.7: (1.11-2.22)/(3.33+4.44)/5.55*(6.66+7.77)/(8.88) = -0.041828Test No.8: Error: (1.11+2.22)*(3.33+4.44: missing ")", please check your expressionTest No.9: Error: (1.11+2.22)*3.33/0+(34-45): divisor cannot be zeroTest No.10: Error: 12+89^7: invalid character: ^实现代码栈的实现栈实际上就是⼀个被限制操作的表,所有的操作只能在栈的顶端(⼊栈、出栈等),以下是使⽤Python代码实现的简单的栈:class Stack(object):"""The structure of a Stack.The user don't have to know the definition."""def __init__(self):self.__container = list()def __is_empty(self):"""Test if the stack is empty or not:return: True or False"""return len(self.__container) == 0def push(self, element):"""Add a new element to the stack:param element: the element you want to add:return: None"""self.__container.append(element)def top(self):"""Get the top element of the stack:return: top element"""if self.__is_empty():return Nonereturn self.__container[-1]def pop(self):"""Remove the top element of the stack:return: None or the top element of the stack"""return None if self.__is_empty() else self.__container.pop()def clear(self):"""We'll make an empty stack:return: self"""self.__container.clear()return self计算器类的实现在计算器类中,我们将表达式的合法性验证单独放在⼀个函数中完成,但是实际上如果需要,也可以直接放在中缀表达式转后缀表达式的函数中实现,这样只需要⼀次遍历表达式即可同时完成验证和转换⼯作。
实验01 简易计算器设计
实验1简易计算器设计一、实验目的1、掌握事件结构的编程2、掌握字符串与数字的相互转化3、掌握条件结构的编程4、生成exe文件二、实验要求利用LabVIEW的事件结构编写一个简单的计算器程序,实现加、减、乘、除等运算,并能对计算结果进行清除,前面板按钮及布局如下图所示。
图1 计算机界面要求最后创建项目,生成exe可执行文件。
三、实验设备1、计算机2、安装LabVIEW软件(版本不限,本实验指导书以2018版为例)四、实验说明1、程序流程图图2 程序流程图2、设计思路计数器界面中每个按键相当于一个布尔输入控件,共17个;计算结果的显示为一个字符串显示控件。
每次按键触发一个按键事件,利用LabVIEW的事件响应结构对每个按键进行响应,实现要求的简易计算器功能。
表1 布尔输入控件的说明前面板除了17个布尔输入控件外,还包含输入数据的输入临时值控件、输入1、输入2、存储操作运算符的运算符临时值控件、运算结果和过程显示,过程显示充当计算器的显示器。
3、算法流程图包括程序初始化、运算符判断、数据存储与运算、显示等。
图3 算法流程图五、实验过程1、前面板设计打开IabVIEW2018软件,新建一个VI,并命名为虚拟计算器。
在前面板上右击,在布尔控件中选择“确定按钮”;右击,打开显示项,去掉标签;调整按键到合适的大小;再拷贝16个按键,排列好,C键和±键还需要调整一下大小;修改各按键的布尔文本;双击各按键到后面板中修改各自的标签,例如将布尔文本为1的按键标签改为“数字1”,将布尔文本为+的按键标签改为“加”,以方便编程时识别各按键。
再设置一个字符串显示控件,用来显示运算数值、运算符号和运算结果,修改标签为“过程显示”;还需要设置5个字符串显示控件,标签分别为“输入临时值”、“输入1”、“输入2”、“运算符临时值”、“运算结果”。
得到如下图所示的计算器前面板、后面板。
图4 前面板布局图图4 后面板2、初始化将前面板中的各个显示控件初始化,如图5所示。
计算器功能测试
实验三计算器功能测试预习报告(一)实验目的1.理解并掌握WinRunner的测试流程;2.掌握掌握数据驱动测试脚本编写方法;(二)实验内容1.识别windows计算器GUI对象;2.编写数据驱动测试脚本,分别测试windows计算器的加、减、乘、除运算。
(三)实验要求1.分别为windows计算器的加、减、乘、除运算设计测试用例,填写用例设计表;2.编写数据驱动测试脚本,使用Debug模式对脚本除错;实验报告(一)实验步骤一.加法代码:GUI_load("D:\\Program Files\\Mercury Interactive1\\WinRunner\\dat\\calc.gui");set_window ("‹¡ {— Vh ");table = "‹¡ {— Vh .xls";rc = ddt_open(table, DDT_MODE_READ);if (rc!= E_OK && rc != E_FILE_OPEN){pause("Cannot open table.");}ddt_get_row_count(table,table_RowCount);for(table_Row = 1; table_Row <= table_RowCount; table_Row ++){ddt_set_row(table,table_Row);button_press ("C");additive1=ddt_val(table,"additive1");additive2=ddt_val(table,"additive2");add1=length(additive1);while(add1>0)if(substr(additive1,add1,1)==" ")add1--;else break;i=1;while(i<add1)if(substr(additive1,i,1)==" ")i++;else break;additive11=substr(additive1,i,add1);for(i=1;i<=length(additive11);i++)button_press (substr(additive11,i,1));button_press ("+");if(additive2==""){additive2=additive11;}else{add2=length(additive2);while(add2>0)if(substr(additive2,add2,1)==" ")add2--;else break;i=1;while(i<len)if(substr(additive2,i,1)==" ")i++;else break;additive22=substr(additive2,i,add2);for(i=1;i<=length(additive22);i++)button_press (substr(additive22,i,1));}button_press ("=");edit_get_text("Edit",result);len=length(result);while(len>0)if(substr(result,len,1)==" "||substr(result,len,1)==".") len--;else break;i=1;while(i<len)if(substr(result,i,1)==" ")i++;else break;result=substr(result,i,len);if(int(additive1+additive2)==int(result))tl_step("testcase"&table_Row,0,additive1&"+"&additive2&"="&(additive1+additive2)&"is equal with result"&result&",correct.");elsetl_step("testcase"&table_Row,1,additive1&"+"&additive2&"="&(additive1+additive2)&"is not equal with result"&result&",incorrect.");}ddt_close(table);结果:二.减法代码:GUI_load("D:\\Program Files\\Mercury Interactive1\\WinRunner\\dat\\calc.gui");set_window ("‹¡ {— Vh ");table = "QÏ .xls";rc = ddt_open(table, DDT_MODE_READ);if (rc!= E_OK && rc != E_FILE_OPEN)pause("Cannot open table.");ddt_get_row_count(table,table_RowCount);for(table_Row = 1; table_Row <= table_RowCount; table_Row ++){ddt_set_row(table,table_Row);button_press ("C");additive1=ddt_val(table,"additive1");additive2=ddt_val(table,"additive2");add1=length(additive1);while(add1>0)if(substr(additive1,add1,1)==" ")add1--;else break;i=1;while(i<add1)if(substr(additive1,i,1)==" ")i++;else break;additive11=substr(additive1,i,add1);if(substr(additive11,1,1)=="-")for(i=2;i<=length(additive11);i++)button_press (substr(additive11,i,1));button_press("+/-");}elsefor(i=1;i<=length(additive11);i++)button_press(substr(additive11,i,1));button_press("-");if(additive2==""){additive2=additive11;}add2=length(additive2);while(add2>0)if(substr(additive2,add2,1)==" ")add2--;else break;i=1;while(i<len)if(substr(additive2,i,1)==" ")i++;else break;additive22=substr(additive2,i,add2);if(substr(additive22,1,1)=="-"){for(i=2;i<=length(additive22);i++)button_press (substr(additive22,i,1));button_press("+/-");}elsefor(i=1;i<=length(additive22);i++)button_press(substr(additive22,i,1));button_press ("=");edit_get_text("Edit",result);len=length(result);if(substr(result,len,1)==" "||substr(result,len,1)==".")len--;else break;i=1;while(i<len)if(substr(result,i,1)==" ")i++;else break;result=substr(result,i,len);add=additive1-additive2;len=length(add);while(len>0)if(substr(add,len,1)==" "||substr(add,len,1)==".")len--;else break;i=1;while(i<len)if(substr(add,i,1)==" ")i++;else break;add=substr(add,i,len);if(add==result)tl_step("testcase"&table_Row,0,additive1&"-"&additive2&"="&(additive1-additive2)&" is equal with result"&result&",correct.");elsetl_step("testcase"&table_Row,1,additive1&"-"&additive2&"="&(additive1-additive2)&" is not equal with result"&result&",incorrect.");}ddt_close(table);结果:三.乘法代码:GUI_load("D:\\ProgramFiles\\Mercury\\Interactive1\\WinRunner\\dat\\ca lc.gui");set_window ("计算器");table = "date7.xls";rc = ddt_open(table, DDT_MODE_READ);if (rc!= E_OK && rc != E_FILE_OPEN)pause("Cannot open table.");ddt_get_row_count(table,table_RowCount);for(table_Row = 1; table_Row <= table_RowCount; table_Row ++){ddt_set_row(table,table_Row);ddt_set_row(table,table_Row);button_press ("C");additive1=ddt_val(table,"additive1");additive2=ddt_val(table,"additive2");additi1=length(additive1);while(additi1>0)if(substr(additive1,additi1,1)==" ")additi1--;else break;i=1;while(i<additi1)if(substr(additive1,i,1)==" ")i++;else break;t_additive1=substr(additive1,i,additi1);if(substr(t_additive1,1,1)=="-"){for(i=2;i<=length(t_additive1);i++)button_press (substr(t_additive1,i,1));button_press("+/-");}elsefor(i=1;i<=length(t_additive1);i++)button_press(substr(t_additive1,i,1));button_press("*");if(additive2==""){additive2=t_additive1;}additi2=length(additive2);while(additi2>0)if(substr(additive2,additi2,1)==" ")additi2--;else break;i=1;while(i<len)if(substr(additive2,i,1)==" ")i++;else break;t_additive2=substr(additive2,i,additi2);if(substr(t_additive2,1,1)=="-"){for(i=2;i<=length(t_additive2);i++)button_press (substr(t_additive2,i,1));button_press("+/-");}elsefor(i=1;i<=length(t_additive2);i++)button_press(substr(t_additive2,i,1));button_press ("=");edit_get_text("Edit",result);len=length(result);while(len>0)if(substr(result,len,1)==" "||substr(result,len,1)==".")len--;else break;i=1;while(i<len)if(substr(result,i,1)==" ")i++;else break;result=substr(result,i,len);add=additive1*additive2;len=length(add);while(len>0)if(substr(add,len,1)==" "||substr(add,len,1)==".")len--;else break;i=1;while(i<len)if(substr(add,i,1)==" ")i++;else break;add=substr(add,i,len);if(add==result)tl_step("testcase"&table_Row,0,additive1&"*"&additive2&"="&(addit ive1*additive2)&" is equal with result"&result&",correct.");elsetl_step("testcase"&table_Row,1,additive1&"*"&additive2&"="&(addit ive1*additive2)&" is not equal with result"&result&",incorrect.");}ddt_close(table);结果:四.除法代码:GUI_load("C:\\Program Files\\Mercury Interactive\\WinRunner\\dat\\calc.gui"); set_window("计算器");table = "default.xls";rc = ddt_open(table, DDT_MODE_READ);if (rc!= E_OK && rc != E_FILE_OPEN)pause("Cannot open table.");ddt_get_row_count(table,table_RowCount);for(table_Row = 1; table_Row <= table_RowCount; table_Row ++){ddt_set_row(table,table_Row);button_press ("C");additive1=ddt_val(table,"additive1");additive2=ddt_val(table,"additive2");if(length(additive1)==0)additive1=0;elselen1=length(additive1);while(len1>0)if(substr(additive1,len1,1)==" ")len1--;elsebreak;j=1;while(j<len1)if(substr(additive1,j,1)==" ")j++;elsebreak;additive3=substr(additive1,j,len1);additive1=substr(additive1,j,len1);#if(length(additive2)==0)#additive2=additive3;#elselen2=length(additive2);while(len2>0)if(substr(additive2,len2,1)==" ")len2--;elsebreak;i=1;while(i<len2)if(substr(additive2,i,1)==" ")i++;elsebreak;additive2=substr(additive2,i,len2);additive4=substr(additive2,i,len2);if(length(additive2)==0){additive2=additive3;additive4=additive3;}for(j=1;j<=length(additive1);j++)button_press (substr(additive1,j,1));button_press ("/");if(substr(additive2,1,1)=="-"){additive2=substr(additive2,2,len2); for(i=1;i<=length(additive2);i++) button_press (substr(additive2,i,1));button_press ("+/-");}elsefor(i=1;i<=length(additive2);i++)button_press (substr(additive2,i,1));button_press ("=");edit_get_text("Edit",result);len=length(result);while(len>0)if(substr(result,len,1)==" "||substr(result,len,1)==".")len--;elsebreak;i=1;while(i<len)if(substr(result,i,1)==" ")i++;elsebreak;result=substr(result,i,len);if(additive4==0)tl_step("testcase"&table_Row,0,"the result is eror 输入错误 correct");else{if((additive3/additive4)==result)tl_step("testcase"&table_Row,0,"the result is"&(additive3/additive4)&"and"&(result)&",correct");elsetl_step("testcase"&table_Row,1,"the result is"&(additive3/additive4)&"and"&(result)&",incorrect");}}ddt_close(table);结果:(二)实验体会通过此实验让我们理解并掌握WinRunner的测试流程;掌握掌握数据驱动测试脚本编写方法;我们更加认识windows计算器GUI对象;深入了解测试用例的划分,分别为windows 计算器的加、减、乘、除运算设计测试用例。
模块测试用例 定义
模块测试用例1. 什么是模块测试用例模块测试用例是软件开发过程中的一项重要工作,用于验证软件中的模块是否按照设计要求正确运行。
模块是软件中的一个独立功能单元,可以是一个函数、一个类或者一个子系统。
模块测试用例是为了测试模块的功能、性能和可靠性而设计的一组测试用例。
模块测试用例的目的是发现模块中的错误和问题,确保模块能够按照预期的方式工作,并且与其他模块正确地集成。
通过模块测试用例的执行,可以提高软件的质量、可靠性和稳定性,减少后续阶段的错误修复工作。
2. 模块测试用例的编写步骤2.1 确定测试目标在编写模块测试用例之前,首先需要确定测试的目标。
测试目标应该明确、具体,并且与模块的功能要求一致。
通过明确的测试目标,可以帮助测试人员更好地理解模块的功能和预期结果。
2.2 划分测试用例根据模块的功能和预期结果,将测试用例划分为多个不同的类别。
每个类别测试不同的功能点或者场景,以确保对模块的所有功能进行全面覆盖。
划分测试用例可以根据功能点、输入数据、边界条件等进行分类。
2.3 设计测试用例在设计测试用例时,需要考虑以下几个方面:•输入数据:确定模块的输入数据,包括正常输入、异常输入和边界条件。
•预期结果:根据模块的功能要求,确定每个测试用例的预期结果。
•测试步骤:编写详细的测试步骤,包括输入数据、执行操作和验证结果。
•测试环境:确定测试所需的环境和配置,包括软件版本、硬件设备等。
2.4 执行测试用例执行测试用例时,需要按照设计的测试步骤逐一执行。
在执行过程中,需要记录测试环境、输入数据、执行操作和实际结果。
如果测试结果与预期结果不一致,需要记录错误信息,并进行错误分析和修复。
在执行完所有测试用例后,需要对测试结果进行分析。
分析测试结果可以发现模块中的错误和问题,并提供改进和修复建议。
对于出现的错误,需要进行分类、定位和修复,以确保模块的质量和可靠性。
3. 模块测试用例的要求编写模块测试用例时,需要满足以下几个要求:3.1 全面性测试用例应该覆盖模块的所有功能和场景,包括正常情况和异常情况。
win7计算器软件测试
软件测试报告班级:计科142姓名:***学号:************系别:信息技术系专业:计算机科学与技术指导老师:***目录1.前言 (2)1.1测试目的 (2)1.2测试背景 (2)2.测试计划 (2)2.1测试计划名称 (2)2.2项目背景和内容概要 (2)2.3相关资料、缩略语、定义 (2)2.4参考资料: (3)2.5测试过程 (3)2.6测试目标 (3)2.7测试分工 (3)2.8测试步骤及方法 (3)2.9测试通过标准 (3)2.10修正错误并重新测试的步骤与要求 (3)2.11进度计划 (3)2.12测试小结 (4)2.13测试用例的简单描述 (4)2.14需求跟踪 (4)3.性能测试用 (4)3.1测试用例的目的 (4)3.2测试用例的输入 (4)3.3期待的输出 (5)3.4测试方法 (6)3.5实际的输出 (6)4.设计测试环境 (8)4.1软件: (8)4.2硬件: (8)4.3网络环境: (8)4.4测试工具: (8)5.测试软件 (9)5.1软件名称 (9)5.2获取方式 (9)5.3功能模块 (10)6.功能测试计划 (12)6.1测试目标 (12)6.2测试模块 (12)6.3等价类划分及测试用例 (12)7.测试实施 (14)7.1测试时间 (14)7.2测试过程及结果 (14)8.测试分析及缺陷描述 (15)8.1测试分析 (15)8.2缺陷描述 (15)9.实验总结 (16)1.前言1.1测试目的根据Windows 7计算器的帮助文档,制定对Windows 7计算器的测试用例,用来测试计算器功能。
包括:输入输出、计算换算、日期计算等。
根据本次测试来评估当前的计算器是否符合设计要求和使用要求,并进而做出测试分析报告。
1.2测试背景1)测试计划所从属的软件系统:Windows 7;2) 在开始执行本测试计划之前必须完成的工作:需要阅读计算器的帮助文档。
2.测试计划2.1测试计划名称Windows 7计算器的测试2.2项目背景和内容概要该项目是自己找的,委托单位是老师,开发单位主管单位都是window公司的员工。
编写测试用例(详细)
学习别人优秀成果的基础上,编写自己的用例。
实例:纸杯的测试用例设计
用户需求:一个带广 告图案的花纸杯
杯子特性
杯子的容量: 能装多少升水,空杯,半 杯,满杯
杯子的型状: 圆型,上面口大,下面小。 杯子的材料: 纸杯 杯子的抗摔能力: 风吹是否会倒,摔一
输入正确的帐号和密码(均为6至8 进入系统
位之间),点击[登录]按钮
帐号为空,点击[登录]按钮
提示输入帐号
帐号为空格,点击[登录]按钮
提示无效帐号
帐号小于6位,点击[登录]按钮 提示无效帐号
测试用例设计原则
1. 测试用例对需求覆盖的完整性; 2. 测试用例的有效性; 3. 测试用例的可理解性; 4. 测试用例的清晰性; 5. 测试用例的可维护性。
需求的覆盖完整性
做到对需求的完全理解, 从全局上把握需求
对需求进行归类,包括正常流,异常流等,做 到对需求的100%覆盖。(其中有一个好的方法 就是用mm图把需求分解了)
把基本路径分解出来,将需求归类。理顺了需 求,用例写起来就顺手多了。
需求的覆盖完整性
测试用例的有效性
测试用例应该包含清晰的输入数据以及 预期输出
丼例?登彔功能说出一些简单的测试用例丼例?简单用例?一般的用例用例编号功能点操作过程预期结果01登录能够正确处理用户登录正确处理登录操作用例编号功能点操作过程预期结果01登录能够正确处理用户登录正确处理登录操作用例编号功能点操作过程预期结果01登录输入正确的帐号和密码登录成功输入错误的帐号和密码登录失败用例编号功能点操作过程预期结果01登录输入正确的帐号和密码登录成功输入错误的帐号和密码登录失败丼例?比较详细的用例用例编号功能点操作过程预期结果01登彔输入正确的帐号和密码均为6位点击登彔按钮进入系统输入正确的帐号和密码均为10位点击登彔按钮进入系统输入正确的帐号和密码均为6至8位乀间点击登彔按钮进入系统帐号为空点击登彔按钮提示输入帐号帐号为空格点击登彔按钮提示无效帐号帐号小于6位点击登彔按钮提示无效帐号用例编号功能点操作过程预期结果01登彔输入正确的帐号和密码均为6位点击登彔按钮进入系统输入正确的帐号和密码均为10位点击登彔按钮进入系统输入正确的帐号和密码均为6至8位乀间点击登彔按钮进入系统帐号为空点击登彔按钮提示输入帐号帐号为空格点击登彔按钮提示无效帐号帐号小于6位点击登彔按钮提示无效帐号测试用例设计原则1
基于51单片机的简易计算器设计
基于51单片机的简易计算器设计设计一个基于51单片机的简易计算器,主要功能包括加减乘除四则运算和百分数计算。
下面是设计的详细步骤:1.硬件设计:-使用51单片机作为主控芯片。
-连接16x2的LCD显示屏,用于显示输入和计算结果。
-连接16个按键开关,用于输入运算符和数字。
-连接4个LED灯,用于指示四则运算的选择。
2.软件设计:-初始化LCD显示屏,并显示欢迎信息。
-监听按键输入,在接收到输入后,根据输入的按键值判断操作类型。
-如果按键值对应数字键,保存输入的数字,并在LCD上显示当前输入的数字。
-如果按键值对应四则运算符(+、-、*、/),保存当前输入的数字,并保存运算符。
-如果按键值对应等号(=),根据保存的数字和运算符进行相应的运算,计算结果保存并显示在LCD上。
-如果按键值对应清零(C),将所有保存的数据清空,并显示初始状态。
-如果按键值对应百分号(%),将当前数字除以100并显示在LCD上。
3.主要函数说明:- void init_lcd(:初始化LCD显示屏。
- void display_lcd(char* str):将指定字符串显示在LCD上。
- void clear_lcd(:清空LCD显示屏。
- char get_key(:获取按键输入的值。
- void calculate(:根据保存的数字和运算符进行计算。
- void add_digit(char digit):将输入的数字添加到当前数字中。
- void set_operator(char op):保存运算符。
- void clear_data(:清空所有保存的数据。
4.主要流程:-初始化LCD显示屏并显示欢迎信息。
-在循环中监听按键输入,并根据输入的按键值进行相应的操作。
-根据不同的按键值,调用不同的函数进行处理。
-最后计算结果显示在LCD上。
以上是基于51单片机的简易计算器设计的详细步骤和主要函数说明。
你可以根据这个设计框架进行具体的代码实现。
计算器测试用例
用例编号相关用例计算器界面 1.011.点击“计算器”,进入计算器界面输入数字 1.01 1.直接按数字键盘上相应的按键1.011.点击屏幕上数字键盘上的小数点1.021.点击屏幕上的数字键输入数字:2.22.点击“.”输入负号 1.011.先输入一个负号2.点击屏幕上的数字键输入数字:23.输入一个乘号4.点击屏幕上的数字键输入数字:5加减乘除符号 1.011.点击键盘上任意一个运算符号的位置(+、-、×、÷)各测试一次删除显示框的数字1.011.输入数字:1234567892.点击屏幕上的“清除”键1次清零 1.011.输入数字:1234567892.长按住屏幕上的“清除”键后释放输入小数点参考信息说明:测试结果列分PASS和FA 功能特性能进行简单的计算,并且有一定的容用例说明测试目的验证计算器能正常进行简单的计算预置条件进入计算器界面两个正数正常进行运算1.011.输入一个数字(正整数和小数各测试一次)2.输入“+”(+、-、×、÷各测试一次)3.输入一个数字(正整数和小数两负数正常进行运算1.011.输入一个数字(负整数和负小数各测试一次)2.输入"+"号(+、-、×、÷各测试一次。
)3.输入一个数字(负整数和负小两正整数边界数进行运算1.011.输入一个数字(0或9输入到最大)2.输入"+"号(+、-、×、÷各测试一次。
)3.输入一个数字(0或9输入到最大)5.按"="号。
两正小数边界数进行运算1.011.输入一个数字(0或9输入到最小或最大,小数、整数各测一次)两负数边界数进行运算1.011.输入一个数字(负整数和负小数各测试一次)2.输入“+”(+、-、×、÷各测试一次)1.011.输入数字(小数、正数、负数各测试一次)2.输入运算符号3.输入数字1.021.输入数字(小数,正数,负数各测试一次)2.输入运算符号3.输入数字计算器界面来电话1.011.进入计算器界面;2.有电话呼入计算器界面来短信或彩信1.011.进入计算器界面;2.来一条短信或彩信计算器界面来提醒1.011.在日程表里设置一个提醒;2.进入计算器界面;3.到时间响铃在计算时,没电关机1.011.在计算器界面,计算数字时没电自动关机在计算时,按power键关机1.011.在计算器界面,计算数字时按关机键关机三个数以上连续运算计算器主界面 1.01 1.按“MENU”键1.02 1.01 1.点击“清除历史记录”1.03 1.01 1.点击“高级面板”S和FAIL两种情况,通过的填[P],有问题项填[F],并在问题描述列标注[未处理问题列表]中对应BUG的序号;软件“xx”模块测试用例定的容错能力计算特殊规程说明预期结果测试结果显示数字键、符号键、清除键以及输入框在计算器显示屏上显示焦点所在的数字;按不同的键,屏幕上显示对应的数字在计算器显示屏上显示焦点所在的小数点计算器显示屏上显示 2.2上不会显示后输入的小数点计算器屏显示的结果为-10计算器显示屏上显示“-”其它运算符不显示计算器显示屏上显示“12345678”计算器显示屏上显示内容为空p验证计算出两个正整数正常运算后的结果正确1.验证计算出两个负数正常运算后的结果正确;2.验证两个负数相乘或相除等于正数。
c#实验报告_简易计算器
重庆邮电大学移通学院C#课程设计一、实验目的:构造一个类似Windows自带的计算器一样的简易计算器,能够连续进行加、减、乘、除四则整数运算,并能随时清除计算结果进行下一次计算。
二、具体实验步骤:1、添加编辑框对应的变量m_Display2、添加运算符类型变量char CompuType; //用于存储运算符类型CString FirstInput; //用于保存运算符前面的输入值三、实验内容设计的基本要求:能正确输入数据,能实现加,减,乘,除等算术运算,能实现简单的三角运算,运行结果能正确显示,可以清除数据等。
1、要点分析:这是一个简单的对话窗体设计,涉及button,editbox,static text,radio button,group box等控件,主要影响事件为BN_CLICKED2、程序源代码:using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace Study{public partial class Form1 : Form{public Form1(){InitializeComponent();}private int opMain = 0; // 运算类型,其中1(加法) 2(减法) 3(乘法) 4(除法)private double mainNum1 = 0; // 存储第一个数private double mainNum2 = 0; // 存储第二个数private bool isSecond = false; // 用来判断输入的是第一个还是第二个数private bool isDone = false; // 用来判断是否按了等于按钮private bool isDecimal = false; // 用来判断是否有小数private bool isNokeydown = false;// 用来判断是否没输入第二个数而按了"="号键private bool isKeyupclear = true;//用来判断是否按了clear键,程序开始前默认按了;public void setText(string textest) //设置文本框的值{if (textest.Equals("clear")){textBox1.Text = "0.";isSecond = false;isDone = false;isDecimal = false;isKeyupclear = true;}else{if (isSecond){textBox1.Text = textest;isSecond = false;isDecimal = false;}else{if (isDone){textBox1.Text = textest;isDone = false;}else{if (isKeyupclear) //对是否按下clear键的判断{textBox1.Text = textest;isKeyupclear = false;}elsetextBox1.Text += textest;}}}btnEqual.Select(); //设置"="号的焦点}public void Calc(double num1, double num2, int op){double answer = 0;switch (op) //判断所进行的运算{case 1:answer = num1 + num2;break;case 2:answer = num1 - num2;break;case 3:answer = num1 * num2;break;case 4:answer = num1 / num2;break;case 5:answer = num1 % num2;break;}setText(answer.ToString()); //显示结果}//执行运算private void doEquals(){if (isNokeydown) //判断已经输入第二个数后按了"="号键{mainNum2 = double.Parse(textBox1.Text);setText("clear");Calc(mainNum1, mainNum2, opMain);isDone = true;isNokeydown = false;}}//切换正负private void changeSign(){double storNum;if (textBox1.Text.Length > 0){storNum = double.Parse(textBox1.Text); storNum *= -1;textBox1.Text = storNum.ToString();}btnEqual.Select(); //设置"="号的焦点}//设置运算类型private void setOperator(int operation){if (textBox1.Text.Length > 0){opMain = operation;mainNum1 = double.Parse(textBox1.Text); isSecond = true;isDone = false;isNokeydown = true;btnEqual.Select(); //设置"="号的焦点}}//设置小数点private void setDecimal(){if (!isDecimal){setText(".");isDecimal = true;}btnEqual.Select(); //设置"="号的焦点}//开平方private void doSquart(){double storNum;storNum = double.Parse(textBox1.Text);if (storNum > 0){storNum = Math.Sqrt(storNum);textBox1.Text = storNum.ToString();}elsetextBox1.Text = "负数不能开平方。
程序设计编程能力考核题测试用例
程序设计编程能力考核题测试用例1. 由键盘输入的n个整数,输出其中最大和最小数。
其中,n由用户通过键盘输入。
输入:n=10092 756 43 32 45 78 67 82 99 65输出:756 (最大)32 (最小)2.求这样一个三位数,该三位数等于其中每位数字的的阶乘之和。
即; abc=a!+b!+c!输出: 1453.有一分数序列:2/1, 3/2, 5/3, 8/5, 13/8 ,21/13,编程,求出这个数列的前20项之和。
输出: 32.6602594.编程,从键盘输入正整数n,求n!并输出。
输入: 10输出: 36288005.编程序,从键盘输入一整数,然后按反向输出。
比如原数为12345,应输出54321.输入:56832输出:238656.编程,统计输出整数100至100000之间所有数字之和为5的整数的总个数。
输出1206.1 写一个函数,输入一个四位数字,要求输出这四个数字字符,但每两个数字之间加一个下划线;并在主函数中进行测试。
输入:1990,输出:1_9_9_07.编程序,有键盘输入一个字符串,将字符串中除小写元音字母以外的字符打印出来。
输入:My name is Tom!输出:My nm s Tm!7.1连续输入一批以 # 结束的字符串(字符串的长度不超过80),遇 ## 则全部输入结束。
对每个字符串做如下处理:滤去所有的非十六进制字符后,组成一个新字符串(十六进制形式),然后将其转换为十进制数后输出。
例:括号内是说明输入:10#Pf4+1#-+A## (连续输入3 个字符串)输出:16 (对应10)3905 (对应f41)10 (对应A)7.2、连续输入一批以 # 结束的字符串(字符串的长度不超过80),遇 ## 则全部输入结束。
将每个字符串中的大写字母用下面列出的对应大写字母替换, 其余字符不变, 输出替换后的字符串.原字母对应字母A ──→ ZB ──→ YC ──→ XD ──→ W……X ──→ CY ──→ BZ ──→ A例:括号内是说明输入:A flag of USA#IT12#oueiaba## (连续输入3 个字符串)输出:Z flag of FHZRG12Oueiaba7.3、输入一个字符并回车,再连续输入一批以 # 结束的字符串(字符串的长度不超过80),遇 ##则全部输入结束。
毕业设计简易加减乘除计算器
毕业设计题目简易加减乘除计算器系别专业班级姓名学号指导教师日期设计任务书设计题目:简易加减乘除计算器设计要求:1.根据所学内容运用编程做一个简易加减乘除计算器,实现加、减、乘、除、等以及清零的功能。
2.设置一组数码管, 使其能够显示程序运行,按键动作的内容。
3.设置一组按键,使其键依次对应0——9、“+”、“-”、“*”、“/”、“=”和清除键。
4.可以进行小于255的数的加减乘除运算,并可连续运算。
当键入值大于255时,将自动清零,可重新输入。
设计进度要求:第一周:确定题目,寻找单片机和计算器设计的相关资料;第二周:读懂资料,有初步的设计思路;第三周:绘制硬件电路图;第三周:设计软件框图;第四周:相应软件设计(程序设计);第五周:进行程序调试并且修改;第六周:写毕业设计论文;第七周:修改并提交毕业设计;第八周:准备论文答辩;指导教师(签名):摘要在很多领域的数据处理中要用到数学运算,作为计算机自动处理系统更显得重要。
此项目设计以单片机为核心部件的计算器,采用4*4矩阵式键盘,16个键依次对应0——9、“+”、“-”、“*”、“/”、“=”和清除键。
使用单片机最小应用系统1模块,简单方便。
采用静态显示,显示器由5个共阴极数码管组成。
输入只有两个信号,它们是串行数据线DIN和移位信号CLK。
5个串/并行移位寄存器芯片74LS164首尾相连。
每片的并行输出作为LED数码管的段码。
本计算器系统简单,实用性强,成本低,使用维护方便,软件功能强,运行稳定可靠等优点。
关键词:单片机,计算器,键盘,静态显示前言随着半导体集成工艺的不断发展,单片机的集成度将更高、体积将更小、功能将更强。
在单片机家族中,80C51系列是其中的佼佼者,加之Intel公司将其MCS –51系列中的80C51内核使用权以专利互换或出售形式转让给全世界许多著名IC制造厂商,如Philips、 NEC、Atmel、AMD、华邦等,这些公司都在保持与80C51单片机兼容的基础上改善了80C51的许多特性。
计算器软件测试报告
希望对大家有所帮助.名谢您的浏览!江西工业职业技术学院毕业综合实践课题名称: 安卓手机计算器作者:廖杰学号:20112715分院:电子与信息工程分院______________ 专业:计算机网络技术 ________________ 指导老师:占华为专业技术职务讲师2013年11月14日一、问题描述:用Java实现求两整数的加、减、乘、除运算结果,要求两整数的范圉都是[0,100]。
从键盘输入数m,数n,判断他们的范围,若不在[0, 100]范围内,则输出提示语,要求重新输入,并且在做除法运算时,当除数为0时,输出提示语, 说明除数不能为0。
将两数的范围定在[0, 100],以更好的进行边界值分析,等价类测试等黑盒测试方法;为充分体现口盒测试的特点,有些地方故意用了辻-else语句,wh订e 循环;另外,力口、减、乘、除运算分别用了四个函数来计算,这样既可以在主函数中调用,乂可以在Junit 框架中分别对这四种运算进行测试。
二.程序源代码:1. 2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23. import java .util.Scanner;public class Computer {private int a;private int b;public Computer (int x, int y) / '构造函数,初始化b=y;}public double add()//注意:Juint中需要输入测试值在0~100范用内〃加法return a+b;}public double minus(){return a-b;}public double multiplyOreturn a*b;}public double divide()〃减法//乘法//除法,要求除数不能为0,否则输岀提示语if(b!=0) return a/b ; elseSystem, out. printin (“除数不能为0! ”); return 0;public static void main(StringEl args) Scanner scanner = null ;scanner = new Scanner(System. in);System, out. print In (“ 请输入 O'lOO 的两个 m, n 整数:");System, out. println("请输入第一个数:”);while (true) { //若输入值不任要求范I 付内,则有循环直到输入匸确为止 int m= scanner ・nextint 0 ;if (m>=0&&m<=100)System, out. print In in 输入第二个数:"); while(true){int n = scanner ・nextlnt();if(n>=0&&n<=100)Computer cpt=new Computer(m, n); System, out. printing 运算结果是:");System. out ・ println("力2去:"+m+"+"+n+"二"+cpt ・ add0); System. out. printin ("减》去:一"+n+"二"+cpt ・ minus 0);Syste m ・ out ・ print In ("乘扌去:“*"+n+"二"+cpt ・ multiplyO ; System ・ our ・ printin ("除[去:"+m+"/"+n+"二"+cpt ・ divideO); } elseSystem, out. print ("输入n 值不在要求区间,请重新输入n : \n"); } } elseSystem, out. print ("输入m 值不在要求区间,请重新输入m : \n"); } }1、边界值测试:1.K 边界值分析:输入要求是o'loo 之间的整数,因此产生了 o 和loo 两个边界,边界值分析 可产生 4*2+1 二9 个测试用例。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
正确
正确
(1.0+2/3.5-4)*asinactg8
正确
正确
正确
((1.5-sintg5)/ctg6.0-atg6logactg32)-9
正确
正确
正确
actg40*lgsinactgcbrt(30)
正确
正确
正确
100%200*lnlg(asin6^2)/(3logactgcos2)
正确
正确
正确
提示错误
正确
(ctg78-asin0.8)-actg89*sbrt67
正确
正确
正确
(1.0+2/3.5-4)*cos8
正确
正确
正确
arctg40*lgsincoscbrt(30)
正确
正确
正确
100%200*lnlg(asin6^2)/(3asincoss2)
表达式有多余算符
在'cos'附近可能存在错误
正确
asin(1/(cbrt43)^(sbrt12))
asin(1/(atg43)^(actg12))
正确
正确
正确
2343-(sin70*cos80)^ctgactg90
正确
正确
正确
((lncbrt45/actg0.87-6^3)-atg326)/78!
正确
正确
正确
acos(actg45*cos45!^6)/(ctg0-cbrt90)-3*8
正确
在'!'附近可能存在错误
正确
正确
正确
34*65-actg3^asincossbrt2
正确
正确
正确
sin0.5-asinactg68*4/7
正确
正确
正确
(333*tg34/4^actg10log(20))
正确
正确
正确
(1/actg(32log(cbrt45*asin0.87)+6!))/78
正确
正确
正确
(ctg78-asin0.8)-cosactg89*sbrt67
提示不明确
文法测试用例2
表达式
预测结果
系统提示
检测结果
50%actgsin30
错误
在算符'%'附近可能存在错误
提示错误
50-10*actglg70
正确
正确
正确
lnsin90^actgcos70!
正确
正确
正确
actg43loglnlg3
正确
正确
正确
1/tg180+actgsin60!
正确
正确
正确
45^actgctg49*4
正确
正确
正确
rt2
正确
正确
正确
sin0.5-asintg68*4/7
正确
正确
正确
(((333*tg34/^log10(20))
括号不匹配
在'log'附近可能存在错误
正确
(1/(log(cbrt45*asin0.87)+6!)-lg576)/78
Log算符匹配
在'log'附近可能存在错误
文法测试用例1
表达式
预测结果
系统提示结果
检测结果
30!/50*sin30
正确
正确
正确
50-10*lg70
正确
正确
正确
!lnsin90cos70
表达式缺少符号
在'!'附近可能存在错误
正确
loglnlg3
Log算符不匹配
在'log'附近可能存在错误
正确
1/tg180*sin60
正确
正确
正确
45^34/ctg49*4
正确
正确
正确
2343-(sin70*cos80)^ctglg90
正确
正确
正确
!(ln(cbrt45/asin0.87)-6^3)-!lg326)/78
表达式缺少符号
在'!'附近可能存在错误
提示不明确
acos(!tg45*cos45^6)/(ctg0-cbrt90)-3*8
表达式缺少符号
在'!'附近可能存在错误