/
MaestroN
/
Eltex_Homework
Обзор
Документация
Войти
/
MaestroN
/
Eltex_Homework
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Task_5/task5.1.c
112 строк
4 KB
nikita_shub
Добавление задания 5
04 янв 2025, 16:23
04 янв 2025, 16:23
bebd44b
Код
Авторство
О чём код?
#include <stdio.h> #include <string.h> #define MAX_ABONENTS 100 #define NAME_LENGTH 10 #define TEL_LENGTH 10 // Массивы для хранения данных абонентов char names[MAX_ABONENTS][NAME_LENGTH]; char second_names[MAX_ABONENTS][NAME_LENGTH]; char tels[MAX_ABONENTS][TEL_LENGTH]; 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; } printf("Введите имя: "); scanf("%9s", names[count]); printf("Введите фамилию: "); scanf("%9s", second_names[count]); printf("Введите номер: "); scanf("%9s", tels[count]); printf("Абонент добавлен: %s %s %s\n", names[count], second_names[count], tels[count]); count++; } void delabonent() { char name[NAME_LENGTH], second_name[NAME_LENGTH]; // Массивы для имени и фамилии printf("Введите имя: "); scanf("%9s", name); printf("Введите фамилию: "); scanf("%9s", second_name); for (int i = 0; i < count; i++) { if (strcmp(names[i], name) == 0 && strcmp(second_names[i], second_name) == 0) { // Удаление абонента путем очистки данных strcpy(names[i], ""); strcpy(second_names[i], ""); strcpy(tels[i], ""); printf("Абонент удален.\n"); return; // Выход из функции } } printf("Абонент не найден.\n"); } void searchabonent() { char name[NAME_LENGTH]; printf("Введите имя: "); scanf("%9s", name); printf("Результаты поиска:\n"); for (int i = 0; i < count; i++) { if (strcmp(names[i], name) == 0) { // Сравнение введенных данных с данными в массиве printf("Абонент найден: %s %s %s\n", names[i], second_names[i], tels[i]); } } } void printabonent() { printf("Список всех абонентов:\n"); for (int i = 0; i < count; i++) { if (strlen(names[i]) > 0) { // Проверка, что абонент существует printf("Абонент %d: %s %s %s\n", i + 1, names[i], second_names[i], tels[i]); } } }