Создать класс Rectangle, содержащий следующие члены класса - C#

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

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

VS 2010. Компилятор выдает ошибки, Предложение using должно предшествовать любым другим элементам пространства имен кроме объявлений внешних псевдонимов. Переношу Using ввер к остальным, ошибок становится больше. Как это исправить? Создать класс Rectangle, содержащий следующие члены класса: Классы и объекты 1. Поля: • int a, b; 2. Конструктор, позволяющий создать экземпляр класса с заданными длинами сторон. 3. Методы, позволяющие: • вывести длины сторон прямоугольника на экран; • расчитать периметр прямоугольника; • расчитать площадь прямоугольника. 4. Свойства, позволяющие: • получить и установить длины сторон прямоугольника (доступные для чтения и записи); • установить, является ли данный прямоугольник квадратом (доступное только для чтения). 5. Индексатор, позволяющий по индексу 0 обращаться к полю a, по индексу 1 – к полю b; при других значениях индекса должно выдаваться сообщение об ошибке. 6. Перегруженные операции и константы, позволяющие: • одновременно увеличить (уменьшить) значение полей a и b на 1 (операции ++ и --); • узнать, является ли прямоугольник квадратом (константы true и false); • одновременно умножить поля a и b на скаляр (операция *). Продемонстрировать работу класса.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Study
{
class Rectangle
{
int a, b;
int [] array = new int [2];

public Rectangle(int a, int b)
{
this.a = a;
this.b = b;
}
 
public void Show ()
{
Console.WriteLine("Storony " + a +" x " + b);
}
 
public int Perimetr ()
{
return a * 2 + b * 2;
}
 
public int Square()
{
return a * b;
}
 
public int A
{
get { return a; }
set { a = value; }
}
 
public int B
{
get { return b; }
set { b = value; }
}
 
public bool K //kvadrat?
{
get { if (a == b) return true; else return false; }
}
 
public int this[int i]
{
 
get
{
if (i == 0)
return a;
else
return 0;
if (i == 1)
return 1;
else
return 0;
}
 
set
{
if (i == 0)
array[i] = a;
if (i == 1)
array[i] = b;
}
}
 
public static Rectangle operator ++(Rectangle ob)
{
Rectangle ob1 = new Rectangle(ob.a, ob.b);
ob1.a = ob.a + 1;
ob1.b = ob.b + 1;
return ob1;
}
 
public static Rectangle operator --(Rectangle ob)
{
Rectangle ob1 = new Rectangle(ob.a, ob.b);
ob1.a = ob.a - 1;
ob1.b = ob.b - 1;
return ob1;
}
 
public static bool operator true(Rectangle ob)
{
if (ob.a == ob.b)
return true;
else return false;
} 
 
public static bool operator false(Rectangle ob)
{
if (ob.a != ob.b)
return true;
else
return false;
}
 
public static Rectangle operator *(Rectangle ob, int skal)
{
Rectangle ob1 = new Rectangle(ob.a, ob.b);
ob1.a = ob.a * skal;
ob1.b = ob.b * skal;
return ob1;
}
 
public static implicit operator Rectangle (string a) //неявное преобразование типа int [] в DemoArray
{
return new Rectangle(a);
}

public static implicit operator int [](Rectangle a) //неявное преобразование типа DemoArray в int []
{
int []temp=new int[a.LengthArray];
for (int i = 0; i < a.LengthArray; ++i)
temp[i] = a[i];
return temp;
}
}
}
 
using System;
using Study;
 
class MyClass
{
static void Main()
{
Rectangle ob = new Rectangle(3,5);
ob.Show();
Console.WriteLine("Perimentr = " + ob.Perimetr());
Console.WriteLine("Ploshad = " + ob.Square());
ob.A++;
ob.B++;
ob.Show();
ob.A--;
ob.B--;
ob.Show();
ob = ob * 2;
ob.Show();
ob.A = 15;
ob.B = 15;
ob.Show();
if (ob)
{
Console.WriteLine("Eto kvadrat!");
}
Console.ReadKey();
}
}

Решение задачи: «Создать класс Rectangle, содержащий следующие члены класса»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    namespace Study
    {
        class Rectangle
        {
            int a, b;
 
            public Rectangle(int a, int b)
            {
                this.a = a;
                this.b = b;
            }
 
            public void Show() { Console.WriteLine("Стороны {0} x {1}", a, b); }
 
            public int Perimetr() { return a + a + b + b; }
 
            public int Square() { return a * b; }
 
            public int A
            {
                get { return a; }
                set { a = value; }
            }
 
            public int B
            {
                get { return b; }
                set { b = value; }
            }
 
            public bool K { get { return a == b; } }
 
            public int this[int i]
            {
                get
                {
                    switch (i)
                    {
                        case 0: return a;
                        case 1: return b;
                        default: throw new Exception("Некорректный индекс");
                    }
                }
                set
                {
                    switch (i)
                    {
                        case 0: a = value; break;
                        case 1: b = value; break;
                        default: throw new Exception("Некорректный индекс");
                    }
                }
            }
 
            public static Rectangle operator ++(Rectangle ob)
            {
                return new Rectangle(ob.a + 1, ob.b + 1);
            }
 
            public static Rectangle operator --(Rectangle ob)
            {
                return new Rectangle(ob.a - 1, ob.b - 1);
            }
 
            public static bool operator true(Rectangle ob) { return ob.K; }
 
            public static bool operator false(Rectangle ob) { return !ob.K; }
 
            public static Rectangle operator *(Rectangle ob, int skal) { return new Rectangle(ob.a * skal, ob.b * skal); }
        }
 
        class Program
        {
            static void Main(string[] args)
            {
                Rectangle ob = new Rectangle(3, 5);
                ob.Show();
 
                Console.WriteLine("Периметр = " + ob.Perimetr());
                Console.WriteLine("Площадь = " + ob.Square());
 
                ++ob; ob.Show();
                --ob; ob.Show();
               
                ob *= 2; ob.Show();
               
                ob.A = 15;
                ob.B = 15;
                ob.Show();
               
                if (ob) Console.WriteLine("Это квадрат! ");
                else Console.WriteLine("Это не квадрат! ");
 
                ob[0] = 20;
                ob[1] = 10;
                ob.Show();
 
                try { ob[2] = 20; } catch (Exception e) { Console.WriteLine(e.Message); }
 
                Console.ReadKey();
            }
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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