Система учета городского транспорта

Автор работы: Пользователь скрыл имя, 18 Июня 2013 в 15:49, курсовая работа

Краткое описание

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

Содержание

ВВЕДЕНИЕ 5
1 ОБЗОР 7
1.1 Информация, характеризующая городской транспорт 7
1.2 Преимущества ООП для программной реализации базы данных, хранящей информацию о городском транспорте 7
1.3 Постановка задачи 7
2 АЛГОРИТМИЧЕСКОЕ КОНСТРУИРОВАНИЕ 9
2.1 Общая блок-схема работы программы 9
2.2 Алгоритм поиска по заранее заданному критерию 11
3 ПРОГРАММНОЕ КОНСТРУИРОВАНИЕ 12
3.1 Обоснование выбора языка программирования 12
3.2 Описание основных классов 12
4 РЕЗУЛЬТАТЫ РАБОТЫ ПРОГРАММНОГО СРЕДСТВА 15
ЗАКЛЮЧЕНИЕ 26
5 СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 27
ПРИЛОЖЕНИЕ А. ТЕХНИЧЕСКОЕ ЗАДАНИЕ НА ПРОГРАММНОЕ СРЕДСТВО 28
ПРИЛОЖЕНИЕ Б. ЛИСТИНГ ПРОГРАММЫ 32
ПРИЛОЖЕНИЕ В. 59

Прикрепленные файлы: 1 файл

отчет.docx

— 863.96 Кб (Скачать документ)

Для запуска программы запустим файл СУГТ.exe. Открывается главное окно программы с заголовком “Система учета городского транспорта”.

Рисунок 4 - Главное окно программы.

 

При помощи кнопок “Добавить маршрутное такси”, “Добавить автобус” и “Добавить трамвай” добавим по одному транспорту каждого типа (рис 5,6,7). Результат добавления можно увидеть на рисунке 8.

Рисунок 5 - Добавление маршрутного такси.

Рисунок 6 - Добавление автобуса.

Рисунок 7 - Добавление трамвая.

 

 

Рисунок 8 - Результат добавления записей.

При помощи кнопок “удалить” и “изменить” удалим запись №16 и изменим номер маршрута для записи №3 результат изменений на рисунке 9.

 

Рисунок 9 - Результат изменений.

 

Проведем сортировку записей по максимальному числе мест, используя  кнопку “сортировать”. Результат сортировки на рисунке 10.

Рисунок 10 - Сортировка по максимальному числу мест.

                  Выполним расчет рентабельности для одного из видов транспортных средств, используя кнопку “Рентабельность трамвая”. Результат на рисунке 11.

Рисунок 11 - Расчет рентабельности.

 

Выполним поиск по заранее заданному критерию. Введем число поле “максимальное число мест >=”. Результаты поиска на рисунке 12.

Рисунок 12 - Поиск по заданному критерию.

 

Теперь удалим найденные элементы, по нажатию на кнопку “Удалить найденное”, как это продемонстрировано на рисунке 13.

Рисунок 13 - Удаление найденных записей.

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

Работоспособность программы подтверждена в приложении В. 

ЗАКЛЮЧЕНИЕ

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

Получены и закреплены навыки работы в среде PascalABC.net, и программирования с использованием классов, наследования, полиморфизма, и перегрузки операций.

 

  1. СПИСОК  ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
  2. http://pascalabc.net/
  3. http://it.mmcs.sfedu.ru/wiki/%D0%A1%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0_%D0%BA%D1%83%D1%80%D1%81%D0%B0_%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D1%8B_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F
  4. http://pascalabc.net/wiki/index.php/%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0
  5. http://program.rin.ru/razdel/html/1043.html
  6. Культин Н.Б. Delphi 6. Программирование на Object Pascal — Спб.: БХВ-Петербург, 2001. - 528 с.

 

 

ПРИЛОЖЕНИЕ А. ТЕХНИЧЕСКОЕ  ЗАДАНИЕ НА ПРОГРАММНОЕ СРЕДСТВО

                                         «СОГЛАСОВАНО» 

доцент каф. «ПОВТ  и АС»                  

«         »                       2012 г.

    ___________ /Скляренко А.А./            

 

  1. Введение

Наименование: «Система учета городского транспорта».

Краткое наименование: «СУГТ».

Область применения: автотранспортные предприятия.

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

Разработка ведется на основании  документа «Учебный план для студентов  ВУЗа», факультета «Информатика и вычислительная техника», обучающихся по специальности 231000 «Программная Инженерия», в соответствии с которым студенты, заканчивающие  изучение дисциплины «Основы программирования», должны предоставить к защите работу, выполненную в ходе разработки курсовой работы. Предметным основанием является задание на курсовую работу.

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

