/
MaestroN
/
Eltex_Homework
Обзор
Документация
Войти
/
MaestroN
/
Eltex_Homework
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Task_4/task4.1.c
112 строк
4 KB
nikita_shub
Добавление четвертого задания
03 дек 2024, 11:16
03 дек 2024, 11:16
3572721
Код
Авторство
О чём код?
#include <stdio.h> #include <string.h> #define MAX_ABONENTS 100 struct abonent { char name[10]; char second_name[10]; char tel[10]; }; struct abonent phonebook[MAX_ABONENTS]; // Массив для хранения абонентов int count = 0; // Счетчик для отслеживания количества абонентов void addabonent(); void delabonent(); void searchabonent(); void printabonent(); int main() { int choice = 0; while (1) { printf("\nМеню:\n"); printf("1) Добавить абонента\n"); printf("2) Удалить абонента\n"); printf("3) Поиск абонентов по имени\n"); printf("4) Вывод всех записей\n"); printf("5) Выход\n"); printf("Выберите пункт меню: "); scanf("%d", &choice); getchar(); // Для захвата символа новой строки после ввода числа switch (choice) { case 1: addabonent(); break; case 2: delabonent(); break; case 3: searchabonent(); break; case 4: printabonent(); break; case 5: printf("\nВыход из программы\n"); return 0; // Завершение программы default: printf("Неверный выбор. Попробуйте снова.\n"); } } } void addabonent() { if (count >= MAX_ABONENTS) { printf("Справочник переполнен. Невозможно добавить абонента.\n"); return; } struct abonent newabonent; printf("Введите имя: "); scanf("%9s", newabonent.name); printf("Введите фамилию: "); scanf("%9s", newabonent.second_name); printf("Введите номер: "); scanf("%9s", newabonent.tel); phonebook[count] = newabonent; // Сохранение нового абонента в массив count++; printf("Абонент добавлен: %s %s %s\n", newabonent.name, newabonent.second_name, newabonent.tel); } void delabonent() { char name[10], second_name[10]; // Массивы для имени и фамилии printf("Введите имя: "); scanf("%9s", name); printf("Введите фамилию: "); scanf("%9s", second_name); for (int i = 0; i < count; i++) { if (strcmp(phonebook[i].name, name) == 0 && strcmp(phonebook[i].second_name, second_name) == 0) { phonebook[i] = (struct abonent){"", "", ""}; // Заполнение нулями printf("Абонент удален.\n"); return; // Выход из функции } } printf("Абонент не найден.\n"); } void searchabonent() { char name[10]; printf("Введите имя: "); scanf("%9s", name); printf("Результаты поиска:\n"); for (int i = 0; i < count; i++) { if (strcmp(phonebook[i].name, name) == 0) { // Сравнение введенных данных с данными в массиве printf("Абонент найден: %s %s %s\n", phonebook[i].name, phonebook[i].second_name, phonebook[i].tel); } } } void printabonent() { printf("Список всех абонентов:\n"); for (int i = 0; i < count; i++) { if (strlen(phonebook[i].name) > 0) { // Проверка, что абонент существует printf("Абонент %d: %s %s %s\n", i + 1, phonebook[i].name, phonebook[i].second_name, phonebook[i].tel); } } }