2. Описание задачи.
Задача реализована с помощью меню в котором описаны начальные данные о:
1) Создание базы данных о поездах дальнего следования.
2) Просмотр полученной информации.
1) Осуществить поиск в базе данных по номеру поезда.
Осуществить поиск в базе данных по названию станции назначения.
Эти пункты более подробно объяснены в Приложении 1.
3. Входные и выходные данные.
Если посмотреть, как работает программа (пример ее реализации показан в Приложении 2), то можно убедиться что выходные данные полностью соответствуют входным, а это значит что программа работает корректно.
Заключение
В нашем случае мы использовали для написания программы двоичное дерево поиска. Закрепили теоретические знания и приобрели практические навыки по изучаемой дисциплине при разработке программного обеспечения для организации работы ж/д вокзала. А также выполнили задачи курсового проектирования:
– изучили особенности работы вокзала;
– анализировали возможные подходы и методы решения с обоснованием выбранного подхода;
– выбрали модель, необходимую для достижения цели;
– выбрали эффективные алгоритмы с учетом их точности, устойчивости, сходимости;
– разработали программное обеспечение;
– анализировали полученные результаты работы ПО.
Так как людям стало удобнее получать деньги и класть денежные средства на мобильные телефоны через банкоматы, то большая перспектива лежит в дальнейшем развитии «Расписание ж/д 2007». Это будет более удобный вариант для просмотра информации, не будет создаваться больших очередей возле касс, для того чтобы только спросить, оператору удобнее смотреть на экран и оповещать зал ожидания.
Литература
1. Герберт Шилдт Теория и практика на С++: пер. с англ. – СПб.: BNV – Санктл-Петербург, 1996.-416 с.
2. Павловская Т.А. С/С++. Программирование на языке высокого уровня – СПб: Питер, 2004. – 461 с.: ил.
3. Хусаинов Б.С. Структуры и алгоритмы обработки данных. Примеры на языке Си: Учеб. пособие. – Финансы и статика, 2004. – 464 с.: ил. Березин Б.И.
4. Березин С.Б. Начальный курс С и С++ – М.: ДИАЛОГ – МИФИ, 1996 – 288 с.
5. Кузин А.В. Базы данных: Учеб. пособие для студ. высш. учеб. заведений / А.В. Кузин, С.В. Левонисова. – М.: Издательский центр «Академия», 2005. – 320 с. ISBN 5–7695–1796–4
Приложение 1
Программа:
#include<stdio.h>
#include<conio.h>
#include<alloc.h>
#include<string.h>
#include<io.h>
#define k 5
#define TREE struct der
struct SISTEMA
{char st[20]; // станция назначения
int nom_p; // nom_p‑номер поезда
float vr; //vr‑время отправления
};
TREE
{SISTEMA w;
int c; // счетчик повторяющихся элементов
TREE *l; // ссылка влево
TREE *r; // ссылка вправо
};
TREE *q,*pr,*nom,*kr=0; // ссылки на корень дерева
SISTEMA *T;
char *menu[k] [60];
int i, pp, m; char key[20]; char name[20];
int Main_Menu(void); // функция меню
int Poisk_nom_p (TREE *d, int v); // поиск по номеру поезда
TREE *der (TREE *kr, SISTEMA word); // формирование дерева
void Crt_Der(); // Запись в дерево информации и вывод дерева на экран
void print_der (TREE *kr); // Печать дерева
int Poisk_st (TREE *d, char s[20]); // поиск по станции назначения
int main()
{pp=1; T=0;
*menu[0]= «1. Создание дерева»;
*menu[1]= «2. Чтение дерева»;
*menu[2]= «3. Поиск по номеру в дереве»;
*menu[3]= «4. Поиск по названию станции в дереве»;
*menu[4]= «5. Конец работы»;
*menu[5]= «Введите номер строки:»;
clrscr();
printf (« «Расписание ж/д 2007»\n»);
while(pp)
{Main_Menu();
clrscr();
}
printf («Конец работы с деревьями\n»);
return 0;
}
/*Функция меню*/
Main_Menu(void)
{int ns, s;
flushall();
do
{for (i=0; i<k; 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;
}
/*Формирование дерева*/
TREE *der (TREE *kr, SISTEMA word)
{if (kr==NULL) // дерево пустое, записываем информацию в вершину
{kr=new TREE; // выделяется память под новый элемент
//printf («\n % d % s%.2f», word.nom_p, word.st, word.vr);
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_p<kr->w.nom_p) kr->l=der (kr->l, word); // пока не встретится 0
else kr->r=der (kr->r, word); // иначе вправо
return kr;
}
/*Запись в дерево информации и вывод дерева на экран*/
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);
}
}
}
/*Печать дерева*/
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); // обход правых ветвей
}
}
/*Поиск по номеру поезда*/
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);
// print_der(kr);
getch();
}
/*Рекурсивный обход*/
if (v<d->w.nom_p) Poisk_nom_p (d->l, v);
if (v>d->w.nom_p) Poisk_nom_p (d->r, v);
}
}
/*Поиск по названию станции*/
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 (s<d->w.st) Poisk_st (d->l, s);
if (s>d->w.st) Poisk_st (d->r, s);
}
}
... в меню Сервис выберем Параметры запуска и в появившемся окне проставим необходимые параметры (рисунок 23). Рисунок 23. Установка параметров для формы Главная кнопочная 3. ИНСТРУКЦИЯ ПОЛЬЗОВАТЕЛЯ Данная база данных разработана по расписанию поездов. Она обеспечивает сведения об отдельно взятом поезде и параметрах его передвижения. Открываем базу данных Курсовая работа Бороткиной Юлии. ...
... потоки, которые надо использовать в работе. В заключительном разделе описывается созданная база данных, её интерфейс, программные модули и технические требования для её использования на персональном компьютере. 1 Аналитическая часть 1.1 Основные задачи предметной области Перевозка пассажиров на железнодорожном транспорте является актуальной проблемой на сегодняшний день, так как продажа ...
... мире. Внутренняя схема - это сама база данных. Отсюда вытекают основные этапы, на которые разбивается процесс проектирования базы данных информационной системы: Концептуальное проектирование - сбор, анализ и редактирование требований к данным. Для этого осуществляются следующие мероприятия: обследование предметной области, изучение ее информационной структуры выявление всех фрагментов, каждый ...
... платные видеосалоны. Примечание В п. 2.5 указаны цены 1987 года Заключение Памятка для проводников пассажирских вагонов дальнего следования: “О санитарных требованиях к внутренней уборки вагонов в пути следования” Для поддержки чистоты и соблюдения санитарных норм и правил в пути следования, проводнику пассажирского вагона необходимо проводить регулярную уборку салона вагона, ...
0 комментариев