Разработать класс для работы с массивом - C#

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

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

нужна помощь. 8 вариант

Решение задачи: «Разработать класс для работы с массивом»

textual
Листинг программы
using System;
using System.Linq;
using System.Text;
 
namespace Lab_3
{
    class Program
    {
        public class MassWork
        {
            int[,] arr;
            private int Mmass, Nmass, KolY; /// M- кол-во столбцов, в дальнейшем M просто прировняем к 2-ум;
 
            public int M, Length; /// в душе не чаю зачем length но на всякий случай будем вести учет кол-ва элементов
            ///<summary>
            ///переменная KolYears опираясь на закрытую переменную KolY
            ///производит проверку возраста студентов
            ///</summary>
            public int KolYears
            {
                get
                {
                    return KolY;
                }
                set
                {///в if генерируем ошибку
                    if (value <= 16)
                        throw new ArgumentException("Студенту не может быть меньше 16 лет!", "KolYears");
                    if (value > 63)
                        throw new ArgumentException("Студенту не может быть ,больше 63 лет!", "KolYears");
                    KolY = value;
                }
            }
            ///<summary>
            ///переменная N опираясь на закрытую переменную Nmass
            ///производит проверку кол-ва студентов
            ///</summary>
            public int N
            {
                get
                {
                    return Nmass;
                }
                set
                {///в if генерируем ошибку
                    if (value <= 0)
                        throw new ArgumentException("Размер массива должен быть больше нуля!", "N");
                    Nmass = value;
                }
            }
            ///<summary>
            ///MassWork() - Конструктор без параметров
            /// </summary>
            public MassWork()
            {
                Console.Write("Введите количество студентов: ");
                try
                {
                    Nmass = int.Parse(Console.ReadLine());
                }
                ///<summary> 
                ///name="ArgumentException"
                ///Обрабатываем исключительную ситуацию
                ///если кол-во студентов меньше нуля
                ///</summary>
                catch (ArgumentException ex)
                {
                    Console.WriteLine("ОШИБКА: " + ex.Message);
                    Console.Write("Введите размер массива (Nx2) Еще раз: ");
                    Nmass = int.Parse(Console.ReadLine());
                }
                catch (StackOverflowException)
                {
                    Nmass = int.Parse(Console.ReadLine());
                }
                ///--------------------------------------------------------------------
                Mmass = 2;
                N = Nmass;
                M = Mmass;
                Length = N * M;
                arr = new int[this.Nmass, this.Mmass];//создаем массив на основе индексатора
 
            }
            ///<summary>
            ///MassWork(int rows, int cols) - Конструктор c параметрами массива
            /// </summary>
            public MassWork(int rows, int cols)
            {
                this.Nmass = rows;
                this.Mmass = cols;
                Length = rows * cols;
                this.N = rows;
                this.M = cols;
                arr = new int[this.Nmass, this.Mmass];///создаем массив на основе индексатора
            }
            ///<summary>
            ///this[int index1, int index2] - Индексатор для массива
            /// </summary>
            public int this[int index1, int index2]
            {
                set
                {
                    arr[index1, index2] = value;
                }
                get
                {
                    return arr[index1, index2];
                }
 
            }
            ///<summary>
            ///AddMassWork(int i, int NZach, int NGod) - Метод ввода массива
            /// </summary>
            public void AddMassWork(int i, int NZach, int NGod)
            {
                this[i, 0] = NZach;
                Console.WriteLine(DateTime.Today.Year - NGod);
                try///Исключительная ситуация по возрасту студента
                {
                    this.KolYears = DateTime.Today.Year - NGod;
                }
                ///<summary> 
                ///name="ArgumentException"
                ///catch (ArgumentException ex) - обработка ошибок (просто еще раз попросим пользователя ввести данные)
                ///</summary>
                catch (ArgumentException ex)
                {
                    Console.WriteLine("ОШИБКА: " + ex.Message);
                    Console.Write("Введите год рождения Еще раз: ");
                    NGod = int.Parse(Console.ReadLine());
                }
                catch (StackOverflowException)
                {
                    Nmass = int.Parse(Console.ReadLine());
                }
 
                this[i, 1] = NGod;
            }
            ///<summary>
            ///ResultMassWork(int maxYear)  - Метод обработки массива
            /// </summary>
            public void ResultMassWork(int maxYear)
            {
                int kolMax = 0;
                ///<summary>
                ///name="ArgumentException"
                ///Отнимаем от текущего года введенную дату -1 и паралельно ведем счетчик по условию
                ///</summary>
                for (int i = 0; i < this.N; i++)
                {
                    Console.WriteLine("Возраст студента (" + this[i, 0] + ") составляет: " + Convert.ToString(DateTime.Today.Year - this[i, 1]-1) + " лет.");
                    if (DateTime.Today.Year - this[i, 1] > maxYear)
                    {
                        kolMax++;
                    }
                }
                Console.WriteLine("Количество студентов, возраст которых превышает заданное значение = " + Convert.ToString(kolMax));
            }
            ///<summary>
            ///GetMassWork() - Метод вывода массива
            /// </summary>
            public void GetMassWork()
            {
                for (int i = 0; i < this.N; i++)
                {
                    Console.WriteLine(this[i, 0] + "\t" + this[i, 1]);
                }
                Console.ReadLine();
            }
            ///--------------------------------------------------------------------------------------------
        }
        static void Main(string[] args)
        {
            //-------------------------------------Используется конструктор класса без параметров
            MassWork myMass = new MassWork();
            //-----------------------------------------------------------------------------------
 
            //-------------------------------------Используется конструктор класса без параметров
            //MassWork myMass = new MassWork(3,2);
            //---------------------------------------------------------------------------------
            Console.WriteLine("Введите данные, количество студентов = " + myMass.N);
            int Nzach;
            int Gr;
            Console.WriteLine();
            //------------------------Ввод данных в массив
            for (int i = 0; i < myMass.N; i++)
            {
                Console.Write("Введите номер зач.книжки: ");
                Nzach = int.Parse(Console.ReadLine());
                Console.Write("Введите год рождения: ");
                Gr = int.Parse(Console.ReadLine());
                myMass.AddMassWork(i, Nzach, Gr);
            }
            //---------------------------------------------
            Console.WriteLine();
            //------------------------Расчет результата по условию
            int maxYear;
            Console.Write("Задайте максимальный возраст: ");
            maxYear = int.Parse(Console.ReadLine());
            myMass.ResultMassWork(maxYear);
            //-------------------------------------------------
            Console.WriteLine();
            //----------------------Вывод полной таблицы по желанию
            String yesno;
            Console.WriteLine("Вывести полный список студентов?('y'-да)");
            yesno = Console.ReadLine();
            if (yesno == "y")
            {
                myMass.GetMassWork();
            }
            //-----------------------------------------------------
        }
    }
}

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


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

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

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