Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- namespace TelephoneNetSubscribers
- {
- public struct TelephoneNetSubscribers
- {
- public string LastName { get; set; } // Свойство (поле)
- public string PhoneNumber { get; set; }
- public double ConversationDuration { get; set; }
- // Конструктор з параметрами:
- public TelephoneNetSubscribers(string _lastName, string _phoneNumber, double _conversationDuration)
- {
- LastName = _lastName;
- PhoneNumber = _phoneNumber;
- ConversationDuration = _conversationDuration;
- }
- }
- class Program
- {
- // Метод з параматерами, для вводу данних до списку:
- static void Input(List<TelephoneNetSubscribers> l, uint count)
- {
- for (int i = 0; i < count; i++)
- {
- Console.Write("Введiть прiзвище: ");
- string LastName = Console.ReadLine(); // Вводим з клави дані
- Console.Write("Введiть номер телефона: ");
- string PhoneNumber = Console.ReadLine();
- Console.Write("Введiть тривалiсть розмови: ");
- double ConversationDuration = double.Parse(Console.ReadLine());
- // Створюємо екземпляр класу, оскільки в нас є конструктор, одразу записуємо туди дані
- TelephoneNetSubscribers t = new TelephoneNetSubscribers(LastName, PhoneNumber, ConversationDuration);
- l.Add(t); // Додаємо дані в список, оскільки в нас цикл, з кожною ітерацією будуть додаватись нові дані
- Console.WriteLine();
- }
- }
- static void GetList(List<TelephoneNetSubscribers> l)
- {
- // Перебираємо всі елементи списку, через цикл і виводимо дані в консоль
- foreach (var i in l)
- Console.WriteLine($"Прiзвище: { i.LastName}. Номер телефона: {i.PhoneNumber}. Тривалiсть розмови: {i.ConversationDuration}\n");
- }
- // Метод для видалення данних:
- static void Delete(List<TelephoneNetSubscribers> l, string lastNameDel)
- {
- for (int i = 0; i < l.Count; i++)
- {
- if (l[i].LastName == lastNameDel) // Перевірка, чи введене прiзвище є в списку
- {
- l.RemoveAt(i); // Видаляємо по знайденому індексу
- }
- }
- }
- // Метод для оновлення данних:
- static void Update(List<TelephoneNetSubscribers> l, string lastNameSearch, string lastNameUp, string phoneNumberUp, int ConversationDurationUp)
- {
- TelephoneNetSubscribers t = new TelephoneNetSubscribers();
- for (int i = 0; i < l.Count; i++)
- {
- if (l[i].LastName == lastNameSearch)
- {
- t.LastName = lastNameUp; // Записуємо дані, які добавляться в список
- t.PhoneNumber = phoneNumberUp;
- t.ConversationDuration = ConversationDurationUp;
- l.RemoveAt(i); // Видаляємо дані за індексом
- l.Insert(i, t); // На їх місце записуємо нові
- }
- }
- }
- static void SortByLastName(List<TelephoneNetSubscribers> l) => l.Sort((s1, s2) => s1.LastName.CompareTo(s2.LastName));
- static void GetListByLastName(List<TelephoneNetSubscribers> l, string lastName)
- {
- foreach (var i in l)
- {
- if (i.LastName == lastName)
- Console.WriteLine($"Прiзвище: { i.LastName}. Номер телефона: {i.PhoneNumber}. Тривалiсть розмови: {i.ConversationDuration}\n");
- }
- }
- static string Line() => "--------------------------------------------";
- static void Menu()
- {
- Console.WriteLine($"{Line()}\n\t\tМеню:\n{Line()}".ToUpper());
- Console.WriteLine("1. Уведення даних;".ToUpper());
- Console.WriteLine("2. Сортування за прiзвищем;".ToUpper());
- Console.WriteLine("3. Пошук за вказаним прiзвищем;".ToUpper());
- Console.WriteLine("4. Оновлення данних;".ToUpper());
- Console.WriteLine("5. Вилучення данних;".ToUpper());
- Console.WriteLine("6. Вивiд на екран даних;".ToUpper());
- Console.WriteLine($"0. Вихiд.\n{Line()}".ToUpper());
- Console.WriteLine();
- }
- // Метод перевірки, чи є введене прiзвище в списку, інакше даних може не бути і програма зламається
- static bool CheckNameInList(List<TelephoneNetSubscribers> l, string lastName)
- {
- bool check = false;
- foreach (var i in l)
- check = i.LastName.Contains(lastName); // За допомогою метода Contains перевіряємо чи є прiзвище в списку
- return check; // Вертає true, якщо є, або false - немає
- }
- static void Main()
- {
- List<TelephoneNetSubscribers> l = new List<TelephoneNetSubscribers>();
- int number;
- try
- {
- do
- {
- Menu(); // Визиваємо меню, оскільки в нас цикл, буде з'являтись кожного разу, до поки ми не вийдемо
- number = int.Parse(Console.ReadLine()); // Вводимо, який пункт меню вибрати
- switch (number)
- {
- case 1:
- Console.Write("Введiть кiлькiсть абонентiв: ");
- uint count = uint.Parse(Console.ReadLine());
- Input(l, count);
- break;
- case 2:
- SortByLastName(l);
- Console.WriteLine("Данi успiшно вiдсортовано!");
- break;
- case 3:
- Console.Write("Введiть прiзвище: ");
- string lastName = Console.ReadLine();
- GetListByLastName(l, lastName);
- break;
- case 4:
- Console.Write("Введiть прiзвище: ");
- string lastNameSearch = Console.ReadLine();
- if (CheckNameInList(l, lastNameSearch)) // Перевірка, чи прiзвище є в списку
- {
- Console.WriteLine("Введiть данi, для оновлення:");
- Console.Write(" Введiть прiзвище: ");
- string lastNameUp = Console.ReadLine();
- Console.Write(" Введiть номер телефону: ");
- string phoneNumberUp = Console.ReadLine();
- Console.Write(" Введiть тривалiсть розмови: ");
- int ConversationDurationUp = int.Parse(Console.ReadLine());
- Update(l, lastNameSearch, lastNameUp, phoneNumberUp, ConversationDurationUp); // Записуємо дані в параметр метода
- Console.WriteLine("Данi успiшно оновлено!");
- }
- else
- Console.WriteLine("Прiзвища не знайдено!");
- break;
- case 5:
- Console.Write("Введiть прiзвище: ");
- string lastNameDel = Console.ReadLine();
- if (CheckNameInList(l, lastNameDel)) // Перевірка, чи прiзвище є в списку
- {
- Delete(l, lastNameDel);
- Console.WriteLine("Данi успiшно видалено!");
- }
- else
- Console.WriteLine("Прiзвища не знайдено!");
- break;
- case 6:
- Console.WriteLine("\nДанi про всiх абонентів:");
- GetList(l);
- break;
- default:
- Console.WriteLine("Натиснiть Enter, шоб закрити консоль!");
- break;
- }
- } while (number != 0); // Якщо ввести 0 - вихід
- }
- catch(Exception ex)
- {
- Console.WriteLine(ex.Message); // "Обработка исключний" (try/cath), якщо будуть введені некоректні дані, в консолі виб'є, в чому саме проблема
- }
- Console.ReadLine();
- }
- }
- }
Add Comment
Please, Sign In to add comment