Функциональное назначение: реализация систему учета городского транспорта.

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

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

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

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

 

    1. Входные данные программы

Входные данные вводятся пользователями и обрабатываются программным средством  и представляют собой различную  совокупность текстовой информации, набор байт (файлов):

  • текстовые файлы с данными;
  • вводимая пользователем информация.
    1. Выходные данные программы

Выходные данные выводятся программным  средством пользователям и представляют собой различную совокупность текстовой  информации, набор байт (файлов):

  • текстовые файлы;
  • данные выводимые на экран.
    1. Требования к надежности

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

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

В состав технических средств, обеспечивающих работоспособность программного средства должен входить IBM – совместимый персональный компьютер, включающий в себя:

  • манипулятор типа «Клавиатура»;
  • манипулятор типа «Мышь»;
  • монитор.
    1. Требования к исходным кодам и языкам программирования

Для реализации программы «Автоматизированная система обработки и хранения информации о преподавателях» должен быть использован язык программирования PascalABC.NET. Основанием для выдвижения этого требования является использование указанного языка при реализации.

    1. Операционная система

Программа должна функционировать  в любой операционной системе  семейства Windows.

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

В состав программной документации должны входить следующие разделы:

  • задание;
  • техническое задание по ГОСТ 19.201;
  • текст программы по ГОСТ 19.401-78.
  1. Порядок контроля и приемки

Порядок и контроль приемки определяются заведующим кафедрой «ПОВТ и АС»  и основаны на демонстрации знаний технологии и умении создавать программные  средства для различных предметных областей. Главным требованием к  приемке является наличие правильно  работающего программного средства, иллюстрируемого тестовым примером и отчетом, представленным в печатном виде.

 

Разработал

студент гр. ВПРS-22                                               «      »                2013 год

Гребенщиков Игорь Александрович                                                                      

 

ПРИЛОЖЕНИЕ Б. ЛИСТИНГ  ПРОГРАММЫ

uses  System.Windows.Forms;

  

   const mk:integer=10;    //маршрутное такси

   const ak:integer=20;    //автобус

   const tk:integer=30;    //трамвай

  

type

transport=class     //базовый класс транспорт

protected

   kod:integer;

   tip:integer;

   numroute:integer;

   mark:string;

   name:string;

   year:string;

  

public

   constructor Create(k,t,nr:integer; m,n,y:string);

   begin

      kod:=k;

      tip:=t;

      numroute:=nr;

      mark:=m;

      name:=n;

      year:=y;

   end; 

  

   procedure setTransport(k,t,nr:integer; m,n,y:string);

   begin

      kod:=k;

      tip:=t;

      numroute:=nr;

      mark:=m;

      name:=n;

      year:=y;

   end;

  

   function ToString():string; virtual;  abstract;    //строковое представление

  

   function Rent(stoimost,proezd: integer):integer; virtual;  abstract;  //рентабельность: стоимость топлива - плата за проезд пасажиров

  

   function MaxPassagir():integer; virtual;  abstract;   //максимум пасажиров в день перевозимых т.с.

  

   function ToStringRent():string; virtual;  abstract;    //строковое представление #2

     

   function getName():string;

   begin

     Result:=name;

   end;

   function getMark():string;

   begin

     Result:=mark;

   end;

   function getYear():string;

   begin

     Result:=year;

   end;

   function getRoute():integer;

   begin

     Result:=numroute;

   end;

   function getKod():integer;

   begin

     Result:=kod;

   end;

   function getTip():integer;

   begin

     Result:=tip;

   end;

  

end;

 

 

MT=class(transport)    //маршрутное такси наследуется от транспорта

protected

maxmest: integer;

sitmest: integer;

long: integer;

rashod: integer;

 

public

