Заполнить массив объектами другого класса - C#
Формулировка задачи:
доброго времени суток.
возникла следующая проблема:
есть у меня класс Exam:
И мне нужно в другом классе заполнить массив объектами этого класса, тоесть создать массив с информацией о нескольких екзаменах.
Я питался сделать так:
в классе Exam создал вот такой метод:
И потом делал так
Знаю, что делал по-глупому и неправильно, но ничего другого в голову не приходило.
Как мне это правильно реализовать?
class Exam
{
private string name_subject;
private int mark;
private System.DateTime date_exam;
public Exam(string _name_subject, int _mark, System.DateTime _date_exam)
{
name_subject = _name_subject;
mark = _mark;
date_exam = _date_exam;
}
public Exam()
{
name_subject = "NULL";
mark = 0;
date_exam = new DateTime(1990, 1, 1);
}
public string Name_subject
{
get
{
return name_subject;
}
set
{
name_subject = Console.ReadLine();
}
}
public int Mark
{
get
{
return mark;
}
set
{
mark = Convert.ToInt32(Console.Read());
}
}
public System.DateTime Date_of_Exam
{
get
{
return date_exam;
}
set
{
int year = Convert.ToInt32(Console.Read());
int month = Convert.ToInt32(Console.Read());
int day = Convert.ToInt32(Console.Read());
date_exam = new DateTime(year, month, day);
}
}
public override string ToString()
{
return "Name of subject: " + '\n' + "Mark: " + mark + '\n' + "Date of exam: " + date_exam;
}
public void set_examens()
{
int year = Convert.ToInt32(Console.Read());
int month = Convert.ToInt32(Console.Read());
int day = Convert.ToInt32(Console.Read());
name_subject = Console.ReadLine();
mark = Convert.ToInt32(Console.Read());
date_exam = new DateTime(year, month, day);
}
} public void set_examens()
{
int year = Convert.ToInt32(Console.Read());
int month = Convert.ToInt32(Console.Read());
int day = Convert.ToInt32(Console.Read());
name_subject = Console.ReadLine();
mark = Convert.ToInt32(Console.Read());
date_exam = new DateTime(year, month, day);
} public Exam[] Info_exams
{
set
{
for (int i = 0; i < 5; i++)
{
info_exams[i] = p.set_examens();
}
}
get
{
return info_exams;
}
}Решение задачи: «Заполнить массив объектами другого класса»
textual
Листинг программы
namespace ConsoleApplication
{
class Program
{
class Exam
{
public string name_subject{ get; set; }
public int mark { get; set; }
public System.DateTime date_exam { get; set; }
public Exam(string _name_subject, int _mark, System.DateTime _date_exam)
{
name_subject = _name_subject;
mark = _mark;
date_exam = _date_exam;
}
public Exam()
{
name_subject = "NULL";
mark = 0;
date_exam = new DateTime(1990, 1, 1);
}
public string Name_subject
{
get
{
return name_subject;
}
set
{
name_subject = Console.ReadLine();
}
}
public int Mark
{
get
{
return mark;
}
set
{
mark = Convert.ToInt32(Console.Read());
}
}
public System.DateTime Date_of_Exam
{
get
{
return date_exam;
}
set
{
int year = Convert.ToInt32(Console.Read());
int month = Convert.ToInt32(Console.Read());
int day = Convert.ToInt32(Console.Read());
date_exam = new DateTime(year, month, day);
}
}
public override string ToString()
{
return "Name of subject: " + '\n' + "Mark: " + mark + '\n' + "Date of exam: " + date_exam;
}
}
class ExaminationList
{
List<Exam> exams = new List<Exam>();
public void AddExam(string name_subject, int mark, DateTime date_exam)
{
Exam exam = new Exam(name_subject, mark, date_exam);
exams.Add(exam);
}
public void RemoveExam(Exam exam)
{
exams.Remove(exam);
}
public void ShowAllExam()
{
Console.WriteLine("Все оценки: ");
foreach (var exam in exams)
{
Console.WriteLine(exam.name_subject + "\t" + exam.mark + "\t" + exam.date_exam);
}
}
public int GetAmount()
{
return exams.Count;
}
}
static void Main(string[] args)
{
var examinationList = new ExaminationList();
examinationList.AddExam("himia", 4, new DateTime(2016, 11, 21));
examinationList.AddExam("phisik", 5, new DateTime(2016, 11, 20));
examinationList.ShowAllExam();
}
}