计算器黑盒测试实验报告

合集下载

黑盒子实验报告_设计性实验

黑盒子实验报告_设计性实验

设计性实验黑盒子实验报告一、实验任务盒里的元件可能是:干电池、定值电阻、电容器、半导体二极管。

盒外可见的两接线端之间也可能为断路或短路的情况。

各元件连接在接线端(或插座)上,两个接线端(或插座)之间装接一个元件,元件之间不连成并联回路。

要求设计实验方案和检测步骤,判定盒内元件。

1.学习依据不同类型电学元件的特性对元件进行判别;2.进一步熟悉数字万用表等电学仪表的使用;3.根据实验室提供的仪器自行设计方案,检测黑盒子内元器件类型和位置,再进一步确定元件的物理量数值。

二、实验要求自行设计合理而又简捷的程序,对给出的黑盒子进行测试,判定盒中元件类型,并写出测试记录和作出判定的依据,对于电池,要判定其正负极,并测出其电动势,对于二极管,要判定其正负极,并测出二极管的正向导通压降,如果判断元件为电容和电阻,要求测出其数值。

(实验过程不得自行打开盒子)1、根据实验任务,查阅有关资料。

2、自拟实验步骤和直接测量数据的记录表格。

3、选择实验仪器(型号或规格)。

4、对实验方案作可行性报告分析。

5、根据设计实验方案,将测量的数据填入表中,正确写出实验测量结果。

6、对实验结果进行比较、分析、讨论。

三、实验仪器5JK 型暗盒实验箱、直流稳压电源、数字式万用表、电阻箱、开关、导线 四、实验内容1.判断有无干电池:可用电压表测两接线柱间电压,若有一定电图11 211 3 45 6 7 89 10 11 1213 14 15 16压,可确定为干电池,如当电压表接通时指针稍有摆动而又回到零位,则是电池与电容串联。

2判断有无二极管:设计电路如图,将电源与直流电流表串联,并串联一个定值电阻R,将导线连接两端钮,观察电流表读数,再交换连接两端钮,观察电流表读数,若两次读数,一次几乎为0,一次有一定的读数,可确定为二极管,并根据读数可确定二极管正负。

3.判断有无电容:当黑盒子两端钮间有电容C存在时,可用直流电源串联直流电压表或直流电流表接到两端钮。

黑盒测试技术实验报告(最终5篇)

黑盒测试技术实验报告(最终5篇)

黑盒测试技术实验报告(最终5篇)第一篇:黑盒测试技术实验报告黑盒测试技术—三角形问题实验报告一、问题描述输入三个整数a、b、c,分别作为三角形的三条边,通过程序判断这三条边是否能构成三角形?如果能构成三角形,则判断三角形的类型并输出(等边三角形、等腰三角形、一般三角形),如果不构成三角形输出不能构成三角形。

要求:(1)输入三个整数a、b、c,必须满足以下条件:1≤a≤200;1≤b≤200;1≤c≤200。

(2)容错处理:输入空值的提示;输入的值满足类型的提示;(3)不限制开发环境,不限制开发语言;(4)尽可能不对自己的程序进行测试设计。

(5)请分别采用边界值分析法、等价类分析法、决策表分析法、基于场景分析法设计测试用例;(6)正文格式(除源代码用小五号单倍行距),其他行距固定值 20,字号小四。

