Проектирование программы для обслуживания баз данных

Особенности разработки программы для ведения автоматизированной базы данных, организованной на информационных файлах. Тестовые наборы, проектирование кода программы. Принципы проведения испытаний и принципы проверки алгоритма на работоспособность.

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык русский
Дата добавления 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.