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

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

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

доброго времени суток. возникла следующая проблема: есть у меня класс Exam:
Листинг программы
  1. class Exam
  2. {
  3.  
  4. private string name_subject;
  5. private int mark;
  6. private System.DateTime date_exam;
  7.  
  8. public Exam(string _name_subject, int _mark, System.DateTime _date_exam)
  9. {
  10. name_subject = _name_subject;
  11. mark = _mark;
  12. date_exam = _date_exam;
  13. }
  14. public Exam()
  15. {
  16. name_subject = "NULL";
  17. mark = 0;
  18. date_exam = new DateTime(1990, 1, 1);
  19. }
  20.  
  21. public string Name_subject
  22. {
  23. get
  24. {
  25. return name_subject;
  26. }
  27. set
  28. {
  29. name_subject = Console.ReadLine();
  30. }
  31. }
  32. public int Mark
  33. {
  34. get
  35. {
  36. return mark;
  37. }
  38. set
  39. {
  40. mark = Convert.ToInt32(Console.Read());
  41. }
  42. }
  43. public System.DateTime Date_of_Exam
  44. {
  45. get
  46. {
  47. return date_exam;
  48. }
  49. set
  50. {
  51. int year = Convert.ToInt32(Console.Read());
  52. int month = Convert.ToInt32(Console.Read());
  53. int day = Convert.ToInt32(Console.Read());
  54. date_exam = new DateTime(year, month, day);
  55. }
  56. }
  57.  
  58. public override string ToString()
  59. {
  60. return "Name of subject: " + '\n' + "Mark: " + mark + '\n' + "Date of exam: " + date_exam;
  61. }
  62. public void set_examens()
  63. {
  64. int year = Convert.ToInt32(Console.Read());
  65. int month = Convert.ToInt32(Console.Read());
  66. int day = Convert.ToInt32(Console.Read());
  67. name_subject = Console.ReadLine();
  68. mark = Convert.ToInt32(Console.Read());
  69. date_exam = new DateTime(year, month, day);
  70. }
  71.  
  72. }
И мне нужно в другом классе заполнить массив объектами этого класса, тоесть создать массив с информацией о нескольких екзаменах. Я питался сделать так: в классе Exam создал вот такой метод:
Листинг программы
  1. public void set_examens()
  2. {
  3. int year = Convert.ToInt32(Console.Read());
  4. int month = Convert.ToInt32(Console.Read());
  5. int day = Convert.ToInt32(Console.Read());
  6. name_subject = Console.ReadLine();
  7. mark = Convert.ToInt32(Console.Read());
  8. date_exam = new DateTime(year, month, day);
  9. }
И потом делал так
Листинг программы
  1. public Exam[] Info_exams
  2. {
  3. set
  4. {
  5. for (int i = 0; i < 5; i++)
  6. {
  7. info_exams[i] = p.set_examens();
  8. }
  9. }
  10. get
  11. {
  12. return info_exams;
  13. }
  14. }
Знаю, что делал по-глупому и неправильно, но ничего другого в голову не приходило. Как мне это правильно реализовать?

Решение задачи: «Заполнить массив объектами другого класса»

textual
Листинг программы
  1. namespace ConsoleApplication
  2. {
  3.     class Program
  4.     {
  5.         class Exam
  6.         {
  7.             public string name_subject{ get; set; }
  8.             public int mark { get; set; }
  9.             public System.DateTime date_exam { get; set; }
  10.  
  11.             public Exam(string _name_subject, int _mark, System.DateTime _date_exam)
  12.             {
  13.                 name_subject = _name_subject;
  14.                 mark = _mark;
  15.                 date_exam = _date_exam;
  16.             }
  17.  
  18.             public Exam()
  19.             {
  20.                 name_subject = "NULL";
  21.                 mark = 0;
  22.                 date_exam = new DateTime(1990, 1, 1);
  23.             }
  24.  
  25.             public string Name_subject
  26.             {
  27.                 get
  28.                 {
  29.                     return name_subject;
  30.                 }
  31.  
  32.                 set
  33.                 {
  34.                     name_subject = Console.ReadLine();
  35.                 }
  36.             }
  37.  
  38.             public int Mark
  39.             {
  40.                 get
  41.                 {
  42.                     return mark;
  43.                 }
  44.  
  45.                 set
  46.                 {
  47.                     mark = Convert.ToInt32(Console.Read());
  48.                 }
  49.             }
  50.  
  51.             public System.DateTime Date_of_Exam
  52.             {
  53.                 get
  54.                 {
  55.                     return date_exam;
  56.                 }
  57.  
  58.                 set
  59.                 {
  60.                     int year = Convert.ToInt32(Console.Read());
  61.                     int month = Convert.ToInt32(Console.Read());
  62.                     int day = Convert.ToInt32(Console.Read());
  63.  
  64.                     date_exam = new DateTime(year, month, day);
  65.                 }
  66.             }
  67.  
  68.  
  69.             public override string ToString()
  70.             {
  71.                 return "Name of subject: " + '\n' + "Mark: " + mark + '\n' + "Date of exam: " + date_exam;
  72.             }
  73.         }
  74.         class ExaminationList
  75.         {
  76.             List<Exam> exams = new List<Exam>();
  77.  
  78.             public void AddExam(string name_subject, int mark, DateTime date_exam)
  79.             {
  80.                 Exam exam = new Exam(name_subject, mark, date_exam);
  81.                 exams.Add(exam);
  82.             }
  83.  
  84.             public void RemoveExam(Exam exam)
  85.             {
  86.                 exams.Remove(exam);
  87.             }
  88.  
  89.  
  90.             public void ShowAllExam()
  91.             {
  92.                 Console.WriteLine("Все оценки: ");
  93.                 foreach (var exam in exams)
  94.                 {
  95.                     Console.WriteLine(exam.name_subject + "\t" + exam.mark + "\t" + exam.date_exam);
  96.  
  97.                 }
  98.             }
  99.  
  100.             public int GetAmount()
  101.             {
  102.                 return exams.Count;
  103.             }
  104.  
  105.          
  106.         }
  107.         static void Main(string[] args)
  108.         {
  109.             var examinationList = new ExaminationList();
  110.             examinationList.AddExam("himia", 4, new DateTime(2016, 11, 21));
  111.             examinationList.AddExam("phisik", 5, new DateTime(2016, 11, 20));
  112.             examinationList.ShowAllExam();
  113.  
  114.         }
  115.     }

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


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

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

12   голосов , оценка 4.083 из 5

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

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

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