Создать класс Rectangle - C# (194927)
Формулировка задачи:
Здравствуйте. как в задаче можно прописать Main?
вот условие задачи:
Создать класс Rectangle, разработав следующие элементы класса:
a. Поля:
• int a, b;
b. Конструктор, позволяющий создать экземпляр класса с заданными длинами сторон.
c. Методы, позволяющие:
• вывести длины сторон прямоугольника на экран;
• расчитать периметр прямоугольника;
• расчитать площадь прямоугольника.
d. Свойства:
• получить-установить длины сторон прямоугольника (доступное для чтения и записи);
• позволяющее установить, является ли данный прямоугольник квадратом (доступное только для чтения).
В класс Rectangle добавить:
a. Индексатор, позволяющий по индексу 0 обращаться к полю a, по индексу 1 – к полю b, при других значениях индекса выдается сообщение об ошибке.
b. Перегрузку:
• операции ++ (--): одновременно увеличивает (уменьшает) значение полей a и b;
• констант true и false: обращение к экземпляру класса дает значение true, если прямоугольник с заданными длинами сторон является квадратом, иначе false;
• операции *: одновременно домножает поля a и b на скаляр;
• преобразования типа Rectangle в string (и наоборот).
вот код программы:
using System;
using System.Text;
namespace pr13
{
class Rectangle
{
//поля
private int a, b;
//конструктор
public Rectangle(int a, int b)
{
this.a = a;
this.b = b;
}
//Метод для вывода длин сторон прямоугольника на экран
public void WriteAB()
{
Console.WriteLine("Длина a={0}", a);
Console.WriteLine("Длина b={0}", b);
}
//Метод возвращает периметр прямоугольника
public int Perimeter()
{
return 2 * a + 2 * b;
}
//Метод возвращает площадь прямоугольника
public int Area()
{
return a*b;
}
//Свойства для чтения и записи поля a
public int A
{
get { return a; }
set { a = value; }
}
//Свойства для чтения и записи поля b
public int B
{
get { return b; }
set { b = value; }
}
//Свойство для чтения - является ли данный прямоугольник квадратом
public bool IsSquare
{
get { return a==b; }
}
//Индексатор
public int this[int index]
{
get
{
if (index==0)
return a;
if (index == 1)
return b;
Console.WriteLine("Неверный индекс {0}", index);
return -1;
}
set
{
if (index == 0)
a = value;
if (index == 1)
b = value;
if (index!=0 && index!=1)
Console.WriteLine("Неверный индекс {0}", index);
}
}
//Перегрузка оператора ++
public static Rectangle operator ++(Rectangle r)
{
r.A++;
r.B++;
return r;
}
//Перегрузка оператора --
public static Rectangle operator --(Rectangle r)
{
r.A--;
r.B--;
return r;
}
//Перегрузка оператора false
public static bool operator false(Rectangle r)
{
if (!r.IsSquare)
return false;
return true;
}
//Перегрузка оператора true
public static bool operator true(Rectangle r)
{
if (r.IsSquare)
return true;
return false;
}
//Перегрузка оператора умножения на скаляр (справа)
public static Rectangle operator *(Rectangle r, int v)
{
r.A *= v;
r.B *= v;
return r;
}
//Перегрузка оператора умножения на скаляр (слева)
public static Rectangle operator *(int v,Rectangle r)
{
r.A *= v;
r.B *= v;
return r;
}
//Перегрузка преобразования Rectange в string
public static implicit operator string(Rectangle r)
{
//результирующая строка состоит из значений a и b через пробел
return r.A.ToString() + " " + r.B.ToString();
}
//Перегрузка преобразования string в Rectange
public static implicit operator Rectangle(string s)
{
//выделяем числа из строки (они в строке даны через пробел)
string[] w = s.Split(' ');
//возвращаем новый Rectangle
return new Rectangle(Convert.ToInt32(w[0]), Convert.ToInt32(w[1]));
}
}
}Решение задачи: «Создать класс Rectangle»
textual
Листинг программы
class Program
{
static void Main(string[] args)
{
int x = int.Parse(Console.ReadLine());
int y = int.Parse(Console.ReadLine());
Rectangle rect = new Rectangle(x, y);//создадим новый прямоугольник
Console.WriteLine(rect.Area());//выведем его площадь
}
}