二、程序主要源代码(标注:测试的源代码是哪位同学(学号姓名)编写的。

)三、程序界面(截图)四、设计测试用例1.用边界值测试方法设计测试用例用边界值分析法设计测试用例,按照下列步骤进行:((1)分析各变量取值三角形三条边的取值范围都是1-200,所以边长A 的边界点为 1 和 200,边长 B的边界点为 1 和 200,边长 C 的边界点为 1 和 200。

((2)测试用例数输入条件边界值测试数据 A 1,200 0,1,2,199,200,201 B 1,200 0,1,2,199,200,201 C 1,200 0,1,2,199,200,201设计测试用例(给出所有测试用例)三角形问题的测试用例测试用例编号输入数据预期输出测试结果 a b c 1 0 100 100 边长 A 不合法边长 A 不合法1 100 100 等腰三角形等腰三角形 3 2 100 100 等腰三角形等腰三角形 4 199 100 100 等腰三角形等腰三角形 5 200 100 100 不是三角形不是三角形 6 201 100 100 边长 A 不合法边长 A 不合法100 0 100 边长 B 不合法边长 B 不合法100 1 100 等腰三角形等腰三角形 9 100 2 100 等腰三角形等腰三角形 10 100 199 100 等腰三角形等腰三角形 11 100 200 100 不是三角形不是三角形 12 100 201 100 边长 B 不合法边长 B 不合法100 100 0 边长 C 不合法边长 C 不合法100 100 1 等腰三角形等腰三角形 15 100 100 2 等腰三角形等腰三角形 16 100 100 199 等腰三角形等腰三角形 17 100 100 200 不是三角形不是三角形181****0201边长 C 不合法边长 C 不合法2.用等价类测试方法设计测试用例((1)首先分析题目中给出的条件和隐含的输入要求,输入条件如下:条件:1<=边长 A<=200,1<=边长 B<=200,1<=边长 C<=200 隐含条件:A输入条件有效等价类无效等价类是否是三角形1.1<=A<=2002.1<=B<=2003.1<=C<=2004.A200 8.B<1 || B>200 9.C<1 ||C>200 10.A>=B+C 11.B>=A+C 12.C>=A+B 等腰三角形13.A=B&&B!=C 14.A=C&&C!=B 15.B=C&&C!=A 16.A!=B&&A!=C&&B!=C 等边三角形17.A=B=C 18.A!=B 19.A!=C 20.B!=C(3)设计测试用例,覆盖上表中的等价类,如表1-3 表所示。

简单计算器—实训报告

简单计算器—实训报告

Linux应用与编程实习报告学院名称专业班级学生姓名学号指导教师山东科技大学一、实习题目: B2-简单计算器二、实习时间:19周~ 20周实习地点: J13- 128三、实习任务:实现一个简单计算器,计算器包括加、减、乘、除四种运算。

用户通过鼠标进行数据输入,输入的数据以及计算结果显示在文本框中四、小组分工说明:独立完成五、实习成绩六、指导教师对实习的评语:指导教师(签章):2015年月日目录1. 概述 -------------------------------------------------------- 42. 相关技术 -------------------------------------------------- 42.1 QT中信号和槽 -------------------------------------- 42.2 字符串输出数据组 -------- 错误!未定义书签。

3. 需求分析 -------------------------------------------------- 54. 总体设计与详细设计 ----------------------------------- 54.1 系统模块划分 --------------------------------------- 54.2 主要功能模块 --------------------------------------- 55. 编码实现 -------------------------------------------------- 6 6.测试情况说明------------------------------------------- 157. 实训中遇到的主要问题及解决方法 ---------------- 168. 实训收获与体会 ---------------------------------------- 161. 概述1.1 实训项目简介本次实训项目是应用Linux系统中的QT编译器编写一个界面简洁,操作简单的简易计算器。

计算器黑盒测试实验报告

计算器黑盒测试实验报告

西实科技验报算告?实验名称计算器黑盒测试I实验地点____________________实验日期_______________指导教师__________________学生班级________________学生姓名__________________学生学号_________________提交日期软件教研室制一、测试目的设计测试用例、使用各种测试方法进行计算器的测试,并对测试结果进行分析二、测试内容1•软件说明:实现一个小的计算器程序,只需要完成加、减、乘、除运算,设计测试用例,并对测试结果进行分析,同时计算器运行稳定。

2、设计测试用例3、执行测试4、测试结果分析5、源代码三、测试步骤(一)、计算器界面2、设计测试用例(1)等价类测试:1、4个等价类测试用例的分析过程如下:2、对应测试的结果分析: 整型:1.加(55+50)2.减(78-24)3.乘(15*25)4.除(36/4)小数1.加(25.3+12.7)2.减(14.3-11.7)3.乘(25.6*12.8)4.除(50.2/20.7)负数6.加-20+-217.减(-15)-(-14)8.乘-12*-129.除-16/-5(其中算式写法错误导致正常运算错误)无效输入1.加(E1+t2):程序中无效数字无法正常输入,程序无法进行。

2.减(G4-k5)程序中无效数字无法正常输入,程序无法进行。

(同上)3.乘(I5*l6)程序中无效数字无法正常输入,程序无法进行。

(同上)4.除(Ff/se)程序中无效数字无法正常输入,程序无法进行。

(同上)简易计食器1、计算器4个标准等价类测试用例的分析过程如下:测试用例被加数加数预期输出Testi 0 10 正常运算Test2 1 10 正常运算Test3 40 10 正常运算Test4 55.5 10 正常运算Test5 -70 10 正常运算Test6 10 10 正常运算Test7 101 10 正常运算Test8 10 0 不能运算Test9 10 1 正常运算Test10 10 40 正常运算Testil 10 55.5 正常运算Test12 10 -78 正常运算Test13 10 100 正常运算2、对应测试与结果:测试结果运算均属正常,对应的部分的示图如下:Testi结果:Test2结果:Test3结果:Test4结果:Test5结果:Test6结果:减法:1、计算器4个标准等价类测试用例的分析过程如下:2、对应测试与结果:测试结果运算均属正常,对应的部分的示图如下:Testi结果:Test3结果:Test4结果:Test5结果:Test6结果:乘法1、计算器42、对应测试与结果:测试结果运算均属正常,对应的部分的示图如下:Testi结果:Test3结果:Test4结果:Test5结果:Test6结果:除法1、计算器4个标准等价类测试用例的分析过程如下:测试用例被除数除数预期输出Test2结果:Test3结果:Test8结果:附录:源代码CCalculateDlg::CCalculateDlg(CWnd* pParent /*=NULL*/):CDialog(CCalculateDlg::IDD, pParent){//{{AFX_DATA_INIT(CCalculateDlg)m_parameter = 0.0;//}}AFX_DATA_INIT// Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);CalculatePara = 0;CalculateResult = 0;Ispoint = false;Sumpoint = 0;} void CCalculateDlg::DoDataExchange(CDataExchange* pDX)CDialog::DoDataExchange(pDX);//{{AFX_DATA_MAP(CCalculateDlg)DDX_Text(pDX, IDC_EDIT, m_parameter);//}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CCalculateDlg, CDialog)//{{AFX_MSG_MAP(CCalculateDlg)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDC_clear, Onclear)ON_BN_CLICKED(IDC_calculate, Oncalculate)ON_BN_CLICKED(IDC_para1, Onpara1)ON_BN_CLICKED(IDC_para2, Onpara2)ON_BN_CLICKED(IDC_para3, Onpara3)ON_BN_CLICKED(IDC_para4, Onpara4)ON_BN_CLICKED(IDC_para5, Onpara5)ON_BN_CLICKED(IDC_para6, Onpara6)ON_BN_CLICKED(IDC_para7, Onpara7)ON_BN_CLICKED(IDC_para8, Onpara8)ON_BN_CLICKED(IDC_para9, Onpara9)ON_BN_CLICKED(IDC_para0, Onpara0)ON_BN_CLICKED(IDC_point, Onpoint)ON_BN_CLICKED(IDC_minus, Onminus)ON_BN_CLICKED(IDC_plus, Onplus)ON_BN_CLICKED(IDC_subtrack, Onsubtrack)ON_BN_CLICKED(IDC_multiply, Onmultiply)ON_BN_CLICKED(IDC_divide, Ondivide)//}}AFX_MSG_MAPEND_MESSAGE_MAP()///////////////////////////////////////////////////////////////////////////// // CCalculateDlg message handlersBOOL CCalculateDlg::OnInitDialog(){CDialog::OnInitDialog();// Add "About..." menu item to system menu.// IDM_ABOUTBOX must be in the system command range.ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != NULL){CString strAboutMenu;strAboutMenu.LoadString(IDS_ABOUTBOX);if (!strAboutMenu.IsEmpty()){pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);}}// Set the icon for this dialog. The framework does this automatically// when the application's main window is not a dialogSetIcon(m_hIcon, TRUE); // Set big iconSetIcon(m_hIcon, FALSE); // Set small icon// TODO: Add extra initialization herereturn TRUE; // return TRUE unless you set the focus to a control}void CCalculateDlg::OnSysCommand(UINT nID, LPARAM lParam){if ((nID & 0xFFF0) == IDM_ABOUTBOX){CAboutDlg dlgAbout;dlgAbout.DoModal();}else{CDialog::OnSysCommand(nID, lParam);}}// If you add a minimize button to your dialog, you will need the code below // to draw the icon. For MFC applications using the document/view model, // this is automatically done for you by the framework.void CCalculateDlg::OnPaint(){if (IsIconic())CPaintDC dc(this); // device context for paintingSendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);// Center icon in client rectangleint cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;// Draw the icon dc.DrawIcon(x, y, m_hIcon);}else{CDialog::OnPaint();}}// The system calls this to obtain the cursor to display while the user drags // the minimized window.HCURSOR CCalculateDlg::OnQueryDragIcon(){return (HCURSOR) m_hIcon;}void CCalculateDlg::Onclear(){UpdateData(true);m_parameter = 0;CalculatePara = 0;CalculateResult = 0;Ispoint = false;Sumpoint = 0;UpdateData(false);// TODO: Add your control notification handler code herevoid CCalculateDlg::Oncalculate(){UpdateData(true);CalculatePara = m_parameter;switch(CalculateExpre){case'+':CalculateResult += CalculatePara;m_parameter = CalculateResult;break;case,-':CalculateResult -= CalculatePara;m_parameter = CalculateResult;break;case,*,:CalculateResult *= CalculatePara;m_parameter = CalculateResult;break;case,/':if (CalculatePara){CalculateResult /= CalculatePara;m_parameter = CalculateResult;}else{m_parameter = 0;MessageBox(”除数不能为零!”);} break;}// TODO: Add your control notification handler code hereCalculatePara = 0;CalculateResult = 0;Ispoint = false;Sumpoint = 0;UpdateData(false);}void CCalculateDlg::Onpara1(){UpdateData(true);if (!Ispoint){CalculatePara = m_parameter*10 + 1;}else{CalculatePara = m_parameter + 1/pow(10,Sumpoint);Sumpoint++;}m_parameter = CalculatePara;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onpara2(){UpdateData(true);if (!Ispoint){CalculatePara = m_parameter*10 + 2;elseCalculatePara = m_parameter + 2/pow(10,Sumpoint);Sumpoint++;}m_parameter = CalculatePara;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onpara3(){UpdateData(true);if (!Ispoint){CalculatePara = m_parameter*10 + 3;}else{CalculatePara = m_parameter + 3/pow(10,Sumpoint);Sumpoint++;}m_parameter = CalculatePara;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onpara4(){UpdateData(true);if (!Ispoint){CalculatePara = m_parameter*10 + 4;}elseCalculatePara = m_parameter + 4/pow(10,Sumpoint);Sumpoint++;m_parameter = CalculatePara;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onpara5(){UpdateData(true);if (!Ispoint){CalculatePara = m_parameter*10 + 5;}else{CalculatePara = m_parameter + 5/pow(10,Sumpoint);Sumpoint++;}m_parameter = CalculatePara;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onpara6(){UpdateData(true);if (!Ispoint){CalculatePara = m_parameter*10 + 6;}else{CalculatePara = m_parameter + 6/pow(10,Sumpoint);Sumpoint++;m_parameter = CalculatePara;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onpara7(){UpdateData(true);if (!Ispoint){CalculatePara = m_parameter*10 + 7;}else{CalculatePara = m_parameter + 7/pow(10,Sumpoint);Sumpoint++;}m_parameter = CalculatePara;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onpara8(){UpdateData(true);if (!Ispoint){CalculatePara = m_parameter*10 + 8;}else{CalculatePara = m_parameter + 8/pow(10,Sumpoint);Sumpoint++;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onpara9(){UpdateData(true);if (!Ispoint){CalculatePara = m_parameter*10 + 9;}else{CalculatePara = m_parameter + 9/pow(10,Sumpoint);Sumpoint++;}m_parameter = CalculatePara;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onpara0(){UpdateData(true);if (!Ispoint){CalculatePara = m_parameter*10 + 0;}else{Sumpoint++;}m_parameter = CalculatePara;UpdateData(false);// TODO: Add your control notification handler code here void CCalculateDlg::Onpoint(){Ispoint = true;Sumpoint = 1;// TODO: Add your control notification handler code here}void CCalculateDlg::Onminus(){UpdateData(true);m_parameter = 0 - m_parameter;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onplus(){UpdateData(true);CalculateResult = m_parameter;CalculateExpre = '+';m_parameter = 0;Ispoint = false;Sumpoint = 0;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onsubtrack(){UpdateData(true);CalculateResult = m_parameter;CalculateExpre =m_parameter = 0;Ispoint = false;Sumpoint = 0;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onmultiply(){UpdateData(true);CalculateResult = m_parameter;CalculateExpre = '*';m_parameter = 0;Ispoint = false;Sumpoint = 0;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Ondivide(){UpdateData(true);CalculateResult = m_parameter;CalculateExpre = '/';m_parameter = 0;Ispoint = false;UpdateData(false);// TODO: Add your control notification handler code here。

黑盒测试实验报告

黑盒测试实验报告

一、实验目的1、能熟练应用功能性测试技术进行测试用例设计;2、对测试用例进行优化设计;二、实验内容题目11、题目内容描述三角形问题:输入三个整数a、b、c,分别作为三角形的三条边,通过程序判断着三条边是否能够成三角形。

如果能够成三角形,则判断三角形的类型(等边三角形、等腰三角形、一般三角形)。

要求输入三个整数a、b、c,必须满足以下条件:1<=a<=100;1<=b<=100;1<=c<=100。

2、测试用例的编写3、测试结果分析A、测试结果列表:B、测试结果截图:C、分析结果:有以上结果可知:用例7和用例16失败可得出该程序考虑不周全。

当输入数据为小数时,程序无法输出正确结果,另外,当输入数据不是一个数的时候,程序也无法输出正确结果。

4、实验思考三角形问题的关键在我看来是隐含的对输入条件的要求:1.正数 2.3个数 3.整数 4.非零数 5.两边之和大于第三边6. 等腰三角形7.等边三角形,对这些输入条件进行考虑并选择测试数据测试,运用等价类测试法,一个三角形问题就基本可以解决了。

通过这次软件测试实验,我学到了很多东西。

这次的实验内容是三角形问题,首先我根据需求规格说明书和所应具有的功能位依据,确定了有效等价类和无效等价类,从而画出了等价类表;然后我又根据等价类表写出了测试用例表。

接着在C++环境下编写出了相应的程序,再根据测试用例表,测试出相应的结果。

虽然是一个简单的测试,但是我认识到,测试效果的好坏很大程度上取决于是否采用好的测试过程,所以应该先精心设计好测试过程,然后再认真执行这些过程,而不是盲目的进行测试。

附录:程序代码主要函数(判断输入数据的函数)void CMyDlg::OnBTNJudge(){// TODO: Add your control notification handler code hereUpdateData();if(!(this->m_num1+this->m_num2<=this->m_num3 || this->m_num1+this->m_num3<=this->m_num2 || this->m_num2+this->m_num3<=this->m_num1) && (this->m_num1>=1 && this->m_num1<=100) && (this->m_num2>=1 && this->m_num2<=100)&&(this->m_num3>=1 && this->m_num3<=100)) {if (this->m_num1==this->m_num2 && this->m_num1==this->m_num3) MessageBox(" 等边三角形",NULL,MB_OK);else if (this->m_num1==this->m_num2 || this->m_num1==this->m_num3 || this->m_num2==this->m_num3)MessageBox(" 等腰三角形",NULL,MB_OK);elseMessageBox(" 一般三角形",NULL,MB_OK);}else{if(this->m_num1<1||this->m_num1>100||this->m_num2<1||this->m_num2>1 00||this->m_num3<1||this->m_num3>100)MessageBox(" 输入有误",NULL,MB_OK);elseMessageBox(" 不是三角形",NULL,MB_OK);}}。

软件测试黑盒实验报告

软件测试黑盒实验报告

实验二1.引言
编写目的
练习使用黑盒测试。

项目背景
来自windows7的计算器。

定义
参考资料
计算器帮助主题;
2.测试计划执行情况?
测试项目
功能一:%
功能二:()
Test1标准型
Test2科学型
Test3程序员
功能三:+ - * /
1.二进制
3.软件测试结论
a.软件实力:界面精美,类型和功能齐全,错误较少。

b.功能一:无错误,预期输出均正确。

功能二:在标准型,科学型,程序员型下括号个数上限均为25个。

功能三:在边界值输入时,预期结果超出边界值时会产生错误结果。

功能四:在输入范围允许内进制转换均有效,边界值输入转换无误。

功能五:除数不能为0,利用Inv计算方根较为方便,使界面更加简单。

功能六:正弦余弦计算均无误,容错功能较完善。

4.评价
测试结论
可以通过,错误较少,范围内操作数以及操作结果均正确,边界值大都无误。

软件工程黑盒测试实验报告

软件工程黑盒测试实验报告

软件工程黑盒测试实验报告实验目的本次实验旨在对软件工程中的黑盒测试进行实践,通过对已知需求的软件系统进行测试,检验系统是否符合需求规格说明书中的要求,并发现潜在的缺陷。

实验环境本次实验使用了XXX软件工程公司开发的测试工具,测试对象为一个简单的计算器应用程序。

测试环境为Windows操作系统。

实验步骤1.需求分析:首先对计算器应用程序的功能进行分析,了解其需求规格说明书中的各项功能。

2.测试用例设计:根据需求规格说明书编写测试用例,包括正常输入、异常输入和边界条件等。

3.测试执行:使用测试工具对计算器应用程序进行黑盒测试,按照设计的测试用例逐一执行,并记录测试结果。

4.缺陷分析:对测试过程中发现的缺陷进行分析,包括未通过的测试用例和异常情况。

5.报告撰写:根据实验结果撰写测试报告,总结测试过程中的经验和不足,并提出改进建议。

测试结果经过测试,计算器应用程序在正常输入条件下功能正常,符合需求规格说明书中的要求。

但在异常输入和边界条件下存在一些问题,如除数为零时未作出相应提示。

测试报告中详细列出了测试用例和测试结果。

不足之处1.部分测试用例设计不够全面,存在遗漏的情况。

2.对于一些复杂的边界条件,测试覆盖率不够。

3.缺乏对性能和安全性的测试,仅仅着重在功能方面进行测试。

改进建议1.加强对边界条件的测试,提高测试覆盖率。

2.增加对性能和安全性的测试,对于复杂的功能和数据进行更深入的测试。

3.定期进行测试用例的回归测试,保证软件系统的稳定性。

总结通过本次黑盒测试实验,我对软件工程中的测试方法和流程有了更深入的了解,并掌握了测试用例设计和执行的基本技巧。

实践中发现了自身的不足之处,在今后的学习和工作中将不断改进和提升自己的测试能力。

以上为本次软件工程黑盒测试实验的报告内容,感谢您的阅读。

windows自带计算器黑盒测试文档

windows自带计算器黑盒测试文档

windows自带计算器黑盒测试文档课程名称软件质量保证与测试实验项目名称黑盒测试方法测试计算器的测试文档2009年 11月12 日 6-7节实验时间 2009年 11月19 日 6-7节 (日期及节次) 2009年 11月26 日 6-7节专业软件工程学生所在学院软件学院年级 2006级学号 200608180姓名马小强指导教师金虎实验室名称软件学院第四实验室附加:综合实验预习情况操作技术实验报告创新能力综合成绩实验成绩教师签字黑龙江大学教务处测试计划(GB8567——88) 1引言1.1编写目的根据Windows XP计算器的帮助文档,制定对Windows XP计算器的测试用例。

该计划用来测试计算器功能。

包括:界面设计、输入输出、内部计算等。

根据本次测试来评估当前的计算器是否符合设计要求和使用要求,并进而做出测试分析报告。

1.2背景说明:a( 测试计划所从属的软件系统:Windows XP;b( 在开始执行本测试计划之前必须完成的工作:需要阅读有一个计算器的帮助文档。

1.3定义各种进制:十六进制,八进制,十进制,二进制1.4参考资料用到的参考资料:a( 软件开发标准:GB8567。

b( Windows 计算器的帮助文档c( 《软件测试教程》宫云站机械工业出版社 2008年9月 2计划2.1软件说明以下的图表是用来说明被测软件的功能来作为叙述测试计划的提纲。

序号模块名软件功能描述1 执行简单计算进行简单的加,减,乘,除,的计算2 执行科学计算进行科学计算(包括各种进制的计算)2.2测试内容列出组装测试和确认测试中的每一项测试内容的名称标识符、这些测试的进度安排以及这些测试的内容和目的,例如模块功能测试、接口正确性测试、数据文卷存取的测试、运行时间的测试、设计约束和极限的测试等。

具体的测试内容如下:(1)功能测试:对测试对象的功能测试。

该测试目标是核实数据的接受,处理和检索是否正确。

此类测试基于黑盒测试技术,该技术通过图形界面与应用程序进行交互,并对交互的输出和结果进行分析,以此来核实应用程序及其内部进程。

软件质量保证与测试实验1--黑盒测试实验报告

软件质量保证与测试实验1--黑盒测试实验报告

实验课程名称:软件质量保证与测试B图1 传统三角问题的解决方法描述2.2 问题描述的改进基于前述的三角形问题,继续增加如下限制,量化问题描述进行改进。

C1: 1 ≤a ≤200C2: 1 ≤b ≤200C3: 1 ≤ c ≤200C4: a < b + cC5: b<a+cC6: c<a+b如果输入整数值范围超出C1, C2, C3指定,则输出提示信息“V alue of b is not in the range of permitted values.”(以C2 不满足为例,其它类似)。

当输入a,b,c满足C4, C5, C6指定后,再判断三角形类型(Equilateral/Isosceles/Scalene / Not A Triangle)。

判断过程三角形的流程图如图2 所示。

图2 改进的三角问题解决方法描述三、实验原理边界值分析测试边界值分析测试分为四类:普通边界值(normal boundary value)测试,最坏情形边界值(worst-case boundary value)测试,健壮性边界值(robust boundary value)测试,健壮性最坏情形边界值(robust worst-case boundary value)测试。

在二维测试用例空间中,四种类型的测试用例分布如下图3 至图6 所示。

图3 普通边界值测试图4 最坏情形边界值测试图5 健壮性边界值测试图6 健壮性最坏情形边界值测试对于这四种测试,它们的关系可以用下表4 来描述。

表4 四种边界分析测试的关系健壮性是指在异常情况下,软件还能正常运行的能力。

单缺陷假设指“失效极少是由两个或两个以上的缺陷同时发生引起的”。

在边界值分析中,单缺陷假设即选取测试用例时仅仅使得一个变量取极值,其他变量均取正常值。

多缺陷假设,则是指“失效是由两个或两个以上缺陷同时作用引起的”,要求在选取测试用例时同else if(a == b || a == c || b == c) return "Isosceles";else return "Scalene";}public static boolean isTriangle(int a, int b, int c){if (a + b <= c) return false;if (a + c <= b) return false;if (b + c <= a) return false;return true;}3.2边界值分析测试实验通过边界值分析方法生成测试集,不断地修改程序,直到所有测试用例集测试均通过。

黑盒测试实验报告

黑盒测试实验报告

黑盒测试实验报告一实验内容1、系统地学习和理解黑盒测试的基本概念、原理,掌握黑盒测试的基本技术和方法;2、对一个已知的程序进行测试。

3、通过试验和应用,要逐步提高和运用黑盒测试技术解决实际测试问题的能力;4、完成实验并认真书写实验报告(要求给出完整的测试信息,如测试程序、测试用例,测试报告等)二实验原理黑盒测试原理:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。

软件的黑盒测试意味着测试要在软件的接口处进行。

这种方法是把测试对象看作一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。

因此黑盒测试又叫功能测试。

从理论上讲,黑盒测试只有采用穷举输入测试,把所有可能的输入都作为测试情况考虑,才能查出程序中所有的错误。

实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但可能的输入进行测试。

这样看来,完全测试是不可能的,所以我们要进行有针对性的测试,通过制定测试案例指导测试的实施,保证软件测试有组织、按步骤,以及有计划地进行。

黑盒测试行为必须能够加以量化,才能真正保证软件质量,而测试用例就是将测试行为具体量化的方法之一。

具体的黑盒测试用例设计方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法等。

等价类划分的办法是把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例。

每一类的代表性数据在测试中的作用等价于这一类中的其他值。

该方法是一种重要的,常用的黑盒测试用例设计方法。

1 划分等价类划分等价类:等价类是指某个输入域的子集合。

在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试。

因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据。

功能性测试(黑盒测试)实验报告

功能性测试(黑盒测试)实验报告
实 验 内 容
功能性测试(黑盒测试)
实验目的:
1、掌握应用功能性测试技术进行测试用例设计。
2、掌握对测试用例进行优化设计方法。
实验内容:
1.题目一:三角形问题
根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。
“一个程序读入三个整数。把此三个数值看成是一个三角形的三个边。这个程序要打印出信息,说明这个三角形是三边不等的、是等腰的、还是等边的。”
•有时条件最终引用输入的等价类,行为引用被测试软件的主要功能处理部分,规则则解释为测试用例。
在日期问题中,为了获得一个日期,NextDate函数需要执行的操作有5种:
1)day变量值加2;
2)day变量复位为1;
3)day变量为2;
4)month变量值加1;
5)month变量复位为1;
6)year变量加1。
测试用例ID
Test6
目的
测试程序能否识别错误输入
前提
1≤month≤12;1≤day≤31
输入
month=6;day=31;year=2001
预期结果
输出:输入错误,6月份不存在31日
测试结果
输出:输入错误,6月份不存在31日
测试日期
2011-11-15
备注

实 验 总 结
•使用等价类划分方法必须仔细分析和推敲题目所给出的要求。本题的输人条件要求的关键之处有:
–1)整数;
–2)三个数;
–3)非零数;
–4)正数;
•输出条件要求的关键之处有:
–5)应满足两边长之和大于第三边边长;
–6)等腰;
–7)等边;
•其中,3)、4)和5)并没有在题目上明显给出,但这些条件是必要的。

