Обьявить класс прямоугольник - C#

Узнай цену своей работы

Формулировка задачи:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace лаба_1
{
    class Program
    {
        static void Main()
        {
            Figures fg = new Figures();
            fg.Set();
            fg.Move();
            fg.Check();
            fg.Scale();
            fg.CompareTo();
            Console.ReadKey();
        }
 
    }
    class Figures
    {
        public int X;
        public int Y;
        public int W;
        public int H;
 
        public Figures() { }
        public Figures(int X,int Y,int W,int H) { }

        /// <summary>
        /// Задание координат прямоугольника
        /// </summary>
        public void Set()
        {
            string x, y, w, h;
            Console.WriteLine("Введите значение координаты X");
            x = Console.ReadLine();
            X = Convert.ToInt32(x);
            Console.WriteLine("Введите значение координаты Y");
            y = Console.ReadLine();
            Y = Convert.ToInt32(y);
            Console.WriteLine("Введите значение ширины");
            w = Console.ReadLine();
            W = Convert.ToInt32(w);
            Console.WriteLine("Введите значение высоты");
            h = Console.ReadLine();
            H = Convert.ToInt32(h);
        }
       /// <summary>
       /// Передвигаем по плоскости без вращения
       /// </summary>
        public void Move()
        {
            int X_Move;
            int Y_Move;
            string m, n;
 
            Console.WriteLine("Введите перемещение вдоль X");
            m = Console.ReadLine();
            X_Move = Convert.ToInt32(m);
            Console.WriteLine("Введите перемещение вдоль Y");
            n = Console.ReadLine();
            Y_Move = Convert.ToInt32(n);
            X = X + X_Move;
            Y = Y + Y_Move;
            Console.WriteLine("Новые координаты Х " + X);
 
            Console.WriteLine("Новые координаты Y " + Y);

        }
        /// <summary>
        /// Проверка на попадание точки в данный прямоугольник
        /// </summary>
        public void Check()
        {
            int X_point, Y_point;
            string j, f;
            Console.WriteLine("Введите значение Х точки");
            j = Console.ReadLine();
            X_point = Convert.ToInt32(j);
            Console.WriteLine("Введите значение Y точки");
            f = Console.ReadLine();
            Y_point = Convert.ToInt32(f);
            if (X <= X_point && X_point <= X + W && Y <= Y_point && Y_point <= Y + H)
                Console.WriteLine("Точка попадает в прямоугольник");
            else
                Console.WriteLine("Точка не попадает");
        }
      /// <summary>
      /// Масштабирование треугольника
      /// </summary>
        public void Scale()
        {
            int W_Scale;
            int H_Scale;
            string m, n;
            Console.WriteLine("Ширина прямоугольника");
            m = Console.ReadLine();
            W_Scale = Convert.ToInt32(m);
            Console.WriteLine("Длина прямоугольника");
            n = Console.ReadLine();
            H_Scale = Convert.ToInt32(n);
 
            if
                (W_Scale <= Y + H && H_Scale >= X)
            {
                W = W + W_Scale;
                H = H + H_Scale;
               Console.WriteLine("прямоугольник маштабируется");
            }
            else
 
               Console.WriteLine("Нельзя масштабировать");
        }
        /// <summary>
        /// Проверка на пересечение с другим
        /// </summary>
        /// Второй прямоугольник
        /// X_2 Y_2 -координаты верхнего левого угла
        /// W_2 H_2 -ширина и высота
        public void CompareTo() 
        {
            int X_2, Y_2, W_2, H_2;
            string x_2, y_2, w_2, h_2;
            Console.WriteLine("");                
            Console.WriteLine("Задание второго прямоугольника!");
            Console.WriteLine("");
            Console.WriteLine("Введите значение координаты X");
            x_2 = Console.ReadLine();
            X_2 = Convert.ToInt32(x_2);
            Console.WriteLine("Введите значение координаты Y");
            y_2 = Console.ReadLine();
            Y_2 = Convert.ToInt32(y_2);
            Console.WriteLine("Введите значение ширины");
            w_2 = Console.ReadLine();
            W_2 = Convert.ToInt32(w_2);
            Console.WriteLine("Введите значение высоты");
            h_2 = Console.ReadLine();
            H_2 = Convert.ToInt32(h_2);
        
           // if (X <= X_2 && X_2 <= X + W && Y >= Y_2 && Y_2 <= Y + H && X + W >= X_2 + W_2 && Y + H >= Y_2 + H_2)
            if (X <= X_2 && X + W <= X_2 + W_2 || X >= X_2 && X + W >= X_2 + W_2) 
                {
                    Console.WriteLine("Прямоугольники пересекаются");
                }
           else
                    Console.WriteLine("Прямоугольники не пересекаются");
        }
      }
    }
