Реализовать класс "Экзамен" - C#
Формулировка задачи:
1. Реализовать класс согласно условия по варианту.
2. Для каждого класса написать конструктор (по умолчанию и с параметром),
3. Добавить метод вывода данных на экран (в формате поле = значение).
Работа с классом в методе main():
1. Создать массив из минимум 5 объектов класса.
2. Объект с индексом 2 должен быть пустым.
3. Последний объект в массиве создается с помощью конструктора по умолчанию. Все остальные с помощью конструктора с параметром.
4. Вывести данные на экран.
ЭКЗАМЕН: ФИО студента, дата, оценка, перечень вопросов.
Решение задачи: «Реализовать класс "Экзамен"»
textual
Листинг программы
using System;
using System.Collections.Generic;
namespace TestConsole
{
/// <summary>
/// Класс экзамен.
/// </summary>
class Exam
{
#region Fields
/// <summary>
/// ФИО студента.
/// </summary>
private string _fio;
/// <summary>
/// Дата экзамена.
/// </summary>
private DateTime _dateExam;
/// <summary>
/// Оценка.
/// </summary>
private int _appraisal;
/// <summary>
/// Перечень вопросов.
/// </summary>
private List<string> _listOfIssues;
#endregion Fields
#region Properties
/// <summary>
/// ФИО студента.
/// </summary>
public string FIO
{
get { return _fio; }
set
{
if (_fio == value)
return;
_fio = value;
}
}
/// <summary>
/// Дата экзамена.
/// </summary>
public DateTime DateExam
{
get { return _dateExam; }
set
{
if (_dateExam == value)
return;
_dateExam = value;
}
}
/// <summary>
/// Оценка.
/// </summary>
public int Appraisal
{
get { return _appraisal; }
set
{
if (_appraisal == value)
return;
_appraisal = value;
}
}
/// <summary>
/// Перечень вопросов.
/// </summary>
public List<string> ListOfIssues
{
get { return _listOfIssues; }
set
{
if (_listOfIssues == value)
return;
_listOfIssues = value;
}
}
#endregion Properties
#region Constructors
/// <summary>
/// Конструктор по умолчанию.
/// </summary>
public Exam()
{
}
/// <summary>
/// Конструктор с параметром.
/// </summary>
/// <param name="exam">Копируемый объект.</param>
public Exam(Exam exam)
{
this._fio = exam._fio;
this._dateExam = exam._dateExam;
this._appraisal = exam._appraisal;
this._listOfIssues = new List<string>(exam._listOfIssues);
}
#endregion Constructors
}
class Program
{
static void Main(string[] args)
{
Exam[] listExam = new Exam[5];
listExam[0] = new Exam(new Exam()
{
FIO = "Иванов Иван Иванович",
DateExam = new DateTime(2016, 12, 23),
Appraisal = 5,
ListOfIssues = new List<string>() { "Вопрос 1?", "Вопрос 2?" }
});
listExam[1] = new Exam(new Exam()
{
FIO = "Петров Петр Петрович",
DateExam = new DateTime(2016, 12, 24),
Appraisal = 5,
ListOfIssues = new List<string>() { "Вопрос 3?", "Вопрос 4?" }
});
listExam[2] = new Exam();
listExam[3] = new Exam(new Exam()
{
FIO = "Василий Васильевич Васильев",
DateExam = new DateTime(2016, 12, 25),
Appraisal = 5,
ListOfIssues = new List<string>() { "Вопрос 5?", "Вопрос 6?" }
});
listExam[4] = new Exam();
listExam[4].FIO = "Сидоров Сидор Сидорович";
listExam[4].DateExam = new DateTime(2016, 12, 26);
listExam[4].Appraisal = 3;
listExam[4].ListOfIssues = new List<string>();
listExam[4].ListOfIssues.Add("Вопрос 7?");
listExam[4].ListOfIssues.Add("Вопрос 8?");
_Show(listExam);
Console.ReadKey();
}
#region Methods
/// <summary>
/// Выводит на экран список объектов типа Exam.
/// </summary>
/// <param name="listExam">Выводимый список объектов.</param>
private static void _Show(Exam[] listExam)
{
for(int i = 0; i < listExam.Length; i++)
{
Console.WriteLine("Фио: " + listExam[i].FIO);
Console.WriteLine("Дата проведения экзамена: " +
listExam[i].DateExam.ToString("yyyy.MM.dd"));
Console.WriteLine("Оценка: " + listExam[i].Appraisal);
// Проверяем, проиниализирован список или нет
if (listExam[i].ListOfIssues != null)
{
for (int j = 0; j < listExam[i].ListOfIssues.Count; j++)
{
Console.WriteLine("Вопрос: " + listExam[i].ListOfIssues[j]);
}
}
Console.WriteLine();
}
}
#endregion Methods
}
}