Перейти к содержанию
Авторизация  
skaterby

Вопросы По C#

Рекомендуемые сообщения

И так, есть код

 

using System;

namespace ConsoleApplication2

{

 

class Men

{

public string fam;

public string Fam

{

get { return fam; }

set { fam = value; }

}

}

 

class Stud:Men

{

public int n;

public string spec;

public int god;

public string Spec

{

get { return spec; }

set { spec = value; }

}

 

public int God

{

get { return god; }

set { god = value ;}

}

}

 

class Program

{

static void Main()

{

 

int a=0;

int n=10;

Men[] obj= new Men[n];

Stud[] x = new Stud[n];

Console.WriteLine("1 - Добавить студента(-ов)");

Console.WriteLine("2 - поиск студента");

Console.WriteLine("3 - вывод студентов");

Console.WriteLine("4 - выход");

Console.WriteLine("*****************************");

a = Convert.ToInt32(Console.ReadLine());

 

 

switch (a)

{

case 1:

Console.WriteLine(" ********* Добавление нового студента ********* ");

Console.Write("Сколько будет студентов? ");

n = Convert.ToInt32(Console.ReadLine());

 

if (n < 1) { Console.WriteLine("Необходимо ввести хотя бы одного студента"); };

 

for (int i = 1; i <= n; i++)

{

 

Console.WriteLine("Заполняем " + i + " студента");

 

Console.Write("Фамилия: ");

obj.fam = Console.ReadLine();

 

Console.Write("Год рождения: ");

x.god = Convert.ToInt32(Console.ReadLine());

 

Console.Write("Специальность: ");

x.spec = Console.ReadLine();

 

Console.ReadKey();

} break;

 

case 2:

Console.WriteLine(" ********* Поиск студента ********* ");

break;

case 3:

Console.WriteLine(" ********* Вывод всех студентов ********* ");

 

if (n > 1)

{

for (int i = 0; i <= n; i++)

{

Console.WriteLine(obj.fam + " " + x.god + " " + x.spec);

}

}

 

else Console.WriteLine("Список студентов пуст.");

 

break;

case 4:

return;

break;

default:

Console.WriteLine("Необходимо ввести число от 1 до 4");

break;

}

 

Console.ReadKey();

 

}

}

}

 

 

 

 

При заполнении массива Ошибка 'Ссылка на объект не указывает на экземпляр объекта.' Ругается начиная от сюда obj.fam = Console.ReadLine();

Как решить проблему?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Массив динамический, изменения размера массива нету
 
Перед строкой 

for (int i = 1; i <= n; i++)

Вставить

Array.Resize<string>(ref obj, n);

То же самое для массива "x"

Изменено пользователем fireday2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Массив динамический, изменения размера массива нету

 

Перед строкой 

for (int i = 1; i <= n; i++)

Вставить

Array.Resize<string>(ref obj, n);

То же самое для массива "x"

 

А проще вообще использовать списки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...