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