Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Описать класс "Прямоугольник со сторонами, параллельными осям координат" - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Предикатная функция C++ http://www.cyberforum.ru/cpp-beginners/thread1183979.html
В класс включите предикатную функцию square, которая определяла бы, не является ли прямоугольник квадратом. Что такое предикатная функция и где она должна располагаться?
C++ Base64 не работает с кириллицей в одном из случаев Есть две функции кодирования Bаse64 в разных кодировках. Например фраза "Василий Иванович" в первой функции выглядит так: wuDx6Ovo6SDI4uDt7uLo9wA= (проверить можно тут... http://www.cyberforum.ru/cpp-beginners/thread1183965.html
C++ Записать в файл прямого доступа
Записать в файл прямого доступа N действительных чисел. Найти наибольшее из значений модулей компонентов с нечетными номерами.
Расчет интервала C++
Доброе время суток! Помогите пожалуйста с задачей. Надо добавить расчет интервала. А то он вводится, а расчет над ним не производится #include <iostream> #include<stdio.h> using namespace std;...
C++ Ошибка вывода в файл http://www.cyberforum.ru/cpp-beginners/thread1183951.html
Программа сделана, но в файл почему-то выводит YesYesYesNoNoNoYesYesYes для набора: 3 1 2 2 1 3 3 2 1 3 А должно выводить просто Yes. Сама задача: Дан граф из N вершин, заданный списком...
C++ Метод Якоби Здравствуйте. Возникла проблема в реализации метода Якоби для нахождения приближенного решения для задачи Дирихле. При уменьшении шага в 2 раза ошибка приближения должна уменьшиться в 4 раза. Но... подробнее

Показать сообщение отдельно
denpanov
2 / 2 / 0
Регистрация: 19.10.2012
Сообщений: 77

Описать класс "Прямоугольник со сторонами, параллельными осям координат" - C++

21.05.2014, 21:21. Просмотров 898. Ответов 0
Метки (Все метки)

Составить описание класса прямоугольгиков со сторонами, параллельными
осям координат. Предусмотреть возможность
1) перемещения прямоугольников на плоскости;
2) изменения размеров;
3) построения наименьшего прямоугольника, содержащего два заданных прямоугольника;
4) построения прямоугольника, являющегося общей частью (пересечением) двух
прямоугольков.
Написать программу, демонстрирующую работу с этим классом. Программа должна
содержать меню, позволяющее осуществить проверку всех методов класса.

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <stdlib.h>
#include <windows.h>
#include <stdio.h>
 class PRY{ 
        public:
            PRY(int=0,int=0,int=1,int=1);
   int x,y,a,b;
     void move(int,int);
     void resize(int,int);
     PRY min(PRY);
     PRY max(PRY);
     void Out();
        };
        
    PRY::PRY(int x,int y,int a,int b)
      {this->x=x;
       this->y=y;
       this->a=abs(a);
       this->b=abs(b); }
   
    void PRY::move(int xx,int yy)
      { x+=xx; y+=yy; }
      
     void PRY::resize(int xx, int yy) 
      { a+=xx; b+=yy;
        if (a<0) a=0;
        if (b<0) b=0; }
       
    PRY PRY::min(PRY z)
      { PRY zz;
        int vx[4],vy[4];
        vx[0]=x; vx[1]=x+a; vx[2]=z.x; vx[3]=z.x+z.a;
        vy[0]=y; vy[1]=y+b; vy[2]=z.y; vy[3]=z.y+z.b;
        int i,j,k;
        for (i=0;i<4;i++)
         for (j=0;j<3;j++)
           if (vx[j]>vx[j+1]){k=vx[j];vx[j]=vx[j+1];vx[j+1]=k;}
        for (i=0;i<4;i++)
         for (j=0;j<3;j++)
           if (vy[j]>vy[j+1]){k=vy[j];vy[j]=vy[j+1];vy[j+1]=k;}
        if (vx[3]-vx[0]<a+z.a && vy[3]-vy[0]<b+z.b)
           {zz.x=vx[1];zz.a=vx[2]-vx[1];zz.y=vy[1];zz.b=vy[2]-vy[1];}
            else zz.x=zz.y=zz.a=zz.b=0 ;
            return zz;}
        
    PRY PRY::max (PRY z)
         {PRY zz;
          if (x<z.x) zz.x=x; else zz.x=z.x;            
          if (y<z.y) zz.y=y; else zz.y=z.y;
          if (x+a<z.x+z.a) zz.a=z.x+z.a-zz.x; else zz.a=x+a-zz.x;            
          if (y+b<z.y+z.b) zz.b=z.y+z.b-zz.y; else zz.b=y+b-zz.y; 
          return zz;}
          
    void PRY::Out()
      {cout<<"x="<<x<<"y="<<y<<"a"<<a<<"b"<<b;}

Подскажите что не правильно и как сделать меню?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru