Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 10.04.2024
Сообщений: 1

Имитация работы клиники

10.04.2024, 14:15. Показов 829. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создать программу для имитации работы клиники. Пусть в клинике будет три врача: хирург, терапевт и дантист.
Каждый врач имеет метод «лечить», но каждый врач лечит по-своему. Так же предусмотреть класс «Пациент» и класс «План лечения».
Создать объект класса «Пациент» и добавить пациенту план лечения. Так же создать метод, который будет назначать врача пациенту согласно плану лечения.
Если план лечения имеет код 1 – назначить хирурга и выполнить метод лечить.
Если план лечения имеет код 2 – назначить дантиста и выполнить метод лечить.
Если план лечения имеет любой другой код – назначить терапевта и выполнить
метод лечить

Вот мой код, может что не правильно сделал? Помогите пожалуйста.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
public abstract class Doctor
{
    public abstract void Treat();
}
 
public class Surgeon : Doctor
{
    public override void Treat()
    {
        // Surgeon's treatment
    }
}
 
public class Therapist : Doctor
{
    public override void Treat()
    {
        // Therapist's treatment
    }
}
 
public class Dentist : Doctor
{
    public override void Treat()
    {
        // Dentist's treatment
    }
}
 
public class Patient
{
    private TreatmentPlan treatmentPlan;
 
    public Patient(TreatmentPlan treatmentPlan)
    {
        this.treatmentPlan = treatmentPlan;
    }
 
    public void AssignDoctor()
    {
        Doctor doctor;
        if (treatmentPlan.GetCode() == 1)
        {
            doctor = new Surgeon();
        }
        else if (treatmentPlan.GetCode() == 2)
        {
            doctor = new Dentist();
        }
        else
        {
            doctor = new Therapist();
        }
        TreatDoctor();
    }
 
    private void TreatDoctor()
    {
        throw new NotImplementedException();
    }
}
 
public class TreatmentPlan
{
    private int code;
 
    public TreatmentPlan(int code)
    {
        this.code = code;
    }
 
    public int GetCode()
    {
        return code;
    }
}
 
public class Main
{
    public static void Main(string[] args)
    {
        TreatmentPlan treatmentPlan = new TreatmentPlan(1);
        Patient patient = new Patient(treatmentPlan);
        patient.AssignDoctor();
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.04.2024, 14:15
Ответы с готовыми решениями:

Имитация работы кондиционера
Добрый день! Нужна простая программа имитации кондиционера(на рисунке пример имитации стиральной машины "Для начала работы...

Имитация работы телевизора
Необходимо написать программу, имитирующую работу телевизора. Предусмотрите в нем возможность переключения каналов: следующий канал,...

Имитация работы банкамата реализованная через классы
В классе должны быть свойства: • Максимальное количество хранимых купюр. • Состояние терминала (включён, выключен) • Состояние...

4
2805 / 503 / 120
Регистрация: 26.09.2020
Сообщений: 950
Записей в блоге: 5
10.04.2024, 17:15
Цитата Сообщение от SilvaD Посмотреть сообщение
Вот мой код
дополнил, слегка.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
namespace ConsoleApp13162892
{
    internal class Program
    {
        static void Main(string[] args)
        {
            TreatmentPlan treatmentPlan = new TreatmentPlan(2);
            Patient patient = new Patient(treatmentPlan);
            patient.AssignDoctor();
        }
    }
 
    public abstract class Doctor
    {
        public abstract void Treat();
    }
 
    public class Surgeon : Doctor
    {
        public override void Treat()
        {
            Console.WriteLine("Хирург");
        }
    }
 
    public class Therapist : Doctor
    {
        public override void Treat()
        {
            Console.WriteLine("Терапевт");
        }
    }
 
    public class Dentist : Doctor
    {
        public override void Treat()
        {
            Console.WriteLine("Дантист");
        }
    }
 
    public class Patient
    {
        private TreatmentPlan treatmentPlan;
 
        public Patient(TreatmentPlan treatmentPlan)
        {
            this.treatmentPlan = treatmentPlan;
        }
 
        public void AssignDoctor()
        {
            Doctor doctor;
 
            switch (treatmentPlan.Code)
            {
                case 1 : doctor = new Surgeon(); break;
                case 2 : doctor = new Dentist(); break;
                default: doctor = new Therapist(); break;
            }
 
            TreatDoctor(doctor);
        }
 
        private void TreatDoctor(Doctor doctor)
        {
            doctor.Treat();
        }
    }
 
    public class TreatmentPlan
    {
        private int code;
        public int Code { get => code; }
 
        public TreatmentPlan(int code)
        {
            this.code = code;
        }
    }
}
2
0 / 0 / 0
Регистрация: 14.04.2024
Сообщений: 9
14.04.2024, 15:10
C#
1
2
3
4
5
6
switch (treatmentPlan.Code)
            {
                case 1 : doctor = new Surgeon(); break;
                case 2 : doctor = new Dentist(); break;
                default: doctor = new Therapist(); break;
            }
Не подскажете, как здесь для Code, enum создать?
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3421 / 2740 / 575
Регистрация: 04.09.2018
Сообщений: 8,608
Записей в блоге: 3
14.04.2024, 16:53
C#
1
2
3
4
    internal enum DoctorsEnum
    {
        None, Surgeon, Dentist, Therapist
    }
C#
1
2
3
4
5
6
7
    internal class TreatmentPlan
    {
        public DoctorsEnum Doctor { get; private set; }
 
        public TreatmentPlan(DoctorsEnum doctor) =>
            Doctor = doctor;
    }
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
    internal class Patient
    {
        private readonly TreatmentPlan treatmentPlan;
 
        public Patient(TreatmentPlan treatmentPlan)
        {
            this.treatmentPlan = treatmentPlan;
        }
 
        public void AssignDoctor()
        {
            Doctor doctor;
 
            switch (treatmentPlan.Doctor)
            {
                case DoctorsEnum.Surgeon:
                    doctor = new Surgeon();
                    break;
                case DoctorsEnum.Dentist:
                    doctor = new Dentist();
                    break;
                case DoctorsEnum.Therapist:
                    doctor = new Therapist();
                    break;
                default:
                    throw new System.Exception("Доктор не назначен!");
            }
 
            TreatDoctor(doctor);
        }
 
        private void TreatDoctor(Doctor doctor)
        {
            doctor.Treat();
        }
    }
C#
1
2
3
4
5
6
7
8
        static void Main(string[] args)
        {
            TreatmentPlan treatmentPlan = new TreatmentPlan(DoctorsEnum.Surgeon);
            Patient patient = new Patient(treatmentPlan);
            patient.AssignDoctor();
 
            Console.Read();
        }
2
2805 / 503 / 120
Регистрация: 26.09.2020
Сообщений: 950
Записей в блоге: 5
14.04.2024, 19:16
AssignDoctor() фабричный метод?
Кто может натянуть паттерны на глобус, порефакторили бы…
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.04.2024, 19:16
Помогаю со студенческими работами здесь

Имитация работы банкомата, выдача определённой суммы, имеющимися номиналами
Есть словарь, в котором хранятся купюры разных номиналов и количество этих купюр. В качестве параметра в метод CanCrant пользователь...

Имитация работы парикмахерской
Добрый вечер. Я хочу сделать имитацию работы парикмахерской. Вот с чего начал я : using System; using...

Имитация работы мышки
Собственно, я не могу никак понять как имитировать работу мыши. Допустим задача такая: есть кнопка, с известными координатами, и нужно...

Имитация работы с базой данных в файловой системе
добрый день, вот такое задание Разработать приложение Windows Form, имитирующее работу с базой данных в файловой системе. В трех...

ProgressBar или имитация работы пока грузиться список
В общем проблема такая.Вывожу в ListView работающие процессы компа...все работает,но дело в том,что процессов у меня 75 и прога долго...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru