UT源码+019

设计三角形问题的程序

输入三个整数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

String triangle(int a,int b,int c)    返回字符型

程序要求:

1)先显示:“请输入三角形的三条边:”

2)只要有不满足条件1,2,3之一,就返回“边的值不在范围内!”

3)只要有不满足4,5,6之一,就返回“不构成三角形”

4)根据边的情况分别返回:“等边三角形”“等腰三角形”“直角三角形”“一般三角形”

  1 //@105032014019李悦洲
  2 #include"iostream"
  3 #include"string"
  4 #include"math.h"
  5
  6 #define DENGBIAN  0
  7 #define DENGYAO   1
  8 #define ZHIJIAO   2
  9 #define YIBAN     3
 10
 11 #define WUCHAZHI 0.00001
 12
 13 using namespace std;
 14
 15 class CTriangle
 16 {
 17 private:
 18     int a;
 19     int b;
 20     int c;
 21 protected:
 22     void setTriangle(int a,int b,int c);    //赋值
 23     bool checkTheOne()const;                //检查范围条件
 24     bool checkTheTwo()const;                //检查是否组成三角形
 25     int checkType()const;                    //判断三角形种类
 26 public:
 27     string triangle(const int &a,const int &b,const int &c);//题目要求的函数
 28 };
 29
 30 void CTriangle::setTriangle(int a,int b,int c)
 31 {
 32     this->a = a;
 33     this->b = b;
 34     this->c = c;
 35 }
 36
 37 bool CTriangle::checkTheOne()const//检查范围条件
 38 {
 39     if((a>=1&&a<=100)&&(b>=1&&b<=100)&&(c>=1&&c<=100))
 40         return true;
 41     else
 42         return false;
 43 }
 44 bool CTriangle::checkTheTwo()const//检查是否组成三角形
 45 {
 46     if((a<(b+c))&&(b<(a+c))&&(c<(a+b)))
 47         return true;
 48     else
 49         return false;
 50 }
 51 int CTriangle::checkType()const//判断三角形种类
 52 {
 53     if(a==b&&a==c&&b==c)
 54     return DENGBIAN;
 55     if(a==b||a==c||b==c)
 56     return DENGYAO;
 57     if(a*a+b*b==c*c||a*a==b*b+c*c||b*b==a*a+c*c)
 58     return ZHIJIAO;
 59     return YIBAN;
 60 }
 61 string CTriangle::triangle(const int &a,const int &b,const int &c)//题目要求的函数
 62 {
 63     setTriangle(a,b,c);
 64     if(!checkTheOne())
 65     {
 66         return "边的值不在范围内!";
 67     }
 68     else if(!checkTheTwo())
 69     {
 70         return "不构成三角形";
 71     }
 72     switch(checkType())
 73     {
 74         case DENGBIAN:     return "等边三角形";
 75         case DENGYAO:      return "等腰三角形";
 76         case ZHIJIAO:     return "直角三角形";
 77         case YIBAN:     return "一般三角形";
 78     }
 79     return "ERROR?";
 80 }
 81
 82 bool inputInteger(int &a,int &b,int &c)    //完成用户输入并且判断是否输入整数,返回输入是否合法
 83 {
 84     int i = 0;
 85     double d[3] = {0.0f};
 86     if (scanf("%lf,%lf,%lf",&d[0],&d[1],&d[2])!=3)
 87     {
 88         return false;
 89     }
 90     for(i=0;i<3;i++)
 91     {
 92         if(fabs((double)(int)d[i]-d[i])>WUCHAZHI)
 93         {
 94             return false;
 95         }
 96     }
 97     a = d[0];
 98     b = d[1];
 99     c = d[2];
100 }
101
102 int main()//测试代码
103 {
104     CTriangle Test;
105     int a,b,c;
106     printf("请输入三角形的三条边\n");
107     if(inputInteger(a,b,c))
108     {
109         cout<<Test.triangle(a,b,c)<<endl;
110     }
111     else printf("输入信息错误\n");
112     return 0;
113 }

