СПРАВОЧНИК ПЕРСОНАЛИЙ С ИСПОЛЬЗОВАНИЕМ ЛИНЕЙНОГО СПИСКА.
При помощи линейных списков реализовать приложение,
позволяющее поддерживать список персоналий,
содержащих
- фамилию, имя и отчество (строки текста до 128 символов),
- дату рождения (день, месяц, год),
возраст и короткую запись дня рождения
Данные записаны в файле, при запуске приложения загружаются в память
в виде линейного списка,
при закрытии приложения записываются в файл,
если были сделаны изменения в данных.
Со списком необходимо иметь возможность выполнять следующие операции:
- добавить запись:
- ввести значения полей,
обязательными являются ФИО дата и дата рождения,
возраст и короткую запись даты рождения
заполнить автоматически
- удалить запсиь;
- удалить все записи;
- поиск записи по имени, фамилии,
использовать алгоритм soundex;
- поиск записи по дате рождения или возрасту;
- вывод для найденных записей всей информации;
- сортировка списка по имени абонента;
- сортировка по дате рождения.
Дополнительные сведения:
typedef person {
char *name;
char *first_name;
char *surname;
int age;
int day; char *mon; int year; char *date;
}
PERSON;
Файл с данными персоналий находится каталоге DATABASE;
при создании списка исправить данные о возрасте, т.к. они приведены на момент 2015 года,
установить возраст на момент запуска программы.
Использовать алгоритм soundex (или аналогичный по назначению алгоритм),
переработка из оригинального (английский) в русский вариант.
Поиск последовательным просмотром списка
Проверка введенной информации на корректность (длина строки)
Выделение гласных и согласных для soundex
Функции сравнения имени абонента, номера телефона (в т.ч. по части номера)
Функции-макросы isupper, ispunct, isspace, etc