Заполнить массив объектами другого класса - C#

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

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

доброго времени суток. возникла следующая проблема: есть у меня класс 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);
 
        }

    }
И мне нужно в другом классе заполнить массив объектами этого класса, тоесть создать массив с информацией о нескольких екзаменах. Я питался сделать так: в классе 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 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();
 
        }
    }

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


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

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

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