设计三角形类

 

/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:                             
* 作    者:   吴瑕                          
* 完成日期: 2012        年  03     月  12      日
* 版 本 号:         

* 对任务及求解方法的描述部分
* 输入描述: 设计一个三角形的类,给出个成员函数的定义。

* 问题描述:
* 程序输出:
* 程序头部的注释结束
*/

#include<iostream>
using namespace std;
#include <cmath>
class Triangle
{public:
	void Setabc(float x, float y, float z);//置三边的值,注意要能成三角形
	void Getabc(float *x, float *y, float *z);//取三边的值
	float Perimeter(void);//计算三角形的周长
	float Area(void);//计算并返回三角形的面积
private:
	float a,b,c; //三边为私有成员数据
};
void main(void)
{	Triangle  Tri1;	//定义三角形类的一个实例(对象)
	Tri1.Setabc (4,5,6);	//为三边置初值
	float 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;
}
//请在下面定义Triangle类中的各个成员函数
void Triangle:: Setabc(float x, float y, float z)
{
	if(x+y<=z||x+z<=y||y+z<=x||x-y>=z||y-x>=z||x-z>=y||z-x>=y||y-z>=x||z-y>=x)//判断是否能够成三角形(到底有必要要判断吗?如果要,还有更简单的判断方法吗?)
		cout<<"无法构成三角形"<<endl;
	else
		a=x;b=y;c=z;//为三角形三边赋值
}
void Triangle:: Getabc(float *x, float *y, float *z)
{
	*x=a;//利用指针将三边的值赋给指针所指向的变量,以实现将三边值取出来的功能。利用指针访问私有数据成员
	*y=b;
	*z=c;
}
float Triangle::  Perimeter(void)
{
	float C;
	C=a+b+c;
	return C;
}
float Triangle::Area(void)
{
	float s,m;
	m=(a+b+c)/2;
	s=sqrt(m*(m-a)*(m-b)*(m-c));
	return s;
}
 运行结果:





一、实验目的 掌握根据实际需求设计Java的方法; 掌握Java中继承的使用方法; 掌握Java中package的概念和使用方法; 掌握静态方法的定义和使用方法; 掌握Object中equals方法和toString方法的覆盖方法。 二、实验内容 1、设计一个名为figure的图形软件包(package)。包中包含三角形、矩形、圆三个。要求:(1)每个都要构造方法并为成员设置get和set方法;(2)每个都要有计算周长和面积的成员方法;(3)完成该软件包后的编码后,在另一个包的含有main方法的中编写代码,分别使用图形软件包中的三个,生成三个对象,并打印出其周长和面积。 2、编写Factorial,为其添加两个静态方法(方法名自定义)。其中一个使用递归计算n的阶乘,一个使用非递归计算n的阶乘。构造main方法进行测试。 3、按照要求使用Java进行编码。 设计一个教师Teacher,属性有编号(no)、姓名(name)、年龄(age)、所属学院(seminary),为这些属性设置相应的get和set方法; 为Teacher重写equals方法;(当两个教师对象的no相同时返回true) 重写Teacher的toString方法,通过该方法可以返回“编号为**、姓名为**、年龄为**的**学院老师”形式的字符串。 构造main方法进行测试。 4、设计一个带表头的单链表(链表中的元素属于同一型对象,但对象的型可以随意),提供以下操作:(1)insert:在某个位置插入对象;(2)delete:在某个位置删除对象;(3)delete:删除链表中与x相同的元素;(4)size:返回当前链表中对象的个数;(5)isEmpty:判断链表是否为空;(6)traverse:遍历链表,打印出所有的元素;(7)getData:取得某个位置的对象。构造main函数进行测试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值