黑盒测试实验报告实验心得

黑盒测试实验报告实验心得

黑盒测试实验报告实验心得1. 实验概述本次实验是关于黑盒测试的实践,通过对一些功能的输入输出进行测试,验证程序的正确性和稳定性。

在实验中,我选择了一个简单的登录功能进行测试,并记录了测试用例、测试结果等信息。

2. 实验过程在开始实验之前,我首先对登录功能进行了需求分析,确定了输入和输出的要求。

根据需求分析,我编写了一些测试用例,覆盖了各种可能的情况,包括正常输入、错误输入、边界条件等。

然后,我对测试用例进行了分类,将它们分为一般测试用例和边界测试用例两类。

接着,我根据测试用例编写了测试脚本,并运行了测试脚本对登录功能进行测试。

在每次测试中,我记录了测试的输入和输出,以及测试结果。

对于通过的测试用例,我记录了通过的原因;对于未通过的测试用例,我记录了出错的原因和测试的结果。

同时,我还测试了一些异常情况,比如输入为空、输入过长等,以验证程序的健壮性。

在测试过程中,我发现了一些问题,比如登录功能对于密码输入过长的情况没有进行正确的处理,导致程序出错。

我将这些问题进行了记录,并提出了相应的修复建议。

3. 实验结果通过对登录功能的黑盒测试,我发现了一些问题,并得到了一些实验结果。