constructor Create(k,t,nr,mm,sm,l,r:integer; m,n,y:string);

   begin

      inherited Create(k,t,nr,m,n,y);

      maxmest:=mm;

      sitmest:=sm;

      long:=l;

      rashod:=r;   

   end; 

  

   procedure setMT(mm,sm,l,r:integer);

   begin

      maxmest:=mm;

      sitmest:=sm;

      long:=l;

      rashod:=r;

   end;

  

   function ToString():string; override;

   begin

      Result:='Код: ' + IntToStr(kod) + ' Маршрутное такси, № маршрута ' + IntToStr(numroute)

               + ' ' + mark + ' ' + name + ', год ' + year + ', макс. мест ' + IntToStr(maxmest) + ', сид. мест ' + IntToStr(sitmest)

               + ', длина ' + IntToStr(long) + ', расход ' + IntToStr(rashod);

   end;

  

   function ToStringRent():string; override;

    begin

      Result:='Код: ' + IntToStr(kod) + ' Трамвай, № маршрута ' + IntToStr(numroute)

               + ' ' + mark + ' ' + name + ' ' + year + ' Рентабельность: ' + IntToStr(Rent(30,17));

    end;

     

   function Rent(stoimost,proezd: integer):integer;  override;

   begin

       Result := 8*rashod*stoimost - proezd*MaxPassagir();

   end;

  

   function MaxPassagir():integer;  override;

   begin

      Result:=Round( ((maxmest-sitmest)/2 + sitmest)*8*60/15 );

   end;

 

  

   function getMaxMest():integer;

   begin

      Result:=maxmest;

   end;

   function getSitMest():integer;

   begin

      Result:=sitmest;

   end;

   function getLong():integer;

   begin

      Result:=long;

   end;

   function getRashod():integer;

   begin

      Result:=rashod;

   end;

  

end;

 

 

autobus=class(MT)   //автобус наследуется от MT

  

public

constructor Create(k,t,nr,mm,sm,l,r:integer; m,n,y:string);

   begin

      inherited Create(k,t,nr,mm,sm,l,r,m,n,y);   

   end; 

 

   function ToString():string; override;

   begin

      Result:='Код: ' + IntToStr(kod) + ' Автобус, № маршрута ' + IntToStr(numroute)

               + ' ' + mark + ' ' + name + ', год ' + year + ', макс. мест ' + IntToStr(maxmest) + ', сид. мест ' + IntToStr(sitmest)

               + ', длина ' + IntToStr(long) + ', расход ' + IntToStr(rashod);

   end;

  

   function ToStringRent():string; override;

    begin

      Result:='Код: ' + IntToStr(kod) + ' Трамвай, № маршрута ' + IntToStr(numroute)

               + ' ' + mark + ' ' + name + ' ' + year + ' Рентабельность: ' + IntToStr(Rent(25,15));

    end;

  

   function Rent(stoimost,proezd: integer):integer;  override;

   begin

       Result := 12*rashod*stoimost - proezd*MaxPassagir();

   end;

  

   function MaxPassagir():integer;  override;

   begin

      Result:=Round( ((maxmest-sitmest)/3 + sitmest)*12*60/15 );

   end;

  

end; 

   

   

tramway = class (autobus)    //трамвай наследуется от автобуса

protected

  countw:integer;      //количество вагонов

 

public

constructor Create(k,t,nr,mm,sm,l,r,cw:integer; m,n,y:string);

   begin

      inherited Create(k,t,nr,mm,sm,l,r,m,n,y);

      countw:=cw;

   end; 

 

   procedure setTramway(cw:integer);

   begin

      countw := cw;

   end;

 

   function ToString():string; override;

   begin

      Result:='Код: ' + IntToStr(kod) + ' Трамвай, № маршрута ' + IntToStr(numroute)

               + ' ' + mark + ' ' + name + ', год ' + year + ', макс. мест ' + IntToStr(maxmest) + ', сид. мест ' + IntToStr(sitmest)

               + ', длина ' + IntToStr(long) + ', расход ' + IntToStr(rashod) + ',  вагонов ' + IntToStr(countw);

   end;

  

    function ToStringRent():string; override;

    begin

      Result:='Код: ' + IntToStr(kod) + ' Трамвай, № маршрута ' + IntToStr(numroute)

               + ' ' + mark + ' ' + name + ' ' + year + ' Рентабельность: ' + IntToStr(Rent(3,12));

    end;

  

   function Rent(stoimost,proezd: integer):integer;  override;

   begin

       Result := 10*rashod*stoimost - proezd*MaxPassagir();

   end;

  

   function MaxPassagir():integer;  override;

   begin

      Result := Round(sitmest*10*60/30 );

   end;

  

   function GetCountW():integer;

   begin

      Result:=countw;

   end;

  

end;

   

      

Node = class       //элемент списка

public

    data: transport;

    prev, next: Node;

 

    constructor (d: transport;  p, n: Node);

    begin

      data := d;

      prev := p;

      next := n;

    end;

end; 

   

      

BD = class    //управление базой данных

protected

   head:Node;

   tail:Node;

   index:integer;

  

public

 

   constructor Create();

   begin

      head:=nil;

      tail:=nil;     

   end;

 

   procedure addNodeFirst(h:transport);

   begin

      head := new Node(h, nil, head);

         if head.next <> nil then

            head.next.prev := head

Информация о работе Система учета городского транспорта