Нужны советы по программе (ООП) - C#
Формулировка задачи:
Хочу разобраться, потому настоятельно прошу помочь консультациями а не полным решением задачи, поскольку хочу понять все сам и написать ее. Есть масса вопросов по ООП на шарпе, пробовал на пхп там немного проще.
Постановка задачи.
Первые вопросы которые меня волнуют:
1. Я создал с этой целью 4 класса - перечисления, студент, человек, экзамены.
Я до конца не понимаю логики, но решил что класс студент должен быть унаследованным от класса человек, а остальная часть запрашиваемых функций в классе студент будет реализирована через интерфейсы, правильно ли это? Если нет поясните прошу.
2. Правильный синтаксис наследования, много искал, и книжки читал но там либо все на пальцах либо примеры очень сложные для понимания.
Насколько я понял что если я хочу чтобы методы и поля были доступными для класса наследника, то мне достаточно лишь упомянуть его в названии класса наследника? Нет надобности вводить какие-то дополнительные определения в обоих классах?
Это не все вопросы, их еще много по данной задаче, прошу не проходите мимо, нужна помощь, буду крайне благодарен за любые советы и настановления.
Тип «Образовательный уровень» определить как перечисление со значениями полей «бакалавр», «специалист», «магистр».
Тип «Человек» определить как класс, содержащий:
- закрытые поля с именем и фамилией, реализованные в виде строк (String); с датой рождения типа Date;
- все функции реализовать в соответствии общим требованиям.
Тип «Экзамен» определить как класс, содержащий:
- закрытое поле с названием экзамена как строка (String);
- закрытые поля с оценкой и типа Date с датой сдачи экзамена;
- функции реализовать в соответствии общим требованиям.
Тип «Студент» определить как класс, содержащий:
- закрытые поля типа «Человек» и типа «Образовательный уровень, что приобретается»;
- информацию о сданных экзаменах оформить как динамический массив (ArrayList);
- предусмотреть функцию для добавления очередного экзамена в списке сданных;
- кроме стандартной функции формирования строки с полной информацией, предусмотреть функцию ToStringShort формирования строки сокращенной информации с фамилией и средним баллом;
- другие функции реализовать в соответствии общим требованиям.
В тестовом примере создать объекты типа «Студент» согласно общим требованиям и вывести информацию о них в полном и сокращенном виде. К одному из объектов добавить один экзамен и вывести обновленную информацию о нем в двух формах.
Решение задачи: «Нужны советы по программе (ООП)»
textual
Листинг программы
using System; using System.Collections.Generic; namespace CF1591654 { public enum EducationalLevelInfo { Bachelor, Specialist, Master } public interface IReadOnlyHumanInfo { string Name { get; } string Surname { get; } DateTime DateOfBirth { get; } } public interface IReadOnlyExamInfo { string Name { get; } int Assessment { get; } DateTime TheDateOfTheExam { get; } } public class HumanInfo:IReadOnlyHumanInfo { public HumanInfo(string name, string surname, DateTime dateOfBirth) { Name = name; Surname = surname; DateOfBirth = dateOfBirth; } public string Name { get; set; } public string Surname { get; set; } public DateTime DateOfBirth { get; private set; } } public class ExamInfo:IReadOnlyExamInfo { public string Name { get; set; } public int Assessment { get; set; } public DateTime TheDateOfTheExam { get; set; } } public class Student { public Student(IReadOnlyHumanInfo human, EducationalLevelInfo educationalLevel, List<IReadOnlyExamInfo> examinations) { Human = human; EducationalLevel = educationalLevel; Examinations = examinations; } public IReadOnlyHumanInfo Human { get; set; } public EducationalLevelInfo EducationalLevel { get; set; } public List<IReadOnlyExamInfo> Examinations { get; set; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д