总体来说,大部分的测试用例都通过了测试,登录功能在正常情况下表现稳定可靠。

然而,也存在一些问题,比如对于输入过长的密码没有进行正确的处理。

这些问题可能会导致程序出错或者出现安全问题。

因此,在实验报告中,我详细地记录了这些问题,并提出了一些修复建议。

4. 实验心得通过本次实验,我对黑盒测试有了更深入的了解。

我了解了黑盒测试的基本原理和方法,学会了编写测试用例、设计测试脚本,并进行了实际的测试。

通过实验,我发现了一些问题,并得到了一些实验结果,这对于改进程序的质量和性能有一定的意义。

同时,我还学习到了如何分析需求、评估风险、规划测试等技巧,这对我今后的工作和学习都会有所帮助。

在实验过程中,我还遇到了一些挑战,比如如何编写全面的测试用例、如何设计恰当的测试脚本等。

白盒-黑盒测试与及QTP自动化测试实验报告

白盒-黑盒测试与及QTP自动化测试实验报告

本科实验报告课程名称:软件测试方法与技术实验项目:白盒-黑盒测试与QTP自动化测试实验地点:实验中心21015 {x=4,y=9,z=9}路径覆盖P(1-3-5)16 {x=0,y=5,z=10} 基本路径覆盖P (ACE)17 {x=2,y=5,z=8} 基本路径覆盖P (ABCE)18 {x=4,y=6,z=9} 基本路径覆盖P (ABCDE)六.实验结果与分析用例结果1 2 3 4 5 6 7 8 9k=8;j=1 k=35;j=1 k=0;j=0 k=35;j=1 k=0;j=0 k=35;j=1 k=0;j=0 k=19;j=01 k=0;j=110 11 12 13 14 15 16 17 18k=0;j=1 k=0;j=0 k=0;j=0 k=9;j=0 k=0;j=0 k=35;j=1 k=0;j=0 k=9;j=0 k=23;j=1 七.讨论、心得通过此次实验,了解并掌握了白盒测试的基本测试方法。

