`
txf2004
  • 浏览: 6877605 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

《C++第六周实验报告5-1》---将任务4的解决用一个项目多个文件的方式实现

 
阅读更多
//main.cpp
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生 
* All rights reserved.
* 文件名称:    CTriangle.cpp            
* 作    者:    计114-3 王兴锋             
* 完成日期:   2012年  3  月  26  日
* 版 本 号:    V 1.0

* 对任务及求解方法的描述部分
* 输入描述: 输入三角形的三个顶点
* 问题描述:
(1)这个问题需要用到两个类,顶点类参照任务3中的CPoint类;
(2)三角形类参考下面CTriangle类的声明;
(3)充分利用CPoint类中已有的代码实现;
(4)关于三条边的处理,可以增加三个私有属性,在初始化时求出来备用,也可以在需要时计算得到。
* 程序输出: 求出其面积、周长,并判断其是否为直角三角形和等腰三角形。
* 程序头部的注释结束
*/
#include <iostream>
#include <cmath>
#include "class.h"

using namespace std;

int main()
{
	CPoint a(0, 0), b(1, 1), c(0, 2);//定义三个点
	CTriangle ct(a, b, c);

	a.output(), b.output(), c.output();
	cout << "构成的三角形:" << endl;
	cout << "周长为:" << ct.perimeter() << endl;
	cout << "面积为:" << ct.area() << endl;
	cout << (ct.isRightTriangle() ? "是" : "不是") << "直角三角形。" << endl;
	cout << (ct.isIsoscelesTriangle() ? "是" : "不是") << "等腰三角形。" << endl;

	cout << endl;
	CPoint a2(0, 0), b2(0, 3), c2(4, 0);//定义三个点
	CTriangle ct2(a2, b2, c2);

	a2.output(), b2.output(), c2.output();
	cout << "构成的三角形:" << endl;
	cout << "周长为:" << ct2.perimeter() << endl;
	cout << "面积为:" << ct2.area() << endl;
	cout << (ct2.isRightTriangle() ? "是" : "不是") << "直角三角形。" << endl;
	cout << (ct2.isIsoscelesTriangle() ? "是" : "不是") << "等腰三角形。" << endl;

	system("PAUSE");
	return 0;
}

//class.h
//点类
class CPoint
{
private:
	float x;  // 横坐标
	float y;  // 纵坐标
public:
	CPoint(float xx = 0, float yy = 0);
	float Distance(CPoint p) const;   // 两点之间的距离(一点是当前点,另一点为参数p)
	void input();  //以x,y 形式输入坐标点
	void output(); //以(x,y) 形式输出坐标点
};
//三角形类
class CTriangle
{
public:
	CTriangle(CPoint &X, CPoint &Y, CPoint &Z):A(X),B(Y),C(Z){} //给出三点的构造函数
	void setTriangle(CPoint &X, CPoint &Y, CPoint &Z);//
	float perimeter(void);//计算三角形的周长
	float area(void);//计算并返回三角形的面积
	bool isRightTriangle(); //是否为直角三角形
	bool isIsoscelesTriangle(); //是否为等腰三角形
private:
	CPoint A, B, C; //三顶点
};

//CPoint.cpp
#include <iostream>
#include <cmath>
#include "class.h"

using namespace std;

CPoint::CPoint(float xx, float yy)
{
	x = xx, y = yy;
}
float CPoint::Distance(CPoint p) const
{
	return sqrt((p.x-x)*(p.x-x) + (p.y-y)*(p.y-y));
}
void CPoint::input()
{
	char ch;
	
	do{
		cout << "请输入点的坐标(例:x,y):" << endl;
		
		cin >> x >> ch >> y;
	}while(ch != ',');
}
void CPoint::output()
{
	cout << "(" << x << "," << y << ")";
}

//CTriangle.cpp
#include <iostream>
#include <cmath>
#include "class.h"

using namespace std;

void CTriangle::setTriangle(CPoint &X, CPoint &Y, CPoint &Z)
{
	A = X, B = Y, C = Z;
}
float CTriangle::perimeter(void)
{
	return (A.Distance(B) + B.Distance(C) + C.Distance(A));
}
float CTriangle::area(void)
{
	float AB = A.Distance(B), BC = B.Distance(C), AC = A.Distance(C);
	
	float p = (AB + BC + AC)/2;
	
	return (sqrt(p * (p-AB) * (p-BC) * (p-AC)));
}
bool CTriangle::isRightTriangle()
{
	float AB = A.Distance(B), BC = B.Distance(C), AC = A.Distance(C);
	
	return (AB*AB + BC*BC == AC*AC || AB*AB +  AC*AC== BC*BC || AC*AC + BC*BC == AB*AB);
}
bool CTriangle::isIsoscelesTriangle()
{
	float AB = A.Distance(B), BC = B.Distance(C), AC = A.Distance(C);
	
	return (AB == AC || AB == BC || AC == BC);
}
/*
利用对文件对程序能够进行更好的管理。
*/

分享到:
评论

相关推荐

    C++上机实验报告-实验六.docx

    C++上机实验报告-实验六全文共11页,当前为第1页。C++上机实验报告-实验六全文共11页,当前为第1页。实验六 多态性 C++上机实验报告-实验六全文共11页,当前为第1页。 C++上机实验报告-实验六全文共11页,当前为第1...

    C++多态性实验报告

    (1)在《C++面向对象程序设计》第6章例6.3的基础上作以下修改,并作必要的讨论。 ○1把构造函数修改为带参数的函数,在建立对象初始化。 ○2先不将析构函数声明为virtual,在main函数中另设一个指向Circle类对象...

    C++实验报告.doc

    为了方便,把代码放在Word里面了,每次上机实验的题目代码都在。...(4)为我公司建立一个多态的产品类层次结构,使用抽象类,测试时,创建一个基类指针的容器,通过基类指针调用虚函数,体验多态。

    数据结构(C++)有关练习题

    c. 该程序要有顾客购票,查询班机起飞降落时间,班机订票情况等3个功能,并实现菜单选项 5、 用C++编写一个简单的行编辑器,每个结点保存一行文本,程序以E file开始,然后显示行数和提示符,如果输入I,后面...

    rose实验报告.doc

    Rose及其应用实验报告 姓 名: 班 级: 序 号: 课 程: 软件工程 老 师: 日 期: _ 地 点: 4教5楼机房 成 绩: 一、实验目的 1.了解Rational Rose软件界面以及使用方法; 2.学会用Rational Rose建立UML模型。 二、实验...

    在VC++ 6.0下进行虚拟μC/OS-II的实验 实验报告.docx

    适用于对相关实验的实验报告撰写参考,其中源码并没有进行认证,目前使用者只有本人,word共34页,8000余字,全为自己编写或从教程参考ppt上摘录 并且没有看到有类似的资源 具体内容参考如下: (1) 跑第一个任务 ...

    操作系统课程设计 天津科技大学 二级文件系统设计 答案 完整代码 Liunx

    (1)本实验的目的是通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能和内部实现。 (2)结合数据结构、程序设计、计算机原理等课程的知识,设计一个二级文件系统,进一步理解操作系统。 (3)通过分...

    COM实验报告.pdf

    一个函数中,可以有多个[in]、[out],但[retval]只能有一个,并且要和[out]组合后在最后一个位 置。 图 9 接口函数 5 实现代码如下: STDMETHODIMP CMath::Add(long n1, long n2, long * pnVal) { // TODO: Add ...

    内部排序的数据结构实验报告

    否则交换L[i]与L[i-1]的位置,继续比较L[i-1]和L[i-2],直到找到某一个位置j(1≤j≤i-1),使得L[j] ≤L[j+1]时为止。 2.1.2、冒泡排序 算法描述:核心思想是扫描数据清单,寻找出现乱序的两个相邻的项目。当找到...

    lzw实验报告.docx

    lzw实验报告全文共6页,当前为第4页。break; lzw实验报告全文共6页,当前为第4页。 } return w; } void LZW::display(int g){ cout经过LZW编码后的码字如下:"; for(int i=0;i;i++) cout[i]; cout; cout经LZW编码后...

    c++课程设计

    还可以 ...课程设计报告 ...学 院:计算机工程学院 班 级:09级计算机科学与技术1班 ...指导教师评语: ____________ __ ___...[5]郑莉,傅仕星编,C++语言面向对象程序设计习题与实验指导,清华大学出版社,2003年9月出版

    计算机网络实验之Ping程序设计实现分析.doc

    课程名称 计算机网络 实验序号 实验五 实验项目 Ping程序的设计与实现 2017年 03月 25 日 实验报告要求 1、实验报告封面填表说明(每份实验报告必须附上封面) (1)课程名称:要求与实验大纲和实验指导书中的课程...

    软件课程设计 试验报告 代码 演示

    根据上面的流程图可以看到如果是一步一步的写程序,势必会让程序变得冗长且不易阅读,因而我想到使用循环的方法,将流程图中类似的结构体做成一个循环体来实现,使程序源代码变得十分的简洁,且容易被阅读和修改。...

    嵌入式\(高校应用案例)北航软件学院

    3-5名学员组成一个项目小组,项目自选,项目小组提交项目报告,经审核同意后拨付项目经费,在项目指导教师指导下项目实施,项目完成应有成型产品,组织召开项目完成报告会,项目小组提交项目完成报告书,项目结束。

    成绩统计系统C课程设计.docx

    4.2015年6月5日之前(第13周):上交、检查设计报告。 地点:计算机科学学院实验机房。 指导教师: 杜小坤 2015年5月8日 成绩统计系统 一 目的 用面向对象的方法设计一个成绩管理系统。建立一个成绩类管理所有成绩...

    电子英汉词典设计1.doc

    C++语言程序设计题典第一版 北京 清华大学出版社 2003年4月 [5] 刘振安 刘燕君 C++程序设计课程设计第一版 机械工业出版社 2004年8月 发出任务书日期: 2007年 6 月 18 日 指导教师签名: 计划完成日期: 2007年 6 ...

    二叉排序树与平衡二叉树的实现

     假设在含有n(n&gt;=1)个关键字的序列中,i个关键字小于第一个关键字,n-i-1个关键字大于第一个关键字,则由此构造而得的二叉排序树在n个记录的查找概率相等的情况下,其平均查找长度为:  ASL(n,i)=[1+i*(P(i)+1)+...

    课程设计报告人员管理系统.docx

    设计题目:公司人员管理系统 学 院:信息学 院 专 业:电子信息工程 班 级:xxxxx班 学 号:xxxxxxxxxx 学生姓名: xxxxxxxxx 指导教师: 余金林 2011.6 课程设计报告人员管理系统全文共25页,当前为第1页。...

    语音识别的MATLAB实现

    声控小车是科大华为科技制作竞赛命题组的项目,其要求是编写一个语言识别程序并适当改装一个小型机动车,使之在一个预先不知道具体形状的跑道上完全由声控来完成行驶比赛。跑道上可以有坡面,坑, 障碍等多种不利...

    电子英汉词典设计1.docx

    C++言语顺序设计题典第一版 北京 清华大学出版社 2003年4月 [5] 刘振安 刘燕君 C++顺序设计课程设计第一版 机械工业出版社 2004年8月 电子英汉词典设计1全文共15页,当前为第2页。 电子英汉词典设计1全文共15页,...

Global site tag (gtag.js) - Google Analytics