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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.03.2013, 21:47   #1
gylayko
Форумчанин
 
Регистрация: 14.09.2011
Сообщений: 203
По умолчанию c# конструкторы без параментров и скрытые поля

есть рабочая программа, которая строит прямоугольники со сторонами, параллельными осям координат. Есть возможность перемещения прямоугольника на плоскости, изменение размеров, построение наименьшего прямоугольника, содержащего 2 заданных прямоугольника и прямоугольник, являющийся пересечением 2-х прямоугольников.
Код:
namespace ConsoleApplication1
{
    public class rectangle
    {
        public static bool brake = false;
        int x, y, shirina, visota;

        public rectangle(int x, int y, int shirina, int visota)
        {
            this.x = x;
            this.y = y;
            this.shirina = shirina;
            this.visota = visota;
        }
        public void perem(int l, int h, ref int x, ref int y)
        {
            x -= l;
            y -= h;
        }

        public void sovm(int x1, int x2, int y1, int y2, int shirina1, int shirina2, int visota1, int visota2)
        {

            if (x1 > x2)
            {
                int buf = x1;
                x1 = x2;
                x2 = buf;
            }
            if (x1 + shirina1 < x2 + shirina2)
            {
                x = x1;
                shirina = x2 - x1 + shirina2;
            }
            else
            {
                x = x1;
                shirina = shirina2;
            }

            if (y1 > y2)
            {
                int buf = y1;
                y1 = y2;
                y2 = buf;
            }
            if (y1 + visota1 < y2 + visota2)
            {
                y = y1;
                visota = y2 - y1 + visota2;
            }
            else
            {
                y = y1;
                visota = visota2;
            }
            Console.WriteLine("x={0},y={1},shirina={2},visota={3}", x, y, shirina, visota);
        }



        public void izm(int x, int y, ref int shirina, ref int visota)
        {
            shirina -= x;
            visota -= y;
        }

        public void show(int x, int y, int shirina, int visota)
        {
            Console.WriteLine("{0} {1} {2} {3}", x, y, shirina, visota);
        }

    }

    class Go
    {
        static void Main(string[] args)
        {

            while (true)
            {
                Console.WriteLine("Строим по левой нижней точке, высоте и длине");
                Console.WriteLine("Варианты команд:\n Perem Izm Show Sovm Peresech Exit");
                Console.WriteLine("Введите x");
                int x = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine("Введите y");
                int y = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine("Введите ширину");
                int shirina = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine("Введите высоту");
                int visota = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine("Введите x второго");
                int x2 = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine("Введите y второго");
                int y2 = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine("Введите ширину второго");
                int shirina2 = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine("Введите высоту второго");
                int visota2 = Convert.ToInt32(Console.ReadLine());
                rectangle rect1 = new rectangle(x, y, shirina, visota);

                int izmx = 1, izmy = 1;
                int perx = 1, pery = 1;

                Console.WriteLine("Введите комманду");
                try
                {
                    do
                    {
                        switch (Console.ReadLine())
                        {
                            case "Perem": rect1.perem(perx, pery, ref x, ref y); break;
                            case "Izm": rect1.izm(izmx, izmy, ref shirina, ref visota); break;
                            case "Show": rect1.show(x, y, shirina, visota); break;
                            case "Sovm": rect1.sovm(x, x2, y, y2, shirina, shirina2, visota, visota2); break;
                            case "Peres": x = Math.Min(x, x2); y = Math.Min(y, y2); break;
                            case "Exit": rectangle.brake = true; break;
                            default: throw new Exception(); break;
                        }
                    } while (!rectangle.brake);
                }
                catch (Exception e)
                {
                    Console.WriteLine("Команда введена неправильно или не введена вообще!");
                }
            }
        }
    }
}
Но в задании сказано, что нужно, чтобы в программе были конструкторы без параметров и скрытые поля, а у меня все поля public и конструкторов без параметров нет! Помогите что-то придумать, чтобы выполнить эти условия, а то я просто не представляю, как это сюда можно влепить!
gylayko вне форума Ответить с цитированием
Старый 19.03.2013, 08:04   #2
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,883
По умолчанию

Цитата:
Код:
int x, y, shirina, visota;
поля и так скрытые, по умолчанию(без указания модификатора доступа) в сишарпе. Паблик поле только одно - brake, остальное не поля а методы.
Конструктор без параметров
Код:
        public rectangle()
        {
            this.x = 0;
            this.y = 0;
            this.shirina = 0;
            this.visota = 0;
        }
phomm вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Валидация поля на проверку существование в БД без учета регистра Arazei Общие вопросы по Java, Java SE, Kotlin 0 22.11.2012 02:02
Скрытые поля Michail235 Microsoft Office Excel 8 13.10.2010 22:44
Поля без value Maxs Работа с сетью в Delphi 3 26.01.2010 16:20
Записать табл DataSours без ввода в поля редактирования Virga Помощь студентам 3 15.08.2009 16:32
Скрытые компоненты drknn Компоненты Delphi 6 07.03.2009 18:08