熟悉并掌握了语句覆盖,判定覆盖,条件覆盖,判定条件覆盖,条件组合覆盖,路径覆盖和基本路径覆盖的各项覆盖标准。

通过实验掌握了逻辑覆盖测试,和测试用例,掌握了流程图的绘制。

实验名称实验二黑盒测试方法一.实验目的和要求1.熟练掌握黑盒测试方法中的大家类测试方法和边界值测试方法;2.通过实验掌握如何运用黑盒测试方法设计测试用例。

3.运用所学理论,完成实验研究的基本训练过程。

二.实验内容和原理1.用你熟悉的语言编写一个判断三角形问题的程序;要求:读入代表三角形边长的三个整数,判断他们是否能组成三角形。

如果能够,则输出三}}}六.实验结果与分析七.实验结果与分析通过实验,熟练的掌握了黑盒测试方法中的等价类测试方法和边界值测试方法,掌握了如何应用黑盒测试方法设计测试用例。

一进步熟练了C语言的编程方法。

实验名称实验三 QTP自动化测试一.实验目的和要求1.了解QTP软件自动化测试原理和方法;2.掌握QTP检查点的插入,能够利用QTP软件进行功能测试和回归测试。

黑盒测试 实验报告

黑盒测试 实验报告

黑盒测试实验报告黑盒测试实验报告概述:黑盒测试是软件测试中的一种重要方法,通过不考虑内部结构和实现细节,仅根据输入和输出来评估软件系统的正确性和质量。