尝试编写测试用例集,预期能找到常见的缺陷。填写以下表格。(行数可以自己增加)


序号


测试者的行为和数据


期待结果


1


3,6,5


一般三角形


2


4,4,5


等腰三角形


3


3,3,3


等边三角形


4


“a”3,4


错误提示信息


5


3,4,1.235


错误提示信息

 6  123847219347,,1587295187,9 错误提示信息
 7  !@#¥@#¥ 错误提示信息
时间: 2024-10-06 06:00:30

UT源码+019的相关文章

UT源码+158

NextDate函数问题 NextDate函数说明一种复杂的关系,即输入变量之间逻辑关系的复杂性 NextDate函数包含三个变量month.day和year,函数的输出为输入日期后一天的日期. 要求输入变量month.day和year均为整数值,并且满足下列条件: 条件1  1≤ month ≤12  否则输出,月份超出范围 条件2  1≤ day ≤31 否则输出,日期超出范围 条件3  1912≤ year ≤2050  否则输出:年份超出范围 String  nextdate(int m

UT源码+117

设计佣金问题的程序 commission方法是用来计算销售佣金的需求,手机配件的销售商,手机配件有耳机(headphone).手机壳(Mobile phone shell).手机贴膜(Cellphone screen protector)三个部件,每个部件单价为:耳机80元,手机壳10元,手机贴膜8元,每月月末向制造商报告销量,制造商根据销量给销售商佣金.如果销售额不足1000元按10%提取佣金,1000-1800元部分按15%提取佣金,超过1800元部分按20%提取佣金. 程序要求: 1)先显

UT源码105032014052

1)设计三角形问题的程序 输入三个整数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

UT源码 040

设计三角形问题的程序 输入三个整数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+

UT源码_105032014033

需求描述: 设计佣金问题的程序 commission方法是用来计算销售佣金的需求,手机配件的销售商,手机配件有耳机(headphone).手机壳(Mobile phone shell).手机贴膜(Cellphone screen protector)三个部件,每个部件单价为:耳机80元,手机壳10元,手机贴膜8元,每月月末向制造商报告销量,制造商根据销量给销售商佣金.如果销售额不足1000元按10%提取佣金,1000-1800元部分按15%提取佣金,超过1800元部分按20%提取佣金. 程序要求

UT源码 065 ( java version )

NextDate函数问题 NextDate函数说明一种复杂的关系,即输入变量之间逻辑关系的复杂性 NextDate函数包含三个变量month.day和year,函数的输出为输入日期后一天的日期. 要求输入变量month.day和year均为整数值,并且满足下列条件: 条件1  1≤ month ≤12  否则输出,月份超出范围 条件2  1≤ day ≤31 否则输出,日期超出范围 条件3  1912≤ year ≤2050  否则输出:年份超出范围 String  nextdate(int m

UT源码+105032014036

设计佣金问题的程序 commission方法是用来计算销售佣金的需求,手机配件的销售商,手机配件有耳机(headphone).手机壳(Mobile phone shell).手机贴膜(Cellphone screen protector)三个部件,每个部件单价为:耳机80元,手机壳10元,手机贴膜8元,每月月末向制造商报告销量,制造商根据销量给销售商佣金.如果销售额不足1000元按10%提取佣金,1000-1800元部分按15%提取佣金,超过1800元部分按20%提取佣金. 程序要求: 1)先显

UT源码+105032014043

(1)设计三角形问题的程序 输入三个整数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<

UT源码105032014098

(2)NextDate函数问题 NextDate函数说明一种复杂的关系,即输入变量之间逻辑关系的复杂性 NextDate函数包含三个变量month.day和year,函数的输出为输入日期后一天的日期. 要求输入变量month.day和year均为整数值,并且满足下列条件: 条件1  1≤ month ≤12  否则输出,月份超出范围 条件2  1≤ day ≤31 否则输出,日期超出范围 条件3  1912≤ year ≤2050  否则输出:年份超出范围 String  nextdate(in