三角形nextday佣金问题实验报告
- 格式:doc
- 大小:11.53 MB
- 文档页数:40
三角形实验报告实验目的本实验旨在通过测量和分析三角形的边长和角度,探究三角形的性质以及角度的关系。
实验器材•直尺•量角器•三角尺•可移动支架•悠悠球(用于测量角度)实验原理在平面几何中,三角形是由三条边和三个角组成的多边形,常用来研究角度和边长之间的关系。
本实验将通过实测三角形的边长和角度,来验证三角形的性质。
三角形的性质1.三角形的内角和等于180度:即三角形的三个内角的和等于180度。
2.三角形两边之和大于第三边:即三角形的任意两边之和大于第三边。
3.等腰三角形的两底角相等:即等腰三角形的两个底角(即底边对应的两个内角)相等。
4.等边三角形的三个内角均相等:即等边三角形的三个内角均相等且为60度。
实验步骤1.利用直尺测量细木条的长度,并记录下来;2.将两根细木条放在实验台上构成一个三角形,并用悠悠球沿直角边测量直角角的角度;3.用三角尺测量三角形的其他两个角度,并记录下来;4.用量角器测量三角形的其他边长,并记录下来;5.根据测量结果,计算三角形的边长比例和角度之和是否等于180度;6.根据实验结果,验证三角形的性质是否成立。
实验数据记录与处理数据记录边长(cm)角度(度)5 407 509 90数据处理1.边长比例计算:在三角形中,任意两条边之比等于其对应角的正弦值。
根据测量结果,我们可以计算出第一条边与第二条边、第一条边与第三条边、第二条边与第三条边的比例分别为:5/7 ≈ 0.714、5/9 ≈ 0.556、7/9 ≈0.778。
2.角度和验证:三角形的内角和等于180度。
根据测量结果,我们可以计算出三角形的内角和为:40 + 50 + 90 = 180度,验证了这一性质。
实验结果与分析通过测量和计算,我们得出以下结论: - 测量结果符合三角形的边长比例和角度之和等于180度的性质; - 三角形的边长比例为5/7 ≈ 0.714、5/9 ≈ 0.556、7/9 ≈ 0.778; - 三角形的内角和为180度。
一、实验目的本次数学活动实验旨在通过实践活动,培养学生的动手操作能力、观察分析能力和创新思维,提高学生对数学知识的理解和运用能力。
同时,通过实验活动,激发学生对数学的兴趣,培养学生的团队合作精神。
二、实验内容本次实验内容为“探究三角形的稳定性”。
三角形是数学中常见的几何图形,具有稳定性强的特点。
通过实验,让学生了解三角形稳定性的原因,并运用所学知识解决实际问题。
三、实验步骤1. 实验准备(1)实验器材:铁丝、剪刀、胶带、直尺、三角板、钩码、支架等。
(2)实验分组:将学生分成若干小组,每组4-6人。
2. 实验过程(1)观察三角形的稳定性:引导学生观察生活中常见的三角形结构,如桥梁、建筑等,感受三角形稳定性的重要性。
(2)制作三角形框架:每组学生根据所学知识,利用铁丝和剪刀制作一个三角形框架。
要求三角形框架的边长满足一定条件,如边长比例为1:1:√2。
(3)测试三角形稳定性:将三角形框架固定在支架上,逐渐增加钩码的重量,观察三角形框架的变形情况。
(4)分析实验结果:引导学生分析实验结果,总结三角形稳定性的原因。
3. 实验总结(1)各小组汇报实验结果,分享实验心得。
(2)教师点评各小组的实验过程和结果,总结三角形稳定性的原因。
四、实验结果与分析1. 实验结果在实验过程中,大部分小组制作的三角形框架在增加钩码重量时,能够保持较好的稳定性,只有少数小组的框架发生了较大变形。
2. 实验分析(1)三角形稳定性原因:三角形具有稳定性强的特点,主要原因是三角形的内角和为180°,当外力作用于三角形时,三个角能够均匀分担外力,使三角形保持稳定。
(2)影响三角形稳定性的因素:边长比例、材料强度、受力方式等。
五、实验结论通过本次实验,学生掌握了三角形稳定性的基本原理,了解了三角形在实际生活中的应用。
同时,培养了学生的动手操作能力、观察分析能力和创新思维,提高了学生对数学知识的理解和运用能力。
六、实验反思1. 实验过程中,部分学生动手能力较差,需要教师在实验过程中给予指导和帮助。
一、实验环境Visual C++ 6.0软件环境二、实验原理软件测试是通过运行所开发的软件产品,识别和控制软件缺陷,以验证和确认用户需求已得到满足的过程。
三、给出三角形等价类表和测试用例表?三角形问题:输入三个整数a、b、c分别作为三角形的三条边,现通过程序判断由三条边构成的三角形的类型为等边三角形、等腰三角形、一般三角形(特殊的还有直角三角形)以及构不成三角形。
现在要求输入三个整数a、b、c,必须满足以下条件:条件1 1≤a≤100 条件4 a≤b+c条件2 1≤b≤100 条件5 b≤a+c条件3 1≤c≤100 条件6 c≤a+b解:(开发程序清单)#include <iostream.h>int i = 0;void main(void){while(i==0){int a,b,c;cout<<"请输入3个整数:"<<endl;cin>>a>>b>>c;if(!(a+b<=c||a+c<=b|| b+c<=a)&&(a>=1&&a<=100)&&(b>=1&&b<=100)&&(c>=1&&c<=100)) {if (a==b && a==c) cout<<"等边三角形"<<endl;else if (a==b || a==c || b==c) cout<<"等腰三角形"<<endl;else cout<<"一般三角形"<<endl;}else {if(a<1||a>100) cout<<"a="<<a<<"不满足条件1,不能构成三角形"<<endl;else if(b<1||b>100) cout<<"b="<<b<<"不满足条件2,不能构成三角形"<<endl;else if(c<1||c>100) cout<<"c="<<c<<"不满足条件3,不能构成三角形"<<endl;else if(a>=b+c) cout<<"不满足a<b+c,不能构成三角形"<<endl;else if(b>=a+c) cout<<"不满足b<a+c,不能构成三角形"<<endl;else if(c>=b+a) cout<<"不满足c<a+b,不能构成三角形"<<endl;}}}四、测试用例等价类表测试用例表五、测试结果六、心得体会这次实验题目是三角形问题,其实用C++编程并不难,因为以前都做过,主要是测试。
一、问题描述
完成一段程序,要求实现这样的功能。
输入a、b、c三个整数,分别作为三角形的三条边,取值范围为1-200,判断a、b、c能否构成三角形,如果能够构成三角形,判断该三角形是等腰三角形还是等边三角形,还是一般三角形。
判断结果打印输出。
二、程序代码
三、测试过程
1、白盒测试(路径覆盖)的测试用例
四、测试结论
输入a、b、c三个整数分别作为三角形的三条边,取值范围为1-200,判断a、b、c能否构成三角形,面对这样的问题采用模块,以便于后来的添加,对项目有整体的把握。
通过本次实验,我充分学习到了白盒测试中的路径覆盖测试的测试用例设计方法以及了解到了白盒测试面对代码测试的重要性;黑色测试中的等价类和边界值测试,在测试数据中选择有代表性的数据进行黑盒测试,学到了黑盒测试不需要了解代码的时候对程序进行功能性测试,大大提高了测试的效率。
人教版数学四年级下册三角形的特性1教案与反思(精推3篇)〖人教版数学四年级下册三角形的特性1教案与反思第【1】篇〗教学目标:1.在动手操作和观察比较的活动中,经历认识三角形的过程,概括三角形概念,知道三角形的特点,会在三角形内画高。
2.在游戏活动中,感受三角形的唯一性,从而体会三角形的稳定性,理解三角形的基本特性。
3.知道三角形的稳定性及其在生活中的应用,感受数学与生活的联系。
教学重点:理解三角形的定义、掌握三角形的特征和三角形的稳定性。
教学难点:准确画出三角形的高。
教学流程:一、联系生活,引入。
1.多媒体出示主题图,初步感知三角形。
2.出示三角形这一单元的结构图,使学生了解本单元将要学习哪些内容,后指出本节课重点研究三角形的特性。
(板书课题)。
二、理解三角形的概念和特征。
1.研学活动:(1)中描出三角形。
(2)用直尺画出三角形。
(3)交流概括三角形概念。
2.展学----展学预设(1)一描:线段、首尾相连。
(2)一画:每相邻两条线段的端点相连(3)概括:结合描和画三角形的过程,总结:由3条线段围成的图形是三角形。
3.追问:说一说三角形有几条边,几个角和几个顶点。
4.举例:用字母A、B、C分别表示三角形的3个顶点,这个三角形就叫做△ABC。
给三角形起名字。
三、掌握三角形高和底得概念,会画三角形高。
出示研学提示,借助研学提示进行自学。
1.研学提示(1)读一读、圈一圈:打开书60页,抓关键词理解三角形高和底的概念。
(2)画一画、说一说:尝试给自己画出的三角形作一条高,和同桌说你的画法。
(3)想一想一个三角形可以画几条高?2.展学----展学预设(1)关键词:顶点对边垂线垂线段(2)注意画高是要用虚线,标清垂直符号相应的高和底。
(3)不同底边对应的高也不一样,三角形的底和高是相对的。
(4)当三角形中有一个直角时,以一条直角边为底,这条底边上的高恰好是另一条直角边。
四、三角形的稳定性1.游戏研学(1)每组同学准备了一个学具袋,里面有若干长度相同的小棒,在单双两号组之间展开比赛。
一、三角形问题逻辑覆盖法1Scanner input=new Scanner(System.in);2double a=input.nextDouble();3double b=input.nextDouble();4double c=input.nextDouble();5boolean isTriangle=true;6if(a<1||a>200||b<1||b>200||c<1||c>200){7System.out.println("输入数据非法\n");}8else if((a+b)<=c||(a+c)<=b||(c+b)<=a){9System.out.println("非三角形\n");}10else if(a==b&&b==c&==c){11System.out.println("等边三角形\n");}12else if(a==b||b==c||a==c){13if(a*a==b*b+c*c||b*b==a*a+c*c||c*c==a*a+b*b){ 14System.out.println("等腰直角三角形\n");15}else{System.out.println("等腰三角形\n");}}16else if(a*a==b*b+c*c||b*b==a*a+c*c||c*c==a*a+b*b){ 17System.out.println("直角三角形\n");}18else System.out.println("一般三角形\n");程序结构图语句:1、2、3、4、5、7、9、11、14、15、17、18路径:共七条路径(1)1-2-3-4-5-6-7(2)1-2-3-4-5-6-8-9(3)1-2-3-4-5-6-8-10-11(4)1-2-3-4-5-6-8-10-12-13-14(5)1-2-3-4-5-6-8-10-12-13-15(6)1-2-3-4-5-6-8-10-12-16-17(7)1-2-3-4-5-6-8-10-12-16-18判定:(1)a<1||a>200||b<1||b>200||c<1||c>200 (节点6)(2)(a+b)<=c||(a+c)<=b||(c+b)<=a (节点8)(3)a==b&&b==c (节点10)(4)a==b||b==c||a==c (节点12)(5)a*a==b*b+c*c||b*b==a*a+c*c||c*c==a*a+b*b (节点13)(6)a*a==b*b+c*c||b*b==a*a+c*c||c*c==a*a+b*b (节点16)条件:(1)a<1||a>200||b<1||b>200||c<1||c>200 (1.1-1.6)(2)(a+b)<=c||(a+c)<=b||(c+b)<=a (2.1-2.3)(3)a==b&&b==c (3.1,3.2)(4)a==b||b==c||a==c (4.1,4.2,4.3)(5)a*a==b*b+c*c||b*b==a*a+c*c||c*c==a*a+b*b (5.1,5.2,5.3) (6)a*a==b*b+c*c||b*b==a*a+c*c||c*c==a*a+b*b (6.1,6.2,6.3)1、语句覆盖/路径覆盖2、判定覆盖3、条件覆盖/判定条件覆盖二、NextDate问题基路径方法1.Scanner input=new Scanner(System.in);2.int year=input.nextInt(),input.nextInt(),day=input.nextInt();3.int tomorrowday=day,tomorrowmonth=month,tomorrowyear=year;4.if(year<1900||year>2100||month<1||month>12||day<1||day>31) {5.System.out.printf("输入日期非法");System.exit(-1);}6.else if((month==4||month==6||month==9||month==11)&&(day==31)){7.System.out.printf("输入日期不存在\n");System.exit(-1);}8.else if((year%400==0||(year%100!=0&&year%4==0))&&month==2&&day>29){9.System.out.printf("输入日期不存在\n");System.exit(-1);}10.elseif((!(year%400==0||(year%100!=0&&year%4==0))&&month==2&&day>28)){11.System.out.printf("输入日期不存在\n");System.exit(-1);}12.else if((month==4||month==6||month==9||month==11)&&day==30)13.{ tomorrowmonth++;14.tomorrowday=1; }15.elseif((month==1||month==3||month==5||month==7||month==8||month==10)&&day==31)16.{ tomorrowmonth++;17.tomorrowday=1;}18.else if(month==12&&day==31)19.{ tomorrowyear++;20.tomorrowmonth=1;21.tomorrowday=1;}22.else if(month==2&&(year%400==0||(year%100!=0&&year%4==0))&&day==29)23.{ tomorrowmonth++;24.tomorrowday=1;}25.elseif(month==2&&(!(year%400==0||(year%100!=0&&year%4==0)))&&day==28)26.{ tomorrowmonth++;27.tomorrowday=1;}28.else{ tomorrowday++;}29.System.out.println("nextdayis\n"+tomorrowyear+"/"+tomorrowmonth+"/"+tomorrowday);程序结构图基路径数量:分支节点:4、6、8、10、12、15、18、22、25基路径数量9+1=10基路径:(1)最长的路径:Start-1-2-3-4-6-8-10-12-15-18-22-25-26-27-29-End (2)节点4翻转:Start-1-2-3-4-5-29-End(3)节点6翻转:Start-1-2-3-4-6-7-29-End(4)节点8翻转:Start-1-2-3-4-6-8-9-29-End(5)节点10翻转:Start-1-2-3-4-6-8-10-11-29-End(6)节点12翻转:Start-1-2-3-4-6-8-10-12-13-14-29-End(7)节点15翻转:Start-1-2-3-4-6-8-10-12-15-16-17-29-End(8)节点18翻转:Start-1-2-3-4-6-8-10-12-15-18-19-20-21-29-End (9)节点22翻转:Start-1-2-3-4-6-8-10-12-15-18-22-23-24-29-End (10)节点25翻转:Start-1-2-3-4-6-8-10-12-15-18-22-25-28-29-End三、佣金问题数据流测试方法1.double lockprice=45,stockprice=30,barrelprice=25;2.double totallocks=0,totalstocks=0,totalbarrels=0;3.double commission;4.Scanner input=new Scanner(System.in);5.System.out.print("Input the locks,stocks and barrels:\n");6.int locks=input.nextInt(),stocks=input.nextInt(),barrels=input.nextInt();7.if(1>locks||locks>70||1>=stocks||locks>=80||1>=barrels||barrels>=90){8.System.out.println("输入错误");System.exit(-1);}9.totallocks=totallocks+locks;10.totalstocks=totalstocks+stocks;11.totalbarrels=totalbarrels+barrels;12. doublelocksales=lockprice*totallocks,stocksales=stockprice*totalstocks,barrelsales=barrelprice*totalbarrels,sales=locksales+stocksales+barrelsales;13.if(sales>1800){mission=0.10*1000;mission=commission+0.15*800;mission=commission+0.20*(sales-1800);}17.else if(sales>1000){mission=0.10*1000;mission=commission+0.15*(sales-1000);}20.else commission=0.10*sales;21.System.out.print("commission is$:"+commission);程序流程图定义—使用路径:locks:(1)6-7 是定义—清除路径(2)2-3-4-5-6-7-9 是定义—清除路径stocks:(1)6-7 是定义—清除路径(2)6-7-9-10 是定义—清除路径barrels:(1)6-7 是定义—清除路径(2)6-7-9-10-11 是定义—清除路径sales:(1)12-13 是定义—清除路径(2)12-13-14-15-16 是定义—清除路径(3)12-13-17 是定义—清除路径(4)12-13-17-18-19 是定义—清除路径(5)12-13-17-20 是定义—清除路径commission:(1)14-15-16-21 不是定义—清除路径(2)15-16-21 不是定义—清除路径(3)16-21 是定义—清除路径(4)18-19-21 不是定义—清除路径(5)19-21 是定义—清除路径(6)20-21 是定义—清除路径分析:locks、stocks、barrels与sales没有非定义清除路径,commission却有3条非定义—清除路径,所以该变量在使用之前可能被定义两次或多次,可将14-15-16三条语句合并成一条一句,18-19两条语句合并成一条语句,减少缺陷。
例30:输入3个数据,判断以它们为边长是否能构成三角形。
如果能构成,则判断属于哪种特殊三角形:等边、等腰或直角。
分析:题目很简单,关键是做到合理输出。
进行合理判断顺序,以便执行较少的判断条件,得到最终的判断结果。
流程图如下:代码:三角形.cpp运行结果:8、判断s字符串是否为回文的递归函数。
思路:将字符串保存成数组或者链表,将第一个和最后一个元素比较,第二个元素和倒数第二个元素比较,依此类推。
只要有一个不符合则跳出循环或递推,表示字符串不是回文。
这里采用C++标准函数库中的string容器进行操作,这也可以方便输入和取元素操作。
递归函数如下:bool IsSymmetry(string::iterator begin,string::iterator end){ if(begin>=end)return true;if(*begin==*end)IsSymmetry(begin+1,end-1);elsereturn false;return true;}每进入一层便去掉首尾元素,然后重新判断。
实验结果:代码:回文.cpp10、狼找兔子问题:实验结果:将山洞定义为结构体,其类型如下:truct Rabbit{int Num;//1表示未被吃掉,表示被吃掉int No;//山洞编号Rabbit*next;};将所有山洞连接成一个循环链表,构建过程如下:Rabbit*Head=new Rabbit;Head->No=0;Head->Num=1;Rabbit*Tail=Head;for (int i=1;i<n;++i){Rabbit*Temp=new Rabbit;Temp->No=i;Temp->Num=1;Tail->next=Temp;Tail=Temp;}Tail->next=Head;查找过程:Rabbit*p=Head;cout<<"被吃掉的小羊依次是: ";while (p->Num){p->Num=0;cout<<p->No<<" ";for (int k=0;k<m;++k)p=p->next;}浪进入某个洞后便将该洞的sum设为0,循环查找链表,当查找到一个已经进入过的洞(*->num=0)跳出循环。
三角形找规律研究报告研究题目:三角形找规律研究报告研究背景:三角形是初中数学中的重要概念,研究三角形的规律对于学习和理解几何知识具有重要意义。
三角形是一个简单且易于研究的几何形状,通过找出三角形中的规律,可以帮助学生更好地掌握和应用几何概念。
研究目的:本研究的目的是通过分析不同类型的三角形,找出其中的规律,帮助学生更好地理解和应用三角形的相关概念。
具体研究目标包括:1. 研究等边三角形、等腰三角形和普通三角形的特点和规律;2. 探索三角形的内部角度和边长之间的关系;3. 分析特殊的三角形构造,如等边三角形的构造、等腰三角形的构造等。
研究方法:本研究采用了分析和观察的方法,通过对不同类型的三角形进行观察和比较,寻找其中的规律。
同时,根据已有的几何知识和理论,结合具体的例子和问题,进行推理和假设,最终验证并总结三角形的规律。
研究结果:经过研究,我们得出了以下结论:1. 等边三角形的三条边相等,三个内角均为60度;2. 等腰三角形的两边相等,两个底角也相等;3. 普通三角形的三个边和三个内角没有特殊的关系;4. 三角形的内角之和为180度;5. 三角形的两条边之和大于第三边。
这些规律不仅适用于简单的三角形,也可以应用于复杂的三角形问题中。
结论与启示:本研究的结果表明,三角形具有一些固定的特性和规律,通过把握这些规律,可以更好地理解三角形的性质和特点,进而应用到解决相关的问题中。
在数学学习中,掌握几何形状的规律是非常重要的,可以帮助学生提升数学思维和解决问题的能力。
此外,本研究也提醒学生在学习过程中要注重观察和发现,通过探索和实践,找出数学问题的规律,提高学习的效果。
对于教师而言,应该注重培养学生的观察力和发现问题的能力,引导他们主动探求数学规律。
研究的局限性与展望:本研究侧重于三角形的一些基本规律和性质,对于更复杂的三角形问题尚未涉及。
未来,可以进一步拓展研究,探索更多类型的三角形,如直角三角形、等腰直角三角形等,深入研究其特点和规律。
黑龙江大学实验报告黑龙江大学教务处测试计划(GB8567——88)1引言1.1编写目的1.掌握软件测试技术中白盒测试方法;2.掌握如何进行单元测试。
1.2背景测试程序名称:triangle(三角形形状测试)任务提出者:金虎老师开发者:用户:测试环境:WINDOWS XP ; VC++6.0说明:由于程序较小,并且只是作为了解白盒测试的小程序,因此不涉及较高的实验环境,并且测试环境和运行环境在理论上是一样的,因此不存在较大的测试差异。
1.3定义a:三角型的第一条边b:三角型的第二条边c:三角型的第三条边一般三角形:三边都不相等的三角形等腰三角形:有任意两边相等的三角形等边三角形:三边都相等的三角形不能构成三角形:因不满足需求条件而不能构成三角形1.4参考资料1.《软件测试教程》.宫云战.机械工业出版社2008年9月2.《软件测试技术》.曲朝阳.中国水利水电出版社2006年8月3.《软件测试教程》.贺平.电子工业出版社2005年6月2计划2.1软件说明2.2测试内容单元测试。
某程序规定:输入三个整数作为三边的边长构成三角形。
当此三角形为一般三角形、等腰三角形及等边三角形时,分别说明。
2.3测试(标识符)2.3.1进度安排2.3.2条件所需测试机器:机房机器,品牌为联想,基本配置为奔腾4处理器,256M内存,80M硬盘系统环境:WINDOWS XP工具环境:VC++6.0中文版参与人员2.3.3测试资料1.《软件测试教程》.宫云战.机械工业出版社2008年9月2.《软件测试技术》.曲朝阳.中国水利水电出版社2006年8月3.《软件测试教程》.贺平.电子工业出版社2005年6月2.3.4测试培训1.《软件测试教程》宫云战机械工业出版社2008年9月第三章白盒测试2.金虎老师第三张白盒测试PPT课件3测试设计说明3.1测试此项测试采用白盒测试方法来测试该功能。
3.1.1控制环形复杂度为:6基本路径集如下:路径一:1-2-9-8路径二:1-2-3-10-8路径三:1-2-3-4-11-8路径四:1-2-3-4-5-12-8 路径五:1-2-3-4-5-6-13-8 路径六:1-2-3-4-5-6-7-83.1.2输入测试用例如下:3.1.3输出3.1.4过程由于这个程序比较简单,因此没有比较繁琐的步骤以及控制命令。
南昌航空大学实验报告2013年10 月20 日课程名称:软件质量保证与测试实验名称:测试程序的设计班级:****** 姓名:*** 同组人:指导教师评定:签名:一、实验目的完成测试用程序的编写,为接下来的测试实验做准备。
二、实验要求(1)设计程序的语言可以选择C、C++、JA V A等;(2)保证程序语法正确(3)记录实验数据并书写实验报告题目要求:题目一:三角形问题问题描述:输入三角形三条边a、b、c,三条边有效取值范围为[1,200],判断该三角形是什么三角形,输出内容具体包括:(1)等边三角形;(2)等腰三角形;(3)直角三角形;(4)等腰直角三角形;(5)一般三角形;(6)非三角形;(7)输入数据非法。
题目二:NextDate问题问题描述:输入年月日year、month、day,其中年份的有效取值范围为[1900,2100],请输出输入日期的下一天,例如输入2013年9月29日,输出为2013年9月30日。
若输入日期非法,例如输入2013年2月30日,则输出“输入日期不存在”,若输入日期超出取值范围,例如输入2013年9月32日,则输出“输入日期超出范围”。
问题三:佣金问题问题描述:前亚利桑那洲境内的一位步枪销售商销售密苏里州制造商制造的步枪机(lock)、枪托(stock)和枪管(barrel)。
枪机卖45美元,枪托卖30美元,枪管卖25美元。
销售商每月至少要售出一支完整的步枪,且生产限额是大多数销售商在一个月内可销售70个枪机、80个枪托和90个枪管。
根据当月的销售情况,并计算销售商的佣金如下:(1)不到(含)1000美元的部分为10%;(2)1000(不含)~1800(含)美元的部分为15%;(3)超过1800美元的部分为20%。
佣金程序生成月份销售报告,汇总售出的枪机、枪托和枪管总数,销售商的总销售额以及佣金。
三、实验步骤1.运行TC, Visual C++, JA V A等开发工具;2.在开发环境中完成程序设计,并进行调试;3.在程序没有语法错误的前提下重点检查程序的逻辑错误;4.对程序进行调试,并记录实验数据。
四、实验内容三角形问题:概要设计:在输入不同数值可以得到相应的输出结果(1)当输入三条边的数值大小有一不在范围内,提示“输入范围不合理”(2)当输入三值不满足构成三角形条件时,输出“非三角形”(3)当输入三值只是满足构成三角形条件,没有其他特殊问题,输出“一般三角形”(4))当输入三条边只有两个值相等,输出“等腰三角形”(5) 当输入三条边都相等时,输出“等边三角形”(6) 当输入三条边只是满足勾股定理时,输出“直角三角形”(7)当输入三条边不仅满足勾股定理,而且其中有两条边相等,输出“等腰直角三角形”源代码:#include <stdio.h>main(){int a,b,c;system( "graftabl 936 ");clrscr();printf("请输入三个边长:\n");scanf("%d,%d,%d",&a,&b,&c);if((a>=1&&a<=200)&&(b>=1&&b<=200)&&(c>=1&&c<=200)){if(a+b>c && a+c>b && b+c>a)if(a*a==b*b+c*c || b*b==a*a+c*c || c*c==a*a+b*b){ printf("可以构成一个直角三角形\n");if(a==b||b==c||a==c)printf("可以构成一个等腰直角三角形\n"); }else if(a==b && a==c)printf("可以构成一个等边三角形\n");else if(a==b||b==c||a==c)printf("可以构成一个等腰三角形\n");elseprintf("可以构成一个等腰三角形\n");elseprintf("不能构成三角形\n");}else printf("输入范围不合理\n");getch();}运行结果:Nextday函数:概要设计:分析不同情况下的输入,可以得到不同输出(1)当输入数值只要有一个不符合范围,提示“不合理范围”(2)当输入非月头月尾数值时,输出日期将天数加1(3)当输入非2月月尾时,输出日期将月份加1(4)当输入的为年尾时,输出日期将年份加1(5)当输入闰年28日时,输出日期将天数加1(6)当输入闰年29日时,输出日期将月份加1(7)当输入非闰年27日时,输出日期将天数加1(8)当输入非闰年28日时,输出日期将月份加1(9)当输入非闰年29日时,提示“输入错误”源代码:#include<stdio.h>main(){int year,month,day;int a[]={31,29,31,30,31,30,31,31,30,31,30,31};int b[]={31,28,31,30,31,30,31,31,30,31,30,31};system( "graftabl 936 ");clrscr();printf("请输入日期:\n");scanf("%d,%d,%d",&year,&month,&day);if(year<=2100&&year>=1900){if (year%4==0&&year%100!=0||year%400==0){if(month<12){ if(a[month-1]>day)printf("后一天:%d年%d月%d日",year,month,day+1);elseprintf("后一天:%d年%d月1日",year,month+1);}else if(month==12){ if(a[month-1]>day)printf("后一天:%d年%d月%d日",year,month,day+1);elseprintf("后一天:%d年1月1日",year+1);}}else {if(month<12){ if(b[month-1]>day)printf("后一天:%d年%d月%d日",year,month,day+1);elseprintf("后一天:%d年%d月1日",year,month+1);}else if(month==12){ if(b[month-1]>day)printf("后一天:%d年%d月%d日",year,month,day+1);elseprintf("后一天:%d年1月1日",year+1);}} }getch(); }运行结果:输出结果错误,代表程序源代码出现错误佣金问题:概要分析:当输入不同数值时会有不同的的佣金(1)当输入数值不满足要求时,提示“不合理范围”(2)当输入数值计算得总销售额不到(含)1000美元,佣金为其10%(3)当输入数值计算得总销售额为1000(不含)~1800(含)美元,佣金为其15%(4)当输入数值计算得总销售额超过1800美元,佣金为其20%源代码:#include <stdio.h>int main(){int x,y,z,n;system( "graftabl 936 ");clrscr();printf("请输入购买的枪机、枪托、枪管数量:\n");scanf("%d,%d,%d",&x,&y,&z);if((x>=1&&x<=70)&&(y>=1&&y<=80)&&(z>=1&&z<=90)){n=45*x+30*y+25*z;if(n<=1000)printf("枪机数%d、枪托数%d、枪管数%d、总销售额%d、佣金%f",x,y,z,n,0.1*n);else if(n<=1800)printf("枪机数%d、枪托数%d、枪管数%d、总销售额%d、佣金%f",x,y,z,n,0.15*n);elseprintf("枪机数%d、枪托数%d、枪管数%d、总销售额%d、佣金%f",x,y,z,n,0.2*n);}elseprintf("输入范围不合理\n");getch();}运行结果:五、结果分析对以上三个题目的编码中,三角形问题和佣金问题没有出现什么错误,就是在nextday 中出现众多小错误,其中,对于范围问题只是对年份进行了控制,没有对月份及日期进行控制,从而超出范围也不会作出相对应的提示。
而且,在nextday中有的输入得不到相对应的输出,将会在下面的白盒测试中对其进行修改。
南昌航空大学实验报告2013 年 10 月 27 日课程名称:软件质量保证与测试实验名称:功能性测试班级:****** 姓名:*** 同组人:指导教师评定:签名:一、实验目的掌握边界值、等价类、决策表测试的基本功能性测试方法二、实验要求分别用健壮性测试(边界值方法)、弱健壮等价类测试(等价类方法)和决策表测试技术分别对三角形问题|、Nextdate问题和佣金问题设计测试用例(即每个程序都要用这三种方法进行测试),并分别对实验一所编写的三个程序进行测试。
要求:对于测试用例的设计必须给出详细的设计过程,在测试过程中如果发现缺陷(预期输出与实际输出不符),则采用截图的方式说明缺陷现象,并简单分析其可能产生的原因及建议,但不允许修改程序。
三、实验步骤1.运行TC, Visual C++, JA V A等开发工具;2.在开发环境中完成程序设计,并进行调试;3.在程序没有语法错误的前提下重点检查程序的逻辑错误;4.对程序进行调试,并记录实验数据。
四、实验内容三角形问题健壮性边界值测试用例测试用例输入条件预期输出实际输出用例状态a b cTest1 0 100 100 提示“输入范围不合理”提示“输入范围不合理”fail Test2 1 100 100 等腰三角形等腰三角形pass Test3 2 100 100 等腰三角形等腰三角形pass Test4 100 100 100 等边三角形等边三角形pass Test5 199 100 100 等腰三角形等腰三角形pass Test6 200 100 100 非三角形非三角形pass Test7 201 100 100 提示“输入范围不合理”提示“输入范围不合理”fail Test8 100 0 100 提示“输入范围不合理”提示“输入范围不合理”fail Test9 100 1 100 等腰三角形等腰三角形pass Test10 100 2 100 等腰三角形等腰三角形pass Test11 100 199 100 等腰三角形等腰三角形pass Test12 100 200 100 非三角形非三角形pass Test13 100 201 100 提示“输入范围不合理”提示“输入范围不合理”fail Test14 100 100 0 提示“输入范围不合理”提示“输入范围不合理”fail Test15 100 100 1 等腰三角形等腰三角形pass Test16 100 100 2 等腰三角形等腰三角形pass Test17 100 100 199 等腰三角形等腰三角形passTest18 100 100 200 非三角形非三角形pass Test19 100 100 201 提示“输入范围不合理”提示“输入范围不合理”fail缺陷截图:Test1:Test7:Test8:Test13:Test14:Test19:弱健壮等价类条件桩:C1: 是否构成三角形(a+b>c a+c>b b+c>a)动作桩: A1:非三角形C2: a=b A2:等腰三角形C3: b=c A3:等边三角形C4: a=c A4:一般三角形A5:不可能出现三角形问题决策表决策表1-8 9 10 11 12 13 14 15 16C1 C2 C3 C4 F———TTTTTTTFTTFTTTFFTFTTTFTFTFFTTFFFA1 A2 A3 A4 A5 √√√√√√√√√三角形问题决策表测试用例测试用例输入条件预期输出a b c1-8 910111213141516 2 3 63 3 3﹡﹡﹡﹡﹡﹡1515 20﹡﹡﹡1520 202520 2515 20 26非三角形等边三角形不可能不可能等腰三角形不可能等腰三角形等腰三角形一般三角形Nextday问题健壮性边界值测试用例测试用例输入条件预期输出实际输出用例状态年月日Test1 1899 6 15 提示“超出范围”提示“超出范围”fail Test2 1900 6 15 1900/6/16 1900/6/16 pass Test3 1901 6 15 1901/6/16 1901/6/16 pass Test4 2000 6 15 2000/6/16 2000/6/16 pass Test5 2099 6 15 2099/6/16 2099/6/16 pass Test6 2100 6 15 2100/6/16 2100/6/17 pass Test7 2101 6 15 提示“超出范围”提示“超出范围”fail Test8 2000 0 15 提示“超出范围”2000/1/1 fail Test9 2000 1 15 2000/1/16 2000/1/16 pass Test10 2000 2 15 2000/2/16 2001/2/16 pass Test11 2000 11 15 2000/11/16 2000/11/16 pass Test12 2000 12 15 2000/12/16 2000/12/16 pass Test13 2000 13 15 提示“超出范围”2000/1/16 fail Test14 2000 6 0 提示“超出范围”2000/6/1 fail Test15 2000 6 1 2000/6/2 2000/6/2 pass Test16 2000 6 2 2000/6/3 2000/6/3 pass Test17 2000 6 29 2000/6/30 2000/6/30 pass Test18 2000 6 30 2000/7/1 2000/7/1 pass Test19 2000 6 31 提示“超出范围”提示“超出范围”fail缺陷截图:Test1:Test7:Test8:出现未知错误,预期输出“超出范围”,结果显示出了不相对应的输出结果,可能是程序中出现了一定程度的逻辑错误Test13:出现未知错误,预期输出“超出范围”,结果显示出了不相对应的输出结果,再观察完程序后,发现,在源代码中只是对年份的范围进行了一定的范围规范,没有对月份进行要求,才会出现以下的运行错误Test14:出现未知错误,预期输出“超出范围”,结果显示出了不相对应的输出结果,在观察完程序后,发现在源代码中只是对年份的范围进行了一定的范围规范,没有对月份进行规范,才会出现以下的运行错误Test19:Nextday函数弱健壮性等价类简易分析赋值归纳:Y1: 该年为闰年Y2:该年不会闰年M1:该月有30天M2:该月有31天(12月除外)M3:该月为12月M4:该月为2月D1: 1<=day<=27 D2:28天D3:29天D4:30天D5:31天条件桩:C1:month C2:day C3:year动作桩:A1:不可能A2: day+1 A3:day复位A4:month+1 A5: month复位A6:year+1Nextday函数的决策表选项规则1-3 4 5 6-9 1011-1415 16 17 18 19 2021-22条件C1 M1 M1 M1 M2 M2 M3 M3 M4 M4 M4 M4 M4 M4 C2D1-D3D4 D5D1-D4D5D1-D4D5 D1 D2 D2 D3 D3D4-D5 C3 - - - - - - - - Y1 Y2 Y1 Y2 -动作A1 √√√A2 √√√√√A3 √√√√√A4 √√√√A5 √A6 √Nextday函数决策表测试用例测试用例year month day 预期输出test1-3 2001 6 15 2001-6-16test4 2001 6 30 2001-7-1test5 2001 6 31 不可能test6-9 2001 7 15 2001-7-16test10 2001 7 31 2001-8-1test11-14 2001 12 15 2001-12-16test15 2001 12 31 2002-1-1test16 2001 2 15 2001-2-16test17 2000 2 28 2000-2-29test18 2001 2 28 2001-3-1test19 2000 2 29 2000-3-1test20 2001 2 29 不可能test21-22 2001 2 30 不可能对此问题健壮性边界值测试得到的结果是,当输入的数值之间有逻辑关系的时候,不适合用健壮性测试,因为其间的逻辑关系,在取其特殊值的时候,需要考虑之前的正常取值。