NowCoder——三角形相加

本文介绍了一个使用C++编写的三角形类,该类能够进行坐标加法运算,并通过实例展示如何创建三角形对象,执行加法操作,以及打印结果。

在这里插入图片描述
在这里插入图片描述
第一次用C++写程序还是记录一下吧:

#include <iostream>
using namespace std;

class CTriangle
{
private:
    int x;
    int y;
public:
    CTriangle(int xx,int yy)
    {
        x=xx;
        y=yy;
    }
    CTriangle operator+(const CTriangle&c)
    {
        CTriangle t(0,0);
        t.x=x+c.x;
        t.y=y+c.y;
        return t;
    }
    void print();
};
void CTriangle::print()
{
    cout<<"A(0,"<<y<<"),B(0,0),C("<<x<<",0)";
}

int main()
{
    int x,y;
    cin>>y>>x;
    CTriangle a(x,y);
    while(cin>>y)
    {

        if(y==0)
        {

            a.print();
        }
        else
        {
            cin>>x;
            CTriangle b(y,x);
            a=a+b;
        }


    }


}

在这里插入图片描述

<think>嗯,用户想了解白盒测试中与三角形相关的编程问题,特别是示例代码测试用例设计方法。首先,我需要回忆白盒测试的基本概念,确保自己理解正确。白盒测试主要关注程序内部结构,根据控制流、条件判断等设计测试用例。用户提到的三角形问题,应该是指判断三角形类型的程序,比如输入三个整数,判断是等边、等腰还是普通三角形,或者无法构成三角形的情况。 接下来,我需要考虑如何结合白盒测试的方法来设计测试用例。常见的白盒测试技术包括语句覆盖、判定覆盖、条件覆盖、路径覆盖等。对于三角形问题,可能需要分析代码中的各种条件分支,比如判断三边是否满足三角形不等式,是否为等边、等腰等。需要确保测试用例覆盖所有可能的路径条件组合。 然后,用户需要示例代码。我应该提供一个简单的三角形判断程序,用Python或者其他语言。代码中需要包含各种条件判断,比如检查输入是否合法,判断三角形类型的不同情况。这样,后面设计测试用例时可以基于这段代码的结构来进行分析。 关于测试用例的设计方法,可能需要结合边界值分析,比如边长的最小值、最大值,以及刚好等于边界的情况。例如,用户提供的引用[2]中提到边长的范围是[1,100],所以测试用例应该包括1100的边界值。此外,判定表方法(引用[3])可以用来列举所有可能的条件组合,确保覆盖全面。 还需要考虑如何将白盒测试的具体技术应用到示例代码中。例如,检查代码中的每个判定节点是否都被覆盖,每个条件是否被测试到真假的情况。比如,在判断是否为等边三角形时,需要测试三个边相等的情况不相等的情况。 可能的问题点包括:输入验证部分是否有足够的测试用例,比如非整数、零或负数的情况;各条件分支是否都被覆盖,比如等腰的不同情况(a=b, b=c, a=c);路径覆盖是否完整,比如所有可能的路径是否都被执行过。 最后,生成相关问题的时候,需要围绕用户的需求展开,可能涉及其他白盒测试技术、边界值分析的具体应用,或者如何优化测试用例设计等。需要确保问题有针对性,能够帮助用户进一步深入学习。</think>### 白盒测试与三角形问题实现及测试用例设计 #### 一、三角形问题示例代码(Python) ```python def classify_triangle(a, b, c): # 验证输入有效性 if not (isinstance(a, int) and isinstance(b, int) and isinstance(c, int)): return "输入类型错误" if not (1 <= a <= 100 and 1 <= b <= 100 and 1 <= c <= 100): return "超出取值范围[1,100]" # 验证三角形合法性 if (a + b <= c) or (a + c <= b) or (b + c <= a): return "非三角形" # 分类三角形类型 if a == b == c: return "等边三角形" elif a == b or b == c or a == c: return "等腰三角形" else: return "普通三角形" ``` #### 二、白盒测试用例设计方法 1. **控制流分
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值