49027 (Создание базы данных о поездах дальнего следования)

2016-07-30СтудИзба

Описание файла

Документ из архива "Создание базы данных о поездах дальнего следования", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "49027"

Текст из документа "49027"

Федеральное агентство Российской Федерации по атомной энергии

Снежинская государственная физико-техническая академия

КУРСОВОЙ ПРОЕКТ

На тему:

"Создание базы данных о поездах дальнего следования"

Снежинск 2006

Реферат

Мы считаем, что для создания этой программы более эффективно воспользоваться алгоритмом деревьев. Деревья осуществляют более улучшенный способ поиска в отличии от других, и создание самого дерева не составляет труда. Существуют разные деревья: бинарные, m‑арные, сбалансированные, идеально сбалансированные, крупномасштабные и множество других. Для того чтобы выбрать способ, который лучше будет подходить к созданию нашей программы, посмотрим что собой представляют некоторые представители из этого семейства.

1. Описание программы и её модулей

Для удобства пользования в программе реализовано меню. В нем идет описание работы по созданию, чтению дерева, поиску по номеру в дереве, поиску по названию станции.

int main()

{pp=1; T=0;

*menu[0]= «1. Создание дерева»;

*menu[1]= «2. Чтение дерева»;

*menu[2]= «3. Поиск по номеру в дереве»;

*menu[3]= «4. Поиск по названию станции в дереве»;

*menu[4]= «5. Конец работы»;

*menu[5]= «Введите номер строки:»;

clrscr();

}

/*Функция меню*/

Main_Menu(void)

{int ns, s;

flushall();

do

{for (i=0; i

printf («\n % s»,*menu[i]);

printf («\n»);

if (s=((scanf («%d»,&ns)<1)))

{flushall(); clrscr();

printf («\n Ошибка в номере!! Будьте внимательны»);

}

}

while(s);

switch(ns)

{case 1: Crt_Der(); break;

case 2: print_der(kr);

getche();

break;

case 3:

/*Поиск по времени*/

printf («\n Введите номер поезда:»);

int v;

scanf («%d»,&v);

Poisk_nom_p (kr, v); break;

case 4:

/*Поиск по станции назначения*/

int sr/*, fl*/;

char s[20];

printf («\n Введите станцию назначения:»);

scanf («%s», s);

Poisk_st (kr, s); break;

case 5: pp=0;

} return 0;

}

Просмотрим функции для реализации программы:

1) Функция TREE *der (TREE *kr, SISTEMA word)

{if (kr==NULL)

{kr=new TREE;

printf («\n Номер поезда % d», word.nom_p);

printf («\n Станция назначения % s», word.st);

printf («\n Время отправления%.2f», word.vr);

kr->w=word;

kr->c=1;

kr->l=kr->r=NULL;

}

else if (word.nom_p==kr->w.nom_p)

kr->c++;

else if (word.nom_pw.nom_p) kr->l=der (kr->l, word);

else kr->r=der (kr->r, word;

return kr;

)

Функция предназначена для формирования дерева. Если дерево пустое, записываем информацию в вершину. Выделяется память под новый элемент, сравнивается поступившая информация с информацией в узле. Если элементы одинаковы, включается счётчик.

2) Функция void Crt_Der()

{

SISTEMA a;

a.nom_p=0;

while (a.nom_p!=-1)

{

printf («\n Введите номер поезда: (-1 – выход)»);

scanf («%d», &a.nom_p);

if (a.nom_p==-1)

break;

flushall();

{printf («\n Введите название станции:»);

scanf («%s», a.st);

printf («\n Введите время отправления:»);

scanf («%f», &a.vr);

if (a.nom_p!=-1)

kr=der (kr, a);

}

}

}

Функция предназначена для записи в дерево информации и вывод дерева на экран.

3) Функция void print_der (TREE *kr)

{if(kr)

{print_der (kr->l);

printf («\n Номер поезда % d», kr->w.nom_p);

printf («\n Станция назначения % s», kr->w.st);

printf («\n Время отправления%.2f», kr->w.vr);

printf («\n»);

print_der (kr->r);

}

}

