Кто может помочь с задачей по ООП? Всем привет, начали изучать ООП, такая вот задача, сам написал по тому как я знаю, используя пример, но ошибки
кодnamespace OOP4
{
class PatchCord
{
private string name;
private string type;
private int length;
public PatchCord(string name, string type, int length)
{
this.name = name;
this.type = type;
this.length = length;
}
}
class PatchCords
{
PatchCord[] patchCords = new PatchCord[5];
public PatchCord this[int length]
{
set { patchCords[length] = value; }
}
}
class Program
{
static void Main(string[] args)
{
PatchCords A = new PatchCords();
A[0] = new PatchCord("sds","dsd", 2);
for (int i = 0; i < 2; i++)
{
Console.Write(A[i].length);
}
}
}
}
Задача:
Создать объекты класса (класс и его поля задаются в соответствии с выбранным вариантом в лабораторной работе 1), причем объекты класса должны хранить массивы данных о предметной области, связанные со свойствами предмета задания по варианту. Причем количество элементов массива должно задаваться программно пользователем в интерактивном режиме.

21 Авг 2019 в 07:01
389 +1
0
Ответы
1

Проблема в вашем коде заключается в том, что вы не определили геттер для свойства PatchCord в классе PatchCords. Кроме того, в цикле for вы устанавливаете i < 2, вместо i < 5, поэтому вывод будет не для всех элементов массива.

Вот исправленный код:

using System;
namespace OOP4
{
class PatchCord
{
private string name;
private string type;
private int length;
public PatchCord(string name, string type, int length)
{
this.name = name;
this.type = type;
this.length = length;
}
public int Length
{
get { return length; }
}
}
class PatchCords
{
PatchCord[] patchCords;
public PatchCords(int size)
{
patchCords = new PatchCord[size];
}
public PatchCord this[int index]
{
set { patchCords[index] = value; }
get { return patchCords[index]; }
}
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Введите количество патч-кордов:");
int size = int.Parse(Console.ReadLine());
PatchCords A = new PatchCords(size);
for (int i = 0; i < size; i++)
{
Console.WriteLine($"Введите название, тип и длину патч-корда {i + 1}:");
string name = Console.ReadLine();
string type = Console.ReadLine();
int length = int.Parse(Console.ReadLine());
A[i] = new PatchCord(name, type, length);
}
Console.WriteLine("Длины патч-кордов:");
for (int i = 0; i < size; i++)
{
Console.WriteLine(A[i].Length);
}
}
}
}

Теперь в программе пользователь может вводить количество патч-кордов и их данные, а затем программа выводит длины патч-кордов.

20 Апр 2024 в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир