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 ...
随机推荐
- 吴裕雄 数据挖掘与分析案例实战(7)——岭回归与LASSO回归模型
# 导入第三方模块import pandas as pdimport numpy as npimport matplotlib.pyplot as pltfrom sklearn import mod ...
- zabbix超级乱码解决问题
个人而言,网上那些方法并不顶什么用,研究了一番总结出了自己的一个方法. 像这种,出现了严重乱码,也不是像网上说的那样把楷体复制过去就好.事实证明我复制过去好多次了,然而并没有什么用. 下面是我自己总结 ...
- $.ajax dataType设置为json 回调函数不执行
请求方式如下: $.xpost = function (url, data) { return $.ajax({ url: url, type: "POST", dataType: ...
- Andriod Studio adb 安装应用
原文链接:https://blog.csdn.net/u014608640/article/details/51833304 下面的命令安装.重新安装和卸载应用程序. 安装:adb -s HT9BYL ...
- HTML的属性和css基础
1.name属性: name属性,用于指定标签元素的名称,<a>标签内必须提供href或name属性:<a name ="value"> 2.id属性: 1 ...
- windows下多个文件合并成一个文件
如果你拿到的是一堆文件,那么你想把它合并成一个文件来使用,那么按下面的步骤,轻轻松松就可以搞定. 第一步:把所有要合并的文件放到同一个文件下面 第二步:在CMD里面进入到你的文件目录 第三步:输入如下 ...
- java socket编程--聊天小案例
很久以前写过socket聊天室,都快忘完了,心血来潮又重新写一遍. 服务器端: package com.fancy; import java.io.BufferedReader; import jav ...
- ios 点击Home问题
应用可以在后台运行或者挂起,该场景的状态跃迁过程见图2-22,共经历3个阶段4个状态:Active → Inactive → Background→Suspended. q 在Active→Ina ...
- Python 中 (&,|)和(and,or)之间的区别
&,|)和(and,or)是两组比较相似的运算符,用在“与”/ “或”上,在用法上有些许区别. (&,|)和(and,or)是用来比较两组变量的,格式基本上是: a & ba ...
- Spring框架的核心功能之AOP概述
1. 什么是AOP的技术? * 在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程 * AOP是一种编程范式,隶属于软工范畴,指导开发者如何组织程序结构 ...