Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.03.2010, 01:30   #1
OnlySergio
Пользователь
 
Регистрация: 05.10.2009
Сообщений: 12
Радость Программа ООП C#

Собственно вот условие: обьявить класс прямоугольник с полями X,Y,W,H(координаты верхнего левого угла, ширина, высота) и методами: передвинуть по плоскости без смещения, проверить, попадает ли точка в данный прямоугольник, масштабировать при условии неподвижности верхнего левого угла, пересечься с другим прямоугольником.

Код:
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) { }
        
      
        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);
        }
       
        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);


        }
      
        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("Точка не попадает");
        }
      
        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("Нельзя масштабировать");
        }
       
        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(Y-H>Y_2 && X>X_2+W_2 && Y<Y_2-H_2 && X+W<X_2) 
                {
                    Console.WriteLine("Прямоугольники  не пересекаются");
                }
           else
                    Console.WriteLine("Прямоугольники пересекаются");
        }
      }
    }
OnlySergio вне форума Ответить с цитированием
Старый 28.03.2010, 01:30   #2
OnlySergio
Пользователь
 
Регистрация: 05.10.2009
Сообщений: 12
По умолчанию

И добавить в класс конструкторы для создания обьекта
-Конструктор по умолчанию
-Из 4-х целых чисел
-из другого прямоугольника
-из одного четырехразрядного числа, в каждом раздряде которого хранится одно из значений X,Y,W,H
-из данных введенных с клавиатуры.
Собственно я большинство из этой обьемной задачи сделал, но хочу чтобы кто-то проверил и подсказал как быть с последним методом про пересечение, а также про конструкторы
OnlySergio вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа (ООП), Microsoft Visual C++, тип проекта Win32 Project Spellpir Фриланс 4 11.02.2010 23:40
ООП VladimirVB Общие вопросы Delphi 4 18.11.2009 22:51
ООП AlekDruzh Паскаль, Turbo Pascal, PascalABC.NET 0 09.09.2009 20:32
Паскаль ООП. Примеры программ с использованием ООП SeЯgey Помощь студентам 5 13.05.2009 21:55