Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- namespace lab_4
- {
- class Program
- {
- static void Main(string[] args)
- {
- List<AbsWorker> workers_list = new List<AbsWorker>();
- Console.WriteLine("1. Создание сотрудника\n2. Вывести всех сотрудников\n3. Вывести сотрудника по номеру\n4. Вывести сотрудников по отделам");
- while (true)
- {
- try
- {
- switch (Console.ReadLine())
- {
- case "1":
- AbsWorker worker = CreateNewWorker();
- Console.WriteLine("Введите имя сотрудника");
- worker.Name = Console.ReadLine();
- Console.WriteLine("Введите дату рождения сотрудника (прим. 01.01.1900)");
- worker.Birthdate = Console.ReadLine();
- Console.WriteLine("Введите заработную плату сотрудника");
- worker.Salary = Convert.ToInt32(Console.ReadLine());
- Console.WriteLine(worker.GetType());
- workers_list.Add(worker);
- Console.WriteLine("Номер сотрудника: " + workers_list.IndexOf(worker));
- worker.GetInfo();
- break;
- case "2":
- foreach(AbsWorker item in workers_list)
- {
- Console.WriteLine("№ " + workers_list.IndexOf(item));
- item.GetInfo();
- }
- break;
- case "3":
- Console.WriteLine("Введите номер сотрудника");
- workers_list[Convert.ToInt32(Console.ReadLine())].GetInfo();
- break;
- case "4":
- Console.WriteLine("Какой отдел?");
- Console.WriteLine("1. Отдел кадров\n2. Планово-финансовое управление\n3. Учебнометодическое управление\n4. Международный отдел");
- switch (Console.ReadLine())
- {
- case "1":
- foreach(AbsWorker item in workers_list)
- {
- Console.WriteLine("Список сотрудников:");
- if (item.DepTitle == "Отдел кадров")
- {
- Console.WriteLine("№ " + workers_list.IndexOf(item));
- item.GetInfo();
- }
- }
- break;
- case "2":
- foreach (AbsWorker item in workers_list)
- {
- Console.WriteLine("Список сотрудников:");
- if (item.DepTitle == "Планово-финансовое управление")
- {
- Console.WriteLine("№ " + workers_list.IndexOf(item));
- item.GetInfo();
- }
- }
- break;
- case "3":
- foreach (AbsWorker item in workers_list)
- {
- Console.WriteLine("Список сотрудников:");
- if (item.DepTitle == "Учебнометодическое управление")
- {
- Console.WriteLine("№ " + workers_list.IndexOf(item));
- item.GetInfo();
- }
- }
- break;
- case "4":
- foreach (AbsWorker item in workers_list)
- {
- Console.WriteLine("Список сотрудников:");
- if (item.DepTitle == "Международный отдел")
- {
- Console.WriteLine("№ " + workers_list.IndexOf(item));
- item.GetInfo();
- }
- }
- break;
- }
- break;
- default:
- Console.WriteLine("Ошибка! Возврат к меню");
- break;
- }
- }
- catch (Exception e)
- {
- Console.WriteLine("Ошибка!");
- Console.WriteLine(e.Message);
- }
- }
- AbsWorker CreateNewWorker()
- {
- Console.WriteLine("Где будет находиться новый сотрудник?");
- Console.WriteLine("1. Отдел кадров\n2. Планово-финансовое управление\n3. Учебнометодическое управление\n4. Международный отдел");
- string temp = Console.ReadLine();
- Console.WriteLine(temp);
- Console.WriteLine("Должность сотрудника?");
- Console.WriteLine("1. Начальник отдела\n2. Заместитель начальника\n3. Служащий\n4. Стажер");
- temp += Console.ReadLine();
- switch (temp)
- {
- case "11": { HRdep hrdep = new(); AbsWorker worker = hrdep.CreateHeadOfDep(); worker.DepTitle = "Отдел кадров"; return worker; }
- case "12": { HRdep hrdep = new(); AbsWorker worker = hrdep.CreateDeputyHeadOfDep(); worker.DepTitle = "Отдел кадров"; return worker; }
- case "13": { HRdep hrdep = new(); AbsWorker worker = hrdep.CreateEmployee(); worker.DepTitle = "Отдел кадров"; return worker; }
- case "14": { HRdep hrdep = new(); AbsWorker worker = hrdep.CreateIntern(); worker.DepTitle = "Отдел кадров"; return worker; }
- case "21": { PSdep psdep = new(); AbsWorker worker = psdep.CreateHeadOfDep(); worker.DepTitle = "Планово-финансовое управление"; return worker; }
- case "22": { PSdep psdep = new(); AbsWorker worker = psdep.CreateDeputyHeadOfDep(); worker.DepTitle = "Планово-финансовое управление"; return worker; }
- case "23": { PSdep psdep = new(); AbsWorker worker = psdep.CreateEmployee(); worker.DepTitle = "Планово-финансовое управление"; return worker; }
- case "24": { PSdep psdep = new(); AbsWorker worker = psdep.CreateIntern(); worker.DepTitle = "Планово-финансовое управление"; return worker; }
- case "31": { EMdep emdep = new(); AbsWorker worker = emdep.CreateHeadOfDep(); worker.DepTitle = "Учебно-методическое управление"; return worker; }
- case "32": { EMdep emdep = new(); AbsWorker worker = emdep.CreateDeputyHeadOfDep(); worker.DepTitle = "Учебно-методическое управление"; return worker; }
- case "33": { EMdep emdep = new(); AbsWorker worker = emdep.CreateEmployee(); worker.DepTitle = "Учебно-методическое управление"; return worker; }
- case "34": { EMdep emdep = new(); AbsWorker worker = emdep.CreateIntern(); worker.DepTitle = "Учебно-методическое управление"; return worker; }
- case "41": { INdep indep = new(); AbsWorker worker = indep.CreateHeadOfDep(); worker.DepTitle = "Международный отдел"; return worker; }
- case "42": { INdep indep = new(); AbsWorker worker = indep.CreateDeputyHeadOfDep(); worker.DepTitle = "Международный отдел"; return worker; }
- case "43": { INdep indep = new(); AbsWorker worker = indep.CreateEmployee(); worker.DepTitle = "Международный отдел"; return worker; }
- case "44": { INdep indep = new(); AbsWorker worker = indep.CreateIntern(); worker.DepTitle = "Международный отдел"; return worker; }
- }
- return null;
- }
- }
- //Абстрактная фабрика
- abstract class AbstractFactory
- {
- public abstract HeadOfDep CreateHeadOfDep();
- public abstract DeputyHeadOfDep CreateDeputyHeadOfDep();
- public abstract Employee CreateEmployee();
- public abstract Intern CreateIntern();
- }
- //Конкретная фабрика HRdep
- class HRdep : AbstractFactory
- {
- public override HeadOfDep CreateHeadOfDep()
- {
- return new HRdepHeadOfDep();
- }
- public override DeputyHeadOfDep CreateDeputyHeadOfDep()
- {
- return new HRdepDeputyHeadOfDep();
- }
- public override Employee CreateEmployee()
- {
- return new HRdepEmployee();
- }
- public override Intern CreateIntern()
- {
- return new HRdepIntern();
- }
- }
- //Конкретная фабрика PSdep
- class PSdep : AbstractFactory
- {
- public override HeadOfDep CreateHeadOfDep()
- {
- return new PSdepHeadOfDep();
- }
- public override DeputyHeadOfDep CreateDeputyHeadOfDep()
- {
- return new PSdepDeputyHeadOfDep();
- }
- public override Employee CreateEmployee()
- {
- return new PSdepEmployee();
- }
- public override Intern CreateIntern()
- {
- return new PSdepIntern();
- }
- }
- //Конкретная фабрика EMped
- class EMdep : AbstractFactory
- {
- public override HeadOfDep CreateHeadOfDep()
- {
- return new EMdepHeadOfDep();
- }
- public override DeputyHeadOfDep CreateDeputyHeadOfDep()
- {
- return new EMdepDeputyHeadOfDep();
- }
- public override Employee CreateEmployee()
- {
- return new EMdepEmployee();
- }
- public override Intern CreateIntern()
- {
- return new EMdepIntern();
- }
- }
- //Конкретная фабрика INdep
- class INdep : AbstractFactory
- {
- public override HeadOfDep CreateHeadOfDep()
- {
- return new INdepHeadOfDep();
- }
- public override DeputyHeadOfDep CreateDeputyHeadOfDep()
- {
- return new INdepDeputyHeadOfDep();
- }
- public override Employee CreateEmployee()
- {
- return new INdepEmployee();
- }
- public override Intern CreateIntern()
- {
- return new INdepIntern();
- }
- }
- // Супер сотрудник
- class AbsWorker
- {
- private string name;
- private string birthdate;
- private float salary;
- private string deptitle;
- public string Name
- {
- get { return name; }
- set { name = value; }
- }
- public string Birthdate
- {
- get { return birthdate; }
- set { birthdate = value; }
- }
- public float Salary
- {
- get { return salary; }
- set { salary = value; }
- }
- public string DepTitle
- {
- get { return deptitle; }
- set { deptitle = value; }
- }
- public void GetInfo()
- {
- Console.WriteLine($"Имя: {name} \nДата рождения: {birthdate} \nЗарплата: {salary} \nНазвание отдела: {deptitle}");
- }
- }
- //Абстрактные сотрудники
- abstract class HeadOfDep : AbsWorker
- {}
- abstract class DeputyHeadOfDep : AbsWorker
- { }
- abstract class Employee : AbsWorker
- { }
- abstract class Intern : AbsWorker
- { }
- //Контректные сотрудники HRdep
- class HRdepHeadOfDep : HeadOfDep
- { }
- class HRdepDeputyHeadOfDep : DeputyHeadOfDep
- { }
- class HRdepEmployee : Employee
- { }
- class HRdepIntern : Intern
- { }
- //Контректные сотрудники PSdep
- class PSdepHeadOfDep : HeadOfDep
- { }
- class PSdepDeputyHeadOfDep : DeputyHeadOfDep
- { }
- class PSdepEmployee : Employee
- { }
- class PSdepIntern : Intern
- { }
- //Контректные сотрудники EMdep
- class EMdepHeadOfDep : HeadOfDep
- { }
- class EMdepDeputyHeadOfDep : DeputyHeadOfDep
- { }
- class EMdepEmployee : Employee
- { }
- class EMdepIntern : Intern
- { }
- //Контректные сотрудники INdep
- class INdepHeadOfDep : HeadOfDep
- { }
- class INdepDeputyHeadOfDep : DeputyHeadOfDep
- { }
- class INdepEmployee : Employee
- { }
- class INdepIntern : Intern
- { }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement