Напишите код на языке C#, который будет решать задачу о записных книжках. В записной книжке на каждой странице

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

Plamennyy_Zmey_9797

Конечно, я могу помочь решить задачу о записных книжках на языке C#. Вот код, который выполняет данную задачу:

csharp
using System;
using System.Collections.Generic;

class Program
{
static void Main()
{
// Создаем словарь для хранения фамилий и номеров телефонов
Dictionary> записнаяКнижка = new Dictionary>();

// Вводим данные в записную книжку
ЗаписатьВЗаписнуюКнижку(записнаяКнижка, "Ivanov", "+7 999 1234567");
ЗаписатьВЗаписнуюКнижку(записнаяКнижка, "Petrov", "+7 999 9876543");
ЗаписатьВЗаписнуюКнижку(записнаяКнижка, "Sidorov", "+7 999 5555555");

// Вводим фамилию, для которой нужно распечатать номер телефона
Console.Write("Введите фамилию: ");
string фамилия = Console.ReadLine();

// Получаем первую букву фамилии и проверяем, есть ли записи на такую букву
char перваяБуква = фамилия.ToUpper()[0];
if (записнаяКнижка.ContainsKey(перваяБуква))
{
// Получаем список номеров телефонов для данной буквы
List номераТелефонов = записнаяКнижка[перваяБуква];
bool найден = false;

// Ищем фамилию и выводим соответствующий номер телефона
foreach (string имя in номераТелефонов)
{
if (имя.ToUpper() == фамилия.ToUpper())
{
Console.WriteLine($"Номер телефона для фамилии {фамилия}: {имя}");
найден = true;
break;
}
}

if (!найден)
{
Console.WriteLine($"Фамилии {фамилия} нет в записной книжке");
}
}
else
{
Console.WriteLine($"Фамилии {фамилия} нет в записной книжке");
}

Console.ReadKey();
}

static void ЗаписатьВЗаписнуюКнижку(Dictionary> записнаяКнижка, string фамилия, string номерТелефона)
{
// Получаем первую букву фамилии и добавляем запись в словарь
char перваяБуква = фамилия.ToUpper()[0];
if (!записнаяКнижка.ContainsKey(перваяБуква))
{
записнаяКнижка[перваяБуква] = new List();
}
записнаяКнижка[перваяБуква].Add(фамилия);
}
}


Объяснение кода:

1. На самом первом этапе мы создаём словарь `записнаяКнижка`, в котором будем хранить фамилии и номера телефонов. Ключом словаря будет первая буква фамилии, а значением - список фамилий, начинающихся на эту букву.

2. Затем мы вводим данные в записную книжку с помощью функции `ЗаписатьВЗаписнуюКнижку`. Она получает фамилию и номер телефона, определяет первую букву фамилии и добавляет запись в словарь.

3. После этого мы запрашиваем фамилию, для которой нужно распечатать номер телефона, с помощью `Console.ReadLine()`.

4. Затем мы проверяем, есть ли записи с фамилиями, начинающимися на эту букву, в словаре. Если есть, то мы получаем список номеров телефонов и перебираем фамилии, чтобы найти совпадение. Если найдено совпадение, мы выводим номер телефона. Если совпадения не найдено, выводим сообщение о том, что фамилии нет в записной книжке.

5. Если же записей на данную букву нет вообще, мы также выводим сообщение об отсутствии фамилии в записной книжке.

Пожалуйста, сообщите мне, если возникнут у вас какие-либо вопросы или нужна дополнительная помощь!
Знаешь ответ?
Задать вопрос
Привет!
hello