首页 范文大全 古典文学 职场知识 中国文学 公文书信 外国名著 寓言童话 百家讲坛 散文/诗歌 美文欣赏 礼仪知识 民俗风情
  • 工作总结
  • 工作计划
  • 心得体会
  • 竞聘演讲
  • 会议发言
  • 爱国演讲
  • 就职演说
  • 开业开幕
  • 思想学习
  • 征文演讲
  • 经验材料
  • 述职报告
  • 调研报告
  • 工作汇报
  • 年终总结
  • 申报材料
  • 学习体会
  • 企划方案
  • 活动方案
  • 技巧经验
  • 模板范例
  • 思想宣传
  • 经济工作
  • 工作报告
  • 组织人事
  • 反腐倡廉
  • 慰问贺电
  • 先进事迹
  • 思想汇报
  • 入党申请书
  • 党会发言
  • 先进性教育
  • 入团申请书
  • 个人简历
  • 演讲稿
  • 调查报告
  • 实习报告
  • 和谐社会
  • 观后感
  • 读后感
  • 作文范文
  • 自我鉴定
  • 讲话稿
  • 自查报告
  • 三角形、nextday、佣金问题实验报告

    时间:2020-11-08 10:41:57 来源:蒲公英阅读网 本文已影响 蒲公英阅读网手机站

    相关热词搜索:角形 佣金 实验

     南昌航空大学实验报告 2013 年 10 月 20 日

     课程名称:软件质量保证与测试 实验名称:

     测试程序的设计 指导教师评定:

     _________________________________________________________

     签名:

     ______________________

     一、 实验目的 完成测试用程序的编写,为接下来的测试实验做准备。

     二、 实验要求 ( 1 )

     设计程序的语言可以选择 C 、 C++ 、 JAVA 等; ( 2 )

     保证程序语法正确 ( 3 )

     记录实验数据并书写实验报告 题目要求:

     题目一:三角形问题 问题描述:输入三角形三条边 a 、 b 、 c ,三条边有效取值范围为 [1,200] ,判断该三角形 是什么三角形,输出内容具体包括:

     ( 1 )等边三角形;( 2 )等腰三角形;( 3 )直角三角形; ( 4 )等腰直角三角形;( 5 )

     一般三角形;( 6 )非三角形;( 7 )输入数据非法。

     题目二:

     NextDate 问题 问题描述:输入年月日 year 、 mo nth 、 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 VA 等开发工具; 2 •在开发环境中完成程序设计,并进行调试; 3 •在程序没有语法错误的前提下重点检查程序的逻辑错误; 4 •对程序进行调试,并记录实验数据。

     四、 实验内容 三角形问题:

     概要设计:

     在输入不同数值可以得到相应的输出结果 ( 1 )当输入三条边的数值大小有一不在范围内,

     班级: ****** 姓名: **

     同组人:

     ___________________________________________

     提示“输入范围不合理”

     (2) 当输入三值不满足构成三角形条件时,输出“非三角形” (3) 当输入三值只是满足构成三角形条件,没有其他特殊问题,输出 般三角形” (4) ) 当输入三条边只有两个值相等,输出“等腰三角形” (5) 当输入三条边都相等时,输出“等边三角形” (6) 当输入三条边只是满足勾股定理时,输出“直角三角形” (7) 当输入三条边不仅满足勾股定理,而且其中有两条边相等,输出“等 腰直角三角形” 源代码: #in elude <stdio.h> main () { int a,b,c; system( "graftabl 936 "); clrscr(); printf(" 请输入三个边长:

     \n"); scan f("%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"); else printf(" 可以构成一个等腰三角形 \n"); else printf(" 不能构成三角形 \n"); } else printf(" 输入范围不合理 \n"); getch();

     Nextday 函数:

     概要设计:分析不同情况下的输入,可以得到不同输出 } 运行结果:

     vz a r a( - -

     t n^klpKfl=Ln

     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); else printf(" 后一天:

     %d 年 %d 月 1 日 ",year,month+1); }

     else if(month==12) { if(a[month-1]>day) printf(" 后一天:

     %d 年 %d 月 %d 日 ",year,month,day+1); else printf(" 后一天:

     %d 年 1 月 1 日 ",year+1); }

     }

     else { if(month<12) { if(b[month-1]>day) printf(" 后一天 :%d 年 %d 月 %d 日 ",year,month,day+1); else

     printf(” 后一天 : } else if(mon th==12) { if(b[m on th-1]>day)

      printf(" 后 else printf(" 后 天 天

     }

      } }

      getch(); }

     %d 年 %d 月 1 日 ",year,month+1); %d 年 %d 月 %d 日 ",year,month,day+1); %d 年 1 月 1 日 ”,year+1);

     运行结果:

      佣金问题:

     概要分析:

     当输入不同数值时会有不同的的佣金 ( 1 )

     当输入数值不满足要求时,提示“不合理范围” ( 2 )

     当输入数值计算得总销售额不到(含)

     1000 美元,佣金为其 10% ( 3 )

     当输入数值计算得总销售额为 1000 (不含)

     ~1800 (含)美元,佣金为 其 15% ( 4 )

     当输入数值计算得总销售额超过 1800 美元,佣金为其 20% 源代码:

     #in clude <stdio.h> int mai n() { int x,y,z, n; system( "graftabl 936 "); clrscr(); printf(" 请输入购买的枪机、枪托、枪管数量 :\n"); scan f("%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); else printf(" 枪机数 % d 、枪托数 %d 、枪管数 % d 、总销售额 % d 、佣金 %f",x,y,z,n,0.2*n); } else printf(" 输入范围不合理 \n"); getch(); } 运行结果:

     请输儿购买的枪机、枪托、枪管数量; 输人范囿不合理 Lnt 五、结果分析 对以上三个题目的编码中, 三角形问题和佣金问题没有出现什么错误, 就是在 nextday 中出现众多小错误, 其中,对于范围问题只是对年份进行了控制, 没有对月份及日期进行控 制,从而超出范围也不会作出相对应的提示。而且,在 nextday 中有的输入得不到相对应的 输出,将会在下面的白盒测试中对其进行修改。

     南昌航空大学实验报告

     2013 年 10 月 27 日 课程名称: 软件质量保证与测试 实验名称:

     功能性测试 班级:

     ****** 女姓名. *** 同组人:

     指导教师评定:

     _________________________________________________________

     签名:

     ______________________

      一、 实验目的 掌握边界值、等价类、决策表测试的基本功能性测试方法 二、 实验要求 分别用健壮性测试(边界值方法)、弱健壮等价类测试(等价类方法)和决策表测试技 术分别对三角形问题 | 、 Nextdate 问题和佣金问题设计测试用例(即每个程序都要用这三种 方法进行测试),并分别对实验一所编写的三个程序进行测试。

     要求:对于测试用例的设计必须给出详细的设计过程, 在测试过程中如果发现缺陷 (预 期输出与实际输出不符),则采用截图的方式说明缺陷现象,并简单分析其可能产生的原因 及建议,但不允许修改程序。

     三、 实验步骤 1 .运行 TC, Visual C++, JA VA 等开发工具; 2 •在开发环境中完成程序设计,并进行调试; 3 •在程序没有语法错误的前提下重点检查程序的逻辑错误; 4 •对程序进行调试,并记录实验数据。

     四、 实验内容 三角形问题 健壮性边界值测试用例 测试用 例 输 入 条 件 预期输出 实际输出 用例状态 a b c Test1 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 等腰三角形 等腰三角形 pass

     -I,

     Test18 100 100 200 非三角形 非三角形 pass Test19 100 100 201 提示“输入范围不合理” 提示“输入范围不合理” fail 缺陷截图:

     Testi : CA

     IE :

     \| 12032 lXtriangle. exe

      Test7 :

     v 逊 j 逸 a、 九 a 』 m a 』血 D 』 现 G 丿; sa* u :

     \ E: \1 L2Q32^1\triangle_ exe b>* * a pr: 201.100,100 (a; f ("输入范围不合理 ==】

     nt*

      Test8 : -E:\112032 l\-tzi^L£le.exe

     青输扎=个边仪:

     190.201,100 帚入范围不合理 Test14 :长理 边合 卜 F 三r 7V乩范 IJ rrn. rfc h"

     1 >/ nt 釘 b 」 yst t " r() ; r iivt canl >=1S 主输入三个边长: 00,0,100 俞入范ffi] ] 不台理 Im 4

     E

     & /IX

     Test13: E:\L12332^1\triangle.exe , b

     i==

     Test19: u 、

     E:\112032*^1 \trianjle ・

     EX 時 1 叽 1 叽阿 输入範围不合理 弱健壮等价类

     iftain () if 5 打 -- ■ J-." •fl u ■* -a JL (& t a* :pr:

      mF w爾电 3 4 4 Tat f

     5

     Q 血 4 _ W _ 专 pr 6 1, 5 —車二 g g 』一 2_ f=Ft 7 l 电 孑

     5 亠 ◎二 8 ~7 _2- L &Q

     f J S

     Jj* IZH 、,和 5一 条件桩:

     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 C1 F T T T C2 一 T T T C3 一 T T F C4 —— T F T A1 V

     A2

      A3

     V

      A4

      A5

      V V

     12 13 14 15 16 T T T T T T F F F F F T T F F F T F T F V V V V V

      三角形问题决策表测试用例 测试 用例 输入 条件 预期输出 a b c 1-8 2 3 6 非三角形 9 3 3 3 等边三角形 10 * * * 不可能 11 * * * 不可能 12 15 15 20 等腰三角形 13 * * * 不可能 14 15 20 20 等腰三角形 15 25 20 25 等腰三角形 16 15 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

     缺陷截图: Testi:

      -JIj JU, JI H E : \ 1 1203 2 1 dat e.

     Test7 :

     Test13: L 31, 3], 30, 3:, 30,31J: 示出了不相对应的输出结果,再观察完程序后,发现,在源代码中只是对年份的范围进行了 一定的范围规范,没有对月份进行要求,才会出现以下的运行错误 Test14 :

      Test8 : 结果显示出了不相对应的输出结果,可能是程序中出现了一定程度的逻辑错误 预期输出“超出范围”, 出现未知错误,预期输出“超出范围” ,结果显

      时 E:\l 12032\neztdate. exe 遍输儿日碾蔦 2S00/6Z1 I ni 出现未知错误,预期输出“超出范围” 果显示出了不相对应的输出结果, 在观察完程序后,发现在源代码中只是对年份的范围进行 了一定的范围规范,没有对月份进行规范,才会出现以下的运行错误 Test19: "graft abl 935 crD : 肓输入 ,Sd, S 19001 r%4| | fi r -■"•- E; \ 112032^l\nestdate, ese fl 青输入日期:

     1000.6,30 2000/7/1

      5 4 n ■ r 20 2 门 J3&Z 她 15 如二引 〜习 era Nextday 函数弱健壮性等价类

     选项 1-3 4 5 6-9 10 规则

     C1 M1 M1 M1 M2 M2 条 _ _ D1-

      D1-

     C2 D4 D5 D5件 D3

      D4

     C3

     A1

      V

      动 A2 V

      V

     动 A3

     V

      V 作 A4

     V

      V A5

      11 14 15 16 17 18 19 20 21 22 M3 M3 M4 M4 M4 M4 M4 M4 D1-

      D4- D4 D5 D1 D2 D2 D3 D3 D5

     Y1 Y2 Y1 Y2

      V V

     V

     V V

     V

      V V

      V V

     V

      辅九数擢 军自日 J. LfeU_L ^ftT 5 3t? 卫吨 & 邂 * 1 -1 ..iJA- ).^4 i_t< 嬴、— f 轿 xfca 逊 甌亠 - 工 ——1 「~_/」_ 4 憾减週彳停 8 塑血_ J -- ―"_J r

     |三狂 亦二込na ‘ +0 2 \ L 林備 J2ni

     _____

     迟

     I 迟 L J? 厂弼施国卷神城詡 [ 今刃描隔陽他血 G—\ 「為 血疵屜痂口 IK 简易分析赋值归纳:

     Y1 :

     该年为闰年 Y2: 该年不会闰年 M1: 该月有 30 天 M2: 该月有 31 天( 12 月除外)

     M3: 该月为 12 月 M4 :该月为 2 月 D1: 1<=day<=27 D2:28 天 D3:29 天 D4:30 天 D5:31 天 条件桩:

     C1:mo nth C2:day C3:year 动作桩:

     A1: 不可能 A2: day+1 A3:day 复位 A4:month+1 A5: mon th 复位 A6:year+1 Nextday 函数的决策表

     A6 V

      Nextday 函数决策表测试用例 测试用例 year mon th day 预期输出 test1-3 2001 6 15 2001-6-16 test4 2001 6 30 2001-7-1 test5 2001 6 31 不可能 test6-9 2001 7 15 2001-7-16 test10 2001 7 31 2001-8-1 test11-14 2001 12 15 2001-12-16 test15 2001 12 31 2002-1-1 test16 2001 2 15 2001-2-16 test17 2000 2 28 2000-2-29 test18 2001 2 28 2001-3-1 test19 2000 2 29 2000-3-1 test20 2001 2 29 不可能 test21-22 2001 2 30 不可能 对此问题健壮性边界值测试得到的结果是, 当输入的数值之间有逻辑关系的时候, 不适合用 健壮性测试,因为其间的逻辑关系,在取其特殊值的时候,需要考虑之前的正常取值。

     佣金问题 健壮性边界值测试用例 测试用 例 输 入 条 件 预期输出 实际输出 用例状态 枪机 枪托 枪管 Test1 0 40 45 提示“输入范围不合理” 提示“输入范围不合理” fail Test2 1 40 45 474 474 pass Test3 2 40 45 483 483 pass Test4 35 40 45 780 780 pass Test5 69 40 45 1086 1086 pass Test6 70 40 45 1095 1095 pass Test7 71 40 45 提示“输入范围不合理” 提示“输入范围不合理” fail Test8 35 0 45 提示“输入范围不合理” 提示“输入范围不合理” fail Test9 35 1 45 546 546 pass Test10 35 2 45 552 552 pass Test11 35 79 45 1014 1014 pass Test12 35 80 45 1020 1020 pass Test13 35 81 45 提示“输入范围不合理” 提示“输入范围不合理” fail Test14 35 40 0 提示“输入范围不合理” 提示“输入范围不合理” fail Test15 35 40 1 560 560 pass Test16 35 40 2 565 565 pass

     Test17 35 40 89 1000 1000 pass Test18 35 40 90 1005 1005 pass Test19 35 40 91 提示“输入范围不合理” 提示“输入范围不合理” fail

     缺陷截图: Testi : =T“h 以 『订\ 出直寸£二农 ri"t 几 F T 、= I 几丄于』二口「 I 、\ c ; \ E: \112032 lXyongjiri. eie +3 10 入购买 ,45 范園下 Test7 :

     1

     f a

     債 Aft 1 rti 7i* ftfi M- in 川 遍 ir .S& 匕 *匸 3 二 p 供朴出. t Test8 : 辅- :7C:

     c :

     E:\112032 l\yongjin. ese 4-3(1:

     0(11 青输入购买的枪机、枪托、枪管數量 1S,0,45 侖入范围不合理 Test13:

     Test14 :

     ・十■; c :

     \ E :

     V1 11?IJ3y * 1 \y o<h fiJ ese -10 请荷煤 J 矢魂定福: 35^40,0 愉入范圜不台埋 in±

     Test19: £k. ? cnJ-. TT #- XA Xn JLAu -L-T -LA. -H E

     丄 C5X. ・ ・ ee i HU # 、

     心 o)aE:\112032^1\yongjin. ese 慣输入购买的枪札 枪托、枪管数量三 n *7 V) pri 35,40,91

     對入范围不台理

     -

     佣金问题弱健壮性等价类

     条件桩:

     C1:1<=x<=70 C2: 1<=y<=80 C3: 1<=z<=90 选项 佣金问题决策表 动作桩 : A1: 不合理范围 A2: 合理范围 规则

     1 2--5 6--8

      C1 T F T

     条件 C2 T - F

      C3 T - -

     动作 A1

     V

     A2 V

      佣金问题决策表测试用例 测试用例 x y

     z 预期输出 test1 35 40 45 780 test2--5 0 40 45 不合理范 围 test6--8 35 0 40 不合理范 围

     通过对佣金问题的决策表用例测试, 可以看出佣金问题不适合用决策表测试, 因为动作桩的 详细判断是无法达成的。

     例:每个不同的输入会有不同的输出, 无法判断其是属于什么范围 内的佣金比例,则无法达到预期的测试效果。

     五、结果分析 对以上三个问题进行黑盒测试, 在对三角形问题进行测试的时候, 发现该代码不能对非整数 进行测试, 将要对其输入类型进行修改, 再者在若健壮性等价类测试中无法对等腰直角三角 形进行测试,无法得到想要的测试结果。在对 nextday 函数进行测试的时候,可以将其间不 满足要求的, 都测试的出来, 将在白盒测试之前将其修改正确。

     佣金问题的黑盒测试没有发 现问题,相对可以满足黑盒测试的要求。

     南昌航空大学实验报告 2013 年 11 月 3 日

     一、 实验目的 掌握逻辑覆盖法、基路径法以及数据流测试基本结构性测试方法 二、 实验要求 1 、 对三角形问题尝试用逻辑覆盖法(语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、 路径覆盖)设计测试用例,具体要求如下:

     ( 1 )

     为程序语句部分进行编号; ( 2 )

     画出程序的程序结构图(节点图)

     ; ( 3 )

     用上述五种方法分别设计测试用例,并说明每种测试用例的设计思路,例如测 试用例所覆盖的语句、判定或条件的真分支假分支或路径等; ( 4 )

     使用上述测试用例对三角形问题进行测试,并做好测试记录,即有缺陷进行截 图,并试图分析产生缺陷原因。

     2 、 对 NextDate 问题尝试采用基路径方法设计测试用例,具体要求如下:

     ( 1 )

     为程序语句部分进行编号; ( 2 )

     画出程序的程序结构图(节点图)

     ; ( 3 )

     用基路径方法设计测试用例,并说明每个测试用例的设计思路,例如测试用例 所覆盖基路径; ( 4 )

     使用上述测试用例对 NextDate 问题进行测试,并做好测试记录,即有缺陷进 行截图,并试图分析产生缺陷原因。

     3 、 对佣金问题采用数据流测试方法设计测试用例,具体要求如下:

     ( 1 )

     为程序语句部分进行编号; ( 2 )

     画出程序的程序结构图(节点图)

     ; ( 3 )

     找出程序中所定义的枪机、 枪托、枪管、销售额以及佣金五个变量的定义节点、 使用节点,并判断是谓词使用还是计算使用; ( 4 )

     找出以上五个变量的所有定义 - 使用路径,并判断其是否为定义 - 清除路径; ( 5 )

     根据上述路径分析程序可能出现的缺陷,并试图分析产生缺陷原因。

     三、 实验步骤 该三个问题都是先将代码进行编号, 根据代码形式画出相对应的程序流程图, 再根据 程序流程图将其修改成节点图,在对具体要求进行解答。

     具体实验步骤已在实验内容中详细介绍 四、 实验内容 三角形问题:

     解:

     ( 1 )

     #in elude <stdio.h> #define e 2.718281828

     课程名称:软件质量保证与测试 班级: ****** 姓名: 指导教师评定: 实验名称:

     结构性测试 ________________________________

     同组人:

     ___________________________

     签名:

     ______________________

     main() {

     float a,b,c; system( "graftabl 936 "); clrscr(); printf(" 请输入三个边长:

     \n"); scanf("%f,%f,%f",&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<=e-2)||(a*a+c*c-b*b<=e-2)||(c*c+b*b-a*a)<=e-2) { if(a==b||b==c||a==c) printf(" 等腰直角三角形 \n"); else printf(" 直角三角形 \n"); } else { if(a==b||b==c||a==c) if(a==b&&a==c) printf(" 等边三角形 \n"); else printf(" 等腰三角形 \n"); else printf(" 一般三角形 \n"); } else printf(" 非三角形 \n");} else printf(" 输入范围不合理 \n"); getch(); }1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

      (2 )先画出程序流程图: 根据所画的程序流程图,画出相对应的节点图:

     ( 3 )语句覆盖就是要求每条语句至少执行一次 判定语句就是要求每个判定的每条分支至少执行一次 路径覆盖就是要求每条可能的路径至少执行一次 由于此题中,每个 if 分支无论真假都有对应的反应语句,所以,此题中的语句覆盖、判断 覆盖和路径覆盖都是相同的 语句覆盖 = 判定覆盖 = 路径覆盖的测试用例:

     输入数据 预期输出1 2 3 15 5 14 9 6 13 10 8 7 11 12 end 覆盖路径

      用 例 a b c tes t1 4 3 6 tes t2 5 10 12 tes t3 5 5 8 tes t4 15 15 15 tes t5 3 4 5 tes t6 2 2 2.828 tes t7 201 200 180

     非三角形 1-2-3-4-14 一般三角形 1-2-3-4-5-9-13 等腰三角形 1-2-3-4-5-9-10-12 等边三角形 1-2-3-4-5-9-10-11 直角三角形 1-2-3-4-5-6-8 等腰直角三 角形 提示“输入1-2-3-4-5-6-7 范围不合 1-2-3-15 理”

      节点 3 :

     (a>=1 &&a<=200)&&(b>=1 &&b<=200)&&(c>=1 &&c<=200) a>=1 编号为 1.1 a<=200 编号为 1.2 b>=1 编号为 1.3 b<=200 编号为 1.4 c>=1 编号为 1.5 c<=200 编号为 1.6 节点 4 :

     a+b>c && a+c>b && b+c>a a+b>c 编号为 2.1 a+c>b 编号为 2.2 b+c>a 编号为 2.3 节点 5 :

     (a*a+b*b-c*c<=e-2)||(a*a+c*c-b*b<=e-2)||(c*c+b*b-a*a)<=e-2) a*a+b*b-c*c<=e-2 编号为 3.1 a*a+c*c-b*b<=e-2 编号为 3.2

     节点 6 : c*c+b*b-a*a)<=e-2 编号为 3.3 节点 9 : a==b||b==c||a==c a==b 编号为 4.1 a==b||b==c||a==c a==b 编号为 5.1 b==c 编号为 4.2 b==c 编号为 5.2 a==c 编号为 4.3 a==c 编号为 5.3 节点 10 :

     a==b&&a==c 用 例 序 号 输入数据 预期输出 覆盖条件 a b c 1 -1 202 10 输入范围不合理 F1.1\F1.2\F1.3\F1.4\F1.5\F1.6 2 10 20 30 非三角形 F2.1\F2.2\F2.3 3 4 5 2 一般三角形 T1T2F3F4F5F6

     a==b 编号为 6.1 a==c 编号为 6.2 条件覆盖 = 条件组合覆盖

     4 3 4 5 直角三角形 T1T2T3F4F5F6 5 2 2 2.828 等腰直角三角形: T1T2T3T4F5F6 6 4 4 5 等腰三角形 T1T2F3F4T5F6 7 5 5 5 等边三角形「 T1T2F3F4T5T6 8 -- -- --

     其余情况不可能存在 其中, T1 包括所有 1.1~1.6 的情况,也就是 1.1~1.6 整体判断为 T F1 指的是 1.1~1.6 整体判断值为 F 以上为例,其他均为此规律

     Nextday 函数:

     解:( 1 ) #in clude<stdio.h> int mai n() { int year,m on th,day; int a[12]={31,29,31,30,31,30,31,31,30,31,30,31}; int b[12]={31,28,31,30,31,30,31,31,30,31,30,31}; int y,m,d; system( "graftabl 936 "); clrscr(); 1 printf(" 请输入日期 :

     ”) ; 2 scan f("%d,%d,%d" , & year,&mo nth, &day); 3 if((year>=1900&&year<=2100)&&(mon th>=1 &&mon th<=12)&&(day>=1 &&day<=31)) 3 if(mo nth<12) { 4 if(year%4||year%1OO&&!(year%400)) { 5 if(b[m on th-1]>day){ 6 d=day+1; 7 m=mo nth; 8 y=year; 9 prin tf("%d/%d/%d\n",y,m,d);} 10 else if(b[m on th-1]==day) 11 {d=1; m=mon th+1; 13

     y=year; printf("%d/%d/%d\n",y,m,d);} else printf(" 输入错误 \n"); }

     else { if(a[month-1]>day) {d=day+1; m=month; y=year; printf("%d/%d/%d\n",y,m,d);} else {d=1; m=month+1; y=year; printf("%d/%d/%d\n",y,m,d);} }

     }

     else { if(a[month-1]>day||b[month-1]>day) printf("%d/%d/%d",year,month,day+1); else printf("%d/1/1",year+1); }

     }

     else printf(" 超出范围 \n"); getch();

     14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

     (2 )先画出程序流程图:

      start 2 3 29 5 26 6 17 7 127 28 18 22 12 8 16 19 23 13 9 20 24 14 10 21 15 end 方法 根据以上的程序流程图,可画出相对应的节点图: V(G)=7+1=8 (3 )计算 V(G) 根据程序中有 7 个判断节点,

     方法二二根据图中有 7 个完整封闭区域, V(G)=7+ 仁 8

     .、.- | . t t f

     r • 、

     __

     ____ / > 、 t 31 个节点, V(G)=37-31+2=8

      方法二:图中共有 37 条边,

     独立路径:

     Path2: 1-2-3-29

      Path2 : 1-2-3-4-26-27

      Path3: 1-2-3-4-26-28

      Path4:1-2-3-4-5-17-22-23-24-25

     Path5: 1-2-3-4-5-17-18-19-20-21

     Path6:1-2-3-4-5-6-11-16

      Path7:1-2-3-4-5-6-11-12-13-14-15

     Path8:1-2-3-4-5-6-7-7-8-9-10

     设计测试用例:

      输入数据

      覆 测试用 例 y m d

     预期输出 盖 路

     径 testl 2013 13 2 提示“超出范围” 1 test2 2002 12 4 2002-12-5 2 test3 2002 12 31 2003-1-1 3 test4 2003 6 30 2003-7-1 4 test5 2003 6 15 2003-6-16 5 test6 2000 2 30 提示“输入错误” 6 test7 2000 2 29 2000-3-1 7 test8 2000 6 15 2000-6-16 8 (4 ) testl :

      Test6:

     佣金问题:

     解:

     1 ) #include <stdio.h> int main() {

     int x,y,z,n,m; 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) m=0.1*n; printf(” 枪机数 % d 、枪托数 % d 、枪管数 % d 、总销售额 % d 、佣金 % f",x,y,z,n,m); else if(n<=1800) m=0.15*n; printf(" 枪机数 %d 、枪托数 %d 、枪管数 %d 、总销售额 % d 、佣金 % f",x,y,z,n,m); else m=0.2*n; printf(" 枪机数 %d 、枪托数 %d 、枪管数 %d 、总销售额 % d 、佣金 % f",x,y,z,n,m); }

     else printf(" 输入范围不合理 \n"); getch(); }

     1 2 3 4 5 6 7 8 9 10 11 12 13

      2 ) 先画出程序流程图:

     根据程序流程图可以画出相对应的节点图:

      (3 )定义节点和使用节点变量 定义节点 x 2 y 2 z 2 n 4 m 6,9,11 使用节点 3,4,7,10,12 3,4,7,10,12 3,4,7,10,12 5,6,7,8,9,10,11,12 7,10,12 谓词使用:

     3,5,7 计算使用:

     4,5,8,9,10,11,12开始 1 2 3 13 5 6 8 7 9 11 10 12 结束 其中,

     变 曰定义-引用路径(开始,结束)节点 变 曰定义-引用路径(开始,结束)节点 量

     量

      2,3

     2,3

     2,4

     2,4 x 2,7 y 2,7

     2,10

     2,10

     2,12

     2,12

     2,3

     4,5

     2,4

     4,6 z 2,7

     4,7

     2,10 n 4,8

     2,12 11 4,9

     6,7

     4,10

     6,10

     4,11

     6,12

     4,12 III 9,7

     11,7

     9,10 m 11,10

     9,12

     11,12 ( 5)测试无错误

     五、结果分析 对以上三个问题进行白盒测试,分别运用逻辑覆盖方式、基本路径方式和数据流方式对 其进行白盒测试,三角形问题和 nextday 问题没有出现什么错误,只是佣金问题中没有按照 实验要求设置总销售额这一变量,在白盒测试时对其进行了修改。

      南昌航空大学实验报告 2013 年 11 月 10 日

      指导教师评定:

     _________________________________________________________

     签名:

     ______________________

     、实验目的 掌握测试文档的编写规范。

     、实验要求 针对三角形程序的边界值测试问题,编写测试文档。

     三、测试计划内容 1 引言 1.1 编写目的 本测试计划分为三道实验题,分别为输入三边判断该数值可以构成什么形状的三角形, 输入不同日期输出不同情况下的后一天日期, 根据不同的枪机枪托枪管的销售量可以计算出 相对应的佣金数额,通过简单的黑盒测试和白盒测试, 将其对应简单用例的程序源代码进行 测试,发现其中的小问题,再次再对其代码修改,最后形成可以满足实验要求的代码。

     1. 2 背景 说明:

     a 测试计划所从属的软件系统的名称; 本程序的运行环境为 windows xp/7(32 位 )

     操作系统 在以上系统的环境下安装 win_tc 程序应用软件 进入演示程序后,点击运行,要是显示“编译成功” ,可开始进行系统运行 用户对于所要回答的题目,输入想要测试的数据,输入完全后,点击回车, 即可观察到程序运行结果 b .该开发项目的历史,列出用户和执行此项目测试的计算中心,说明在开始执行本测 试计划之前必须完成的各项工作。

     三角形问题:在进行黑盒测试之前, 需要对三角形问题进行简单的概要分析, 将不同的 输出情况进行归纳,针对于概要分析对其进行自认为较为完整的编码设计, 在设计完整之后, 对该程序代码进行黑盒测试,也就是对其进行健壮性边界值测试、 若健壮性等价类测试以及 决策表测试。再者对测试所发现的问题进行修改源代码, 修改正确之后,画出其程序流程图, 对应画出其节点图, 通过逻辑覆盖方式对其进行白盒测试, 最终经过众多次修改, 形成正确 的代码。

     Nextday 函数:在进行黑盒测试之前,需要对 nextday 函数进行简单的概要分析,将不 同的输出情况进行归纳, 针对于概要分析对其进行自认为较为完整的编码设计, 在设计完整 之后,对该程序代码进行黑盒测试, 也就是对其进行健壮性边界值测试、 若健壮性等价类测 试以及决策表测试。再者对测试所发现的问题进行修改源代码, 修改正确之后,画出其程序 流程图,对应画出其节点图,通过基础路径方式对其进行白盒测试,最终经过众多次修改, 形成正确的代码。

     佣金问题:在进行黑盒测试之前,需要对佣金问题进行简单的概要分析,将不同的 输出情况进行归纳,针对于概要分析对其进行自认为较为完整的编码设计, 在设计完整之后, 对该程序代码进行黑盒测试,也就是对其进行健壮性边界值测试、 若健壮性等价类测试以及 决策表测试。再者对测试所发现的问题进行修改源代码, 修改正确之后,画出其程序流程图, 对应画出其节点图, 通过数据流测试方式对其进行白盒测试, 最终经过众多次修改, 形成正 确的代码。

     课程名称:软件质量保证与测试 班级: ****** 姓名: 实验名称:

     编写测试文档 _______________________________

     _同组人:

     —

     1. 3 定义 列出本文件中用到的专门术语的定义和外文首字母组词的原词组。

     健壮性边界值测试 :

     考虑超出题目要求的正确范围,运用七个点对其进行测试 若健壮性等价类测试:考虑单缺陷的不同情况下输入所对应的有效无效等价类测试 决策表:一种呈表格状的图形工具,适用于描述处理判断条件较多,各条件又相互组合、 有多种决策方案的情况 逻辑覆盖:通过对程序逻辑结构的遍历实现程序的覆盖 基本路径测试:画出程序控制流图、节点图,通过分析控制构造的环路复杂性,从而设 计出测试用例的方法 数据流测试:利用了变量之间的关系, 通过定义使用路径和程序片得到一系列的测试指 标用于衡量功能性测试的覆盖率 1. 4 参考资料 列出要用到的参考资料,如:

     软件测试技术教程 软件测试技术 PPT 段喜龙老师编著 2 计划 2. 1 软件说明 提供一份图表,并逐项说明被测软件的功能、 输入和输出等质量指标, 作为叙述测试计 划 的 提 纲 。

     测试用 例 输 入 条 件 预期输出 实际输出 用例状态 a b c Testi 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 Testll 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 等腰三角形 等腰三角形 pass Test18 100 100 200 非三角形 非三角形 pass

     Test19 100 100 201 提示“输入范围不合理” 提示“输入范围不合理” fail 测试用例:是对要进行测试的数据进行编号,使其容易区分,方便之后的文字分析 输入数据:在输入数据栏中分为了不同数据,分别表示了题中所要输入的数据值 预期输出:指的是在程序没有语法错误以及逻辑错误的前提下, 可以正确运行出来的实验结 果 实际输出:对于所要测试的程序代码,将数值带入其中可以测试出来的测试结果数据 用例状态:指的是判断程序输入是否可以得到正确相对应的输出,正确则为 pass ,否为 fail

     2. 2 测试内容 列出组装测试和确认测试中的每一项测试内容的名称标识符、 这些测试的进度安排以及 这些测试的内容和目的 健壮性边界值测试 :

     通过该测试对三角形问题、 nextday 函数、佣金问题进行测试,除了 nextday 出现了没有对月份以及天数的控制之外,都可满足要求 若健壮性等价类测试:通过该测试对三角形问题、 nextday 函数、佣金问题进行测试, 在三角形问题中出现了对应错误, 无法对输入的非整数进行对应输出, 以及无法对等腰直角 三角形进行判断 决策表:通过该测试对三角形问题、 nextday 函数、佣金问题进行测试,发现不是所有 的代码都适合进行决策表测试, 比如佣金问题就不适合,因为其输入的不同数值与输出数据 间存在严重的逻辑关联,无法对于进行条件桩与动作桩的良好区分与对应 逻辑覆盖:通过该测试对三角形问题进行测试, 没有发现较大的问题, 就是在条件判断 语句中,判断语句较为的繁琐,在条件覆盖以及条件组合覆盖中不是很简易 基本路径测试:通过该测试对 nextday 函数进行测试,测试效果显著,没有发现问题 数据流测试:通过该测试对佣金问题进行测试,测试效果显著,没有发现问题 2. 3 测试 1 (标识符) 被测试的部位:

     三角形问题:

     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<=e-2)||(a*a+c*c-b*b<=e-2)||(c*c+b*b-a*a)<=e-2) { if(a==b||b==c||a==c) printf(” 等腰直角三角形 \n"); else printf(" 直角三角形 \n"); } else { if(a==b||b==c||a==c) if(a==b&&a==c) printf(" 等边三角形 \n”) ;

     else printf(" 等腰三角形 \n"); else printf(" —般三角形 \n"); } else printf(" 非三角形 \n"); } else printf(" 输入范围不合理 \n"); Nextday 函数:

     if((year>=1900&&year<=2100)&&(mon th>=1 &&mon th<=12)&&( day>=1 &&day<=31))

     Ue①aha 5U0EHE 匸+Aepup) (AepA?£UOUJ5七 )① so Ls兆据 <緯=)tu_」d①so 《(pu-A-=sp%、p%、p%=)tu_」d Ue①aha -L+LI1U0EUE pup} (AEPH"lvLnuol□一 q)七① so 《(pu-A-=sp%、p%、p%==lu_」d Ue①aha SUOEUE X+Aepup) (AepALguo 旦 qf (00寸%」黑0030300厂%」2£-_寸%荷£)七 } (CXILV£UOE=_

     OOOUVUM Ngcxl+A*og+X*g 寸 Hu ((06HVZO3O3U UA AZ Z) )0303O O8 8H HV VA A0303U UA AA A) )0303O OT TV VX X0303UAX))七 -餵叵辎s 壬一輕黒田舉=)tu_」d ① so 宀 宀 ML+」e£-=L/up%=£u_」d ① so ML+Aep£UOE」e ① A-=p%、p%、p%=£u_」d (AepA,v£uo 旦 q=AepA,vwuolug七 } wpu-A-=sp%、p%、p%=£u_」d Ue①aha -L+llcOEUE -up} ① so wpu-A-=sp%、p%、p%=£u_」d

     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); else printf(” 枪机数 % d 、枪托数 % d 、枪管数 % d 、总销售额 % d 、佣金 % f",x,y,z,n,0.2*n); }

     else printf(" 输入范围不合理 \n"); 2.3.1 进度安排 2013 年 10 月 20 日进行第一次实验,对三个问题分别进行编写源代码任务 2013 年 10 月 27 日进行第二次实验, 分别对之前编写的源代码进行功能性测试, 也就是黑盒 测试 2013 年 11 月 3 日进行第三次实验,分别是对钱编写的源代码进行白盒测试 20 1 3 年 1 1 月 1 1 日进行第四次实验, 主要是对之前的所有工作进行总结修改, 以及编写实验 文档 2.3.2 条件 陈述本项测试工作对资源的要求,包括:

     a. 设备所用到的设备类型、数量和预定使用时间; b. 软件列出将被用来支持本项测试过程而本身又并不是被测软件的组成部分的软件, 如测试驱动程序、测试监控程序、仿真程序、桩模块等等; c. 人员列出在测试工作期间预期可由用户和开发任务组提供的工作人员的人数。技术 水平及有关的预备知识,包括一些特殊要求,如倒班操作和数据键入人员。

     2.3.3 测试资料 此项软件测试全过程是根据软件测试技术教程和 ppt 进行对照修改,所完成的项目 3 测试设计说明 3.1 测试 1(标识符)

     对三角形问题进行测试之前的设计, 主要是考虑针对这个问题可能出现的输出结果, 其中 包括合法的不合法的均要考虑, 同时还要思考不同对应的情况的判断流程, 使之能够有条有 序不浪费循环的输出出来 3 .1.1 控制 该项目除了运行之外, 均是人工操作。

     在测试中, 首先是是人工选择数值进行测试输入, 在程序进行运行结束之后, 对其输出结果进行画表格进行人工记录。

     从而, 从中发现错误及 要修改的内容 3.1.2 输入 在数值的输入方面不是随意的进行输入, 而且进行有条理的, 针对不同测试意愿进行输 入,只要在程序源代码没有错误的前提下,从而可以得到预想要的实验结果。

     对于输出结 果,主要是之前可以对应输出来输入,在对其进行归纳,可以得到想要的结果 3.1.3 输出 如:三角形问题:在输入 2,2,2 时,预期是可以输出“等边三角形”的 在输入 2,2,2.828 时,预期是可以输出“等腰直角三角形”的

     3.1.4 过程 在准备好实验运行源代码之后,需要先对点 win_tc 的运行键,在该程序运行显示“编译 成功” 后才可以在出现的对话框中输入想要输入的数值, 点击回车键后, 便可出现实验实际 输出结果。如果,程序在运行时显示“编译失败,请修改代码”则需要继续修改代码,发现 其中的逻辑语法错误,直到可以成功运行为止 3.2 测试 2(标识符)

     对 nextday 函数进行测试之前的设计,主要是考虑针对这个问题可能出现的输出结 果,其中包括合法的不合法的均要考虑, 同时还要思考不同对应的情况的判断流程, 使之能 够有条有序不浪费循环的输出出来。

     在这个问题中, 比较繁琐, 因为在输出下一天的过程中, 会出现众多不同输出判断语句,需要对其进行思维整理 4 评价准则 4.1 范围 该三个项目的测试范围只能是整数以及小数,无法对分数,以及带有特殊数值符号的 数据进行测试,这个问题是这个程序所不能解决的,也就是这个设计的一定局限性 4.2 数据整理 陈述为了把测试数据加工成便于评价的适当形式, 使得测试结果可以同, 已知结果进行 比较而要用到的转换处理技术。

     在输出不同数值的情况下, 需要对输出进行整理, 不仅是要 判断预期输出与实际输出是否相同,还要对输出数据的放置进行整编 4.3 尺度 实验中的三个程序, 在进行多次修改之后, 是可以成功运行的, 先所有的预期输出与实 际输出均为一致。

     测试在实验中还是起到的一定的作用, 从不同的角度对实验进行了不同程 度的测试,在实验过程中还是发现了不少错误。修改之后,便得以成功

     附录:

     最终修改成功源代码:

     三角形:

     #include <stdio.h> #define e 2.718281828 main() {

     float a,b,c; system( "graftabl 936 "); clrscr(); printf(" 请输入三个边长:

     \n"); scanf("%f,%f,%f",&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<=e-2)||(a*a+c*c-b*b<=e-2)||(c*c+b*b-a*a)<=e-2) { if(a==b||b==c||a==c) printf(" 等腰直角三角形 \n"); else printf(" 直角三角形 \n"); } else { if(a==b||b==c||a==c) if(a==b&&a==c) printf(" 等边三角形 \n"); else printf(" 等腰三角形 \n"); else printf(" 一般三角形 \n"); } else printf(" 非三角形 \n"); }

     else printf(" 输入范围不合理 \n"); getch(); }

     Nextday 函数:

     #include<stdio.h> int main() {

     int year,month,day; int a[12]={31,29,31,30,31,30,31,31,30,31,30,31}; int b[12]={31,28,31,30,31,30,31,31,30,31,30,31}; int y,m,d; system( "graftabl 936 "); clrscr();

      (AepAvWUOUJro)七 Ls兆据 <緯=)tu_」d①so 《(pu-A-=sp%、p%、p%=)tu_」d ...

    • 范文大全
    • 职场知识
    • 精美散文
    • 名著
    • 讲坛
    • 诗歌
    • 礼仪知识