Нужны советы по программе (ООП) - 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; }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д