Завдання №1
Розробити програму для ведення бази даних, організованої на файлах.
Інформація про людях1. Пошук людей, у яких день народження в заданому для пошуку месяце.1. Прізвище та ім'я (в рядку через пропуск) 1. 2. Номер телефону (число) 2. Пошук людей за першими трьома літерами фаміліі.3. Дата народження (масив з трьох чисел)
1.1 Алгоритм програми
. 2 Тестові набори
№ тестаВводОжідаемий результат15: PetPetrov Roman 985634129 5.2.9024: 2Seleznev Ivan 987654321 12.2.9; Petrov Roman 985634129 5.2.9035: IvaIvanov Petr 981234567 4.7.92
. 3 Код програми
# include lt; stdio.h gt;
# include lt; locale.h gt;
# include lt; Windows.h gt;
# define SIZE 100
# define MAX 1000size_people;
//Структураinformation_of_the_people
{famile [10]; name [10]; number_telephone; date_of_birthday [3];
} people [SIZE];
//Основні функцііcreation_the_data (); see_the_data (); read_the_data_on_the_file ();
//Функції певні заданіемsearch_the_people_of_mounth (); search_the_people_of_birthday ();
//Менюmain (void)
{(LC_CTYPE, laquo;rusraquo;);menu;(laquo;--------------------------------------------------------------------------------raquo;);(laquo;Менюraquo;);(laquo;ntОсновные функції: n1 - Створення записів n2 - Перегляд записів n3 - Зчитування записів з файлу ); ( n tФункціі певні завданням: n4 - Пошук людей за заданим місяцем в даті народження n5 - Пошук людей за першими трьома буквами прізвища ); ( n tФункція виходу: n6 - Вихід з программыnraquo;);(laquo;--------------------------------------------------------------------------------raquo;);(laquo;Поле введення: ); (% i raquo ;, amp;menu);(laquo;--------------------------------------------------------------------------------raquo;);(menu)
{1: _the_data (); system ( cls ); main (); ; 2: _the_data (); system ( cls ); main () ;; 3: _the_data_on_the_file (); system ( cls ); main () ;; 4: _the_people_of_mounth (); system ( cls ); main () ;; 5: _the_people_of_birthday (); system ( cls ); main () ;; 6: 0 ;: ( tОшібка! Некоректний введення даних! n ); system ( pause ); system ( cls ); fflush (stdin); main () ;;
}
}
//1 - Створення запісейcreation_the_data ()
{* fsave;=fopen ( base_of_data.txt raquo ;, wt ); size; ( Введіть кількість людей: ); (scanf (% i raquo ;, amp; size)!=1)
{(stdin); ( tОшібка! Некоректний введення даних! nВведіте коректні дані: );
} _ people=size; ( n ); (int i=0; i lt; size; i ++)
{(% i Введіть прізвище та ім'я: raquo ;, i + 1); (% s% s raquo ;, amp; people [i] .famile, amp; people [i ] .name); ( Введіть номер телефону: ); (% d raquo ;, amp; people [i] .number_telephone); ( Введіть дату народження: ); (% i. % i.% i raquo ;, amp; people [i] .date_of_birthday [0], amp; people [i] .date_of_birthday [1], amp; people [i] .date_of_birthday [2]); (fsave, % s% s% d% i.% i.% i n raquo ;, people [i] .famile, people [i] .name, people [i] .number_telephone, people [i] .date_of_birthday [0], people [ i] .date_of_birthday [1], people [i] .date_of_birthday [2]); ( n );
} (fsave); ( Процес завершився ... n ); ( pause );
}
//2 - Перегляд запісейsee_the_data ()
{( tСпісок даних: n ); (int i=0; i lt; size_people; i ++)
{(% i Прізвище та ім'я:% s% s n raquo ;, i + 1, people [i] .famile, people [i] .name); ( Номер телефону :% d n raquo ;, people [i] .number_telephone); ( Дата народження:% i.% i.% i n raquo ;, people [i] .date_of_birthday [0], people [i] .date_of_birthday [ 1], people [i] .date_of_birthday [2]); ( n );
} ( Процес завершився ... n ); ( pause );
}
//3 - Зчитування записів з файлаread_the_data_on_the_file ()
{i=0; buf [MAX]; * fsave;=fopen ( base_of_data.txt raquo ;, rt ); (! feof (fsave))
{(fsave, % s% s% d% i.% i.% i n raquo ;, people [i] .famile, people [i] .name, amp; people [ i] .number_telephone, amp; people [i] .date_of_birthday [0], amp; people [i] .date_of_birthday [1], amp; people [i] .date_of_birthday [2]); ++;
} (fsave); _ people=i; ( Процес заве...