Алгоритми і структури даних

Опис структури з ім'ям Timetable, що містить поля Nazv, Numr, Date, Time. Створення та апробація програми для впорядкування записів за номерами поїздів та виведення на екран інформації про поїзди, дата відправлення яких уведена з допомогою клавіатури.

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык украинский
Дата добавления 11.10.2016
Размер файла 654,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Лабораторна робота

Тема: «Алгоритми і структури даних»

Кіровоград 2016

Завдання

? Описати структуру з ім'ям TIMETABLE, що містить наступні поля: NAZV - назва пункту призначення, NUMR - номер поїзда, DATE- дата відправлення, TIME- час відправлення. Написати прогрум, що окремими функціями виконує наступні дії:

- виведення з клавіатури даних у масив TRAIN, що складається з N структур типу TIMETABLE;

- впорядкування записів за номерами поїздів;

- виведення на екран інформації про поїзди, дата відправлення яких уведена з клавіатури; якщо таких поїздів немаеє, то вивести відповідне повідомлення.

інформація програма екран поїзд

Код програми

Index (головна сторінка)

<form action=”/search” method="post">

Дата: <input type="date" name="date">

<input type="submit" value="Искать по дате!">

</form>

<?php if($trains != null): ?>

<h1> Все поезда: </h1>

<?php foreach($trains as $key => $value): ?>

<p>

Название: <?= $value->getNazv(); ?> <br>

Номер: <?= $value->getNumr(); ?> <br>

Дата: <?= $value->getDate(); ?>

Время: <?= $value->getTime(); ?>

<br><br><br>

</p>

<?php endforeach; ?>

<?php else: ?>

<p> Поездов нет! </p>

<?php endif;?>

Application (клас)

protected function indexControllerMethodGet()

{

$train = new Train();

$allTrains = $train->getAllTrains();

return $this->render('index.php', ['title' => 'главная страница', 'trains' => $allTrains]);

}

protected function addTrainControllerMethodGet()

{

return $this->render('addTrain.php', ['title' => 'добавить поезд']);

}

protected function addTrainControllerMethodPost()

{

$timeTable = new TimeTable($_POST['nazv'], $_POST['numr'], $_POST['date'], $_POST['time']);

$train = new Train();

$train->addTrain($timeTable);

return header('Location: /');

}

protected function searchByDateControllerMethodPost()

{

$date = $_POST['date'];

if($date != null) {

$train = new Train();

$allTrains = $train->getAllTrains();

$searchArray = [];

$count = (count($allTrains)) - 1;

for ($i = 0; $i <= $count; $i++) {

if ($allTrains[$i]->getDate() == $date)

$searchArray[] = $allTrains[$i];

}

return $this->render('search.php', ['title' => 'Поиск за '. $date, 'date' => $date, 'trains' => $searchArray]);

} else return header('Location: /');

}

private function route()

{

$method = $_SERVER['REQUEST_METHOD'];

$uri = $_SERVER['REQUEST_URI'];

if(($uri == '/') and ($method == 'GET'))

return $this->indexControllerMethodGet();

if(($uri == '/add/train') and ($method == 'GET'))

return $this->addTrainControllerMethodGet();

if(($uri == '/add/train') and ($method == 'POST'))

return $this->addTrainControllerMethodPost();

if(($uri == '/search/by/date') and ($method == 'POST'))

return $this->searchByDateControllerMethodPost();

}

private function render($child, array $variables)

{

extract($variables);

include_once BASE. '/view/layout.php';

}

}

TIMETABLE (клас)

<?php

class TimeTable

{

public function __construct($nazv, $numr, $date, $time)

{

$this->nazv = $nazv;

$this->numr = $numr;

$this->date = $date;

$this->time = $time;

}

public function getNazv()

{

return $this->nazv;

}

public function getNumr()

{

return $this->numr;

}

public function getDate()

{

return $this->date;

}

public function getTime()

{

return $this->time;

}

public function getAllData()

{

return $this->nazv.'?'. $this->numr. '?'. $this->date. '?'. $this->time. PHP_EOL;

}

}

Train (клас)

<?php

class Train

{

protected $trains = [];

public function addTrain(TimeTable $timeTable)

{

$file = fopen(BASE. '/trains.txt', 'a+');

$str = $timeTable->getAllData();

fputs($file, $str);

}

public function getAllTrains()

{

$fileArray = file(BASE. '/trains.txt');

$count = (count($fileArray)) - 1;

for($i = 0; $i <= $count; $i++) {

$exp = explode('?', $fileArray[$i]);

$nazv = $exp[0];

$numr = $exp[1];

$date = $exp[2];

$time = $exp[3];

$this->trains[] = new TimeTable($nazv, $numr, $date, $time);

}

return $this->trains;

}

}

Train (вид)

<form action="/add/train" method="post">

Название: <input type="text" name="nazv">

<br>

Номер: <input type="number" name="numr">

<br>

Дата: <input type="date" name="date">

<br>

Время: <input type="time" name="time">

<br>

<input type="submit" value="Добавить">

</form>

<br>

<a href="/"> Назад </a>

Layout (шаблон)

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title> <?= $title; ?> </title>

</head>

<body>

<?php include_once BASE. '/'. 'view/'. $child; ?>

</body>

</html>

Search (поиск)

<a href="/add/train"> Добавить поезд </a><br>

<a href="/"> На главную </a> <br>

<form action="/search/by/date" method="post">

Дата: <input type="date" name="date">

<input type="submit" value="Искать по дате!">

</form>

<?php if($trains != null): ?>

<h1> Все поезда, за <?= $date; ?> </h1>

<?php foreach($trains as $key => $value): ?>

<p>

Название: <?= $value->getNazv(); ?> <br>

Номер: <?= $value->getNumr(); ?> <br>

Дата: <?= $value->getDate(); ?>

Время: <?= $value->getTime(); ?>

<br><br><br>

</p>

<?php endforeach; ?>

<?php else: ?>

<p> Данных по поездам за <?= $date; ?>, не обнаружено! </p>

<?php endif;?>

Index (вхідна точка)

<?php

spl_autoload_register(function($class){

$path = 'vendor/'. $class. '.php';

if(is_file($path))

include_once 'vendor/'. $class. '.php';

else

throw new ClassNotFoundException("Class not found!");

});

include_once 'vendor/Exceptions/ClassNotFoundException.php';

try {

define('BASE', __DIR__);

new Application();

} catch (ClassNotFoundException $notFound)

{

echo $notFound->getMessage();

}

Блок-схема програми

Ось як виглядає програма.

Для того, щоб здійснити пошук нам потрібно в календарі вибрати число.

Ось що буде після пошуку (ми обрали 24.04 и в нас появився список за цей день)

А якщо в цей день немає рейсів, то у нас буду таке повідомлення:

Далі будемо добавяти рейси.

Результат після заповнення:

Висновок: За допомогою цієї лабораторної роботи я згадала класи та пізнала багато нового. Адже я обрала для написання програми майже нову для мене мову програмування.

Размещено на Allbest.ru


Подобные документы

  • Створення програми, яка друкує в вікно інформацію про натискання клавіш на клавіатурі в таблицю. Функція виведення назви отриманого програмою повідомлення від клавіатури та певних додаткових даних. Обробка інформації, неопрацьованої віконною процедурою.

    лабораторная работа [17,9 K], добавлен 14.05.2011

  • Створення програми, що видає результати голосування та підсумки виборів. Алгоритм розробки програми. Опис структури даних та вимоги до них, стандартних процедур та функцій, файлів та їх призначення. Приклад тестування та результати роботи програми.

    курсовая работа [1,0 M], добавлен 28.06.2012

  • Розробка програми-інтерпретатора функцій командного процесора DOS: TIME, DATE, DIR, CD, MD, RD на мові Асемблера. Функціональні модулі, процедури та макроси, які використовуються в програмі. Опис алгоритму розв’язання задачі, його програмна реалізація.

    курсовая работа [42,6 K], добавлен 26.04.2016

  • Розробка програми стеження за натиснутими клавішами клавіатури. Програмне забезпечення, необхідне для функціонування програми, мови програмування. Опис логічної структури, алгоритм програми та її зв'язок з іншими програмами. Характер та організація даних.

    курсовая работа [375,4 K], добавлен 01.04.2016

  • Теоретичні відомості про пакет ІЗВП Borland Delphi та СУБД MS Access, оцінка їх функціональних особливостей. Опис структури бази даних. Проектування інтерфейсу програми, опис її логічної структури та функцій. Контроль коректності вхідних, вихідних даних.

    курсовая работа [4,5 M], добавлен 03.01.2014

  • Опис процесу створення технічного завдання на розробку бази даних для сільської бібліотеки. Виявлення масиву даних та їх структури. Внесення інформації в базу. Визначення типів і зв’язків між таблицями. Створення інтерфейсу системи керування базою даних.

    контрольная работа [174,9 K], добавлен 07.01.2015

  • Структури даних як способи їх організації в комп'ютерах. Підтримка базових структури даних в програмуванні. Дерево як одна з найпоширеніших структур даних. Бінарні дерева на базі масиву. Створення списку - набору елементів, розташованих у певному порядку.

    контрольная работа [614,7 K], добавлен 18.02.2011

  • Процеси пошуку інформацій та розробка структури даних для ефективного зберігання та обробки інформації. Як приклад розглянуто бінарне дерево. Бінарні структури широко використовуються у житті,широко використовуються в багатьох комп'ютерних завданнях.

    курсовая работа [67,7 K], добавлен 24.06.2008

  • Створення баз даних для автоматизування роботи торгового представника в середовищі програмування Delрhі. Опис вхідної та результуючої інформації, формалізований опис задачі. Розробка технічного та робочого проекту, опис та обґрунтування вибору структури.

    курсовая работа [135,8 K], добавлен 11.10.2010

  • Розробка програми GameBox, яка включає в себе дві гри, судоку та пятнашки. Опис структури даних та вимоги до них, процедур і функцій користувача, стандартних процедур і функцій, які використовувались в програмі, та файлів. Результати роботи програми.

    курсовая работа [5,3 M], добавлен 12.11.2011

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