C++第2周项目6——点结构体与枚举

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565,本周题目链接:http://blog.csdn.net/sxhelijian/article/details/8635385

【项目6-点结构体与枚举】读程序,写出函数的定义,注意其中枚举类型的用法

enum SymmetricStyle {axisx,axisy,point};//分别表示按x轴, y轴, 原点对称
struct Point{
	double x;  // 横坐标
	double y;  // 纵坐标
};
double distance(Point p1, Point p2);   // 两点之间的距离
double distance0(Point p1);
Point symmetricAxis(Point p,SymmetricStyle style);   //返回对称点
int main( ){
	Point p1={1,5},p2={4,1},p;
	cout<<"两点的距离为:"<<distance(p1,p2)<<endl;
	cout<<"p1到原点的距离为:"<<distance0(p1)<<endl;
	p=symmetricAxis(p1,axisx);
	cout<<"p1关于x轴的对称点为:"<<"("<<p.x<<", "<<p.y<<")"<<endl;
	p=symmetricAxis(p1,axisy);
	cout<<"p1关于y轴的对称点为:"<<"("<<p.x<<", "<<p.y<<")"<<endl;
	p=symmetricAxis(p1,point);
	cout<<"p1关于原点的对称点为:"<<"("<<p.x<<", "<<p.y<<")"<<endl;
	return 0;
}

参考解答:

#include "iostream"
#include "Cmath"
using namespace std;

enum SymmetricStyle {axisx,axisy,point};//分别表示按x轴, y轴, 原点对称
struct Point
{
	double x;  // 横坐标
	double y;  // 纵坐标
};
double distance(Point p1, Point p2);   // 两点之间的距离
double distance0(Point p1);
Point symmetricAxis(Point p,SymmetricStyle style);   //返回对称点

int main( )
{
	Point p1={1,5},p2={4,1},p;
	cout<<"两点的距离为:"<<distance(p1,p2)<<endl;
	cout<<"p1到原点的距离为:"<<distance0(p1)<<endl;
	p=symmetricAxis(p1,axisx);
	cout<<"p1关于x轴的对称点为:"<<"("<<p.x<<", "<<p.y<<")"<<endl;
	p=symmetricAxis(p1,axisy);
	cout<<"p1关于y轴的对称点为:"<<"("<<p.x<<", "<<p.y<<")"<<endl;
	p=symmetricAxis(p1,point);
	cout<<"p1关于原点的对称点为:"<<"("<<p.x<<", "<<p.y<<")"<<endl;
	return 0;
}

// 求两点之间的距离
double distance(Point p1,Point p2)
{
	double d;
	d=sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));
	return d;
}

// 求点到原点的距离
double distance0(Point p)
{
	double d;
	d=sqrt(p.x*p.x+p.y*p.y);
	return d;
}

// 求对称点
Point symmetricAxis(Point p1,SymmetricStyle style)
{
	Point p;
	p.x=p1.x;
	p.y=p1.y;
	switch(style)
	{
	case axisx:
		p.y=-p1.y; break;
	case axisy:
		p.x=-p1.x; break;
	case point:
		p.x=-p1.x;p.y=-p1.y;
	}
	return p;
}
时间: 2024-09-18 21:21:26

C++第2周项目6——点结构体与枚举的相关文章

