Описать класс "предметный указатель". Ошибка с полем - 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();

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


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

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

10   голосов , оценка 4.1 из 5
Похожие ответы