Класс факультетов и кафедр факультета: с чего начать - C#

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

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

Класс факультетов и кафедр факультета, предусмотреть операции слияния/разделения кафедр и факультетов, перевода кафедр с одного факультета в другой. небольшой вопрос с чего начать лучше? по курсу объектно-ориентированное программирование думал начать с того что кафедра это подразделение факультета

Решение задачи: «Класс факультетов и кафедр факультета: с чего начать»

textual
Листинг программы
using System;
using System.Linq;
using System.Collections.Generic;
 
namespace Facs
{
    class University
    {
        public University(List<Faculty> facs)
        {
            Faculties = facs;
        }
        public University():this(new List<Faculty>())
        {
            
        }
        public void AddFaculty(Faculty fac)
        {
            if (Faculties.Find ((x) => x.Name == fac.Name) == null)
            {
                Faculties.Add (fac);
            }
        }
        public bool MoveChair(string ChairName, string DestFacName, string SrcFacName)
        {
            Faculty dest = Faculties.Find ((x) => x.Name == DestFacName);
            Faculty src = Faculties.Find ((x) => x.Name == SrcFacName);
            if (dest == null || src == null)
            {
                return false;
            }
            if (!dest.HasChair (ChairName))
            {
                return false;
            }
            Chair ch = dest.GetChair (ChairName);
            if (!dest.RemoveChair (ch))
            {
                return false;
            }
            if (!src.AddChair (ch))
            {
                return false;
            }
            return true;
        }
        public List<Faculty> Faculties {get; private set;}
    }
    class Faculty
    {
        public Faculty(List<Chair> chairs, string name)
        {
            Chairs = chairs;
            Name = name;
        }
        public bool AddChair(Chair chair)
        {
            if (GetChair (chair.Name) == null)
            {
                Chairs.Add (chair);
                return true;
            }
            return false;
        }
        public bool RemoveChair(Chair chair)
        {
            return RemoveChair(chair.Name);
        }
        public bool RemoveChair(string name)
        {
            Chair chair = GetChair (name);
            if (chair != null)
            {
                Chairs.Remove (chair);
                return true;
            }
            return false;
        }
        public bool HasChair(Chair chair)
        {
            return HasChair (chair.Name);
        }
        public bool HasChair(string name)
        {
            return GetChair (name) != null;
        }
        public Chair GetChair(string name)
        {
            return Chairs.Find ((x) => x.Name == name);
        }
        public List<Chair> Chairs {get; private set;}
        public string Name {get; private set;}
    }
    class Chair
    {
        public Chair(string name)
        {
            Name = name;
        }
        public string Name {get; private set;}
    }
    
    class Program
    {
        static void Main()
        {
            List<Faculty> facs = new List<Faculty>()
            {
                new Faculty(new List<Chair> {new Chair("a"), new Chair("b")}, "fac1"),
                new Faculty(new List<Chair> {new Chair("c"), new Chair("d")}, "fac2")
            };
            University un = new University(facs);
            Console.WriteLine (un.MoveChair ("a", "fac1", "fac2"));
            Console.WriteLine (un.MoveChair ("a", "fac1", "fac2"));
            Console.WriteLine (un.MoveChair ("c", "fac2", "fac1"));
        }
    }
}

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


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

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

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