Описать класс "предметный указатель". Ошибка с полем - C#
Формулировка задачи:
Каждый разрабатываемый класс должен, как правило, содержать следующие элементы: скрытые поля, конструкторы с параметрами и без параметров, методы; свойства, индексаторы; перегруженные операции. Функциональные элементы класса должны обеспечивать непротиворечивый, полный, минимальный и удобный интерфейс класса. При возникновении ошибок должны выбрасываться исключения.
Дана такая задача:
Описать класс "предметный указатель". Каждый компонент указателя содержит слово и номера страниц, на которых это слово встречается. Количество номеров страниц, относящихся к одному слову, от одного до десяти. Предусмотреть возможность формирования указателя с клавиатуры и из файла, вывода указателя, вывода номеров страниц для заданного слова, удаления элемента из указателя.
Я пытаюсь сделать часть задачи, а именно формирования указателя с клавиатуры и вывод указателя. Здесь возникла проблема в 29 строке, после неё вылетает. Можете пожалуйста объяснить что не-так и что нужно исправить.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Лабораторна_робота__8 { class Subject_index { public string word; public int[] page_number; } class Program { static void Main(string[] args) { Subject_index[] words = new Subject_index[10]; Console.Write("Введiть кiлькiсть слiв, яке ви бажаєте ввести: "); string str = Console.ReadLine(); try { for (byte i = 0; i < Convert.ToByte(str); i++) { Console.Write("Введiть слово у вказiвник: "); words[i].word = Console.ReadLine(); Console.Write("Введiть кiлькiсть сторiнок для цього слова: "); string buf = Console.ReadLine(); int num_of_pag = Convert.ToInt32(buf); int[] page = new int[num_of_pag - 1]; Random a = new Random(); for (byte j = 0; j < num_of_pag; j++) page[j] = a.Next(1, 350); words[i].page_number = new int[num_of_pag]; words[i].page_number = page; } Console.WriteLine(); for (byte i = 0; i < byte.Parse(str); i++) { Console.WriteLine(words[i].word); for (byte j = 0; j < words[i].page_number.Length; j++) { Console.Write("\t" + words[i].page_number[j]); } Console.Write("\n\n"); } } catch(Exception ex) { Console.Write("\nВиключення:" + ex.Message); } Console.Read(); } } }
Решение задачи: «Описать класс "предметный указатель". Ошибка с полем»
textual
Листинг программы
for (byte i = 0; i < Convert.ToByte(str); i++) { Console.Write("Введiть слово у вказiвник: "); words[i] = new Subject_index(); words[i].word = Console.ReadLine();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д