Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.IO;
- using System.Text;
- /*
- Реализовать базу сотрудников организации, которая позволяет:
- добавлять и удалять информацию об отделе; +
- добавлять и удалять сотрудников отделов; +
- просматривать полную информацию о сотруднике организации; +
- или информацию о сотрудниках конкретного отдела; +
- осуществлять поиск сотрудника по фамилии; +
- и поиск сотрудников по занимаемой должности; +
- с учетом и без учета принадлежности к отделу; +
- */
- public class Person
- {
- public string Name { get; set; }
- public string Surname { get; set; }
- public string Post { get; set; }
- public int Age { get; set; }
- static int cnt = 0;
- public int ID { get; set; }
- public Person() { ID = cnt++; }
- public Person(string surname, string name, string post, int age)
- {
- Name = name;
- Surname = surname;
- Post = post;
- Age = age;
- ID = cnt++;
- }
- public string Show()
- {
- return String.Join("\n", "Surame : " + Surname,
- "Name : " + Name, "Post : " + Post, "Age : " + Age.ToString(),
- "ID : " + ID.ToString());
- }
- }
- public class Department
- {
- string Name;
- List<Person> staff = new List<Person>();
- public string GetName()
- {
- return Name;
- }
- public void SetName_Used_Only_From_Data_Base(string name)
- {
- Name = name;
- }
- public int GetCountOfStaff()
- {
- return staff.Count;
- }
- public Department() { }
- public Department(string name) { Name = name; }
- public void Add(Person obj)
- {
- if (obj == null)
- {
- Console.WriteLine("\nError, person are null");
- return;
- }
- foreach (var v in staff)
- if (v.ID == obj.ID)
- {
- Console.WriteLine($"\nУже включен в список отдела {Name}");
- return;
- }
- staff.Add(obj);
- Console.WriteLine($"\nСотрудник успешно добавлен в список отдела {Name}");
- }
- public void Add(string surname, string name, string post, int age)
- {
- Person obj = new Person(surname, name, post, age);
- this.Add(obj);
- }
- public void Delete(int ID)
- {
- for (int i = 0; i < staff.Count; ++i)
- if (staff[i].ID == ID)
- {
- staff.RemoveAt(i);
- Console.WriteLine($"\nСотрудник исключен из списка отдела {Name}");
- return;
- }
- }
- public string Show()
- {
- StringBuilder res = new StringBuilder();
- string s = new string('=', 25);
- res.Append(s + "\n");
- foreach (var v in staff)
- {
- res.Append(v.Show());
- res.Append("\n" + s + "\n");
- }
- return res.ToString();
- }
- public void Find(string surname)
- {
- foreach(var v in staff)
- if (v.Surname == surname)
- Console.WriteLine(new string('=', 25) + "\n" + v.Show());
- }
- public void FindPost(string post)
- {
- foreach (var v in staff)
- if (v.Post == post)
- Console.WriteLine(new string('=', 25) + "\n" + v.Show());
- }
- public Person GetPerson(int ID)
- {
- for (int i = 0; i < staff.Count; ++i)
- if (staff[i].ID == ID)
- return staff[i];
- return null;
- }
- }
- public class DataBase
- {
- SortedDictionary<string, Department> Base = new SortedDictionary<string, Department>();
- public Department this[string key] {
- get
- {
- return Base[key];
- }
- }
- public DataBase() { }
- public void AddDepartment(Department obj)
- {
- Base.Add(obj.GetName(), obj);
- }
- public void ChangeNameOfDepartment(string oldName, string newName)
- {
- if (!Base.ContainsKey(oldName))
- {
- Console.WriteLine("\nТакого отдела не существует!");
- return;
- }
- Department temp = Base[oldName];
- Base.Remove(oldName);
- temp.SetName_Used_Only_From_Data_Base(newName);
- AddDepartment(temp);
- }
- public void FindName(string surname)
- {
- foreach (var v in Base)
- {
- v.Value.Find(surname);
- }
- }
- public void FindName(string surname, string departmentName)
- {
- if (Base.ContainsKey(departmentName))
- Base[departmentName].Find(surname);
- }
- public void FindPost(string post)
- {
- foreach (var v in Base)
- {
- v.Value.FindPost(post);
- }
- }
- public void FindPost(string post, string departmentName)
- {
- if (Base.ContainsKey(departmentName))
- Base[departmentName].FindPost(post);
- }
- public Person GetPerson(int ID)
- {
- foreach(var v in Base)
- {
- Person res = GetPerson(ID, v.Key);
- if (res != null)
- return res;
- }
- Console.WriteLine($"\nНет совпадений в БД с ID = {ID}\n");
- return null;
- }
- public Person GetPerson(int ID, string departmentName)
- {
- if (Base.ContainsKey(departmentName))
- {
- return Base[departmentName].GetPerson(ID);
- }
- return null;
- }
- }
- class Program
- {
- static void Main()
- {
- Person a = new Person("popov", "danul", "dibil", 21);
- a.Age = 20;
- Person b = new Person("popov", "danul2", "dibil2", 221);
- Department SAY = new Department("System Analys");
- SAY.Add(a);
- SAY.Add(b);
- DataBase myBase = new DataBase();
- myBase.AddDepartment(SAY);
- myBase.ChangeNameOfDepartment(SAY.GetName(), "new analys");
- // Console.WriteLine(myBase[SAY.GetName()].Show());
- //myBase.FindName("popov");
- //myBase.FindPost("dibil");
- a = myBase.GetPerson(1);
- Console.WriteLine(a.Show());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement