QTP测试Windows7计算器
Win7计算器软件测试报告要点(可编辑修改word版)
W i n7计算器功能测试报告目录1.前言 (1)1.1测试目的 (1)1.2测试背景 (1)2.测试软件 (1)2.1软件名称 (1)2.2获取方式 (1)2.3功能模块 (1)3.功能测试设计 (3)3.1测试目标 (3)3.2测试模块 (3)3.3等价类划分及测试用例 (4)4.功能测试实施 (8)4.1测试时间 (8)4.2测试过程及结果 (8)5.测试分析及缺陷描述 (11)5.1测试分析 (11)5.2缺陷描述 (12)6.附录—测试分工 (13)班级:信管 101姓名:褚伟梁1.前言1.1测试目的根据 Windows 7 计算器的帮助文档,制定对 Windows 7 计算器的测试用例,用来测试计算器功能。
包括:输入输出、计算换算、日期计算等。
根据本次测试来评估当前的计算器是否符合设计要求和使用要求,并进而做出测试分析报告。
1.2测试背景1)测试计划所从属的软件系统:Windows 7;2)在开始执行本测试计划之前必须完成的工作:需要阅读计算器的帮助文档。
2.测试软件2.1软件名称Windows7 自带计算器2.2获取方式2.3功能模块1)标准型(进行加减乘除百分制等简单运算)2)科学型(进行较为复杂的科学计算)3)程序员(二进制、八进制、十进制、十六进制之间的转换等)4)日期计算(计算两个日期之差或一个日期加上、减去到指定日期的天数)3.功能测试设计3.1测试目标该测试目标是核实数据的接受,处理和检索是否正确。
此类测试基于黑盒测试技术(手工测试),该技术通过图形界面与应用程序进行交互,并对交互的输出和结果进行分析,以此来核实应用程序及其内部进程。
3.2测试模块1)模块 1:执行基本的运算(功能模块 1&2)因果图:2)模块 2:执行进制的换算(功能模块 3)因果图:3)模块 3:执行日期计算功能(功能模块 4)3.3等价类划分及测试用例a.基本运算等价类(以科学型为主)b.基本运算测试用例c.进制换算等价类(基于四字)d.进制转换测试用例e.日期计算等价类f.日期计算测试用例4.功能测试实施4.1测试时间功能测试安排时间:5 天4.2测试过程及结果a.模块 1测试内容描述b.模块 2测试内容描述c.模块 3测试内容描述4.选择“”,进行如下计算8. 单击“计算”已输入在框中显示目标日期与预期一致5.测试分析及缺陷描述5.1测试分析经测试证实了的 Win7 系统自带的部分计算器功能符合要求,输出类型基本全部合理,测试输出结果与预期输出结果相同并无较大偏差,而且界面布局显示合理,能进行基本的十进制运算,输入数据和结果数据范围在-99…9(32位)到99…9(32位)之间,若超过 32 位,将以“1.e+33”的形式显示,且能进行简单的二进制,八进制,十进制,十六进制间的转换及运算,以四字二进制为准,输入数据和结果数据范围在-1…1(64位)到1…1(64位)之间,还能进行 1601.1.1 到9999.12.31 之间的日期计算。
Qt实现计算器
myWidget(){
Q1="0";
Q2="0";
Q3="0";
c=' ';
this->setMinimumSize(300,290);
this->setMaximumSize(300,290);
QWidget *editwindow=new QWidget(this);//编辑窗口
editwindow->setGeometry(40,20,220,50);
{
if(Q2=="0") Q2="2";
else
{
Q2=lineEdit->text();
Q2.append('2');
}
lineEdit->setText(Q2);
}
void s3()
{
if(Q2=="0") Q2="3";
else
{
Q2=lineEdit->text();
Q2.append('3');
lineEdit=new QLineEdit("欢迎使用就算器",editwindow);//显示输入框
lineEdit->setGeometry(0,0,220,50);
lineEdit->setReadOnly(1);//设置为只读,不允许直接修改文本框
QWidget *buttonwindow=new QWidget(this);
connect(b7,SIGNAL(clicked()),this,SLOT(s7()));
最新强大的WIN7计算器
强大的W I N7计算器Windows下自带的计算器用的也挺多了,但是基本上都是做一些简单的加减乘除,坦白讲,之前我甚至连CE和C两个键的区别都搞不太清楚,更不要说那些MR/MS/M+/M-/MC了。
带着学习的心情,我打开了Windows 7下的计算器极其帮助,当然还有baidu/google。
想不到,从此一个崭新的世界出现在了我的面前。
这个计算器的功能是如此的强大,尤其对于一个程序员,更是相当的上手,不善加利用,简直就是暴殄天物。
下面大概介绍一下其功能与用法。
一、标准计算器这是最常用也是最简单的模式,加减乘除,开方倒数,相信每个人都很熟悉,我觉得需要注意的几点是:•CE/C:CE表示Clear Error,是指你清楚你当前的错误输入;而C表示Clear,是指清楚整个计算。
比如你输入1+2之后,按CE会清除第二个参数2,你可以继续输入其他数和第一个参数1相加。
而C则整个的删除1+2这个计算,你需要重新开始一个计算。
•MC/MR/MS/M+/M-:M表示Memory,是指一个中间数据缓存器,MC=Memory Clear, MR=Memory Read, MS=Memory Save,M+=Memory Add, M-=Memory Minus,可以用一个例子来演示:(7-2)* (8-2)=•先输入7,按MS保存,输入2,按M-与缓存器中的7相减,此时缓存器中的值为5;然后计算8-2,得出结果为6,输入*相乘,按MR读出之前保存的数5,按=得出结果30,算完后按MC清除缓存器。
•% :几番尝试,我还是不怎么理解这个操作的意义何在,其规则是将前两个操作数相乘并取其百分值,而与操作符没有任何关系,如下:•7*8%=7*0.56=3.92•7+8%=7+0.56=7.56二、科学计算器这是标准模式的扩展,主要是添加了一些比较常用的数学函数,我觉得可以分为三组:•三角函数:正弦,双曲正弦,按Inv可以计算其反函数反正弦,反双曲正弦,对于余弦,正切也是如此,这样就有4*3一共12个函数。
QTP自动化测试教程
QTP自动化测试教程目录一、自动化测试概述 (2)1. 自动化测试简介 (3)1.1 自动化测试定义与特点 (4)1.2 自动化测试应用领域 (5)1.3 自动化测试发展趋势 (6)2. QTP自动化测试工具介绍 (8)2.1 QTP工具简介 (9)2.2 QTP功能特点 (10)2.3 QTP应用领域及优势 (12)二、QTP安装与配置 (14)1. QTP安装步骤 (15)2. 配置环境变量及插件安装 (16)3. 许可证管理及相关设置 (17)三、QTP基础操作入门 (18)1. QTP界面介绍及功能分区 (19)2. 创建与编辑测试项目 (20)3. 测试用例设计与管理 (21)4. 运行测试并生成报告 (23)四、QTP高级功能应用 (24)1. 对象识别与定位技术 (26)2. 参数化测试及数据驱动测试 (28)3. 测试脚本编写与调试技巧 (29)4. 插件开发与集成应用 (30)五、QTP自动化测试实战案例 (32)1. 网页应用自动化测试案例 (33)2. 桌面应用自动化测试案例 (34)3. 移动应用自动化测试案例 (35)六、QTP性能优化与常见问题解决方案 (36)1. 提升测试效率的策略和方法 (38)2. 常见错误类型及解决方案 (40)一、自动化测试概述自动化测试是一种使用计算机程序来模拟人工测试过程的方法,它可以在较短的时间内、更低的成本和更高的效率下完成大量的测试任务。
在QTP(QuickTest Professional)中,自动化测试是指利用QTP的脚本语言编写测试脚本,实现对软件功能的自动执行、验证和故障定位等功能。
提高测试效率:通过自动化测试,可以快速地重复执行相同的测试用例,大大缩短了测试周期。
降低测试成本:自动化测试可以减少人力资源的投入,节省测试人员的培训成本和管理成本。
提高测试质量:自动化测试可以消除人为因素导致的错误,提高测试结果的准确性和可靠性。
QTP自动化测试原理
QTP自动化测试原理概述:QTP(Quick Test Professional)是一款功能强大的自动化测试工具,用于测试桌面、Web和移动应用程序。
本文将详细介绍QTP自动化测试的原理,包括工作原理、主要特点和使用方法。
一、工作原理:QTP自动化测试的工作原理基于关键字驱动的测试方法。
它通过录制和回放的方式来创建测试脚本,并使用关键字库来管理测试对象和测试步骤。
QTP能够自动识别应用程序的用户界面,并通过对象识别技术来识别和操作应用程序中的各种对象。
1. 录制测试脚本:QTP可以记录用户在应用程序中的操作,包括鼠标点击、键盘输入等。
在录制过程中,QTP会自动识别应用程序中的各种对象,并生成相应的测试脚本。
2. 编辑和调试测试脚本:录制完成后,可以对测试脚本进行编辑和调试。
可以修改测试步骤、添加断言和循环等控制结构,以及调整测试脚本的执行顺序。
3. 回放测试脚本:通过QTP的回放功能,可以执行已经录制和编辑好的测试脚本。
QTP会自动打开应用程序,并按照脚本中定义的操作步骤进行测试。
在执行过程中,QTP会自动识别和操作应用程序中的各种对象。
4. 生成测试报告:执行完测试脚本后,QTP会生成详细的测试报告,包括测试结果、错误信息、执行时间等。
测试报告可以帮助开发人员和测试人员分析和定位问题,并提供改进测试用例的依据。
二、主要特点:QTP具有以下主要特点,使其成为一款广泛应用的自动化测试工具。
1. 多平台支持:QTP支持测试桌面、Web和移动应用程序,可以在不同的操作系统和浏览器上进行测试。
无论是Windows、Mac还是Linux,无论是IE、Chrome还是Firefox,QTP都能够进行自动化测试。
2. 强大的对象识别能力:QTP通过对象识别技术,能够自动识别应用程序中的各种对象,如按钮、文本框、下拉框等。
这使得测试人员可以方便地对应用程序进行操作和验证。
3. 灵活的关键字驱动方法:QTP使用关键字库来管理测试对象和测试步骤。
使用QTP测试标准Windows对象
使用QTP测试标准的Windows对象教学目的:教学内容:标准Windows对象是指基于Win32 API和MFC创建的应用程序。
一、Desktop对象的使用通过Desktop对象可以访问Windows的桌面顶层对象。
包括CaptureBitmap、ChildObjects、RunAnalog方法。
1.使用CaptureBitmap方法来截屏'把屏幕截图保存到指定文件Desktop.CaptureBitmap"d:\TestCaptureBitmap.bmp",true可以把屏幕对象的截屏保存为:.png或.bm图像文件,取决于文件的扩展名2.使用ChildObjects方法获取某个对象中包含的对象列表使用ChildObjects方法可以获取到某个测试对象中包含的所有对象。
如下面的脚本通过Desktop对象的ChildObjects方法获取当前桌面中所有名为“无标题-记事本”的窗口对象'创建描述对象Set objDesc = Description.Create()'指定为标题为“无标题-记事本”的对象objDesc("text").Value="无标题- 记事本"'通过Desktop对象的ChildObjects方法获取当前桌面中所有名为“无标题-记事本”的窗口Set ObjectCollection = Desktop.ChildObjects(objDesc)MsgBox ObjectCollection.Count3.使用RunAnalog方法运行低级录制过程QTP支持录制鼠标和键盘操作的低级过程,这种录制模式叫“Analog Recording”,如在QTP自带的Flight程序中,插入订票记录后,选择“File –> Fax Order”,对Agent Signature 中的签名,就可以用这种录制模式来录制签名的动作。
QTP基本测试流程
QTP基本测试流程⼆、录制Web应⽤程序并保存调试1.注意:启动QTP时,必须加载Web插件。
2.基本流程:(1)关闭杀毒软件、翻译类软件、被测系统(浏览器)。
(2)点击New,点击Record(3)在Record and Run Settings中:a.Web选项卡选择第⼆项,输⼊被测系统的⽹址;b.Windows Applications选择第⼀项;c.点击“确定”。
(4)如果有弹出框,点击Yes关闭它,再次点击Record。
(5)在⾃动启动的IE浏览器内操作被测系统的⽹页。
(6)点击Stop(7)保存后,点击Run,点击“确定”。
注意:运⾏前关闭浏览器,运⾏过程中不要⼲扰QTP。
(8)测试结果中Failed数是0代表运⾏正常。
3.说明:不建议使⽤⼿动启动录制Web应⽤程序,因为控件类型经常识别不准确。
案例:MTours,录制登录后退出登录、最后关闭浏览器的步骤。
保存为Test2003,运⾏调试。
练习:MTours,录制登录后先订票、退出登录、最后关闭浏览器的步骤。
保存为Test2004,运⾏调试。
三、QTP做⾃动化测试的基本流程1.制定测试计划2.准备测试⽤例3.录制脚本代码4.增强脚本代码5.调试脚本代码6.⽤于回归测试7.测试总结报告8.维护测试脚本四、QTP实现原理(对象仓库管理机制)1.⾯向对象的编程思想:(1)对象Object:世间万物皆对象,对象是客观实体的逻辑抽象。
(2)对象的属性Property:描述对象的性质(特性)的数据。
(3)对象的⽅法Method:对对象所作的动作。
2.QTP将控件识别为对象,存储在对象仓库(Object Repository)中,每个测试脚本代码录制后,我们就可以查看对象仓库的对象。
3.打开对象仓库:(1)QTP菜单:Resources=》Object Repository(2)快捷键:Ctrl+R4.QTP录制和回放的实现原理:---重在理解!(1)录制:封装测试对象,⽣成脚本a.获得录制时所操作到的控件的所有属性b.使⽤唯⼀的名称记录在对象仓库中c.记录所有属性值d.标识并单独记录关键属性值e.在脚本中记录测试对象,以及操作动作的⽅法,和使⽤的数据的参数值。
软件测试-使用QTP进行功能测试详解
软件测试-使用QTP进行功能测试详解QuickTest Professional是HP的功能测试工具之一。
目前,QuickTest Professional 与 HP 公司的另一功能测试工具 WinRunner 相比,优势已经开始越来越明显了,尤其是QuickTest Professional 对 Java 和.NET的支持,是 WinRunner 所无法媲美的,这也使QuickTest Professional赢得了越来越多的用户好评。
而HP也从商业角度出发,开始加大对QuickTest Professional的市场宣传,并将新推出的QuickTest Professional 网络试用版放在网络上供全球用户免费下载,下载量非常大。
种种迹象表明,HP 公司在尽量维持它庞大的WinRunner用户市场的同时,正通过不断增加产品功能和支持更多的开发环境等手段加大对QuickTest Professional的支持力度。
需要说明的是,QuickTest Professional在HP提供的相关文档中被简写为QuickTest,而国内用户更倾向于将其缩写为QTP。
使用QTP进行功能测试的测试过程包括如图1.1所示的几个阶段。
图1.1QTP的测试过程1.制定测试计划无论进行自动测试还是手工测试,在测试开始之前都要制定测试计划。
自动测试的测试计划是根据被测项目的具体需求,以及所使用的测试工具的自身特点而制定的,它完全用于指导自动测试过程。
QTP是一个功能测试工具,它主要帮助测试人员完成软件的功能测试,与其他测试工具一样,QTP不能完全取代测试人员的手工操作,但是在某些功能上,使用QTP的确能够替测试人员做很多工作。
在测试计划阶段,首先要做的就是分析被测应用和QTP本身的特点,决定对哪些功能点使用QTP进行测试,以及如何安排QTP进行测试。
对一个普通的应用程序来说,QTP应用在某些界面变化不大的回归测试中是非常有效的。
不说不知道:Windows7自带的计算器原来都那么酷?共6页文档
微软在 Windows 7 中新增了很多非常实用的功能,在这其中计算器也许算是最不起眼的一个角色。
但是这次Windows 7 中的计算器功能可绝不容小觑,微软的开发工程师对其进行大力“整修”,除了常规的计算功能之外,其中还包含了很多最新的实用功能。
真的不说不知道,原来Win7自带的计算器原来都已经那么酷了!它除了最基本的数学计算之外,已经增加了日期计算、单位换算、油耗计算、分期付款月供计算等等超实用的功能了。
接下来就列举一些简单案例,来对它们进行逐个介绍……相关链接:下载 Windows7 | 购买正版Win7日期计算有时候我们需要计算两个日期间隔的天数,即从现在起到某月某日,要经过几月几周几天。
举个例子,假设公司领导要求我们必须在下个月的18号递交工作报告,现在我们想知道离这个期限还有多长时间。
有了计算器的帮忙,事情就变得很简单,再也不用掐着手指慢慢算了。
只需在计算器窗口中单击“查看”菜单、“日期计算” 菜单项,然后在右侧详细窗格里输入目标日期,并单击“计算”按钮,即可得出结果,本例是还有2个星期零6天(共20天),如下图所示:图1日期计算单位转换Windows 7 计算器的单位转换功能也非常实用。
例如我们经常听到1克拉、1盎司等说法,但是未必每个人都很清楚这些“陌生” 的计重单位等于多少。
这时候我们可以打开计算器,并单击“查看”菜单、“单位转换”菜单项。
然后在右侧的详细窗格里选择要转换的单位类型,例如可以选择“重量/质量”,然后选择具体的待换算单位(例如是“克拉”),和目标单位(例如是“克”),再指定是多少克拉,结果马上会显示出来。
本例显示1克拉等于0.2克,如下图所示:图2 单位转换油耗计算对于车友们来说,Windows 7 自带的计算器也大有裨益,甚至还可以帮助我们计算油耗!方法很简单,只需单击“查看” 菜单、工作表、油耗(l/100km),如下图所示:图3 选中计算油耗假设我们作为驴友外出,一共开了480公里的路程,而共计加油40升,则可以很容易在计算器的右侧详细窗格里计算出实际油耗是8.33升/百公里,非常方便,如下图所示:图4 计算百公里油耗计算月供Windows 7 的计算器甚至还能帮助我们计算消费信贷的每月还款额,以确定应该选择哪个还款年限和贷款额度。
Win7计算器用法
Windows7里的“计算器”你真的会用吗?“计算器”是不同Windows版本中的必备工具,虽然功能单一,但的确是人们日常工作中不可缺少的辅助工具,本文就来谈谈它的使用。
一、标准型和科学型两种面板我们既可从Windows附件菜单中启动它,也可直接运行名为“CALC.EXE”的程序来启动它。
计算器有“标准型”和“科学型”两种面板视图,“标准型”面板(^31060301a^)相当于我们日常生活中所用的普通计算器,它能完成十进制数的加、减、乘、除及倒数、平方根等基本运算功能。
“科学型”面板(^31060301b^)相当于我们平时所说的函数型计算器,运算功能更强、更完善。
从“查看”菜单中选中相应项可方便地切换它们,面板中显示的值将在切换时被清除。
因此,如果不想丢失数据,就要用到“计算器”的存储功能。
具体操作如下:1.直接点击“MS”按钮,将当前显示值保存下来,同时在“MC”按钮上面方框中将显示“M”字样;2.进行计算时,再点击“MR”按钮即可将保存的值回读出来使用。
需注意的是,存储器中只能保存最近一次存入的数据。
二、常用按钮的用处如果按钮呈灰色,表示其当前不可用。
1.“CE”:清除当前显示的数值,此功能可用于修改错输的值,如要计算60×40,输入60后,点击“*”按钮,再输入第二个数,本来应输入40,但一不小心输成了77,没关系,单击一下“CE”按钮即将77清除,接着输入正确的值40,最后点击“=”按钮即完成计算。
2.“C”:清除所有的数据(包括输入的运算量、运算中间值或结果值),完成计算器的清零工作。
3.“ /-”:改变当前显示数据的正负。
4.“pi”:输入圆周率π的值。
选中“Inv”,再单击它,可输入2*pi(6.28…)。
5.“MC”:清除存储区中的值;“M ”:将当前显示的值与存储器中的值相加并保存结果,通过“MR”按钮可显示结果值。
6.“F-E”:打开或关闭科学计数法,对大于10^32的数总是以指数形式表示。
熟知Windows7多功能计时器应用
Win7中的计算器工具不仅可以进行一般的加减乘除计算,还能进行单位转换、两个日期之间的天数计算,甚至帮我们计算贷款和行车油耗。
或许你会对系统吧说的感觉很奇妙,很好奇,那你就来看看小编如何化腐朽为神奇吧!!单位转换Win7计算器的单位转换称得上是最实用的功能了,以后再对1盎司、1磅这样比较少见的单位感到不解的时候,就可以打开Win7中的计算器,点击“查看”菜单,选择“单位转换”,或直接按Ctrl-U快捷键,就可以在计算器右侧打开一个扩展窗口。
在“选择要转换的单位类型”下拉菜单中,可以选择你想要转换的单位类型,然后在下方选择要转换的具体单位名称,并输入要转换的数字,转换结果会马上显示出来。
计算日期我们经常需要计算两个日期间隔的天数,比如在计算还有多少天可以回家过年的时候。
用Win7计算器同样可以很快的帮你计算出来。
点击“查看”菜单,选择“日期计算”,在右侧的扩展窗口中输入开始和结束日期,然后点击“计算”按钮,结果就会马上显示。
计算油耗随着油价的逐日上涨,有车一族也都开始精打细算起来。
利用Win7计算器工具,可以帮你快速计算出汽车跑某个距离的实际油耗是多少,或者根据路程和加油量计算单位距离的油耗等等。
点击“查看”菜单,选择“工作表”下的“油耗(l/100 km)”,然后根据你的需要选择要计算的值,并输入已知数据,点击“计算”按钮显示结果。
计算房贷Win7的计算器甚至还能帮我们计算出每月要还多少贷款,这对将要贷款买房的朋友来说最为实用。
假设现在要购买一套价值100万人民币的房子,首付款为40万人民币,其他的费用采用公积金贷款。
以家庭月收入6千元人民币来计算,如果还款年限为30年,能否满足公积金贷款要求月还款额度不超过家庭月收入一半的硬性要求呢?对于这个复杂的计算,很多人可能一看到要求就开始头疼了。
但是如果利用Win7计算器,很快我们就能得到结果。
在“查看-工作表”中选择“抵押”,打开右侧的扩展窗口。
从详细窗格里选择“按月付款”,然后在“采购价”文本框里输入房子的购买总金额1,000,000,在“定金”文本框里输入房子的首付款400,000,在“期限”文本框输入还款年限30,在“利率(%)”文本框里输入公积金贷款利率4.9,然后点击“计算”按钮,即可计算出每月还款额是3184.36元,已经超出家庭月收入的一半。
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公司的员工。
Qt课题之科学计算器
QT课程作业设计题目:科学计算器小组成员:陈启敬 201113010409 刘阳 201113010405 何亚洲 201113010407 王勇 201113010404 黄昭宇 201113010421一、功能设计要求:特别声明:本程序系QT5编译制作科学计算器两种计算器模式:一个普通模式,一个科学模式。
参照windows7 的“计算器”程序说明:在查看菜单下有两个菜单项:“标准型”、“科学型”。
当用户选择标准型的时候,只有一个显示区,显示用户当前键入的数据或计算结果;当用户选择科学型的时候,有两个显示区,其中最上面有个显示用户当前键入的数据或计算的结果,也就是标准型的显示区,它的下面(MC 按钮的左边)有一个显示区用来显示当前用户临时保存在Memory 中的数据。
在编辑菜单下有“复制”和“粘贴”两个菜单项,其功能与 windows的计算器一样。
帮助菜单下有“关于计算器”菜单项,点击该菜单项时弹出一个对话框,显示版权信息(包含开发者名字、学号)。
功能介绍:对于计算器我们都很熟悉,在平常的生活中也经常用到。
本次设计的科学计算器不但可以计算普通的加减乘除运算,还可以对于三角函数,乘方,对数等一些运算。
二、详细的设计介绍1.界面设计界面设计我们是使用Qt creator进行设计的,首先创建QMainWindow(parent).ui,这个界面为QWidget。
然后在左侧的Widget Box找相应的控件添加到QMainWindow(parent)里。
然后添加相应的按钮,lineEdit控件作为算式显示窗口和结果显示窗口,pushButton作为相应数字和功能按钮等,并将它们的名称属性修改。
相应的属性修改:动作编辑器的设置:信号槽设置:设计出的界面如下:标准型:科学型:实现版权信息:界面的相关代码:#ifndef MAINWINDOW_H #define MAINWINDOW_H #include<QMainWindow>namespace Ui{class MainWindow;}class MainWindow:public QMainWindow {Q_OBJECTpublic:explicit MainWindow(QWidget*parent=0);~MainWindow();private slots://存储槽口void on_btnMjian_clicked();void on_btnMjia_clicked();void on_btnMS_clicked();void on_btnMR_clicked();void on_btnMC_clicked();void about();void copy();void paste();//标准型和科学型槽口void on_action_S_triggered();void on_action_T_triggered();//0-9槽函数的定义void on_btn1_clicked();void on_btn2_clicked();void on_btn3_clicked();void on_btn4_clicked();void on_btn5_clicked();void on_btn6_clicked();void on_btn7_clicked();void on_btn8_clicked();void on_btn9_clicked();void on_btn0_clicked();void on_btnPoint_clicked();//点void additiveOperatorClicked(QString);//加法器void multiplicativeOperatorClicked(QString);//乘法器//void kuohaoOperatorClicked(QString);//括号运算void on_btnBackspace_clicked();//退格void on_btnClear_clicked();//初始化void on_btnPlus_clicked();//符号的改变void on_btnCE_clicked();//清屏void on_btnSqrt_clicked();//开方void on_btnPercent_clicked();//百分号void on_btn_1_x_clicked();// 1/xvoid on_btnEql_clicked();//等于void clickbtn1(QString);//数字void clickbtn2(QString);//一元操作运算void on_btnAdd_clicked();//加void on_btnSubtract_clicked();//减void on_btnMultiply_clicked();//乘void on_btnDivide_clicked();//除void on_btnPi_clicked();//按键Pivoid on_btnLn_clicked();//按键Lnvoid on_btnSinh_clicked();//按键sinh void on_btnSin_clicked();//按键Sin void on_btnX_2_clicked();//按键X^2 void on_btnN_class_clicked();//按键N! void on_btnCosh_clicked();//按键Cosh void on_btnCos_clicked();//按键Cos void on_btnX_y_clicked();//按键x^y void on_btnX___y_clicked();//按键x√y void on_btnTanh_clicked();//按键tanh void on_btnTan_clicked();//按键tan void on_btnX_3_clicked();//按键x^3 void on_btnX___3_clicked();//按键3√x void on_btnExp_clicked();//按键evoid on_btnMod_clicked();//按键mod void on_btnLog_clicked();//按键log void on_btn10_x_clicked();//按键10^x void on_btnLkuo_clicked();//按键 ( void on_btnRkuo_clicked();//按键 )private:Ui::MainWindow*ui;QString B;//标记等号状态QString C;//标记一元操作状态QString D;//标记add运算符状态QString E;//标记mul运算符状态QString F;//标记x_y,x__yQString K;//标记括号状态QString M;//QString G;//标记x__yvoid abortOperation();//错误判断double sumInMemory;//记忆存储double sumSoFar;//加double factorSoFar;//乘double SoFar;//幂double kuohao;//括号QString pendingAdditiveOperator;QString pendingMultiplicativeOperator;QString pendingOperator1;QString kuoOperator;//括号操作bool calculate(double rightOperand,const QString&pendingOperator); };#endif// MAINWINDOW_H2.计算功能的设计2.1.关于计算机的初始化和相关版本的代码:#include"mainwindow.h"#include"ui_mainwindow.h"#include"QMessageBox"#include<math.h>//#define exp=2.71828//#define pi=3.14159MainWindow::MainWindow(QWidget*parent):QMainWindow(parent), ui(new Ui::MainWindow){ui->setupUi(this);ui->groupBox->hide();//科学计算框默认隐藏layout()->setSizeConstraint(QLayout::SetFixedSize);sumInMemory=0.0;//变量初始化sumSoFar=0.0;factorSoFar=0.0;SoFar=0.0;B="0";C="0";K="0";ui->lineEdit->setText("0");ui->lineEdit->setReadOnly(true);//将文本编辑框设置为不可更改ui->lineEdit->setAlignment(Qt::AlignRight);//设置成右对齐ui->lineEdit_2->setReadOnly(true);//将文本编辑框设置为不可更改QFont font=ui->lineEdit->font();//设置字体font.setPointSize(font.pointSize()+6);ui->lineEdit->setFont(font);}MainWindow::~MainWindow(){delete ui;}void MainWindow::about()//关于计算器(A){QMessageBox::about(this,tr("关于计算器(A)"),tr("<b>版本号:</b> v1.0.0.0<li>""<b>开发者:</b> 陈启敬 201113010409<li>""<div align=right>刘阳 201113010405</div>""<div align=right>何亚洲 201113010407</div>""<div align=right>王勇 201113010404</div>""<div align=right>黄昭宇 201113010421</div>")); }2.2.数字按键、等号等按钮代码:void MainWindow::on_btnEql_clicked()//按键=号{if(!ui->lineEdit_2->text().contains("=")){double operand=ui->lineEdit->text().toDouble();QString A=ui->lineEdit->text();if(!pendingOperator1.isEmpty()){calculate(operand,pendingOperator1);operand=SoFar;SoFar=0.0;pendingOperator1.clear();}if(!pendingMultiplicativeOperator.isEmpty()){if(!calculate(operand,pendingMultiplicativeOperator)) {abortOperation();return;}operand=factorSoFar;factorSoFar=0.0;pendingMultiplicativeOperator.clear();}if(!pendingAdditiveOperator.isEmpty()){if(!calculate(operand,pendingAdditiveOperator)) {abortOperation();return;}pendingAdditiveOperator.clear();}else{sumSoFar=operand;}ui->lineEdit->setText(QString::number(sumSoFar));if(K!="1"){if(C!="1")ui->lineEdit_2->setText(ui->lineEdit_2->text()+A+"="+QString::number(sumSoFar));else ui->lineEdit_2->setText(ui->lineEdit_2->text()+"="+QString::number(sumSoFar));}else ui->lineEdit_2->setText(ui->lineEdit_2->text()+"="+QString::number(sumSoFar));sumSoFar=0.0;B="1";C="0";}}//0-9槽函数void MainWindow::on_btn0_clicked()//0号键的槽函数{clickbtn1("0");}void MainWindow::on_btn1_clicked()//1号键的槽函数{clickbtn1("1");}void MainWindow::on_btn2_clicked()//2号键的槽函数{clickbtn1("2");}void MainWindow::on_btn3_clicked()//3号键的槽函数{clickbtn1("3");}void MainWindow::on_btn4_clicked()//4号键的槽函数{clickbtn1("4");}void MainWindow::on_btn5_clicked()//5号键的槽函数{clickbtn1("5");}void MainWindow::on_btn6_clicked()//6号键的槽函数{clickbtn1("6");}void MainWindow::on_btn7_clicked()//7号键的槽函数{clickbtn1("7");}void MainWindow::on_btn8_clicked()//8号键的槽函数{clickbtn1("8");}void MainWindow::on_btn9_clicked()//9号键的槽函数{clickbtn1("9");}void MainWindow::on_btnPoint_clicked()//Point键的槽函数{if(!ui->lineEdit->text().contains("."))ui->lineEdit->setText(ui->lineEdit->text()+tr("."));}void MainWindow::on_btnBackspace_clicked()//backspace槽函数的定义{QString operand=ui->lineEdit->text();operand.chop(1);if(operand.isEmpty()){operand="0";}ui->lineEdit->setText(operand);}void MainWindow::on_btnCE_clicked()//按键CE=清楚屏幕{ui->lineEdit->setText("0");}2.3.计算槽的相关代码:bool MainWindow::calculate(double rightOperand,const QString &pendingOperator)//计算槽,栈{if(pendingOperator==tr("+")){sumSoFar+=rightOperand;}else if(pendingOperator==tr("-")){sumSoFar-=rightOperand;}else if(pendingOperator==tr("*")){factorSoFar*=rightOperand;}else if(pendingOperator==tr("/")){if(rightOperand==0.0)return false;factorSoFar/=rightOperand;}else if(pendingOperator==tr("x_y")){SoFar=pow(SoFar,rightOperand);}else if(pendingOperator==tr("x__y")){if(rightOperand<=0.0)return false;SoFar=pow(rightOperand,1.0/SoFar);}return true;}void MainWindow::clickbtn1(QString btn)//按键数字{if(ui->lineEdit->text()=="0"){ui->lineEdit->setText(btn);}else if(!pendingOperator1.isEmpty()){if(F!="0"){ui->lineEdit->setText(btn);F="0";}else ui->lineEdit->setText(ui->lineEdit->text()+btn);}else if(!pendingMultiplicativeOperator.isEmpty()){if(D!="0"){ui->lineEdit->setText(btn);D="0";}else ui->lineEdit->setText(ui->lineEdit->text()+btn); }else if(!pendingAdditiveOperator.isEmpty()){if(E!="0"){ui->lineEdit->setText(btn);E="0";}else ui->lineEdit->setText(ui->lineEdit->text()+btn); }else{if(B!="1")ui->lineEdit->setText(ui->lineEdit->text()+btn);else{ui->lineEdit->setText(btn);B="0";}}}2.4.一元操作运算的相关代码:void MainWindow::clickbtn2(QString btn)//一元操作运算{double operand=ui->lineEdit->text().toDouble(); double result=0.0;if(btn==tr("Sqrt")){if(operand<0.0){abortOperation();return;}result=sqrt(operand);}else if(btn==tr("x__3")){if(operand<0.0){abortOperation();return;}result=pow(operand,1.0/3.0); }else if(btn==tr("pi")){result=3.14159;}else if(btn==tr("exp")){result=2.71828;}else if(btn==tr("x_2")){result=pow(operand,2.0); }else if(btn==tr("10_x")){result=pow(10.0,operand); }else if(btn==tr("x_3")){result=pow(operand,3.0); }else if(btn==tr("%")){result=operand/100.0;}else if(btn==tr("1/x")){if(operand==0.0){abortOperation();return;}result=1.0/operand;}else if(btn==tr("ln")){if(operand<0.0){abortOperation();return;}result=log(operand);QString str=QString::number(result,'f',4);result=str.toDouble();}else if(btn==tr("log10")){if(operand<0.0){abortOperation();return;}result=log10(operand);}else if(btn==tr("n!")){int i,j=1;if(operand>0.0){for(i=2;i<=operand;i++){j*=i;}result=j;}else if(operand<0.0){abortOperation();return;}else result=1;}else if(btn==tr("sinh")){result=sinh(operand);}else if(btn==tr("sin")){double a=operand/57.1158;result=sin(a);QString str=QString::number(result,'f',2);result=str.toDouble();}else if(btn==tr("cosh")){result=cosh(operand);}else if(btn==tr("cos")){double a=operand/57.1158;result=cos(a);QString str=QString::number(result,'f',2);result=str.toDouble();}else if(btn==tr("tanh")){result=tanh(operand);}else if(btn==tr("tan")){double a=operand/57.1158;result=tan(a);QString str=QString::number(result,'f',2);result=str.toDouble();}ui->lineEdit->setText(QString::number(result));}void MainWindow::abortOperation()//abortOperation的定义{on_btnClear_clicked();ui->lineEdit->setText(tr("Error"));}2.5.计算器运算实现代码:void MainWindow::additiveOperatorClicked(QString clickedOperator)//加法器{double operand=ui->lineEdit->text().toDouble();double A=ui->lineEdit->text().toDouble();if(!pendingOperator1.isEmpty()){calculate(operand,pendingOperator1);operand=SoFar;ui->lineEdit->setText(QString::number(SoFar));SoFar=0.0;//pendingOperator1.clear();}if(!pendingMultiplicativeOperator.isEmpty()){if(!calculate(operand,pendingMultiplicativeOperator)) {abortOperation();return;}ui->lineEdit->setText(QString::number(factorSoFar));operand=factorSoFar;factorSoFar=0.0;//pendingMultiplicativeOperator.clear();}if(!pendingAdditiveOperator.isEmpty()){ui->lineEdit_2->setText(ui->lineEdit_2->text()+QString::number(A)+clickedOperator);if(!calculate(operand,pendingAdditiveOperator)){abortOperation();return;}ui->lineEdit->setText(QString::number(sumSoFar));}else{sumSoFar=operand;if(!pendingOperator1.isEmpty()){ui->lineEdit_2->setText(ui->lineEdit_2->text()+QString::number(A)+clickedOperator);}else if(!pendingMultiplicativeOperator.isEmpty()){ui->lineEdit_2->setText(ui->lineEdit_2->text()+QString::number(A)+clickedOperator);}else{if(K!="0"){ui->lineEdit_2->setText(ui->lineEdit_2->text()+QString::number(operand)+clickedOperator);}else ui->lineEdit_2->setText(QString::number(operand)+clickedOperator);}}pendingMultiplicativeOperator.clear();pendingOperator1.clear();E="1";pendingAdditiveOperator=clickedOperator;}void MainWindow::multiplicativeOperatorClicked(QString clickedOperator)//乘法器{double operand=ui->lineEdit->text().toDouble();double A=ui->lineEdit->text().toDouble();if(!pendingOperator1.isEmpty()){calculate(operand,pendingOperator1);operand=SoFar;ui->lineEdit->setText(QString::number(SoFar));SoFar=0.0;//pendingOperator1.clear();}if(!pendingMultiplicativeOperator.isEmpty()){ui->lineEdit_2->setText(ui->lineEdit_2->text()+QString::number(A)+clickedOperator);if(!calculate(operand,pendingMultiplicativeOperator)) {abortOperation();return;}ui->lineEdit->setText(QString::number(factorSoFar));}else{factorSoFar=operand;if(!pendingOperator1.isEmpty()){ui->lineEdit_2->setText(ui->lineEdit_2->text()+QString::number(A)+clickedOperator);}else if(!pendingAdditiveOperator.isEmpty()){ui->lineEdit_2->setText(ui->lineEdit_2->text()+QString::number(A)+clickedOperator);}else{if(K!="0"){ui->lineEdit_2->setText(ui->lineEdit_2->text()+QString::number(operand)+clickedOperator);}else ui->lineEdit_2->setText(QString::number(operand)+clickedOperator);}}pendingOperator1.clear();pendingMultiplicativeOperator=clickedOperator;D="1";}//MC,MR,MS,M+,M-槽的定义void MainWindow::on_btnMC_clicked()//按键MC=memory clear {sumInMemory=0.0;ui->lineEdit_2->setText("M=0");//edit_2显示存储中的数据ui->lineEdit->setText("0");}void MainWindow::on_btnMR_clicked()//按键MR=memory read{C="1";ui->lineEdit->setText(QString::number(sumInMemory));QString M=QString::number(sumInMemory);if(!pendingAdditiveOperator.isEmpty()||!pendingMultiplicativeOperator.isEmpty ()){ui->lineEdit_2->setText(ui->lineEdit_2->text()+M);}else ui->lineEdit_2->setText("M="+QString::number(sumInMemory));}void MainWindow::on_btnMS_clicked()//按键MS=memory save{on_btnEql_clicked();sumInMemory=ui->lineEdit->text().toDouble();ui->lineEdit_2->setText("M="+QString::number(sumInMemory));//edit_2显示存储中的数据}void MainWindow::on_btnMjia_clicked()//按键M+{on_btnEql_clicked();sumInMemory+=ui->lineEdit->text().toDouble();ui->lineEdit_2->setText("M="+QString::number(sumInMemory));//edit_2显示存储中的数据}void MainWindow::on_btnMjian_clicked()//按键M-{on_btnEql_clicked();sumInMemory-=ui->lineEdit->text().toDouble();ui->lineEdit_2->setText("M="+QString::number(sumInMemory));//edit_2显示存储中的数据}void MainWindow::on_btnAdd_clicked()//+号键{additiveOperatorClicked("+");C="0";if(B!="0"){ui->lineEdit_2->setText(ui->lineEdit->text()+"+");}}void MainWindow::on_btnSubtract_clicked()//-号键{additiveOperatorClicked("-");C="0";if(B!="0"){ui->lineEdit_2->setText(ui->lineEdit->text()+"-");}//else ui->lineEdit_2->setText(ui->lineEdit->text()+"-"); }void MainWindow::on_btnMultiply_clicked()//*号键{multiplicativeOperatorClicked("*");C="0";if(B!="0"){ui->lineEdit_2->setText(ui->lineEdit->text()+"*");}}void MainWindow::on_btnDivide_clicked()///号键{multiplicativeOperatorClicked("/");C="0";if(B!="0"){ui->lineEdit_2->setText(ui->lineEdit->text()+"/");}}void MainWindow::on_btnPlus_clicked()//按键正负{QString operand=ui->lineEdit->text();double value=operand.toDouble();if(value>0.0){operand.prepend(tr("-"));}else if(value<0.0){operand.remove(0,1);}ui->lineEdit->setText(operand);}void MainWindow::on_btnSqrt_clicked()//按键开方{C="1";QString A=ui->lineEdit->text();if(!pendingAdditiveOperator.isEmpty()||!pendingMultiplicativeOperator.isEmpty ()){ui->lineEdit_2->setText(ui->lineEdit_2->text()+"√("+A+")");}else ui->lineEdit_2->setText("√("+A+")");clickbtn2("Sqrt");}void MainWindow::on_btnPercent_clicked()//按键%{C="1";QString A=ui->lineEdit->text();if(!pendingAdditiveOperator.isEmpty()||!pendingMultiplicativeOperator.isEmpty ()){ui->lineEdit_2->setText(ui->lineEdit_2->text()+A+"%");}else ui->lineEdit_2->setText(A+"%");clickbtn2("%");}void MainWindow::on_btn_1_x_clicked()//按键1/x{clickbtn2("1/x");}void MainWindow::on_btnPi_clicked()//按键pi{C="1";if(!pendingAdditiveOperator.isEmpty()||!pendingMultiplicativeOperator.isEmpty ()){ui->lineEdit_2->setText(ui->lineEdit_2->text()+"π");}else ui->lineEdit_2->setText("π");clickbtn2("pi");}void MainWindow::on_btnLn_clicked()//按键ln{C="1";QString A=ui->lineEdit->text();if(!pendingAdditiveOperator.isEmpty()||!pendingMultiplicativeOperator.isEmpty ()){ui->lineEdit_2->setText(ui->lineEdit_2->text()+"ln"+A);}else ui->lineEdit_2->setText("ln"+A);clickbtn2("ln");}void MainWindow::on_btnSinh_clicked()//按键sinh{C="1";QString A=ui->lineEdit->text();if(!pendingAdditiveOperator.isEmpty()||!pendingMultiplicativeOperator.isEmpty ()){ui->lineEdit_2->setText(ui->lineEdit_2->text()+"sinh("+A+")");}else ui->lineEdit_2->setText("sinh("+A+")");clickbtn2("sinh");}void MainWindow::on_btnSin_clicked()//按键sin{C="1";QString A=ui->lineEdit->text();if(!pendingAdditiveOperator.isEmpty()||!pendingMultiplicativeOperator.isEmpty ()){ui->lineEdit_2->setText(ui->lineEdit_2->text()+"sin("+A+")");}else ui->lineEdit_2->setText("sin("+A+")");clickbtn2("sin");}void MainWindow::on_btnX_2_clicked()//按键x^2{C="1";QString A=ui->lineEdit->text();if(!pendingAdditiveOperator.isEmpty()||!pendingMultiplicativeOperator.isEmpty ()){ui->lineEdit_2->setText(ui->lineEdit_2->text()+A+"^");}else ui->lineEdit_2->setText(A+"^"+"2");clickbtn2("x_2");}void MainWindow::on_btnN_class_clicked()//按键n!{C="1";QString A=ui->lineEdit->text();if(!pendingAdditiveOperator.isEmpty()||!pendingMultiplicativeOperator.isEmpty ()){ui->lineEdit_2->setText(ui->lineEdit_2->text()+A+"!");}else ui->lineEdit_2->setText(A+"!");clickbtn2("n!");}void MainWindow::on_btnCosh_clicked()//按键cosh{C="1";QString A=ui->lineEdit->text();if(!pendingAdditiveOperator.isEmpty()||!pendingMultiplicativeOperator.isEmpty ()){ui->lineEdit_2->setText(ui->lineEdit_2->text()+"cosh("+A+")");}else ui->lineEdit_2->setText("cosh("+A+")");clickbtn2("cosh");}。
Windows7里的计算器
Windows7里的“计算器”你真的会用吗?2013年3月29日星期五syqq蓝天如果有人不知道Windows7中的计算器在哪里?这个你相信吗?你不行,我信!我有一个同学,还是经常做业务工作的,他就曾经问我,计算器在什么位置?何况一般的人员呢。
那么我现在告诉你打开的方法:开始—所有程序—附件—计算器。
而对于经常使用这个计算器的人,也未必知道,其实w7系统自带的计算器可以表达式计算的!当然还有更多的功能,下面我就谈一下w7中的计算器的用法。
一、面板形式我们从Windows附件菜单中启动它以后,可以点击计算器上的菜单查看按钮。
计算器有“标准型”、“科学型”、“程序员”和“统计信息”这四种面板视图,“标准型”面板相当于我们日常生活中所用的普通计算器,它能完成十进制数的加、减、乘、除及倒数、平方根等基本运算功能。
“科学型”面板相当于我们平时所说的函数型计算器,运算功能更强、更完善。
而“程序员”和“统计信息”更专业。
从“查看”菜单中选中相应项可方便地切换它们,面板中显示的值将在切换时被清除。
因此,如果不想丢失数据,就要用到“计算器”的存储功能。
具体操作如下:1.直接点击“MS”按钮,将当前显示值保存下来,同时在“MC”按钮上面方框中将显示“M”字样;2.进行计算时,再点击“MR”按钮即可将保存的值回读出来使用。
需注意的是,存储器中只能保存最近一次存入的数据。
二、常用按钮的用处如果按钮呈灰色,表示其当前不可用。
1.“CE”:清除当前显示的数值,此功能可用于修改错输的值,如要计算60×40,输入60后,点击“*”按钮,再输入第二个数,本来应输入40,但一不小心输成了77,没关系,单击一下“CE”按钮即将77清除,接着输入正确的值40,最后点击“=”按钮即完成计算。
2.“C”:清除所有的数据(包括输入的运算量、运算中间值或结果值),完成计算器的清零工作。
3.“ +/-”:改变当前显示数据的正负。
4.“π”:输入圆周率π的值。
精品QTP资料第2讲上机练习
第2讲上机练习一、标准检查点:1、两位数加法计算器,分别检查100+10和10+100时的错误提示信息是否正确(1)先录制、后插入检查点(在Active Screen中插入)(2)在录制过程中插入检查点(3)修改源代码,再次运行练习2脚本(4)先录制一个正确的计算,如20+30,然后设定检查点,检查结果是否正确。
2、测试Windows计算器,计算2开方再平方,再减2,检查结果是否为0(注意在计算器中是0. )二、文本检查点三、文本域检查点四、图像检查点五、Access数据库检查点练习1、中介管理系统对增加教师信息、增加学生信息、增加用户进行数据库检查点设置要求:(1)三个检查点放在同一个脚本中(2)使用同一个数据源即可登陆用户名:001密码:001注意:日历控件不录2、凝聚力体育商城对用户注册功能做数据库检查点注意:数据库放在网站文件夹的data文件夹中,表名:userinfo3、留言板对用户留言功能做数据库检查点六、SQLServer数据库检查点练习1、进销存管理系统对添加商品信息和添加客户信息设置数据库检查点添加商品信息对应的表:商品清单添加客户信息对应的表:客户清单要求:(1)两个检查点放在同一个脚本中(2)使用同一个数据源即可提示:(1)有些计算机中登陆时录制的步骤不正确,需要手动修改代码如下:SwfWindow("用户登录").SwfEdit("txt_ID").Set "1"SwfWindow("用户登录").SwfEdit("txt_Pwd").SetSecure "4f96c2dbf94a56e41ff4195a"SwfWindow("用户登录").SwfButton("登录").Click(2)在添加商品信息和客户信息时,最后一个单元格数据可能录不上,需要手动添加2、医院管理系统对添加药品信息设置数据库检查点(对应的表:药品资料)。
win7下qt安装及测试
1,先下载最新版的Qt Creator :/downloads/qt-creator-binary-for-windows 我的版本qt-creator-win-opensource-2.4.1双击安装,默认c:\Qt\,我也是。
2、在下载 SDK/downloads/windows-cpp我的版本qt-win-opensource-4.8.1-mingw双击安装,默认c:\Qt\指定mingw 在Qtcreator的mingw目录。
安装完如下:3、设置环境变量:我的电脑—属性—高级—环境变量,打开,在***用户(U)添加三条如下:PATHc:\Qt\qtcreator-2.4.1\mingw\bin;c:\Qt\4.8.1\binQMAKESPECc:\Qt\4.8.1\mkspecs\win32-g++QTDIRc:\Qt\4.8.1附图:弄完后重启或注销一下4、打开qt终端,执行命令检查是否成功:在命令行模式下分别输入输入gcc –vmake –vQmake-v看看能否找到附图:表明成功了,可以写程序了。
5,、简单程序:如果一切ok,可以在d盘下新建一个目录测试cd /d d: (这个win7就是很贱非要加上一个选项/d)cd test建立一个clock.cpp文件一个clock.h文件,内容如下面三个文件在命令行输入qmake -projectqmakemake然后就可以执行生成的文件test.exe了,还有如果不执行上面的环境变量会造成在qtcreate里面可以编译成功但是如果你直接到目录下找到那个exe文件执行时候会提示找不到wingw10.dll(妈的可恨,本文也是主要解决这个问题来着)...............................cd debugtest.exe最终效果是://clock.h#ifndef CLOCK_H#define CLOCK_H#ifndef ALARM_H#define ALARM_H#include<QApplication>#include<QTimer>#include<QLCDNumber>#include<QLabel>#include <QVariant>#include<QTimeEdit>#include<QPushButton>#include<QDialog>#include <QMessageBox>#include<QSystemTrayIcon>#include<QAction>#include<QMenu>class Clock:public QDialog{Q_OBJECTpublic:Clock(QWidget * parent=0);void init();void layout();void clock_connect();//connectvoid closeEvent(QCloseEvent *event); public slots:void clockChange();void mini();private:QTimer * timer;QLCDNumber * lcdNumber;//显示当前时间QPushButton *button;QSystemTrayIcon *trayIcon;QAction * restoreAct;QAction * quitAct;QMenu * trayIconMenu;//QRect rect;};#endif#endif // CLOCK_H//clock.cpp#include"clock.h"Clock::Clock(QWidget * parent):QDialog(parent) {init();layout();clock_connect();void Clock::init(){setWindowTitle("Clock");//设置标题setFixedSize(QSize(200,60));//固定大小timer=new QTimer;//控制lcd的时间刷新lcdNumber=new QLCDNumber;//显示当前时间lcdNumber->setFixedSize(QSize(150,50));//固定大小lcdNumber->setNumDigits(8);//显示八个数字,默认是显示5个数字lcdNumber->display(QTime::currentTime().toString("hh:mm:ss"));//设置格式,还有其他形式的button=new QPushButton("Quit");trayIcon=new QSystemTrayIcon;trayIcon->show();trayIcon->setIcon(QIcon("./images/qme.ico"));restoreAct=new QAction(QString::fromLocal8Bit("Show Clock"),this); //先定义然后在被trayIcon引用..... quitAct=new QAction(QString::fromLocal8Bit("Quit"),this);trayIconMenu=new QMenu;trayIconMenu->addAction(restoreAct);trayIconMenu->addAction(quitAct);trayIcon->setContextMenu(trayIconMenu);void Clock::layout(){lcdNumber->setParent(this);lcdNumber->show();button->setParent(this);button->move(160,10);button->resize(30,20);button->show();};void Clock::clock_connect(){connect(timer,SIGNAL(timeout()),this,SLOT(clockChange())); timer->start(1000);connect(button,SIGNAL(clicked()),this,SLOT(mini()));};// **************// 显示变化的时间// **************void Clock::clockChange()lcdNumber->display(QTime::currentTime().toString("hh:mm:ss"));}void Clock::mini(){hide();}void Clock::closeEvent(QCloseEvent *event){QMessageBox::information(0,"Quit","Are you sure exit the Application!"); }//end//main.cpp#include"clock.h"#include<QApplication>int main(int argc,char *argv[]){QApplication app(argc,argv);Clock clock;clock.show();return app.exec(); };//end。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
手动录制一个windows计算器的两个整数的加法
录制脚本
Window("计算器").WinButton("Button").Click
Window("计算器").WinButton("Button_2").Click
Window("计算器").WinButton("Button_3").Click
Window("计算器").WinButton("Button_4").Click
Window("计算器").Close
test Result结果截图
修改脚本,将两个加数、运算符参数化
1.录制脚本
Window("计算器").WinButton("Button").Click
Window("计算器").WinButton("Button_2").Click
Window("计算器").WinButton("Button_3").Click
Window("计算器").WinButton("Button_4").Click
Window("计算器").Close
2.将数据源参数化
3.手动选择修改按键
4.通过脚本修改数据
5.输出结果
6. test Result结果截图
插入检查单
录制脚本
Window("计算器").WinButton("Button").Click
Window("计算器").WinButton("Button_2").Click
Window("计算器").WinButton("Button_3").Click
Window("计算器").WinButton("Button_4").Click
Window("计算器").WinButton("Button_4").Check CheckPoint("Button_4") Window("计算器").Close
test Result结果截图。