Code for the Homework1 改进
#include <iostream> #include <vector> #include "shape.h" //using namespace std; //using namespace Eigen; 在shape.h中 const double PI=3.141592653; vector<SHAPE*> sv; vector<SHAPE*>::iterator itr; POINT p; LINE l; TRIANGLE t; void Shape_Save(void); void Shape_Handle(void); int main() { int flag; ) { cout << "存图形请输入0,操作图形请输入1" << endl; cin >> flag; switch (flag) { :Shape_Save();break; :Shape_Handle(); break; default:cout << "输入错误!" << endl; break; } } ; } void Shape_Save() { string name; int num; cout << "请输入图形名称 点数 坐标" << endl; cin >> name; cin >> num; switch (num) { : { p.name=name; p.get_cin_point(); sv.push_back(&p); break; } : { l.name=name; l.get_cin_line(); sv.push_back(&l); break; } : { t.name=name; t.get_cin_triangle(); sv.push_back(&t); break; } default: {cout << "点数输入错误" << endl; break; } } } void Shape_Handle(void) { string cmd,name1; char a, b, c; Vector2d vec; double x,y,angle; cout << "请输入操作指令" << endl; cin >> cmd; cin>> name1; if (cmd == "move") { cin >> a >> x >> b >> y >> c; vec[]=x;vec[]=y; // for(int i=0;i<sv.size();i++) // { // if(name1 == sv[i]->name) // { // cout<<"i="<<i<<endl; // sv[i]->move(vec); // cout << sv[i]->name<<"平移后为:"; // sv[i]->display(); // } // } for (itr = sv.begin(); itr != sv.end(); itr++) //迭代器方式 { if(name1== (*itr)->name) { (*itr)->move(vec); cout << (*itr)->name<<"平移后为:"; (*itr)->display(); } } } else if (cmd == "rotate") { cin >> angle; // for(int i=0;i<sv.size();i++) // { // if(name1 == sv[i]->name) // { // sv[i]->rotate(angle); // cout << sv[i]->name<<"旋转后为:"; // sv[i]->display(); // } // } for (itr = sv.begin(); itr != sv.end(); itr++) //迭代器方式 { if(name1== (*itr)->name) { (*itr)->rotate(angle); cout << (*itr)->name<<"旋转后为:"; (*itr)->display(); } } } else cout << "comand is error!" << endl; }
main.cpp
#include <Eigen/Dense> #include <iostream> #include <vector> using namespace Eigen; using namespace std; extern const double PI; class SHAPE { public: string name; ; // { // cout<<1; // return; // }; ; // { // cout<<1; // return; // } ; // { // cout<<1; // return; // } }; class POINT:public SHAPE { public: double x, y; POINT(){ }; POINT(string nam,double xx,double yy){ name=nam; x=xx; y=yy; } POINT(const POINT &p){ name=p.name; x=p.x; y=p.y; } void copyto(POINT &p); void get_cin_point(void); void display(); void rotate(double &angle); void move(Vector2d &vec); }; class LINE:public SHAPE { public: POINT p_start,p_end; LINE(){ } LINE(string nam,POINT s,POINT e) { name=nam; s.copyto(p_start); e.copyto(p_end); } void get_cin_line(void); void display(); void rotate(double &angle); void move(Vector2d &vec); }; class TRIANGLE:public SHAPE { public: POINT p1,p2, p3; TRIANGLE(){ } TRIANGLE(string nam,POINT pp1,POINT pp2,POINT pp3) { name=nam; pp1.copyto(p1); pp2.copyto(p2); pp3.copyto(p3); } void get_cin_triangle(void); void display(); void rotate(double &angle); void move(Vector2d &vec); };
shape.h
#include "shape.h" /*****POINT类成员函数的实现****/ void POINT::copyto(POINT &p){ p.name=name; p.x=x; p.y=y; } void POINT::get_cin_point(void){ char a, b, c; cin >> a >> x >> b >> y >> c ; } void POINT::display() { cout << "(" << this->x << "," << this->y << ")" << endl; } void POINT::rotate(double &angle){ //逆时针为正 double x, y,ang; x = this->x; y = this->y; ang = angle*PI/ ; this->x = x*cos(ang) - y*sin(ang); this->y = x*sin(ang) + y*cos(ang); } void POINT::move(Vector2d &vec){ ]; ]; } /*****LINE类成员函数的实现****/ void LINE::get_cin_line(void){ char a, b, c; cin >> a >>p_start.x>> b >> p_start.y >> c >> a >>p_end.x>> b >> p_end.y >> c; } void LINE::display(){ cout<<"起点"; p_start.display(); cout<<"终点"; p_end.display(); } void LINE::rotate(double &angle){ p_start.rotate(angle); p_end.rotate(angle); } void LINE::move(Vector2d &vec){ p_start.move(vec); p_end.move(vec); } /*****TRIANGLE类成员函数的实现****/ void TRIANGLE::get_cin_triangle(void){ char a, b, c; cin >> a >>p1.x>> b >> p1.y >> c >> a >>p2.x>> b >> p2.y >> c>> a >>p3.x>> b >> p3.y >> c; } void TRIANGLE::display() { cout<<"顶点1"; p1.display(); cout<<"顶点2"; p2.display(); cout<<"顶点3"; p3.display(); } void TRIANGLE::rotate(double &angle){ p1.rotate(angle); p2.rotate(angle); p3.rotate(angle); } void TRIANGLE::move(Vector2d &vec){ p1.move(vec); p2.move(vec); p3.move(vec); }
shape.cpp
运行结果:
Code for the Homework1 改进的更多相关文章
- Code alignment 代码对齐改进(VS2017)
In mathematics you always keep your equals lined up directly underneath the one above. It keeps it c ...
- Code for the Homework2 改进
1. 实现了到指定点各个关节的转角计算(多解性),并且所求解满足各个关节的最大角和最小角的限制条件. 2. 对方向向量进行了单位化,保证任意大小的向量都行 #include<iostream&g ...
- Code for the Homework1
作业要求: http://www.cnblogs.com/bingc/p/4919692.html 代码(未使用Eigen): #include <iostream> #include & ...
- PHP5.4最新特性
PHP5.4最新特性 官网:ChangeLog-5.php#5.4.0 原文Oracle:LAMP 体系有了新的竞争,但此版本中的特性使 PHP 再次挑战极限. 稍微做了修改.: 概述总结:1. ...
- 《精通python网络爬虫》笔记
<精通python网络爬虫>韦玮 著 目录结构 第一章 什么是网络爬虫 第二章 爬虫技能概览 第三章 爬虫实现原理与实现技术 第四章 Urllib库与URLError异常处理 第五章 正则 ...
- iOS开发 - 开发版+企业版无线发布一键打包
背景:项目进入快速迭代期,需要快速地交付出AdHoc版本和企业无线发布版本.每次打包都要来回切换bundle identifier和code signing,浪费很多时间. 示例项目名称名称为Test ...
- 3D-camera结构光原理
3D-camera结构光原理 目前主流的深度探测技术是结构光,TOF,和双目.具体的百度就有很详细的信息. 而结构光也有双目结构光和散斑结构光等,没错,Iphone X 的3D深度相机就用 散斑结构光 ...
- 算法所产生的性能改进已经超过了硬件所带来的性能提升 The future is algorithms, not code
w 大数据的发展,伴随的将是软件工程师的渐退,算法工程师的崛起 http://mp.weixin.qq.com/s/XTz2HnzwlgTD3g5zU2u5Tg
- 从Script到Code Blocks、Code Behind到MVC、MVP、MVVM
刚过去的周五(3-14)例行地主持了技术会议,主题正好是<UI层的设计模式——从Script.Code Behind到MVC.MVP.MVVM>,是前一天晚上才定的,中午花了半小时准备了下 ...
随机推荐
- [未完成]关于JavaScript总结
jsp服务端,js客户端. javascript 是基于对象和事件驱动的脚本语言. 特点: 交互性 安全性(不允许直接访问本地硬盘) 跨平台性(只要是可以解析java的浏览器都可以执行,和平台无关) ...
- Hibernate常见面试题
1.什么是Hibernate的并发机制?怎么去处理并发问题? Hibernate并发机制: a.Hibernate的Session对象是非线程安全的,对于单个请求,单个会话,单个的工作单元(即单个事务 ...
- CF 13E. Holes 分块数组
题目:点这 跟这题BZOJ 2002: [Hnoi2010]Bounce 弹飞绵羊 一模一样 分析: 分块数组入门题. 具体的可以学习这篇博文以及做国家集训队2008 - 苏煜<对块状链表的一 ...
- 把数据库中的字符串格式转为long类型
背景: 在做接口时,需要把数据库中所有ID取出来,用jmter做一些数据关联,问题来了,数据库中的ID转换出来为字符型,而接口是需要使用LONG型,所以在导出来后,数据一直报类型不为long,那如何把 ...
- php 学习笔记
//本文转自:http://www.cnblogs.com/ronghua/p/6002995.html //语法错误(syntax error)在语法分析阶段,源代码并未被执行,故不会有任何输出. ...
- BZOJ 3505
3505: [Cqoi2014]数三角形 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1171 Solved: 703[Submit][Statu ...
- css3 文本记
css3 文本 在css文本功能上主要分为三大类:字体,颜色和文本. text-shadow 设置文本阴影 text-shadow:color x-offset y-offset blur-radiu ...
- Lombok(1.14.8) - @SneakyThrows
@SneakyThrows @SneakyThrows,声明异常. package com.huey.lombok; import java.io.UnsupportedEncodingExcepti ...
- C#算法基础之希尔排序
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- 分享我的2014年3月unity3d面试题与参考答案
今年3月份面试unity3d游戏程序,先做的面试题,然后人事问了我几个之前游戏开发的问题,问我英语怎么样等等,介绍了公司情况和对unity3d程序的要求.之后就回来了,总共面了不到1个半小时吧.笔试答 ...