Создание класса, представляющего геометрическую фигуру - C#
Формулировка задачи:
Всем привет. Меня зовут Маша, но меня также называют Маша-улыбаша. Помогите мне пожалуйста с программированием, дали дополнительное задание, а я не знаю как его делать. Буду очень признательна за помощь
Задание является целым, прошу не разрывайте, пожалуйста *)
Создание класса и методов
1.1.1. Объявить класс. Имя выбрать самостоятельно, но должна прослеживаться связь с тематикой (Геометрические фигуры).
1.1.2. Объявить три поля у класса. Первое поле указать строковым типом и имя задать Name. Второе и третье поле объявить целочисленным типом, имена выбрать самостоятельно, но желательно связать с тематикой класса. Первое и второе поля объявить как общедоступное, а третье - скрытое.
1.1.3. У класса реализовать два метода. Первый метод выводит на консоль значение поля в зависимости от передаваемого параметра (1, 2 или 3). Указать, что параметр метода не является обязательным и его значение по умолчанию равно 1.
1.1.4. Второй метод класса возвращает значение скрытого поля.
Создание конструктора
1.2.1. В классе, объявленном в предыдущих заданиях реализовать конструктор.
1.2.2. При помощи конструктора должны определяться значения всех трех полей класса.
1.2.3. Определить все параметры конструктора как необязательные, при этом значения по умолчанию не выбирать.
Создание объектов, массива объектов и применение циклов
1.3.1. Создать три объекта. У первого объекта значения полей задать при помощи конструктора указав их в коде программы, у второго – ввести при помощи клавиатуры и передать конструктору, у третьего – параметры конструктора оставить пустыми (будут использоваться значения по умолчанию).
1.3.2. Создать массив объектов вашего класса состоящего из трех элементов. В массив занести (присвоить) созданные объекты.
1.3.3. При помощи цикла foreach вывести на экран произведения скрытых полей элементов массива и 7 (для этого необходимо использовать метод, реализованный ранее).
1.3.4. При помощи цикла (for или foreach) и реализованного метода объекта, вывести на консоль значения всех полей.
Перегрузка операторов
1.4.1. В вашем классе реализовать перегрузку оператора вычитания.
1.4.2. Оператор должен производить математическую операцию над значениями вторых полей двух объектов (операндов). Результат должен записываться в новый объект. Оставшиеся поля (первое и второе) нового объекта, берут значения у первого операнда.
1.4.3. Реализовать математическую операцию над двумя любыми ранее созданными объектами. Поля нового объекта вывести на экран.
Решение задачи: «Создание класса, представляющего геометрическую фигуру»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Reflection; namespace Маша_улыбаша { class Program { static void Main(string[] args) { Figure[] figures = new Figure[3]; figures[0] = new Figure("Figure 1", 10, 10); SetSecondFigure(ref figures[1]); figures[2] = new Figure(); foreach (var f in figures) { Console.WriteLine("Value of operation is: {0}", f.GetHiddenFeild() * 7); } Console.WriteLine(); foreach (var f in figures) { for (int i = 0; i < 3; i++) { f.DisplayFeild(i); } Console.WriteLine(); } Console.WriteLine(); Figure arg1 = new Figure("f1", 30, 25); Figure arg2 = new Figure("f2", 25, 10); Figure arg3 = arg1 - arg2; for (int i = 0; i < 3; i++) { arg3.DisplayFeild(i); } Console.ReadLine(); } static void SetSecondFigure(ref Figure f) { Console.WriteLine("Enter figure name: "); string name = Console.ReadLine(); Console.WriteLine("Enter figure width: "); int width = int.Parse(Console.ReadLine()); Console.WriteLine("Enter figure height: "); int height = int.Parse(Console.ReadLine()); f = new Figure(name, width, height); } } class Figure { public string name; public int width; int height; /// <summary> /// Конструктор /// </summary> public Figure(string n = "", int w = 0, int h = 0) { name = n; height = h; width = w; } /// <summary> /// Метод вывода поля /// </summary> /// <param name="arg"></param> public void DisplayFeild(int arg = 1) { Type currType = Assembly.GetExecutingAssembly().GetType("Маша_улыбаша.Figure"); FieldInfo[] feilds = currType.GetFields(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance); if (arg >= feilds.Length) { Console.WriteLine("Wrong argument!"); } else { Console.WriteLine("Value of feild named: {0} is: {1}.", feilds[arg].Name, feilds[arg].GetValue(this)); } } /// <summary> /// Метод возврата поля /// </summary> /// <returns></returns> public int GetHiddenFeild() { return this.height; } /// <summary> /// Перегрузка оператора "-" /// </summary> /// <param name="f1"></param> /// <param name="f2"></param> /// <returns></returns> public static Figure operator -(Figure f1, Figure f2) { return new Figure(f1.name, f1.width - f2.width, f1.GetHiddenFeild()); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д