Класс для работы с одномерным массивом целых чисел. Что я делаю не так? - C#
Формулировка задачи:
Кто может подсказать что делаю не так , не получается задание
Создать класс для работы с одномерным массивом целых чисел.
Разработать следующие члены класса:
1. Поля:
• Для хранения значений;
2. Конструкторы, позволяющие создать экземпляр класса:
• с размерностью n;
• с размерностью n и заданными данными.
3. Методы, позволяющие:
• ввести элементы массива с клавиатуры;
• вывести элементы массива на экран;
• отсортировать элементы массива в порядке возрастания.
4. Свойство:
• возвращающее размерность массива
• позволяющее домножить все элементы массива на скаляр
Индексатор, позволяющий по индексу обращаться к соответствующему элементу
массива.
5. Перегрузку:
• операции ++ (--): одновременно увеличивает (уменьшает) значение всех элементов
массива на 1;
• операции !: возвращает значение true, если элементы массива не упорядочены по
возрастанию, иначе false;
• бинарные +-*/:
o одновременно добавляет к значениям значение скаляра .
o складывает значения при сложении одинаковых типов.
• операции преобразования класса массив в одномерный массив (и наоборот).
Продемонстрировать работу класса.
///////////////////////
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Task_
{
public class MyArr
{
//модификаторы доступа!!
int[] IntArray; //объявляем первое поле
int n; //объявляем второе поле
public MyArr(int[] a, int b) //создаем конструктор
{
IntArray = a;
n = b;
}
public void Razmer() //создаем метод для заполнения массива и вывода его на экран
{
Console.WriteLine("Введите количество элементов массива");
int n = int.Parse(Console.ReadLine());
int[] Array = new int[n];
Console.WriteLine("Введите элементы массива");
for (int i = 0; i < n; i++)
{
Array[i] = int.Parse(Console.ReadLine());
}
}
public void PrintToConsole() //создаем метод для вывода массива на экран
{
Console.Write("Массив: ");
int count = 0; //создаем счетчик для проверки пустоты массива
for (int i = 0; i < n; i++)
{
Console.Write(IntArray[i] + " "); //выводим массив
count++;
}
if (count == 0)
Console.WriteLine("Массив пуст");
}
public void readarray()// вводим элементы с клавиатуры
{
Console.WriteLine("Введите элементы:");
for (int i = 0; i < IntArray.Length; i++)
{
Console.Write("intArray[{0}] = ", i); IntArray[i] = Convert.ToInt32(Console.ReadLine());
//IntArray[i] = int.Parse(Console.ReadLine());
}
}
public void printArray()//выводим элементы в порядке возрастания (доделаю )
{
Console.WriteLine("Вывод элементов:");
for (int i = 0; i < IntArray.Length; i++)
{
Console.WriteLine("IntArray[{0}] = {1}; ", i, IntArray[i]);
}
}
public void Print1() //создаем метод для вывода массива на экран
{
Console.Write("Массив: ");
int count = 0; //создаем счетчик для проверки пустоты массива
for (int i = 0; i < n; i++)
{
Console.Write(IntArray[i] + " "); //выводим массив
count++;
}
if (count == 0)
Console.WriteLine("Массив пуст");
}
}
}Решение задачи: «Класс для работы с одномерным массивом целых чисел. Что я делаю не так?»
textual
Листинг программы
public class MyArr
{
private int[] array;
private int length;
public MyArr(int length)
{
this.length = length > 0 ? length : 0;
array = new int[this.length];
}
public MyArr( params int[] list)
{
this.length = list.Length;
Array.Copy(list, array=new int[list.Length], list.Length);
}
public int MultiplyScalar
{
set
{
for (int i = 0; i < length; i++)
this.array[i] = this.array[i] * value;
}
}
public int Length
{
get { return length; }
}
public int this[int index]
{
get
{
if (index > length || index < 0)
return 0;
return array[index];
}
}
public void Show()
{
if(length==0)
Console.WriteLine("Масив пуст");
for(int i=0;i<length;i++)
Console.WriteLine(array[i]);
}
public void Add()
{
for (int i = 0; i < length; i++)
{
int x = 0;
Int32.TryParse(Console.ReadLine(),out x);
array[i] = x;
}
}
public void Sorts()
{
int temp;
for (int i = 0; i < array.Length - 1; i++)
{
for (int j = i + 1; j < array.Length; j++)
{
if (array[i] > array[j])
{
temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
}
public static MyArr operator ++(MyArr ar)
{
for (int i = 0; i < ar.length; i++)
ar.array[i] = ar.array[i] + 1;
return ar;
}
public static MyArr operator --(MyArr ar)
{
for (int i = 0; i < ar.length; i++)
ar.array[i] = ar.array[i] - 1;
return ar;
}
public int[] ToArray()
{
return array;
}
}