《C++语言基础》实践参考——三角形类1

本文介绍了一个使用C++实现的三角形类,包括设置和获取三边长度的方法,以及计算周长和面积的功能。通过具体示例展示了如何实例化三角形对象并调用其成员函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

返回:贺老师课程教学链接


【项目1 - 三角形类1】下面设计一个三角形类,请给出各成员函数的定义 

#include<iostream>
#include<Cmath>
using namespace std;
class Triangle
{
public:
	void setABC(double x, double y, double z);//置三边的值,注意要能成三角形
	void getABC(double *x, double *y, double *z);//取三边的值
	double perimeter(void);//计算三角形的周长
	double area(void);//计算并返回三角形的面积
private:
	double a,b,c; //三边为私有成员数据
};
int main()
{
	Triangle tri1;	//定义三角形类的一个实例(对象)
	tri1.setABC(4,5,6);	//为三边置初值
	double x,y,z;
	tri1.getABC (&x,&y,&z);   //将三边的值为x,y,z赋值
	cout<<"三条边为:"<<x<<'\t'<<y<<'\t'<<z<<endl;
	cout<<"三角形的周长为:"<< tri1.perimeter()<<'\t'<<"面积为:"<< tri1.area()<<endl;
	return 0;
}
//请在下面定义Triangle类中的各个成员函数

[参考解答]

#include<iostream>
#include<Cmath>
#include<cstdlib>
using namespace std;
class Triangle
{
public:
    void setABC(double x, double y, double z);//置三边的值,注意要能成三角形
    void getABC(double *x, double *y, double *z);//取三边的值
    double perimeter(void);//计算三角形的周长
    double area(void);//计算并返回三角形的面积
private:
    double a,b,c; //三边为私有成员数据
};
int main()
{
    Triangle tri1;	//定义三角形类的一个实例(对象)
    tri1.setABC(4,5,6);	//为三边置初值
    double x,y,z;
    tri1.getABC (&x,&y,&z);   //将三边的值为x,y,z赋值
    cout<<"三条边为:"<<x<<'\t'<<y<<'\t'<<z<<endl;
    cout<<"三角形的周长为:"<< tri1.perimeter()<<'\t'<<"面积为:"<< tri1.area()<<endl;
    return 0;
}
//请在下面定义Triangle类中的各个成员函数
void Triangle::setABC(double x, double y, double z)
{
    if(x+y>z&&x+z>y&&y+z>x)
    {
        a=x;
        b=y;
        c=z;
    }
    else
    {
        cout<<"不能构成三角形"<<endl;
        exit(0);
    }
}

void Triangle::getABC(double *x, double *y, double *z)
{
    *x=a;
    *y=b;
    *z=c;
}

double Triangle::perimeter(void)
{
    return a+b+c;
}

double Triangle::area(void)
{
    double p=(a+b+c)/2;
    return sqrt(p*(p-a)*(p-b)*(p-c));
}



### C++常见编程练习题 #### 题目概述 为了帮助学习者更好地掌握C++语言,这里提供一系列经典的编程练习题。这些题目涵盖了从基础到高级的不同层次,旨在巩固语法知识点并提升实际编码能力。 #### 经典习题列表 ##### 基础篇 (1-30) 1. 编写一个简单的`Hello, World!`程序来熟悉基本输入输出操作[^1]。 2. 实现两个整数相加的功能,并打印结果[^1]。 3. 判断给定年份是否为闰年的函数实现。 4. 输入三个边长判断能否构成三角形以及是什么类型的三角形(等腰/直角/一般)。 5. 使用for循环计算1至n之间所有奇数之和(n由用户指定)。 6. 定义结构体表示日期类型(struct Date),成员变量包括year、month、day;编写main()测试该结构体的创建与赋值。 7. 设计类Time用于存储时间信息(hour,min,sec),重载运算符<<以便可以直接cout对象显示时间。 8. 创建Student类模拟学生管理系统中的基本信息管理功能,如增删改查学生成绩记录等。 9. 运用STL容器vector完成动态数组的应用案例——统计一组成绩中最高分最低分平均分的人数分布情况。 10. 掌握文件流fstream的操作方法,读取文本文件内容并将其反转后保存回原文件。 ... 以上为基础部分精选题目示例,主要围绕着C++的基础概念展开训练,适合初学者逐步建立扎实的语言功底。 ##### 提高篇 (31-100) 31. 关于指针的理解加深:通过编写swap函数交换两数值型参数的实际地址所指向的内容。 32. 动态内存分配new/delete的学习实践:构建链表节点Node及其相关操作(add/remove/find)以理解堆空间上的数据结构维护方式。 33. 泛型编程入门:利用模板template定义通用排序算法sort<T>(),支持任意可比较的数据类型作为待排序序列元素。 34. STL库深入探索之一:map/set容器特性解析及应用场景举例说明。 35. 复杂继承体系的设计思路探讨:多层单继承下的虚基类处理机制分析。 36. 文件I/O进阶技巧分享:二进制模式下大文件高效读写的策略研究。 37. 异常处理exception try-catch语句块的作用域规则讲解。 38. 并发编程初步认识:基于线程thread库启动多个独立任务执行环境。 39. 正则表达式regex匹配字符串模式的强大工具介绍。 40. 图像处理领域常用技术概览:OpenCV开源视觉框架快速上手指南。 ... 提高篇侧重考察更深层次的技术细节和技术栈组合运用的能力,对于希望进一步精进技能水平的学习者来说是非常有价值的参考资料。 关于避免if-else嵌套带来的歧义问题,在C++标准里有明确规定:else子句总是与其最近未配对的if语句关联形成分支逻辑关系[^2]。 ```cpp // 示例代码展示如何正确书写if-else语句 int a = 5; if(a > 0){ cout << "Positive number"; } else { cout << "Non-positive number"; // This 'else' binds to the nearest unmatched 'if' } ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

迂者-贺利坚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值