Описать класс "предметный указатель". Ошибка с полем - C#

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

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

Каждый разрабатываемый класс должен, как правило, содержать следующие элементы: скрытые поля, конструкторы с параметрами и без параметров, методы; свойства, индексаторы; перегруженные операции. Функциональные элементы класса должны обеспечивать непротиворечивый, полный, минимальный и удобный интерфейс класса. При возникновении ошибок должны выбрасываться исключения. Дана такая задача: Описать класс "предметный указатель". Каждый компонент указателя содержит слово и номера страниц, на которых это слово встречается. Количество номеров страниц, относящихся к одному слову, от одного до десяти. Предусмотреть возможность формирования указателя с клавиатуры и из файла, вывода указателя, вывода номеров страниц для заданного слова, удаления элемента из указателя.

Я пытаюсь сделать часть задачи, а именно формирования указателя с клавиатуры и вывод указателя. Здесь возникла проблема в 29 строке, после неё вылетает. Можете пожалуйста объяснить что не-так и что нужно исправить.

Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace Лабораторна_робота__8
  7. {
  8. class Subject_index
  9. {
  10. public string word;
  11. public int[] page_number;
  12. }
  13. class Program
  14. {
  15. static void Main(string[] args)
  16. {
  17. Subject_index[] words = new Subject_index[10];
  18. Console.Write("Введiть кiлькiсть слiв, яке ви бажаєте ввести: ");
  19. string str = Console.ReadLine();
  20. try
  21. {
  22. for (byte i = 0; i < Convert.ToByte(str); i++)
  23. {
  24. Console.Write("Введiть слово у вказiвник: ");
  25. words[i].word = Console.ReadLine();
  26. Console.Write("Введiть кiлькiсть сторiнок для цього слова: ");
  27. string buf = Console.ReadLine();
  28. int num_of_pag = Convert.ToInt32(buf);
  29. int[] page = new int[num_of_pag - 1];
  30. Random a = new Random();
  31. for (byte j = 0; j < num_of_pag; j++)
  32. page[j] = a.Next(1, 350);
  33. words[i].page_number = new int[num_of_pag];
  34. words[i].page_number = page;
  35. }
  36. Console.WriteLine();
  37. for (byte i = 0; i < byte.Parse(str); i++)
  38. {
  39. Console.WriteLine(words[i].word);
  40. for (byte j = 0; j < words[i].page_number.Length; j++)
  41. {
  42. Console.Write("\t" + words[i].page_number[j]);
  43. }
  44. Console.Write("\n\n");
  45. }
  46. }
  47. catch(Exception ex)
  48. { Console.Write("\nВиключення:" + ex.Message); }
  49. Console.Read();
  50. }
  51. }
  52. }

Решение задачи: «Описать класс "предметный указатель". Ошибка с полем»

textual
Листинг программы
  1. for (byte i = 0; i < Convert.ToByte(str); i++)
  2.                 {
  3.                     Console.Write("Введiть слово у вказiвник: ");
  4.                     words[i] = new Subject_index();
  5.                     words[i].word = Console.ReadLine();

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


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

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

10   голосов , оценка 4.1 из 5

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

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

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