设计三角形问题的程序

输入三个整数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)根据边的情况分别返回:“等边三角形”“等腰三角形”“直角三角形”“一般三角形”

 //@105032014019李悦洲
#include"iostream"
#include"string"
#include"math.h" #define DENGBIAN 0
#define DENGYAO 1
#define ZHIJIAO 2
#define YIBAN 3 #define WUCHAZHI 0.00001 using namespace std; class CTriangle
{
private:
int a;
int b;
int c;
protected:
void setTriangle(int a,int b,int c); //赋值
bool checkTheOne()const; //检查范围条件
bool checkTheTwo()const; //检查是否组成三角形
int checkType()const; //判断三角形种类
public:
string triangle(const int &a,const int &b,const int &c);//题目要求的函数
}; void CTriangle::setTriangle(int a,int b,int c)
{
this->a = a;
this->b = b;
this->c = c;
} bool CTriangle::checkTheOne()const//检查范围条件
{
if((a>=&&a<=)&&(b>=&&b<=)&&(c>=&&c<=))
return true;
else
return false;
}
bool CTriangle::checkTheTwo()const//检查是否组成三角形
{
if((a<(b+c))&&(b<(a+c))&&(c<(a+b)))
return true;
else
return false;
}
int CTriangle::checkType()const//判断三角形种类
{
if(a==b&&a==c&&b==c)
return DENGBIAN;
if(a==b||a==c||b==c)
return DENGYAO;
if(a*a+b*b==c*c||a*a==b*b+c*c||b*b==a*a+c*c)
return ZHIJIAO;
return YIBAN;
}
string CTriangle::triangle(const int &a,const int &b,const int &c)//题目要求的函数
{
setTriangle(a,b,c);
if(!checkTheOne())
{
return "边的值不在范围内!";
}
else if(!checkTheTwo())
{
return "不构成三角形";
}
switch(checkType())
{
case DENGBIAN: return "等边三角形";
case DENGYAO: return "等腰三角形";
case ZHIJIAO: return "直角三角形";
case YIBAN: return "一般三角形";
}
return "ERROR?";
} bool inputInteger(int &a,int &b,int &c) //完成用户输入并且判断是否输入整数,返回输入是否合法
{
int i = ;
double d[] = {0.0f};
if (scanf("%lf,%lf,%lf",&d[],&d[],&d[])!=)
{
return false;
}
for(i=;i<;i++)
{
if(fabs((double)(int)d[i]-d[i])>WUCHAZHI)
{
return false;
}
}
a = d[];
b = d[];
c = d[];
} int main()//测试代码
{
CTriangle Test;
int a,b,c;
printf("请输入三角形的三条边\n");
if(inputInteger(a,b,c))
{
cout<<Test.triangle(a,b,c)<<endl;
}
else printf("输入信息错误\n");
return ;
}

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

序号

测试者的行为和数据

期待结果

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  !@#¥@#¥ 错误提示信息

UT源码+019的更多相关文章

  1. UT源码 005

    NextDate函数问题 NextDate函数说明一种复杂的关系,即输入变量之间逻辑关系的复杂性 NextDate函数包含三个变量month.day和year,函数的输出为输入日期后一天的日期. 要求 ...

  2. UT源码105032014093

    需求描述: 设计佣金问题的程序 commission方法是用来计算销售佣金的需求,手机配件的销售商,手机配件有耳机(headphone).手机壳(Mobile phone shell).手机贴膜(Ce ...

  3. UT源码+105032014070

    设计三角形问题的程序 输入三个整数a.b.c,分别作为三角形的三条边,现通过程序判断由三条边构成的三角形的类型为等边三角形.等腰三角形.一般三角形(特殊的还有直角三角形),以及不构成三角形.(等腰直角 ...

  4. UT源码 065

    NextDate函数问题 NextDate函数说明一种复杂的关系,即输入变量之间逻辑关系的复杂性 NextDate函数包含三个变量month.day和year,函数的输出为输入日期后一天的日期. 要求 ...

  5. UT源码105032014098

    (2)NextDate函数问题 NextDate函数说明一种复杂的关系,即输入变量之间逻辑关系的复杂性 NextDate函数包含三个变量month.day和year,函数的输出为输入日期后一天的日期. ...

  6. UT源码-124

    (1)设计三角形问题的程序 输入三个整数a.b.c,分别作为三角形的三条边,现通过程序判断由三条边构成的三角形的类型为等边三角形.等腰三角形.一般三角形(特殊的还有直角三角形),以及不构成三角形.(等 ...

  7. UT源码 105032014098

    package exam1; import java.util.Scanner; public class test01 { static String nextDate(int year,int m ...

  8. UT源码_105032014033

    需求描述: 设计佣金问题的程序 commission方法是用来计算销售佣金的需求,手机配件的销售商,手机配件有耳机(headphone).手机壳(Mobile phone shell).手机贴膜(Ce ...

  9. UT源码162

    (3)设计佣金问题的程序 commission方法是用来计算销售佣金的需求,手机配件的销售商,手机配件有耳机(headphone).手机壳(Mobile phone shell).手机贴膜(Cellp ...

随机推荐

  1. ArcGIS 复制要素

    DataManagementTools.General.Copy DataManagementTools.Features.CopyFeatures ConversionTools.ToGeodata ...

  2. tensor flow 视频

    http://v.youku.com/v_show/id_XMTYxMjQ2NTYyNA==.html?spm=a2h1n.8251843.playList.5!19~5~A.siMjNW&f ...

  3. DBA 招聘

    数据库管理员(资深) 眼控科技 10-19万 72小时反馈 上海 6小时前 大专及以上 2年以上经验 普通话 25-35岁 绩效奖金 带薪年假 午餐补助 定期体检 年底双薪 五险一金 职位描述: 工作 ...

  4. Interrupt handler

    1.处理器上的中断硬件关系图 2. 中断处理例程 3. 顶半部与底半部

  5. redis的五种常见数据类型的常用指令

      一.String字符串,key-value 应用场景:string是redis的最基本数据类型,key-value格式,一个key对应一个值的情况下 1.设置key = value:set key ...

  6. spring security 非页面登录

    参考https://stackoverflow.com/questions/36937414/auto-login-spring-security UserDetails userDetails = ...

  7. 批量删除进程清理 minerd

    发现顽固minerd 进程与ntp一起启动,所以一起杀掉 yum remove ntp kill -9 `ps -ef | grep ntp|awk '{print $2}'` kill -9 `ps ...

  8. INI

    .ini 文件是Initialization File的缩写,即初始化文件,是windows的系统配置文件所采用的存储格式,统管windows的各项配置,一般用户就用windows提供的各项图形化管理 ...

  9. MySQL基本操作之命令行操作

    MySQL基础操作 MySQL基础操作--命令行操作

  10. 4-计算九位数以内各个位数字和为s的种类

    /*假设我们当前要求的是100以内各位数之和和等于s的数有多少个,可以想到就是10以内各位数之和等于s的数的个数再加上10到100内的各位数之和等于s的个数.令dp[i][j]就代表10的j次方内各位 ...