Функция предназначена для печати дерева. В print_der (kr->l) используется обход левых ветвей, иначе в print_der (kr->r) обход правых ветвей.

4) Функция int Poisk_nom_p (TREE *d, int v)

{

if (d==NULL)

{

printf («\n \t Элемент с заданным ключом не найден\n»);

return 0;

}

else

{if (v==d->w.nom_p)

{

printf («\n Станция назначения % s», d->w.st);

printf («\n Время отправления%.2f», d->w.vr);

getch();

}

if (vw.nom_p) Poisk_nom_p (d->l, v);

if (v>d->w.nom_p) Poisk_nom_p (d->r, v);

}

Функция предназначена для поиска по номеру поезда. Осуществляется поиск элемента с заданным ключом. Используется рекурсивный обход.

5) Функция int Poisk_st (TREE *d, char s[20])

{int sr, fl;

if (d==NULL)

printf («\n \t Элемент с заданным ключом не найден\n»);

else

{sr=strcmp (s, d->w.st);

if (sr<0)

{q=d;

fl=1;

Poisk_st (d->l, s);

}

else

if (sr>0)

{q=d;

fl=0;

Poisk_st (d->r, s);

}

else

{if (sr==0)

printf («\n Номер поезда % d», kr->w.nom_p);

printf («\n Время отправления%.2f», kr->w.vr);

getch();

}

if (sw.st) Poisk_st (d->l, s);

if (s>d->w.st) Poisk_st (d->r, s);

}

}

Функция предназначена для поиска по названию станции. Осуществляется поиск элемента с заданным ключом. (q=d – сохраняем предыдущую вершину, fl=1 – двигаемся влево,

Poisk_st (d->l, s) – спускаемся влево, fl=0 – двигаемся вправо, Poisk_st (d->l, s) – спускаемся вправо). Используется рекурсивный обход.

2. Программная документация

Техническое задание, определяющее требования, предъявляемые к ПО, необходимые стадии и сроки разработки, виды испытаний

  1. Введение.

Программа «Расписание ж/д 2007» применяется в работе на ж/д вокзалах оператором и обычными пользователями, т.е. людьми.

  1. Основание для разработки.

Разработка этого изделия ведется на основании помощи в работе по легкости создания и введения изменений в расписание поездов дальнего следования.

  1. Назначение разработки.

Функциональное и эксплуатационное назначение программы заключается в выявлении различного рода ошибок, проблем, а также в эффективности работы в любое время суток.

  1. Требования к программе:

    1. Требования к функциональным характеристикам.

Каждая функция отвечает за свою работу, а, следовательно, и за работу программы в целом. Должны быть созданы функции, выполняющие такие действия как: формирование базы данных, запись в базу данных информации и вывод данных из нее на экран, печать базы данных, должен осуществляться поиск по номеру поезда и по названию станции.

Нужно внимательно заполнять входные данные, т.е. названия писать буквами, время – цифрами, причем часы от минут отделять точкой, номера поездов также заполняются цифрами.

    1. Условия эксплуатации.

Вид обслуживания – работа с людьми на ж/д вокзале. Количество персонала зависит только от управляющего, но лучше ему подбирать квалифицированный персонал.

    1. Требования к информационной и программной совместимости.

Программа должна обеспечивать ввод (вывод) данных, как с русского языка, так и с английского. Время вводится (выводится) на экран через точку, которая отделяет часы от минут.

  1. Требования к программной документации.

Программная документация должна содержать такие пункты как: основание для разработки, назначение разработки, определённые требования к программе (к функциональным характеристикам, к условиям эксплуатации, к информационной и программной совместимости и др.), технико-экономические показатели, этапы разработки и порядок контроля и приемки.

  1. Технико-экономические показатели.

С помощью такой программы люди в любое время суток, если даже не работает оператор, могут подойти к экрану монитора, расположенного в удобном месте и посмотреть расписание поездов.

  1. Этапы разработки.

Разрабатывается программа по этапам. Вначале создается база данных о поездах дальнего следования (вводится номер поезда, название станции назначения, время отправления), после обеспечивается ее вывод на экран, далее можно осуществлять поиск по номеру и названию станции.

  1. Порядок контроля и приемки.

