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

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

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

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

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

textual
Листинг программы
  1. using System;
  2. using System.Linq;
  3. using System.Text;
  4.  
  5. namespace Lab_3
  6. {
  7.     class Program
  8.     {
  9.         public class MassWork
  10.         {
  11.             int[,] arr;
  12.             private int Mmass, Nmass, KolY; /// M- кол-во столбцов, в дальнейшем M просто прировняем к 2-ум;
  13.  
  14.             public int M, Length; /// в душе не чаю зачем length но на всякий случай будем вести учет кол-ва элементов
  15.             ///<summary>
  16.             ///переменная KolYears опираясь на закрытую переменную KolY
  17.             ///производит проверку возраста студентов
  18.             ///</summary>
  19.             public int KolYears
  20.             {
  21.                 get
  22.                 {
  23.                     return KolY;
  24.                 }
  25.                 set
  26.                 {///в if генерируем ошибку
  27.                     if (value <= 16)
  28.                         throw new ArgumentException("Студенту не может быть меньше 16 лет!", "KolYears");
  29.                     if (value > 63)
  30.                         throw new ArgumentException("Студенту не может быть ,больше 63 лет!", "KolYears");
  31.                     KolY = value;
  32.                 }
  33.             }
  34.             ///<summary>
  35.             ///переменная N опираясь на закрытую переменную Nmass
  36.             ///производит проверку кол-ва студентов
  37.             ///</summary>
  38.             public int N
  39.             {
  40.                 get
  41.                 {
  42.                     return Nmass;
  43.                 }
  44.                 set
  45.                 {///в if генерируем ошибку
  46.                     if (value <= 0)
  47.                         throw new ArgumentException("Размер массива должен быть больше нуля!", "N");
  48.                     Nmass = value;
  49.                 }
  50.             }
  51.             ///<summary>
  52.             ///MassWork() - Конструктор без параметров
  53.             /// </summary>
  54.             public MassWork()
  55.             {
  56.                 Console.Write("Введите количество студентов: ");
  57.                 try
  58.                 {
  59.                     Nmass = int.Parse(Console.ReadLine());
  60.                 }
  61.                 ///<summary>
  62.                 ///name="ArgumentException"
  63.                 ///Обрабатываем исключительную ситуацию
  64.                 ///если кол-во студентов меньше нуля
  65.                 ///</summary>
  66.                 catch (ArgumentException ex)
  67.                 {
  68.                     Console.WriteLine("ОШИБКА: " + ex.Message);
  69.                     Console.Write("Введите размер массива (Nx2) Еще раз: ");
  70.                     Nmass = int.Parse(Console.ReadLine());
  71.                 }
  72.                 catch (StackOverflowException)
  73.                 {
  74.                     Nmass = int.Parse(Console.ReadLine());
  75.                 }
  76.                 ///--------------------------------------------------------------------
  77.                 Mmass = 2;
  78.                 N = Nmass;
  79.                 M = Mmass;
  80.                 Length = N * M;
  81.                 arr = new int[this.Nmass, this.Mmass];//создаем массив на основе индексатора
  82.  
  83.             }
  84.             ///<summary>
  85.             ///MassWork(int rows, int cols) - Конструктор c параметрами массива
  86.             /// </summary>
  87.             public MassWork(int rows, int cols)
  88.             {
  89.                 this.Nmass = rows;
  90.                 this.Mmass = cols;
  91.                 Length = rows * cols;
  92.                 this.N = rows;
  93.                 this.M = cols;
  94.                 arr = new int[this.Nmass, this.Mmass];///создаем массив на основе индексатора
  95.             }
  96.             ///<summary>
  97.             ///this[int index1, int index2] - Индексатор для массива
  98.             /// </summary>
  99.             public int this[int index1, int index2]
  100.             {
  101.                 set
  102.                 {
  103.                     arr[index1, index2] = value;
  104.                 }
  105.                 get
  106.                 {
  107.                     return arr[index1, index2];
  108.                 }
  109.  
  110.             }
  111.             ///<summary>
  112.             ///AddMassWork(int i, int NZach, int NGod) - Метод ввода массива
  113.             /// </summary>
  114.             public void AddMassWork(int i, int NZach, int NGod)
  115.             {
  116.                 this[i, 0] = NZach;
  117.                 Console.WriteLine(DateTime.Today.Year - NGod);
  118.                 try///Исключительная ситуация по возрасту студента
  119.                 {
  120.                     this.KolYears = DateTime.Today.Year - NGod;
  121.                 }
  122.                 ///<summary>
  123.                 ///name="ArgumentException"
  124.                 ///catch (ArgumentException ex) - обработка ошибок (просто еще раз попросим пользователя ввести данные)
  125.                 ///</summary>
  126.                 catch (ArgumentException ex)
  127.                 {
  128.                     Console.WriteLine("ОШИБКА: " + ex.Message);
  129.                     Console.Write("Введите год рождения Еще раз: ");
  130.                     NGod = int.Parse(Console.ReadLine());
  131.                 }
  132.                 catch (StackOverflowException)
  133.                 {
  134.                     Nmass = int.Parse(Console.ReadLine());
  135.                 }
  136.  
  137.                 this[i, 1] = NGod;
  138.             }
  139.             ///<summary>
  140.             ///ResultMassWork(int maxYear)  - Метод обработки массива
  141.             /// </summary>
  142.             public void ResultMassWork(int maxYear)
  143.             {
  144.                 int kolMax = 0;
  145.                 ///<summary>
  146.                 ///name="ArgumentException"
  147.                 ///Отнимаем от текущего года введенную дату -1 и паралельно ведем счетчик по условию
  148.                 ///</summary>
  149.                 for (int i = 0; i < this.N; i++)
  150.                 {
  151.                     Console.WriteLine("Возраст студента (" + this[i, 0] + ") составляет: " + Convert.ToString(DateTime.Today.Year - this[i, 1]-1) + " лет.");
  152.                     if (DateTime.Today.Year - this[i, 1] > maxYear)
  153.                     {
  154.                         kolMax++;
  155.                     }
  156.                 }
  157.                 Console.WriteLine("Количество студентов, возраст которых превышает заданное значение = " + Convert.ToString(kolMax));
  158.             }
  159.             ///<summary>
  160.             ///GetMassWork() - Метод вывода массива
  161.             /// </summary>
  162.             public void GetMassWork()
  163.             {
  164.                 for (int i = 0; i < this.N; i++)
  165.                 {
  166.                     Console.WriteLine(this[i, 0] + "\t" + this[i, 1]);
  167.                 }
  168.                 Console.ReadLine();
  169.             }
  170.             ///--------------------------------------------------------------------------------------------
  171.         }
  172.         static void Main(string[] args)
  173.         {
  174.             //-------------------------------------Используется конструктор класса без параметров
  175.             MassWork myMass = new MassWork();
  176.             //-----------------------------------------------------------------------------------
  177.  
  178.             //-------------------------------------Используется конструктор класса без параметров
  179.             //MassWork myMass = new MassWork(3,2);
  180.             //---------------------------------------------------------------------------------
  181.             Console.WriteLine("Введите данные, количество студентов = " + myMass.N);
  182.             int Nzach;
  183.             int Gr;
  184.             Console.WriteLine();
  185.             //------------------------Ввод данных в массив
  186.             for (int i = 0; i < myMass.N; i++)
  187.             {
  188.                 Console.Write("Введите номер зач.книжки: ");
  189.                 Nzach = int.Parse(Console.ReadLine());
  190.                 Console.Write("Введите год рождения: ");
  191.                 Gr = int.Parse(Console.ReadLine());
  192.                 myMass.AddMassWork(i, Nzach, Gr);
  193.             }
  194.             //---------------------------------------------
  195.             Console.WriteLine();
  196.             //------------------------Расчет результата по условию
  197.             int maxYear;
  198.             Console.Write("Задайте максимальный возраст: ");
  199.             maxYear = int.Parse(Console.ReadLine());
  200.             myMass.ResultMassWork(maxYear);
  201.             //-------------------------------------------------
  202.             Console.WriteLine();
  203.             //----------------------Вывод полной таблицы по желанию
  204.             String yesno;
  205.             Console.WriteLine("Вывести полный список студентов?('y'-да)");
  206.             yesno = Console.ReadLine();
  207.             if (yesno == "y")
  208.             {
  209.                 myMass.GetMassWork();
  210.             }
  211.             //-----------------------------------------------------
  212.         }
  213.     }
  214. }

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


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

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

7   голосов , оценка 4.286 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы