Разработать класс для работы с массивом - 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(); } //----------------------------------------------------- } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д