Advertisement
Infiniti_Inter

24

May 28th, 2020
1,142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.49 KB | None | 0 0
  1.  
  2.  
  3. using System;
  4. using System.Collections;
  5. using System.Collections.Generic;
  6. using System.IO;
  7. using System.Text;
  8.  
  9.  
  10.  
  11. /*
  12.  Реализовать базу сотрудников организации, которая позволяет:
  13.  добавлять и удалять информацию об отделе; +
  14.  добавлять и удалять сотрудников отделов; +
  15.  просматривать полную информацию о сотруднике организации; +
  16.  или информацию о сотрудниках конкретного отдела; +
  17.  осуществлять поиск сотрудника по фамилии; +
  18.  и поиск сотрудников по занимаемой должности; +
  19.  с учетом и без учета принадлежности к отделу; +
  20. */
  21.  
  22. public class Person
  23. {
  24.     public string Name { get; set; }
  25.     public string Surname { get; set; }
  26.     public string Post { get; set; }
  27.     public int Age { get; set; }
  28.     static int cnt = 0;
  29.     public int ID { get; set; }
  30.  
  31.     public Person() { ID = cnt++; }
  32.     public Person(string surname, string name, string post, int age)
  33.     {
  34.         Name = name;
  35.         Surname = surname;
  36.         Post = post;
  37.         Age = age;
  38.         ID = cnt++;
  39.     }
  40.  
  41.     public string Show()
  42.     {
  43.         return String.Join("\n", "Surame : " + Surname,
  44.             "Name : " + Name, "Post : " + Post, "Age : " + Age.ToString(),
  45.             "ID : " + ID.ToString());
  46.     }
  47.  
  48.  
  49.  
  50. }
  51.  
  52. public class Department
  53. {
  54.     string Name;
  55.     List<Person> staff = new List<Person>();
  56.  
  57.     public string GetName()
  58.     {
  59.         return Name;
  60.     }
  61.     public void SetName_Used_Only_From_Data_Base(string name)
  62.     {
  63.         Name = name;
  64.     }
  65.    
  66.     public int GetCountOfStaff()
  67.     {
  68.         return staff.Count;
  69.     }
  70.  
  71.     public Department() { }
  72.     public Department(string name) { Name = name; }
  73.  
  74.     public void Add(Person obj)
  75.     {
  76.         if (obj == null)
  77.         {
  78.             Console.WriteLine("\nError, person are null");
  79.             return;
  80.         }
  81.         foreach (var v in staff)
  82.             if (v.ID == obj.ID)
  83.             {
  84.                 Console.WriteLine($"\nУже включен в список отдела {Name}");
  85.                 return;
  86.             }
  87.         staff.Add(obj);
  88.         Console.WriteLine($"\nСотрудник успешно добавлен в список отдела {Name}");
  89.     }
  90.     public void Add(string surname, string name, string post, int age)
  91.     {
  92.         Person obj = new Person(surname, name, post, age);
  93.         this.Add(obj);
  94.     }
  95.  
  96.     public void Delete(int ID)
  97.     {
  98.         for (int i = 0; i < staff.Count; ++i)
  99.             if (staff[i].ID == ID)
  100.             {
  101.                 staff.RemoveAt(i);
  102.                 Console.WriteLine($"\nСотрудник исключен из списка отдела {Name}");
  103.                 return;
  104.             }
  105.     }
  106.  
  107.     public string Show()
  108.     {
  109.         StringBuilder res = new StringBuilder();
  110.         string s = new string('=', 25);
  111.         res.Append(s + "\n");
  112.         foreach (var v in staff)
  113.         {
  114.             res.Append(v.Show());
  115.             res.Append("\n" + s + "\n");
  116.         }
  117.         return res.ToString();
  118.     }
  119.  
  120.    public void Find(string surname)
  121.    {
  122.         foreach(var v in staff)
  123.             if (v.Surname == surname)
  124.                 Console.WriteLine(new string('=', 25) + "\n" + v.Show());
  125.    }
  126.  
  127.     public void FindPost(string post)
  128.     {
  129.         foreach (var v in staff)
  130.             if (v.Post == post)
  131.                 Console.WriteLine(new string('=', 25) + "\n" + v.Show());
  132.     }
  133.     public Person GetPerson(int ID)
  134.     {
  135.         for (int i = 0; i < staff.Count; ++i)
  136.             if (staff[i].ID == ID)
  137.                 return staff[i];
  138.         return null;
  139.     }
  140.  
  141.  
  142. }
  143.  
  144.  
  145. public class DataBase
  146. {
  147.  
  148.     SortedDictionary<string, Department> Base = new SortedDictionary<string, Department>();
  149.     public Department this[string key] {
  150.         get
  151.         {
  152.             return Base[key];
  153.         }
  154.     }
  155.  
  156.     public DataBase() { }
  157.  
  158.     public void AddDepartment(Department obj)
  159.     {
  160.         Base.Add(obj.GetName(), obj);
  161.     }
  162.     public void ChangeNameOfDepartment(string oldName, string newName)
  163.     {
  164.         if (!Base.ContainsKey(oldName))
  165.         {
  166.             Console.WriteLine("\nТакого отдела не существует!");
  167.             return;
  168.         }
  169.         Department temp = Base[oldName];
  170.         Base.Remove(oldName);
  171.         temp.SetName_Used_Only_From_Data_Base(newName);
  172.         AddDepartment(temp);
  173.     }
  174.     public void FindName(string surname)
  175.     {
  176.         foreach (var v in Base)
  177.         {
  178.             v.Value.Find(surname);
  179.         }
  180.     }
  181.     public void FindName(string surname, string departmentName)
  182.     {
  183.         if (Base.ContainsKey(departmentName))
  184.         Base[departmentName].Find(surname);        
  185.     }
  186.     public void FindPost(string post)
  187.     {
  188.         foreach (var v in Base)
  189.         {
  190.             v.Value.FindPost(post);
  191.         }
  192.     }
  193.     public void FindPost(string post, string departmentName)
  194.     {
  195.         if (Base.ContainsKey(departmentName))
  196.             Base[departmentName].FindPost(post);
  197.     }
  198.  
  199.     public Person GetPerson(int ID)
  200.     {
  201.         foreach(var v in Base)
  202.         {
  203.             Person res = GetPerson(ID, v.Key);
  204.             if (res != null)
  205.                 return res;
  206.         }
  207.        
  208.         Console.WriteLine($"\nНет совпадений в БД с ID = {ID}\n");
  209.         return null;
  210.     }
  211.     public Person GetPerson(int ID, string departmentName)
  212.     {
  213.         if (Base.ContainsKey(departmentName))
  214.         {
  215.             return Base[departmentName].GetPerson(ID);            
  216.         }
  217.         return null;
  218.     }
  219.  
  220. }
  221.  
  222. class Program
  223. {
  224.     static void Main()
  225.     {
  226.  
  227.         Person a = new Person("popov", "danul", "dibil", 21);
  228.         a.Age = 20;
  229.         Person b = new Person("popov", "danul2", "dibil2", 221);
  230.         Department SAY = new Department("System Analys");
  231.  
  232.         SAY.Add(a);
  233.         SAY.Add(b);
  234.  
  235.         DataBase myBase = new DataBase();
  236.         myBase.AddDepartment(SAY);
  237.         myBase.ChangeNameOfDepartment(SAY.GetName(), "new analys");
  238.         // Console.WriteLine(myBase[SAY.GetName()].Show());
  239.  
  240.         //myBase.FindName("popov");
  241.         //myBase.FindPost("dibil");
  242.         a = myBase.GetPerson(1);
  243.         Console.WriteLine(a.Show());
  244.     }
  245. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement