面向对象程序设计期末.doc
文本预览下载声明
甘肃政法学院
面向对象程序设计
期末考试
题 目 三角形的种类与面积
计算机科学学院 计算机科学与技术专业
11级 计本一 班
学 号: 201181110148
姓 名: 郑旭彤
指导教师: ___金 涛__
成 绩: ____________
完成时间: _2012 年 6月
一、项目说明
1、课程设计的目的
1)通过课程设计更进一步理解C++的基础知识和面向对象的思想。
2)训练用系统的观点和软件开发一般规范进行软件开发,并在此过程中培养严谨的科学态度和良好的工作作风。初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能。
2、课程设计的内容
使用类实现对三角形的种类和面积求解,具体内容如下:
1)设计菜单实现功能选择;
2)输入三角形的三个顶点坐标;
3)计算并输出三角形的面积
二、各功能模块的介绍和源码的介绍
1.(1)定义三个Point,Line,Triangle三个类。
(2)详细设计,如图1:
详细注释:
public:
Point();:点类无参构造函数
Point(参数);:点类带参构造函数
Private:
double X;:点的x坐标
double Y;:点的y坐标
public:
Line();:线段类无参构造函数
Line(参数);:线段类带参构造函数
private:
double X1,X2,Y1,Y2;两个点的x坐标和y坐标
Point p1,p2;两个点类成员
public:
Triangle();:三角形类无参构造函数
Triangle(参数);:三角形带参构造函数
trilineput();:三角形边长输出函数
triarea();:求三角形面积函数
trijudgekind();:三角形类型判断函数
private:
double X1,X2,X3,Y1,Y2,Y3;:三角形三点的x坐标和y坐标
Point p1,p2,p3;:三个点类成员
Line l1,l2,l3:三个线段类成员
图1 设计图
(3)其他自定义函数
void setprecision();:设置输出数据精度函数
viod triin(Triangle t);:初始化一个三角形对象函数
void display();:主菜单显示函数
(4)主函数
void display();switch(int n):调用操作
源码分析
先定义一个点类,做线段类的基类,一种当x、y为0时,调用点类无参构造函数,x、y不为0时,调用点类带参构造函数。类视图及其成员如图2:
图2 点类视图
#includeiostream.h
#includemath.h
#includefstream.h
#includectype.h
#includeiomanip.h
#includestdlib.h
static int P=2;
//点类
//做线段类的基类
class Point
{
public:
Point()//点类无参构造函数
{
X=0;Y=0;
}
Point(double x,double y)//点类带参构造函数
{
X=x;
Y=y;
}
private:
double X;//点类私有数据成员
double Y;
};
构造一个线段类,公有继承点类,构造一个线段类无参构造函数,然后对私有数据成员赋值,再构造求两点距离函数,即三角形的边长,类视图及其成员如图3:
图3 线段类视图
//线段类
class Line: public Point//公有继承点类
{
public:
Line()//线段类无参构造函数
{
X1=0;X2=0;Y1=0;Y2=0;//给私有数据成员赋初值
}
Line(double x1,double y1,double x2,double y2):Point(0,0),p1(x1,y1),p2(x2,y2)//线段类带参构造函数,初始化数据
{
X1=x1;X2=x2;
Y1=y1;Y2=y2;
}
double linelength();//求两点距离函数
private:
Point p1,p2; //私有点类成员
double X1,X2,Y1,Y2;//私有数据成员
};
double Line::linelength()
//定义求两点距离函数,即三角形的边长
{
return sqrt((X1-X2)*(X1-X2)+(Y1-Y2)*(Y1-Y2));//返回两点的距离值,即三角形边
} //长的值
定义一个三角形类,构造一个公有继承线段类函数,若
显示全部