11#include " shape.h"
2-
32#include " math.h"
4- #define PI 3.1415926535898
3+ #define M_2PI 6.283185307179586232
54
65using namespace std ;
76
@@ -53,7 +52,7 @@ void Circle::print() {
5352}
5453
5554double Circle::get_contour_length () {
56- return 2 * PI * r;
55+ return M_2PI * r;
5756}
5857
5958// class Segment
@@ -71,81 +70,4 @@ void Segment::print() {
7170
7271double Segment::get_contour_length () {
7372 return sqrt (pow (end.x - start.x , 2 ) + pow (end.y - start.y , 2 ));
74- }
75-
76- // class Node
77-
78- Node::Node (Shape* s, Node* next):
79- shape(s), next(next) {
80- }
81-
82- // class FigureList
83-
84- FigureList::FigureList () {
85- head = NULL ;
86- size = 0 ;
87- }
88-
89- void FigureList::push_front (Shape* s) {
90- Node *temp = new Node (s);
91- if (size) {
92- temp->next = head;
93- head = temp;
94- } else {
95- head = temp;
96- }
97- size++;
98- }
99-
100- void FigureList::push_back (Shape* s) {
101- Node *temp = new Node (s);
102- if (size) {
103- Node *last = head;
104- while (last->next )
105- last = last->next ;
106- last->next = temp;
107- } else {
108- head = temp;
109- }
110- size++;
111- }
112-
113- Shape& FigureList::get (int id) {
114- Node *curr = head;
115- while (curr) {
116- if (curr->shape ->get_id () == id)
117- return *(curr->shape );
118- curr = curr->next ;
119- }
120- return *(curr->shape );
121- }
122-
123- void FigureList::erase (int id) {
124- Node *curr = head, *prev = NULL ;
125- while (curr) {
126- if (curr->shape ->get_id () == id) {
127- if (curr == head) { // первый элемент
128- head = head->next ;
129- } else if (curr->next ) { // элемент посередине
130- prev->next = curr->next ;
131- } else { // последний элемент
132- prev->next = NULL ;
133- }
134- delete curr->shape ;
135- delete curr;
136- return ;
137- }
138- prev = curr;
139- curr = curr->next ;
140- }
141- }
142-
143- void FigureList::print_all () {
144- Node* curr = head;
145- int i = 1 ;
146- while (curr) {
147- cout << " \n item: " << i++ << endl;
148- curr->shape ->print ();
149- curr = curr->next ;
150- }
15173}
0 commit comments