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)根据边的情况分别返回:“等边三角形”“等腰三角形”“直角三角形”“一般三角形”
//@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的更多相关文章
- UT源码 005
NextDate函数问题 NextDate函数说明一种复杂的关系,即输入变量之间逻辑关系的复杂性 NextDate函数包含三个变量month.day和year,函数的输出为输入日期后一天的日期. 要求 ...
- UT源码105032014093
需求描述: 设计佣金问题的程序 commission方法是用来计算销售佣金的需求,手机配件的销售商,手机配件有耳机(headphone).手机壳(Mobile phone shell).手机贴膜(Ce ...
- UT源码+105032014070
设计三角形问题的程序 输入三个整数a.b.c,分别作为三角形的三条边,现通过程序判断由三条边构成的三角形的类型为等边三角形.等腰三角形.一般三角形(特殊的还有直角三角形),以及不构成三角形.(等腰直角 ...
- UT源码 065
NextDate函数问题 NextDate函数说明一种复杂的关系,即输入变量之间逻辑关系的复杂性 NextDate函数包含三个变量month.day和year,函数的输出为输入日期后一天的日期. 要求 ...
- UT源码105032014098
(2)NextDate函数问题 NextDate函数说明一种复杂的关系,即输入变量之间逻辑关系的复杂性 NextDate函数包含三个变量month.day和year,函数的输出为输入日期后一天的日期. ...
- UT源码-124
(1)设计三角形问题的程序 输入三个整数a.b.c,分别作为三角形的三条边,现通过程序判断由三条边构成的三角形的类型为等边三角形.等腰三角形.一般三角形(特殊的还有直角三角形),以及不构成三角形.(等 ...
- UT源码 105032014098
package exam1; import java.util.Scanner; public class test01 { static String nextDate(int year,int m ...
- UT源码_105032014033
需求描述: 设计佣金问题的程序 commission方法是用来计算销售佣金的需求,手机配件的销售商,手机配件有耳机(headphone).手机壳(Mobile phone shell).手机贴膜(Ce ...
- UT源码162
(3)设计佣金问题的程序 commission方法是用来计算销售佣金的需求,手机配件的销售商,手机配件有耳机(headphone).手机壳(Mobile phone shell).手机贴膜(Cellp ...
随机推荐
- 吴裕雄 数据挖掘与分析案例实战(12)——SVM模型的应用
import pandas as pd # 导入第三方模块from sklearn import svmfrom sklearn import model_selectionfrom sklearn ...
- 解决:Invalid character found in method name. HTTP method names must be tokens
阿里云上弄了一个tomcat,经常半夜发送崩溃,查看日志发现这个东西,查阅资料发现是Tomcat的header缓冲区大小不够,只需要在server.xml中增加maxHttpHeaderSize字 ...
- chrome 调试参数(鼠标事件)
1.监听鼠标事件: monitorEvents(document.body, 'mouse') 取消监听: unmonitorEvents(document.body) 原文链接: https://b ...
- Python 字典 get() 方法
描述 Python 字典 get() 方法和 setdefault() 方法类似,返回指定键的值,如果键不在字典中,返回一个指定值,默认为None. get() 和 setdefault() 区别: ...
- 处理程序“pagehandlerfactory-integrated"在其模块列表中有一个错误模块
解决方案 管用员权限进入cmd命令提示符界面,执行命令"cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319", 运行: aspne ...
- iOS 静态库的封装
参考网址:http://www.jianshu.com/p/b754709135fb http://www.jianshu.com/p/443a5b8f3894 注意:封装静态库时要注意的地方: ...
- [leetcode]636. Exclusive Time of Functions函数独占时间
Given the running logs of n functions that are executed in a nonpreemptive single threaded CPU, find ...
- ubuntu14.04安装opengl
OpenGL 是一套由SGI公司发展出来的绘图函式库,它是一组 C 语言的函式,用于 2D 与 3D 图形应用程式的开发上. 不可或缺的就是编译器与基本的函式库,如果系统没有安装的话,依照下面的方式安 ...
- 在Struts2框架中使用OGNL表达式(在jsp页面中使用OGNL表达式)
1. Struts2引入了OGNL表达式,主要是在JSP页面中获取值栈中的值 2. 具体在Struts2中怎么使用呢?如下步骤 * 需要先引入Struts2的标签库(在JSP页面的最上面位置) > ...
- mybatis框架的架构(图解)
1. mybatis配置 SqlMapConfig.xml,此文件作为mybatis的全局配置文件,配置了mybatis的运行环境等信息. mapper.xml文件即sql映射文件,文件中配置了操作数 ...