Проектирование программы для обслуживания баз данных
Задание №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 <stdio.h>
#include <locale.h>
#include <Windows.h>
#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, "rus");menu;("--------------------------------------------------------------------------------");("Меню");("\n\tОсновные функции:\n1 - Создание записей\n2 - Просмотр записей\n3 - Считывание записей из файла");("\n\tФункции определенные заданием:\n4 - Поиск людей за заданным месяцем в дате рождения\n5 - Поиск людей за первыми тремя буквами фамилии");("\n\tФункция выхода:\n6 - Выход из программы\n");("--------------------------------------------------------------------------------");("Поле ввода: ");("%i", &menu);("--------------------------------------------------------------------------------");(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", "wt");size;("Введите количество людей: "); (scanf ("%i", &size) != 1)
{(stdin);("\tОшибка! Некорректный ввод данных!\nВведите корректные данные: ");
}_people = size;("\n");(int i=0; i<size; i++)
{("%i Введите фамилию и имя: ", i+1);("%s %s", &people [i].famile, &people [i].name);("Введите номер телефона: ");("%d", &people [i].number_telephone);("Введите дату рождения: ");("%i.%i.%i", &people [i].date_of_birthday [0], &people [i].date_of_birthday [1], &people [i].date_of_birthday [2]);(fsave, "%s %s %d %i.%i.%i\n", 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<size_people; i++)
{("%i Фамилия и имя: %s %s\n", i+1, people [i].famile, people [i].name);("Номер телефона: %d\n", people [i].number_telephone);("Дата рождения: %i.%i.%i\n", 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", "rt");(!feof (fsave))
{(fsave,"%s %s %d %i.%i.%i\n", 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]);++;
}(fsave);_people=i;("Процесс завершился...\n");("pause");
}
//4 - Поиск людей за заданным месяцем в дате рожденияsearch_the_people_of_mounth ()
{mounth, i;("Введите месяц в дате рождения: ");(scanf ("%i", &mounth) != 1 || mounth > 12)
{(stdin);("\tОшибка! Некорректный ввод данных!\nВведите корректные данные: ");
}("\n\tСписок людей:\n");(i=0; i<size_people; i++)(people [i].date_of_birthday [1] == mounth)
{("%i Фамилия и имя: %s %s\n", i+1, people [i].famile, people [i].name);("Номер телефона: %d\n", people [i].number_telephone);("Дата рождения: %i.%i.%i\n", people [i].date_of_birthday [0], people [i].date_of_birthday [1], people [i].date_of_birthday [2]);("\n");
}("Процесс завершился...\n");("pause");
}
//5 - Поиск людей за первыми тремя буквами фамилииsearch_the_people_of_birthday ()
{famile [5];k, cnt = 0, i;("Введите первые 3-ри буквы фамилии: ");("%s", &famile);(strlen (famile)!=3)
{(stdin);("\tОшибка! Некорректный ввод данных!\nВведите корректные данные: ");("%s", &famile);
}("\n\tСписок людей:\n");(i=0; i<size_people; i++)
{= 0;const la = strlen (people [i].famile);(int t = 0 ; t < la; t++)
{tmp[MAX] = "";(people [i].famile [t] == famile [0])
{j = t;= 0;(people [i].famile [j] == famile [k])
{[k] = people [i].famile [j];++; ++;
}(!(strcmp(famile,tmp)))++;(famile[0] == famile[1])+= strlen(famile) - 1;
}
} (cnt>0)
{("%i Фамилия и имя: %s %s\n", i+1, people [i].famile, people [i].name);("Номер телефона: %d\n", people [i].number_telephone);("Дата рождения: %i.%i.%i\n", people [i].date_of_birthday [0], people [i].date_of_birthday [1], people [i].date_of_birthday [2]);("\n");
}
}("Процесс завершился...\n");("pause");
}
.4 Результат работы программы
№ тестаВвод РезультатВывод1Menu = 5: PetPetrov Roman 985634129 5.2.90Тест пройден2Menu = 4: 2Seleznev Ivan 987654321 12.2.9; Petrov Roman 985634129 5.2.90Тест пройден3Menu = 5: IvaIvanov Petr 981234567 4.7.92Тест пройден
программа информационный алгоритм
1.5 Вывод о работоспособности программы
Программа прошла тестирование: в результате выполнения тестов программа выдала ожидаемые результаты. Программа - работоспособна.
Больше работ по теме:
Предмет: Информационное обеспечение, программирование
Тип работы: Практическое задание
Новости образования
КОНТАКТНЫЙ EMAIL: [email protected]
Скачать реферат © 2017 | Пользовательское соглашение
ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