C++第1周项目2——日期结构体

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565 [项目2-日期结构体]定义一个结构体变量(包括年.月.日),要求输入年.月.日,计算输出该日是该年的第几天? /* * 程序的版权和版本声明部分 * Copyright (c)2013, 烟台大学计算机学院学生 * All rightsreserved. * 文件名称: date.cpp * 作 者: * 完成日期: 年 月 日 * 版本号: v1.0 * 输入描述:年月

C++第2周项目3——用结构体数组作计算

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565,本周题目链接:http://blog.csdn.net/sxhelijian/article/details/8635385 [项目3-用结构体数组作计算]接项目2,(1)从文件中读出数据,存放到你定义的结构体数组中,即项目2(1):(2)求出每名同学的总分(可以在读入过程中"顺便"计算):(3)按总分排序(降序):(4)输出排序后的成绩单:(5)有30名同学可

C++第2周(春)项目3 文件+结构体实现实用系统

课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接 [项目3-文件+结构体实现实用系统]score.txt(本文后提供了一部分数据,自行copy建文本文件)中是一些同学的学号.姓名.C++.高数.英语成绩,利用前两个项目中定义的结构体数组,读取文件中的数据,完成下面的应用: (1)从文件中读出数据,存放到结构体数组中: 博文"C++文件操作初体验"http://blog.csdn.ne

《C语言及程序设计》实践项目——初练结构体

返回:贺老师课程教学链接 [项目1-复数结构体] 编写一个程序,首先定义一个复数数据类型,即结构类型.然后按照复数的运算规则进行计算,并按照复数表示的格式进行输出,请将程序补充完整. #include <stdio.h> struct complex { int re; int im; }; int main() { struct complex x,y,s,p; scanf("%d%d",&x.re,&x.im); scanf("%d%d&quo

结构体、枚举

结构体.枚举 枚举 如果一个变量只有几种可能的取值可以用枚举类型来定义. 枚举值和枚举类型变量可以自动转换为int类型,而int类型不能自动转换为枚举值. cin>>枚举变量也是编译器不允许的.   union 在struct中各成员有各自的内存空间,一个结构体变量的总长度是各成员长度之和(不考虑边界调整).而在union中,各成员共享一段内存空间, 一个联合变量的长度等于各成员中最长的长度.

第17周报告1:结构体数组

任务:score.txt中是一些同学的学号.姓名.C++.高数.英语成绩,定义一个学生成绩的结构体数组,其中的成员包括学号(char num[12]).姓名(name).三门课的成绩(grade).总分(score)).建议将某些功能设计成自定义函数. (1)从文件中读出数据,存放到你定义的结构体数组中: (2)求出每名同学的总分(可以读入过程中"顺便"计算): (3)按总分排序(降序): (4)输出排序后的成绩单: (5)有30名同学可以获得奖学金,规则是总分高者优先,有挂科不能得奖

2013C++第9周项目——多分支结构程序设计

课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759 [项目1分段函数求值]从键盘输入x的值(整型),根据公式1计算并输出x和y的值.  要求用switch语句构造多分支结构完成求解,利用BB平台上"第9周练习源代码及博文模板.txt"中给出了博文模板发布报告. 提示: 解法1:类似例3.9的思路,各分段的标准都为2的倍数,所以,构造表达式 t= x/2,根据t的取值决定switch分支: 解法2:构造表达式 t=

2013级C++第2周(春)项目——结构体应用大体验

课程主页在:http://blog.csdn.net/sxhelijian/article/details/11890759,由课程主页,可以看到完整教学方案,所有参考解答 第一部分 结构体应用 [项目1-学生成绩统计]   每位同学的信息学号.姓名.C++.高数.英语成绩,定义一个学生成绩的结构体数组,其中的数据成员包括学号(char num[12]).姓名(name).三门课的成绩(grade).总分(score).均分(average)). (1)从键盘上输入N名学生的信息(N定义为常变量

2013级C++第1周(春)项目——枚举类型与结构体初步

课程主页在:http://blog.csdn.net/sxhelijian/article/details/11890759 [项目0-闲谈几点] 学习信息技术的大学生,在初接触行业,就能够进入到专业社区,有机会了解行业最新进展.享受海量资源.接触专业人士.获得实践机会,也给自己创造了一个全新.开放的展示空间,我们可以拥抱这样的机会. 与互联网相关的大学生,学习程序设计课程过程中,就同互联网亲密接触,学会驾驭,学会融入,各种观念,乃至于技术会逐渐深入.在进一步的学习过程中,博客.搜索.论坛.Em