Виды испытаний вы можете посмотреть в Приложении 2. Общие требования к приемке работы: отлаженная работа программы, обеспечивающая правильную работу всех пунктов технического задания, т.е. создание базы данных о поездах дальнего следования и обеспечение поиска по номеру поезда и станции назначения.

Программа и методика испытаний

  1. Объект испытаний.

Наименование программного продукта – «Расписание ж/д 2007». Применяется этот продукт может на ж/д вокзалах как оператором, так и простыми людьми. «Расписание ж/д 2007» проходит эксплуатацию в целях упрощения работы обслуживающего персонала.

Техническое задание:

Создать базу данных о поездах дальнего следования. Информация о поезде должна содержать следующие пункты:

  1. Номер поезда

  2. Название станции

  3. Время отправления

Поиск осуществлять по номеру поезда и по названию станции.

  1. Цель проведения испытаний.

В результате испытания происходит выявление ошибок, сбоев, различных погрешностей в работе программы, а также небезразлична и комфортабельность.

  1. Требования к программе.

Проверке должны подлежать данные о поездах дальнего следования, т.е.: номер поезда, название станции и время отправления. Также должен проверяться поиск по номеру поезда и по названию станции назначения. Результаты на экран должны выдаваться все, т.е. независимо от того, сколько поездов идет до этой станции, если такого поезда нет, то должно выдаваться соответствующее сообщение.

  1. Требования к программной документации.

Состав программной документации состоит из объекта испытаний, который и включает в себя техническое задание, цели проведения испытаний, определенных требований к программе и список порядка проведения испытаний.

  1. Порядок проведения испытаний.

    1. Создание базы данных о поездах дальнего следования.

    2. Просмотр полученной информации.

    3. Осуществить поиск в базе данных по номеру поезда.

    4. Осуществить поиск в базе данных по названию станции назначения.

Текст программы

Текст программы с подробными комментариями мы можем просмотреть в Приложении 1. Посмотрим назначение главных функций:

  1. Функция TREE *der (TREE *kr, SISTEMA word) – предназначена для формирования дерева. Если дерево пустое, записываем информацию в вершину. Выделяется память под новый элемент, сравнивается поступившая информация с информацией в узле. Если элементы одинаковы, включается счётчик.

  2. Функция void Crt_Der() – предназначена для записи в дерево информации и вывод дерева на экран.

  3. Функция void print_der (TREE *kr) – предназначена для печати дерева.

  4. Функция int Poisk_nom_p (TREE *d, int v) – предназначена для поиска по номеру поезда.

  5. Функция int Poisk_st (TREE *d, char s[20]) – предназначена для поиска по названию станции.

Описание программы, в которой содержатся сведения о логической структуре и функционировании ПО

  1. Общие сведения.

Программа называется «Расписание ж/д 2007». Язык программирования, на котором написана программа – С++.

  1. Функциональное назначение.

Классы решаемых задач:

    1. Создание базы данных о поездах дальнего следования.

    2. Чтение базы данных.

    3. Поиск по номеру поезда.

    4. Поиск по названию станции назначения.

  1. Описание логической структуры.

    1. Функция void Crt_Der() – предназначена для записи в дерево информации и вывод дерева на экран.

3.2. Функция void print_der (TREE *kr) – предназначена для печати дерева.

    1. Функция int Poisk_nom_p (TREE *d, int v) – предназначена для поиска по номеру поезда.

3.4. Функция int Poisk_st (TREE *d, char s[20]) – предназначена для поиска по названию станции.

  1. Входные данные.

Должны быть введены такие данные как: номер поезда, станция назначения, время отправления:

Введите номер поезда: (-1 – выход) 2

Введите название станции: Moskva

Введите время отправления: 13.05

  1. Выходные данные.

Должны соответствовать входным данным:

Номер поезда 2

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Нет! Мы не выполняем работы на заказ, однако Вы можете попросить что-то выложить в наших социальных сетях.
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
4121
Авторов
на СтудИзбе
667
Средний доход
с одного платного файла
Обучение Подробнее