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

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

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

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

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

Текст 3 страницы из документа "49027"

printf (« «Расписание ж/д 2007»\n»);

while(pp)

{Main_Menu();

clrscr();

}

printf («Конец работы с деревьями\n»);

return 0;

}

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

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;

}

/*Формирование дерева*/

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_pw.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 (vw.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 (sw.st) Poisk_st (d->l, s);

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

}

}

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