本实验旨在通过对一个简单的计算器应用进行黑盒测试,探索黑盒测试的原理和应用。

实验背景:计算器应用是我们日常生活中常用的工具之一。

为了确保计算器应用的正确性和稳定性,需要进行充分的测试。

黑盒测试方法可以帮助我们从用户的角度出发,对计算器应用进行全面的功能测试。

实验目的:1. 了解黑盒测试的基本原理和方法。

2. 学会设计黑盒测试用例,覆盖计算器应用的各种功能。

3. 分析测试结果,评估计算器应用的质量和稳定性。

实验步骤:1. 确定测试对象:选择一个常用的计算器应用作为测试对象,并安装在测试环境中。

2. 功能分析:仔细分析计算器应用的功能,包括基本运算、括号运算、科学计算等。

3. 设计测试用例:根据功能分析,设计一系列测试用例,覆盖计算器应用的各种功能和边界情况。

4. 执行测试用例:按照设计的测试用例,逐一执行测试,并记录测试结果。

5. 分析测试结果:根据测试结果,分析计算器应用的错误和不足之处。

6. 评估质量和稳定性:综合考虑功能覆盖度、错误数量和严重程度等指标,评估计算器应用的质量和稳定性。

实验结果:经过一系列的测试,我们发现计算器应用在基本运算和括号运算方面表现良好,没有出现明显的错误。

然而,在科学计算功能方面,我们发现了一些问题。

例如,在计算较大的数值时,计算器应用会出现计算结果不准确的情况。

此外,部分科学计算函数的实现也存在一些小问题。

综合考虑,我们认为计算器应用在基本功能上表现较好,但在科学计算方面仍有一些改进的空间。

实验总结:通过这次实验,我们深入了解了黑盒测试的原理和应用。

黑盒测试方法可以从用户的角度出发,全面评估软件系统的正确性和质量。

在实际测试过程中,我们需要设计合理的测试用例,覆盖各种功能和边界情况,并对测试结果进行分析和评估。

通过不断的测试和改进,可以提高软件系统的质量和稳定性。

黑盒测试实验报告

黑盒测试实验报告

实验一黑盒测试一、实验目的通过对于实例程序的测试,熟悉功能性测试的基本方法。

二、实验要求(1)综合运用功能性测试方法(如边界值分析、等价类划分等方法)对被测程序进行测试,找出black.exe程序中存在的缺陷。

三、实验内容(1)对于blackBox.exe程序的测试步骤:①运行black.exe程序,如下图所示:②选择triangle program后(或nextdate program, commission program,要求至少做两个程序的测试),如下图所示:③点击create file names,如下图所示:提示输入测试用例文件,如1.txt后点击ok,1中的数据格式如下:(其中前3个数据表示输入的三条边,第4个数据表示预期的结果)如下图所示,输入执行结果的文件2.txt :再次点击ok,提示输入测试结果文件记录集的题头信息:sanjiaoxing,点击ok,完成测试前的准备工作。

④点击Run Test Cases File,运行测试;⑤测试后的统计信息如下图所示:⑥测试完成后,打开2.txt文件:(前3个条件表示输入的三条边,第4个表示预期结果,第5个表示测试结果,第6个表示测试结果与预期结果是否符合。

)2①运行black.exe程序②选择nextdate program,③点击create file names,如下图所示:提示输入测试用例文件,如3.txt后点击ok,3中的数据格式如下:如下图所示,输入执行结果的文件4.txt :④点击Run Test Cases File,运行测试;⑤测试后的统计信息如下图所示:⑥测试完成后,打开4.txt文件:1)案例描述:某三角形测试程序中需要输入三条表,若三边相等:等腰三角形,两边相等:等腰三角形;若三边不等:斜边边三角形。

案例第一步划分等价类。

第二步设计测试用例设三边分别为a,b,c2)案例描述:案例按月,日,年输入数据。

输出当天的下一天,第二步测试用例。

实验一 Nextdata实验黑盒测试

实验一 Nextdata实验黑盒测试

辽宁工程技术大学上机实验报告实验分析续效等价类。

(2)根据所列出的等价类表,设计能覆盖所有等价类的测试用例,以及输入和预期的输出。

划分的等价类表如表1-1所示。

表1-1 Nextdata函数程序的等价类表输入条件有效等类编号无效等价类编号年份1912~2050 1 年份<1912 11年份>2050 12 月份1、3、5、7、8、10 2 月份<1 134、6、9、11 32 4 月份>12 1412 5日期1~27 6 日期<1 1528 729 8日期>31 1630 931 10表1-2 Nextdata函数程序的等价类测试用例表测试用例年份月份日期预期结果1 19123 27 明天是1912年3月28日2 1899 4 28 年份超过界限,请重新运行3 2051 2 29 年份超过界限,请重新运行4 1912 4 28 明天是1912年4月28日5 1912 2 29 明天是1912年3月1日6 1912 12 30 明天是1912年12月31日7 1912 12 31 明天是1913年1月1日8 1912 -1 31 月份超过界限,请重新运行9 1912 13 30 月份超过界限,请重新运行10 1912 4 -1 日期超过界限,请重新运行11 1912 2 32 日期超过界限,请重新运行等价类测试测试用例运行结果截图:测试用例1图1-1测试用例2图1-2实验分析续测试用例3图1-3 测试用例4图1-4 测试用例5图1-5 测试用例6图1-6 测试用例7图1-7 测试用例8图1-8 测试用例9图1-9实验分析续测试用例10图1-10测试用例11图1-11NextDate函数程序的边界值测试2.边界值测试在Nextdata函数中,规定了变量“年份”、“月份”和“日期”,其相应的取值范围:1912<=年份<=2050,1912<=月份<=2050,1912<=日期<=2050。

