49027 (Создание базы данных о поездах дальнего следования)
Описание файла
Документ из архива "Создание базы данных о поездах дальнего следования", который расположен в категории "". Всё это находится в предмете "информатика" из 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. Программная документация Техническое задание, определяющее требования, предъявляемые к ПО, необходимые стадии и сроки разработки, виды испытаний Введение. Программа «Расписание ж/д 2007» применяется в работе на ж/д вокзалах оператором и обычными пользователями, т.е. людьми. Основание для разработки. Разработка этого изделия ведется на основании помощи в работе по легкости создания и введения изменений в расписание поездов дальнего следования. Назначение разработки. Функциональное и эксплуатационное назначение программы заключается в выявлении различного рода ошибок, проблем, а также в эффективности работы в любое время суток. Требования к программе: Требования к функциональным характеристикам. Каждая функция отвечает за свою работу, а, следовательно, и за работу программы в целом. Должны быть созданы функции, выполняющие такие действия как: формирование базы данных, запись в базу данных информации и вывод данных из нее на экран, печать базы данных, должен осуществляться поиск по номеру поезда и по названию станции. Нужно внимательно заполнять входные данные, т.е. названия писать буквами, время – цифрами, причем часы от минут отделять точкой, номера поездов также заполняются цифрами. Условия эксплуатации. Вид обслуживания – работа с людьми на ж/д вокзале. Количество персонала зависит только от управляющего, но лучше ему подбирать квалифицированный персонал. Требования к информационной и программной совместимости. Программа должна обеспечивать ввод (вывод) данных, как с русского языка, так и с английского. Время вводится (выводится) на экран через точку, которая отделяет часы от минут. Требования к программной документации. Программная документация должна содержать такие пункты как: основание для разработки, назначение разработки, определённые требования к программе (к функциональным характеристикам, к условиям эксплуатации, к информационной и программной совместимости и др.), технико-экономические показатели, этапы разработки и порядок контроля и приемки. Технико-экономические показатели. С помощью такой программы люди в любое время суток, если даже не работает оператор, могут подойти к экрану монитора, расположенного в удобном месте и посмотреть расписание поездов. Этапы разработки. Разрабатывается программа по этапам. Вначале создается база данных о поездах дальнего следования (вводится номер поезда, название станции назначения, время отправления), после обеспечивается ее вывод на экран, далее можно осуществлять поиск по номеру и названию станции. Порядок контроля и приемки. Виды испытаний вы можете посмотреть в Приложении 2. Общие требования к приемке работы: отлаженная работа программы, обеспечивающая правильную работу всех пунктов технического задания, т.е. создание базы данных о поездах дальнего следования и обеспечение поиска по номеру поезда и станции назначения. Программа и методика испытаний Объект испытаний. Наименование программного продукта – «Расписание ж/д 2007». Применяется этот продукт может на ж/д вокзалах как оператором, так и простыми людьми. «Расписание ж/д 2007» проходит эксплуатацию в целях упрощения работы обслуживающего персонала. Техническое задание: Создать базу данных о поездах дальнего следования. Информация о поезде должна содержать следующие пункты: Номер поезда Название станции Время отправления Поиск осуществлять по номеру поезда и по названию станции. Цель проведения испытаний. В результате испытания происходит выявление ошибок, сбоев, различных погрешностей в работе программы, а также небезразлична и комфортабельность. Требования к программе. Проверке должны подлежать данные о поездах дальнего следования, т.е.: номер поезда, название станции и время отправления. Также должен проверяться поиск по номеру поезда и по названию станции назначения. Результаты на экран должны выдаваться все, т.е. независимо от того, сколько поездов идет до этой станции, если такого поезда нет, то должно выдаваться соответствующее сообщение. Требования к программной документации. Состав программной документации состоит из объекта испытаний, который и включает в себя техническое задание, цели проведения испытаний, определенных требований к программе и список порядка проведения испытаний. Порядок проведения испытаний. Создание базы данных о поездах дальнего следования. Просмотр полученной информации. Осуществить поиск в базе данных по номеру поезда. Осуществить поиск в базе данных по названию станции назначения. Текст программы Текст программы с подробными комментариями мы можем просмотреть в Приложении 1. Посмотрим назначение главных функций: Функция TREE *der (TREE *kr, SISTEMA word) – предназначена для формирования дерева. Если дерево пустое, записываем информацию в вершину. Выделяется память под новый элемент, сравнивается поступившая информация с информацией в узле. Если элементы одинаковы, включается счётчик. Функция void Crt_Der() – предназначена для записи в дерево информации и вывод дерева на экран. Функция void print_der (TREE *kr) – предназначена для печати дерева. Функция int Poisk_nom_p (TREE *d, int v) – предназначена для поиска по номеру поезда. Функция int Poisk_st (TREE *d, char s[20]) – предназначена для поиска по названию станции. Описание программы, в которой содержатся сведения о логической структуре и функционировании ПО Общие сведения. Программа называется «Расписание ж/д 2007». Язык программирования, на котором написана программа – С++. Функциональное назначение. Классы решаемых задач: Создание базы данных о поездах дальнего следования. Чтение базы данных. Поиск по номеру поезда. Поиск по названию станции назначения. Описание логической структуры. Функция void Crt_Der() – предназначена для записи в дерево информации и вывод дерева на экран. 3.2. Функция void print_der (TREE *kr) – предназначена для печати дерева. Функция int Poisk_nom_p (TREE *d, int v) – предназначена для поиска по номеру поезда. 3.4. Функция int Poisk_st (TREE *d, char s[20]) – предназначена для поиска по названию станции. Входные данные. Должны быть введены такие данные как: номер поезда, станция назначения, время отправления: Введите номер поезда: (-1 – выход) 2 Введите название станции: Moskva Введите время отправления: 13.05 Выходные данные. Должны соответствовать входным данным: Номер поезда 2