Собственно вот условие: обьявить класс прямоугольник с полями X,Y,W,H(координаты верхнего левого угла, ширина, высота) и методами: передвинуть по плоскости без смещения, проверить, попадает ли точка в данный прямоугольник, масштабировать при условии неподвижности верхнего левого угла, пересечься с другим прямоугольником. И добавить в класс конструкторы для создания обьекта -Конструктор по умолчанию -Из 4-х целых чисел -из другого прямоугольника -из одного четырехразрядного числа, в каждом раздряде которого хранится одно из значений X,Y,W,H -из данных введенных с клавиатуры. Собственно я большинство из этой обьемной задачи сделал, но хочу чтобы кто-то проверил и подсказал как быть с последним методом про пересечение, а также про конструкторы
помогите кто-то срочно завтра просто сдавать

Решение задачи: «Обьявить класс прямоугольник»

textual
Листинг программы
#include <stdio.h>
#include "stdafx.h"
#include <iostream>
using namespace std;
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <math.h>
 
class XY //класс
{public:
    int x1;
    int x2;
    int y1;
    int y2;
    int z1;
    int z2;
    int x3;
    int x4;
    int y3;
    int y4;
    int q;
    int w;
    int r1;
    int r2;
    int t1;
    int t2;
    int x11;
    int x22;
    int y11;
    int y22;
    int m;
 
    void set1_XY() // с помощью этого метода изменим начальные значения заданные конструктором
    {
        cout << "Введите координату Х первой точки: ";
        cin >> x1;
        cout << "Введите координату Y первой точки: ";
        cin >> x2;
        cout << "Введите координату Х второй точки: ";
        cin >> y1;
        cout << "Введите координату Y второй точки: ";
        cin >> y2;
    }
 
    void set2_XY() // с помощью этого метода изменим начальные значения заданные конструктором
    {
        cout << "Введите координату X проверяемой точки: ";
        cin >> z1;
        cout << "Введите координату Y проверяемой точки: ";
        cin >> z2;
    }   
 
    void proverkaZ()
    {
        x3=min(x1,x2);
        x4=max(x1,x2);
        y3=min(y1,y2);
        y4=max(y1,y2);
 
        if((z1>=x3)&(z1<=x4)&(z2>=y3)&(z2<=y4))
        cout << "Точка принадлежит прямоугольнику " << endl;
        else
        cout << "Точка не принадлежит прямоугольнику " << endl;
    }
 
    void PeresechenieXY()
    {   m=0;
        cout << "Введите координату Х второй фигуры: ";
        cin >> x11;
        cout << "Введите координату Y второй фигуры: ";
        cin >> y11;
        cout << "Введите координату Х второй фигуры: ";
        cin >> x22;
        cout << "Введите координату Y второй фигуры: ";
        cin >> y22;
 
        if(((x3>=x11)&(x3<=x22))||((x4>=x11)&(x4<=x22))||((x3>=x11)&(x3<=x22))||((x22<=x4)&(x22>=x3)))
            m++;
        cout << m << endl;
        if(((y3>=y11)&(y3<=y22))||((y4>=y11)&(y4<=y22))||((y3>=y11)&(y3<=y22))||((y22<=y4)&(y22>=y3)))
            m++;
        cout << m << endl;
        if (m==2)
        cout << "Два прямоугольника пересекаются " << endl;
        else
        cout << "Два прямоугольника не пересекаются " << endl;
    }
 
    void MashtabXY()
    {
    cout << "Введите значение, на которое будет изменена фигура по оси Х: ";
    cin >> w;
    cout << "Введите значение, на которое будет изменена фигура по оси У: ";
    cin >> q;
    y1=y1+w;
    y2=y2+q;
    cout << "Новые координаты фигуры. Верхняя точка: (" << x1 << ";" << x2 << ")" << endl;
    cout << "Нижняя точка: (" << y1 << ";" << y2 << ")" << endl;
    }
 
    void SdvigXY()
    {
    cout << "Введите значение, на которое будет сдвинута фигура по оси Х (влево - со знаком минус, вправо - со знаком плюс): ";
    cin >> w;
    cout << "Введите значение, на которое будет изменена фигура по оси У (вверх - со знаком плюс, вниз - со знаком минус): ";
    cin >> q;
    x1=x1+w;
    y1=y1+w;
    x2=x2+q;
    y2=y2+q;
    cout << "Новые координаты фигуры. Верхняя точка: (" << x1 << ";" << x2 << ")" << endl;
    cout << "Нижняя точка: (" << y1 << ";" << y2 << ")" << endl;
    }
};
 
int main()
{
    setlocale(LC_ALL, "rus");
 
    XY obj1;     //конструктор сработает на данном этапе (во время создания объекта класса)
 
    obj1.set1_XY();   //присвоим новые значения переменным
    obj1.set2_XY();   //присвоим новые значения переменным
    obj1.proverkaZ();   //и выведем их на экран
    obj1.PeresechenieXY();
    obj1.MashtabXY();
    obj1.SdvigXY();
return 0;
}

Оцени полезность:

13   голосов , оценка 3.769 из 5
Похожие ответы