实验二黑盒测试报告范文

实验二黑盒测试报告范文

实验二黑盒测试报告范文
刘童童
一、实验目的
1、掌握黑盒测试的基本方法;
2、掌握黑盒测试用例的编写。

二、实验要求
1、根据给出的程序分别使用等价类划分法、边界值分析法、判定表方法、因果图法、正交试验法、功能图法、错误推测法来设计相应的测试用例。

2、输入数据进行测试,填写测试用例。

三、实验内容
2、因果法测试用例设计练习——自动售货机软件测试用例设计
问题有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。

其规格说明如下:若投入5角钱或1元钱的硬币,按下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。

若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并按下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。

分析说明,列出原因和结果:
原因:结果:
画出因果图:
因果图-画条件和结果
有零钱投1元投5角选啤酒选橙汁
有零钱投1元E投5角选商品钱付清选啤酒VVE选橙汁V因果图-应该找零钱
红灯亮找1元找5角出啤酒出橙汁红灯亮找1元找5角出啤酒出橙汁有零钱投1元E应该找V零钱投5角选商品钱付清V选啤酒VE选橙汁V有零钱投1元E应该找能够找V零钱V零钱投5角选商品钱付清V选啤酒VE选橙汁V红灯亮找1元找5角出啤酒出橙汁红灯亮找1元找5角出啤酒出橙汁
有零钱投1元E应该找VV能够找零钱零钱投5角选商品钱付清V选啤酒VE选橙汁V5角钱付清
有零钱投1元E应该找VV能够找零钱零钱投5角V选商品钱付清V 选啤酒VE选橙汁V红灯亮找1元找5角出啤酒出橙汁红灯亮找1元找5角出啤酒出橙汁
因果图-。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、测试目的设计测试用例、使用各种测试方法进行计算器的测试,并对测试结果进行分析二、测试内容1.软件说明:实现一个小的计算器程序,只需要完成加、减、乘、除运算,设计测试用例,并对测试结果进行分析,同时计算器运行稳定。

2、设计测试用例3、执行测试4、测试结果分析5、源代码三、测试步骤(一)、计算器界面2、设计测试用例(1)等价类测试:1、4个等价类测试用例的分析过程如下:测试用例加减乘除预期输出整型55+50 78-24 15*25 36/4 正常运算小数25.3+12.7 14.3-11.7 25.6*12.8 50.2/20.7 正常运算负数-20+-21 (-15)-(-14) -12*-12 -16/-5 正常运算无效输入E1+t2 G4-k5 I5*l6 Ff/se 非法操作无法输入2、对应测试的结果分析:整型:1.加(55+50)2.减(78-24)3.乘(15*25)4.除(36/4)小数1.加(25.3+12.7)2.减(14.3-11.7)3.乘(25.6*12.8)4.除(50.2/20.7)负数6.加 -20+-217.减(-15)-(-14)8.乘-12*-129.除 -16/-5(其中算式写法错误导致正常运算错误)无效输入1.加(E1+t2):程序中无效数字无法正常输入,程序无法进行。

2.减(G4-k5)程序中无效数字无法正常输入,程序无法进行。

(同上)3.乘(I5*l6)程序中无效数字无法正常输入,程序无法进行。

(同上)4.除(Ff/se)程序中无效数字无法正常输入,程序无法进行。

(同上)5.(2)边界值法设计测试:加法:1、计算器4个标准等价类测试用例的分析过程如下:测试用例被加数加数预期输出Test1 0 10 正常运算Test2 1 10 正常运算Test3 40 10 正常运算Test4 55.5 10 正常运算Test5 -70 10 正常运算Test6 10 10 正常运算Test7 101 10 正常运算Test8 10 0 不能运算Test9 10 1 正常运算Test10 10 40 正常运算Test11 10 55.5 正常运算Test12 10 -78 正常运算Test13 10 100 正常运算Test14 10 101 正常运算2、对应测试与结果:测试结果运算均属正常,对应的部分的示图如下:Test1结果:Test2结果:Test3结果:Test4结果:Test5结果:Test6结果:减法:1、计算器4个标准等价类测试用例的分析过程如下:测试用例被减数减数预期输出Test1 0 10 正常运算Test2 1 10 正常运算Test3 40 10 正常运算Test4 55.5 10 正常运算Test5 -78 10 正常运算Test6 100 10 正常运算Test7 101 10 正常运算Test8 10 0 不能运算Test9 10 1 正常运算Test10 10 40 正常运算Test11 10 55.5 正常运算Test12 10 -78 正常运算Test13 10 100 正常运算Test14 10 101 正常运算2、对应测试与结果:测试结果运算均属正常,对应的部分的示图如下:Test1结果:Test3结果:Test4结果:Test5结果:Test6结果:乘法1、计算器4个标准等价类测试用例的分析过程如下:2、对应测试与结果:测试结果运算均属正常,对应的部分的示图如下:Test1结果:Test3结果:Test4结果:Test5结果:Test6结果:除法1、计算器4个标准等价类测试用例的分析过程如下:测试用例被除数除数预期输出Test1 0 10 正常运算Test2 1 10 正常运算Test3 40 10 正常运算Test4 55.5 10 正常运算Test5 -78 10 正常运算Test6 100 10 正常运算Test7 101 10 正常运算Test8 10 0 正常运算Test9 10 1 正常运算Test10 10 40 正常运算Test11 10 55.5 正常运算Test12 10 -78 正常运算Test13 10 100 正常运算Test14 10 101 正常运算2、对应测试与结果:对应的部分的示图如下:Test1结果:Test2结果:Test3结果:Test8结果:附录:源代码CCalculateDlg::CCalculateDlg(CWnd* pParent /*=NULL*/): CDialog(CCalculateDlg::IDD, pParent){//{{AFX_DATA_INIT(CCalculateDlg)m_parameter = 0.0;//}}AFX_DATA_INIT// Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);CalculatePara = 0;CalculateResult = 0;Ispoint = false;Sumpoint = 0;}void CCalculateDlg::DoDataExchange(CDataExchange* pDX){CDialog::DoDataExchange(pDX);//{{AFX_DATA_MAP(CCalculateDlg)DDX_Text(pDX, IDC_EDIT, m_parameter);//}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CCalculateDlg, CDialog)//{{AFX_MSG_MAP(CCalculateDlg)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDC_clear, Onclear)ON_BN_CLICKED(IDC_calculate, Oncalculate)ON_BN_CLICKED(IDC_para1, Onpara1)ON_BN_CLICKED(IDC_para2, Onpara2)ON_BN_CLICKED(IDC_para3, Onpara3)ON_BN_CLICKED(IDC_para4, Onpara4)ON_BN_CLICKED(IDC_para5, Onpara5)ON_BN_CLICKED(IDC_para6, Onpara6)ON_BN_CLICKED(IDC_para7, Onpara7)ON_BN_CLICKED(IDC_para8, Onpara8)ON_BN_CLICKED(IDC_para9, Onpara9)ON_BN_CLICKED(IDC_para0, Onpara0)ON_BN_CLICKED(IDC_point, Onpoint)ON_BN_CLICKED(IDC_minus, Onminus)ON_BN_CLICKED(IDC_plus, Onplus)ON_BN_CLICKED(IDC_subtrack, Onsubtrack)ON_BN_CLICKED(IDC_multiply, Onmultiply)ON_BN_CLICKED(IDC_divide, Ondivide)//}}AFX_MSG_MAPEND_MESSAGE_MAP()///////////////////////////////////////////////////////////////////////////// // CCalculateDlg message handlersBOOL CCalculateDlg::OnInitDialog(){CDialog::OnInitDialog();// Add "About..." menu item to system menu.// IDM_ABOUTBOX must be in the system command range.ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != NULL){CString strAboutMenu;strAboutMenu.LoadString(IDS_ABOUTBOX);if (!strAboutMenu.IsEmpty()){pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);}}// Set the icon for this dialog. The framework does this automatically // when the application's main window is not a dialogSetIcon(m_hIcon, TRUE); // Set big iconSetIcon(m_hIcon, FALSE); // Set small icon// TODO: Add extra initialization herereturn TRUE; // return TRUE unless you set the focus to a control}void CCalculateDlg::OnSysCommand(UINT nID, LPARAM lParam){if ((nID & 0xFFF0) == IDM_ABOUTBOX){CAboutDlg dlgAbout;dlgAbout.DoModal();}else{CDialog::OnSysCommand(nID, lParam);}}// If you add a minimize button to your dialog, you will need the code below // to draw the icon. For MFC applications using the document/view model, // this is automatically done for you by the framework.void CCalculateDlg::OnPaint(){if (IsIconic())CPaintDC dc(this); // device context for paintingSendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);// Center icon in client rectangleint cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;// Draw the icondc.DrawIcon(x, y, m_hIcon);}else{CDialog::OnPaint();}}// The system calls this to obtain the cursor to display while the user drags // the minimized window.HCURSOR CCalculateDlg::OnQueryDragIcon(){return (HCURSOR) m_hIcon;}void CCalculateDlg::Onclear(){UpdateData(true);m_parameter = 0;CalculatePara = 0;CalculateResult = 0;Ispoint = false;Sumpoint = 0;UpdateData(false);// TODO: Add your control notification handler code here}void CCalculateDlg::Oncalculate(){UpdateData(true);CalculatePara = m_parameter;switch(CalculateExpre){case'+':CalculateResult += CalculatePara;m_parameter = CalculateResult;break;case'-':CalculateResult -= CalculatePara;m_parameter = CalculateResult;break;case'*':CalculateResult *= CalculatePara;m_parameter = CalculateResult;break;case'/':if (CalculatePara){CalculateResult /= CalculatePara;m_parameter = CalculateResult;}else{m_parameter = 0;MessageBox("除数不能为零!");}break;}// TODO: Add your control notification handler code hereCalculatePara = 0;CalculateResult = 0;Ispoint = false;Sumpoint = 0;UpdateData(false);}void CCalculateDlg::Onpara1(){UpdateData(true);if (!Ispoint){CalculatePara = m_parameter*10 + 1;}else{CalculatePara = m_parameter + 1/pow(10,Sumpoint);Sumpoint++;}m_parameter = CalculatePara;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onpara2(){UpdateData(true);if (!Ispoint){CalculatePara = m_parameter*10 + 2;}else{CalculatePara = m_parameter + 2/pow(10,Sumpoint);Sumpoint++;}m_parameter = CalculatePara;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onpara3(){UpdateData(true);if (!Ispoint){CalculatePara = m_parameter*10 + 3;}else{CalculatePara = m_parameter + 3/pow(10,Sumpoint);Sumpoint++;}m_parameter = CalculatePara;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onpara4(){UpdateData(true);if (!Ispoint){CalculatePara = m_parameter*10 + 4;}else{CalculatePara = m_parameter + 4/pow(10,Sumpoint);Sumpoint++;}m_parameter = CalculatePara;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onpara5(){UpdateData(true);if (!Ispoint){CalculatePara = m_parameter*10 + 5;}else{CalculatePara = m_parameter + 5/pow(10,Sumpoint);Sumpoint++;}m_parameter = CalculatePara;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onpara6(){UpdateData(true);if (!Ispoint){CalculatePara = m_parameter*10 + 6;}else{CalculatePara = m_parameter + 6/pow(10,Sumpoint);Sumpoint++;}m_parameter = CalculatePara;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onpara7(){UpdateData(true);if (!Ispoint){CalculatePara = m_parameter*10 + 7;}else{CalculatePara = m_parameter + 7/pow(10,Sumpoint);Sumpoint++;}m_parameter = CalculatePara;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onpara8(){UpdateData(true);if (!Ispoint){CalculatePara = m_parameter*10 + 8;}else{CalculatePara = m_parameter + 8/pow(10,Sumpoint);Sumpoint++;}m_parameter = CalculatePara;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onpara9(){UpdateData(true);if (!Ispoint){CalculatePara = m_parameter*10 + 9;}else{CalculatePara = m_parameter + 9/pow(10,Sumpoint);Sumpoint++;}m_parameter = CalculatePara;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onpara0(){UpdateData(true);if (!Ispoint){CalculatePara = m_parameter*10 + 0;}else{Sumpoint++;}m_parameter = CalculatePara;UpdateData(false);// TODO: Add your control notification handler code here}void CCalculateDlg::Onpoint(){Ispoint = true;Sumpoint = 1;// TODO: Add your control notification handler code here}void CCalculateDlg::Onminus(){UpdateData(true);m_parameter = 0 - m_parameter;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onplus(){UpdateData(true);CalculateResult = m_parameter;CalculateExpre = '+';m_parameter = 0;Ispoint = false;Sumpoint = 0;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onsubtrack(){UpdateData(true);CalculateResult = m_parameter;CalculateExpre = '-';m_parameter = 0;Ispoint = false;Sumpoint = 0;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onmultiply(){UpdateData(true);CalculateResult = m_parameter;CalculateExpre = '*';m_parameter = 0;Ispoint = false;Sumpoint = 0;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Ondivide(){UpdateData(true);CalculateResult = m_parameter;CalculateExpre = '/';m_parameter = 0;Ispoint = false;Sumpoint = 0;UpdateData(false);// TODO: Add your control notification handler code here }。

相关文档
最新文档