Проектирование программы для обслуживания баз данных
Особенности разработки программы для ведения автоматизированной базы данных, организованной на информационных файлах. Тестовые наборы, проектирование кода программы. Принципы проведения испытаний и принципы проверки алгоритма на работоспособность.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 23.11.2014 |
Размер файла | 1,6 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Задание №1
Разработать программу для ведения базы данных, организованной на файлах.
Информация о людях |
1. Поиск людей, у которых день рождения в заданном для поиска месяце. |
|
1. Фамилия и имя (в строке через пробел) |
1. |
|
2. Номер телефона (число) |
2. Поиск людей по первым трем буквам фамилии. |
|
3. Дата рождения (массив из трех чисел) |
1.1 Алгоритм программы
1.2 Тестовые наборы
№ теста |
Ввод |
Ожидаемый результат |
|
1 |
5: Pet |
Petrov Roman 985634129 5.2.90 |
|
2 |
4: 2 |
Seleznev Ivan 987654321 12.2.9; Petrov Roman 985634129 5.2.90 |
|
3 |
5: Iva |
Ivanov Petr 981234567 4.7.92 |
1.3 Код программы
#include <stdio.h>
#include <locale.h>
#include <Windows.h>
#define SIZE 100
#define MAX 1000
int size_people;
//Структура
struct information_of_the_people
{
char famile [10];
char name [10];
double number_telephone;
int date_of_birthday [3];
} people [SIZE];
//Основные функции
void creation_the_data ();
void see_the_data ();
void read_the_data_on_the_file ();
//Функции определенные заданием
void search_the_people_of_mounth ();
void search_the_people_of_birthday ();
//Меню
int main (void)
{
setlocale (LC_CTYPE, "rus");
int menu;
printf ("--------------------------------------------------------------------------------");
printf ("Меню");
printf ("\n\tОсновные функции:\n1 - Создание записей\n2 - Просмотр записей\n3 - Считывание записей из файла");
printf ("\n\tФункции определенные заданием:\n4 - Поиск людей за заданным месяцем в дате рождения\n5 - Поиск людей за первыми тремя буквами фамилии");
printf ("\n\tФункция выхода:\n6 - Выход из программы\n");
printf ("--------------------------------------------------------------------------------");
printf ("Поле ввода: ");
scanf ("%i", &menu);
printf ("--------------------------------------------------------------------------------");
switch (menu)
{
case 1:
creation_the_data (); system ("cls"); main ();
break;
case 2:
see_the_data (); system ("cls"); main ();
break;
case 3:
read_the_data_on_the_file (); system ("cls"); main ();
break;
case 4:
search_the_people_of_mounth (); system ("cls"); main ();
break;
case 5:
search_the_people_of_birthday (); system ("cls"); main ();
break;
case 6:
return 0;
default:
printf ("\tОшибка! Некорректный ввод данных!\n"); system ("pause"); system ("cls"); fflush (stdin); main ();
break;
}
}
//1 - Создание записей
void creation_the_data ()
{
FILE *fsave;
fsave=fopen ("base_of_data.txt", "wt");
int size;
printf ("Введите количество людей: ");
while (scanf ("%i", &size) != 1)
{
fflush (stdin);
printf ("\tОшибка! Некорректный ввод данных!\nВведите корректные данные: ");
}
size_people = size;
printf ("\n");
for (int i=0; i<size; i++)
{
printf ("%i Введите фамилию и имя: ", i+1);
scanf ("%s %s", &people [i].famile, &people [i].name);
printf ("Введите номер телефона: ");
scanf ("%d", &people [i].number_telephone);
printf ("Введите дату рождения: ");
scanf ("%i.%i.%i", &people [i].date_of_birthday [0], &people [i].date_of_birthday [1], &people [i].date_of_birthday [2]);
fprintf (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]);
printf ("\n");
}
fclose (fsave);
printf ("Процесс завершился...\n");
system ("pause");
}
//2 - Просмотр записей
void see_the_data ()
{
printf ("\tСписок данных:\n");
for (int i=0; i<size_people; i++)
{
printf ("%i Фамилия и имя: %s %s\n", i+1, people [i].famile, people [i].name);
printf ("Номер телефона: %d\n", people [i].number_telephone);
printf ("Дата рождения: %i.%i.%i\n", people [i].date_of_birthday [0], people [i].date_of_birthday [1], people [i].date_of_birthday [2]);
printf ("\n");
}
printf ("Процесс завершился...\n");
system ("pause");
}
//3 - Считывание записей из файла
void read_the_data_on_the_file ()
{
int i=0;
char buf [MAX];
FILE *fsave;
fsave=fopen ("base_of_data.txt", "rt");
while (!feof (fsave))
{
fscanf(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]);
i++;
}
fclose (fsave);
size_people=i;
printf ("Процесс завершился...\n");
system ("pause");
}
//4 - Поиск людей за заданным месяцем в дате рождения
void search_the_people_of_mounth ()
{
int mounth, i;
printf ("Введите месяц в дате рождения: ");
while (scanf ("%i", &mounth) != 1 || mounth > 12)
{
fflush (stdin);
printf ("\tОшибка! Некорректный ввод данных!\nВведите корректные данные: ");
}
printf ("\n\tСписок людей:\n");
for (i=0; i<size_people; i++)
if (people [i].date_of_birthday [1] == mounth)
{
printf ("%i Фамилия и имя: %s %s\n", i+1, people [i].famile, people [i].name);
printf ("Номер телефона: %d\n", people [i].number_telephone);
printf ("Дата рождения: %i.%i.%i\n", people [i].date_of_birthday [0], people [i].date_of_birthday [1], people [i].date_of_birthday [2]);
printf ("\n");
}
printf ("Процесс завершился...\n");
system ("pause");
}
//5 - Поиск людей за первыми тремя буквами фамилии
void search_the_people_of_birthday ()
{
char famile [5];
int k, cnt = 0, i;
printf ("Введите первые 3-ри буквы фамилии: ");
scanf ("%s", &famile);
while (strlen (famile)!=3)
{
fflush (stdin);
printf ("\tОшибка! Некорректный ввод данных!\nВведите корректные данные: ");
scanf ("%s", &famile);
}
printf ("\n\tСписок людей:\n");
for (i=0; i<size_people; i++)
{
cnt = 0;
int const la = strlen (people [i].famile);
for (int t = 0 ; t < la; t++)
{
char tmp[MAX] = "";
if (people [i].famile [t] == famile [0])
{
int j = t;
k = 0;
while (people [i].famile [j] == famile [k])
{
tmp[k] = people [i].famile [j];
j++;
k++;
}
if (!(strcmp(famile,tmp)))
cnt++;
if (famile[0] == famile[1])
t += strlen(famile) - 1;
}
}
if (cnt>0)
{
printf ("%i Фамилия и имя: %s %s\n", i+1, people [i].famile, people [i].name);
printf ("Номер телефона: %d\n", people [i].number_telephone);
printf ("Дата рождения: %i.%i.%i\n", people [i].date_of_birthday [0], people [i].date_of_birthday [1], people [i].date_of_birthday [2]);
printf ("\n");
}
}
printf ("Процесс завершился...\n");
system ("pause");
}
1.4 Результат работы программы
№ теста |
Ввод |
Результат |
Вывод |
|
1 |
Menu = 5: Pet |
Petrov Roman 985634129 5.2.90 |
Тест пройден |
|
2 |
Menu = 4: 2 |
Seleznev Ivan 987654321 12.2.9; Petrov Roman 985634129 5.2.90 |
Тест пройден |
|
3 |
Menu = 5: Iva |
Ivanov Petr 981234567 4.7.92 |
Тест пройден |
программа информационный алгоритм
1.5 Вывод о работоспособности программы
Программа прошла тестирование: в результате выполнения тестов программа выдала ожидаемые результаты. Программа - работоспособна.
Размещено на Allbest.ru
Подобные документы
Преимущества использования электронных каталогов. Структурное и функциональное проектирование компьютерной программы. Особенности процесса загрузка базы данных книг, сохранение базы данных. Вывод каталога книг на экран, меню сортировки программы.
контрольная работа [94,5 K], добавлен 24.12.2017Основные этапы разработки и внедрения программного обеспечения. Понятие, функции и классификация баз данных. Проектирование базы данных "Библиотека" для ведения картотеки и учета выдачи книг. Пользовательский интерфейс программы, методика ее тестирования.
дипломная работа [2,6 M], добавлен 09.06.2012Проектирование структуры базы данных. Технология обработки данных. Порядок установки и запуска программы. Описание объектов приложения и структура данных. Ввод и изменение исходных данных. Получение выходных документов и тестирование программы.
отчет по практике [2,3 M], добавлен 22.07.2012Проектирование базы данных, отражающей информацию о поездах дальнего следования с использованием алгоритма деревьев. Разновидности деревьев и принцип выбора оптимального из них для создания программы. Модули программы и их функции, анализ работы ПО.
курсовая работа [28,1 K], добавлен 11.07.2009Проектирование базы данных с использованием комплекса программных и языковых средств Microsoft Access. Модель данных, доступ к ним. Назначение, основные возможности и версии Access. Запуск программы; окно базы данных, формы для их ввода и редактирования.
курсовая работа [1,1 M], добавлен 30.12.2014Решение задач синтаксического анализа простой программы. Алгоритм нахождения синтаксических ошибок в ее тексте. Вывод данных о местоположении ошибки. Проектирование программы анализа арифметического выражения и методы проверки его на сумму или разность.
курсовая работа [2,6 M], добавлен 01.07.2011Основные области проектирования информационных систем: базы данных, программы (выполнение к запросам данных), топология сети, конфигурации аппаратных средств. Модели жизненного цикла программного обеспечения. Этапы проектирования информационной системы.
реферат [36,1 K], добавлен 29.04.2010Разработка программы, создающей и управляющей базой данных, ее реализация на языке Turbo Pascal. Организация алгоритма программы. Вывод информации и возможность добавления информации в базу данных. Поиск информации в базе данных по заданному значению.
курсовая работа [26,7 K], добавлен 19.06.2010Разработка и описание предметной области программы. Проектирование и структура базы данных в СУБД MYSQL. Формулирование алгоритма на языке С++. Возможности применения программы, ее функциональные особенности и назначение, перспективы использования.
курсовая работа [854,5 K], добавлен 30.05.2013Использование класса статических массивов структур и базы данных "ODER" при создании программы на языке С++. Основные формы выдачи результатов. Технические и программные средства. Тесты для проверки работоспособности алгоритма создания программы.
курсовая работа [1,1 M], добавлен 17.03.2015