С помощью языка C# напишите код для решения задачи о записных книжках. У вас есть страница с записями, содержащими

  • 11
С помощью языка C# напишите код для решения задачи о записных книжках. У вас есть страница с записями, содержащими фамилии и номера телефонов. Фамилии на одной странице начинаются на одну и ту же букву английского алфавита. Каждая страница содержит только одну букву. Ваша задача - написать код, который будет выводить номер телефона по заданной фамилии.
Мирослав
52
Конечно, я помогу вам с написанием кода для решения задачи о записных книжках на языке C#. Вот пример решения:

csharp
using System;
using System.Collections.Generic;

class Program
{
static void Main()
{
// Создаем словарь, где ключ - первая буква фамилии, значение - список фамилий и соответствующих им номеров телефонов
Dictionary> phoneBook = new Dictionary>();

// Заполняем записную книжку данными
AddRecord(phoneBook, "Ivanov", "+7 123-456-7890");
AddRecord(phoneBook, "Ivliev", "+7 098-765-4321");
AddRecord(phoneBook, "Petrov", "+7 555-222-9999");

// Запрашиваем фамилию у пользователя
Console.Write("Введите фамилию: ");
string lastName = Console.ReadLine();

// Приводим фамилию к верхнему регистру и получаем первую букву
char firstLetter = char.ToUpper(lastName[0]);

// Проверяем, есть ли записи для данной буквы
if (phoneBook.ContainsKey(firstLetter))
{
// Получаем список записей для данной буквы
List records = phoneBook[firstLetter];

// Ищем фамилию в списке
Record foundRecord = records.Find(record => record.LastName.Equals(lastName, StringComparison.OrdinalIgnoreCase));

// Проверяем, найдена ли запись с заданной фамилией
if (foundRecord != null)
{
Console.WriteLine($"Номер телефона для фамилии {foundRecord.LastName}: {foundRecord.PhoneNumber}");
}
else
{
Console.WriteLine("Запись с заданной фамилией не найдена.");
}
}
else
{
Console.WriteLine("Записи для заданной буквы не найдены.");
}
}

// Метод для добавления записи в записную книжку
static void AddRecord(Dictionary> phoneBook, string lastName, string phoneNumber)
{
// Приводим фамилию к верхнему регистру и получаем первую букву
char firstLetter = char.ToUpper(lastName[0]);

// Проверяем, есть ли уже записи для данной буквы
if (!phoneBook.ContainsKey(firstLetter))
{
// Если нет, создаем новый список записей и добавляем его в словарь
phoneBook[firstLetter] = new List();
}

// Добавляем новую запись в список записей для данной буквы
phoneBook[firstLetter].Add(new Record { LastName = lastName, PhoneNumber = phoneNumber });
}
}

// Класс для представления записи в записной книжке
class Record
{
public string LastName { get; set; }
public string PhoneNumber { get; set; }
}


В данном коде мы используем словарь, где ключом является первая буква фамилии, а значением - список записей с соответствующими номерами телефонов. Мы создаем метод `AddRecord` для добавления новой записи в записную книжку. В основной функции `Main` пользователю предлагается ввести фамилию, по которой нужно найти номер телефона. Затем мы ищем фамилию в соответствующем списке по первой букве фамилии и выводим номер телефона, если запись найдена.

Помимо этого, в коде присутствуют комментарии, которые помогут понять каждую часть решения. Если возникнут дополнительные вопросы, не стесняйтесь задавать.