СОСТАВ И СТРУКТУРА ПРОГРАММЫ. ОБЗОР МЕТОДОВ РЕШЕНИЯ




АННОТАЦИЯ

Боос Г.О Создание иерархии классов

пояснительная записка к курсовой работе

по курсу «Информатика». —

Челябинск: ЮУрГУ, 2012. – 45 с.

 

Курсовая работа состоит из 3 разделов: состав и структура программы, функции и алгоритмы функций, руководство пользователя. Так же имеются 3 приложения: листинг “h”-файла, листинг “.cpp”-файла и листинг основной программы.

Пояснительная записка к курсовой работе оформлена в текстовом процессоре Microsoft Word 2007. Программа написана в среде Microsoft Visual Studio 2005.

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

Список лит. – 3 назв.

 

 


ОГЛАВЛЕНИЕ

 

ВВЕДЕНИЕ......................................................................................................................5

1 СОСТАВ И СТРУКТУРА ПРОГРАММЫ……………….........................................7

2 ОБЗОР МЕТОДОВ РЕШЕНИЯ.................................................................................15

3 РУКОВОДСТВО ОПЕРАТОРА…………………………………………………....27

ЗАКЛЮЧЕНИЕ..............................................................................................................33

БИБЛИОГРАФИЧЕСКИЙ СПИСОК..........................................................................34

ПРИЛОЖЕНИЕ А Листинг программы на языке Си++

 


 

ВВЕДЕНИЕ

 

В данной курсовой работе необходимо связать иерархией отношений заданные классы. Класс, находящийся во главе иерархии называется абстрактным. Всего дано шесть классов: класс персона, класс водитель, класс пассажир, класс транспорт, класс поезд, класс автомобиль. В качестве базовых классов выступают классы персона и транспорт. Классы водитель и пассажир будут производными от класса персона, а классы поезд и автомобиль будут производными от класса транспорт. Помимо иерархии классов, будет реализована иерархия объектов, которую можно реализовать с помощью полей классов, представляющих собой статические массивы указателей на соответствующие подчиненные объекты.

 

Иерархия классов представлена на рисунке 1

Иерархия объектов представлена на рисунке 2

 

 

Рисунок 1-Иерархия классов

 

Рисунок 2-Иерархия объектов

СОСТАВ И СТРУКТУРА ПРОГРАММЫ

Данная программа состоит из трех, связанных между собой файлов. В первом файле(h-файл) описаны классы, во втором файле(.cpp) показана их реализация. В третьем-основном файле выполняются необходимые по заданию операции. Основная программа состоит из десяти функций: функция добавления персоны, функция добавления транспорта, функция удаления заданной персоны, функция удаления заданного транспорта, функция вывода меню, (1) функция вывода перечня пассажиров в указанном транспорте, (2) функция вывода информации о водителе по его транспорту, (3) функция вывода перечня транспортных средств, которым управляют водители, стаж которых больше заданного, (4) функция вывода перечня транспортных средств, выпущенных после указанного года и основная программа.

ОБЗОР МЕТОДОВ РЕШЕНИЯ

Описание классов данных

В данной курсовой работе используется всего шесть классов, с которыми программа работает.

 

1. Class TPersona – базовый класс для двух других классов. Содержит данные по персоне: имя, фамилия, тип, возраст, рост

2. Class TDriver - производный от TPersona класс, который содержит данные по водителям: стаж и национальность

3. Class TPas – производный от TPersona класс, который содержит данные по пассажирам транспорта: профессия и семейное положение

4. Class TCar – базовый класс для двух других классов. Содержит данные по транспорту: марка, цвет, цена, год выпуска. Так же данный класс содержит указатель на массив класса TPersona.

5. Class TTrain – производный от TCar класс, который содержит данные по поезду: дата выпуска и страна производитель

6. Class TAuto – производный для TCar класс, который содержит данные по автомобилю: пробег и страна производитель.

 

Функция main()

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

Блок-схема функции main() представлена на рисунке 3

 

Рисунок 3-Блок-схема функции main()

Функция PrintMenu()

Функция PrintMenu() осуществляет вывод на экран пользовательского меню. При выборе необходимого пункта, вводится номер пункта меню, после этого по выбранному номеру происходит обращение к функции, которая выполняет нужную операцию. По завершении работы с функцией на экран выводится первоначальное пользовательское меню. В функции предусмотрен неверный ввод с клавиатуры пункта меню, в случае неверного ввода программа будет отсылать пользователя к меню до тех пор, пока работа с данной программой не будет завершена (т.е. не будет введен 0).

 

Блок-Схема функции PrintMenu() представлена на рисунке 4

 

Рисунок 4-Блок-схема функции PrintMenu()

Функция DobPer()

Эта функция производит добавление данных по классу персона, причем функция предлагает выбор, который определяет, какую именно персону необходимо добавить в базу: водителя или пассажира. Сначала функция проверяет программу на наличие транспорта, если же не существует ни одного транспорта, функция выводит сообщение пользователю о том, что данные ввести невозможно. Если данные по транспорту существуют (т.е. существует хотя бы один набор данных), то функция предлагает ввести номер транспорта, которому будет соответствовать добавляемая персона. Функция предусматривает так же неверный ввод номера. После этого функция начинает цикл, в котором будут вводится данные(максимум можно ввести 5 персон). Функция предлагает выбор из трех пунктов. Первый-ввод данных по водителю, второй-ввод данных по пассажиру и третий-выход из цикла. После создания выбранной персоны можно ввести еще несколько данных, пока в мини-меню не будет выбран третий пункт, который вернет пользователя в основное меню.

 

Блок-схема функции DobPer() представлена на рисунке 5

Рисунок 5-Блок-схема функции DobPer()

Функция DobTra()

Данная функция вводит в базу данных информацию о транспорте. В начале функция предлагает выбор добавляемого, т.е. можно ввести либо данные по автомобилю, либо данные по поезду. Функция выводит мини-меню с выбором добавляемого объекта.

 

Блок-схема функции DobTra() представлена на рисунке 6

 

 

Рисунок 6-Блок-Схема функции DobTra()

 

Функция DelTra()

Данная функция удаляет данные по заданному транспорту. Сначала программа проверяет данные на их наличие. Если данных нет, то функция завершается, если данные по транспорту есть, то функция предлагает ввести номер того транспортного средства, который мы хотим удалить. Данная функция предусматривает неверный ввод номера удаляемого транспорта. Если же номер удовлетворяет условию, то данные с этим номером по заданному транспорту автоматически удаляются.

 

Блок-схема функции DelTra() представлена на рисунке 7

 

Рисунок 7-Блок-схема функции DelTra()

Функция DelPer()

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

 

Блок-схема функции DelPer() представлена на рисунке 8

 

Рисунок 8-Блок-схема функции DelPer()

Функция SpisPas()

Данная функция выводит список пассажиров в указанном транспорте. Вначале функция проверяет на наличие данных по транспорту и пассажирам. Если данных нет, то функция завершает работу. Если данные по персонам есть, то предлагается ввести номер транспортного средства, по которому выводится список пассажиров. После этого выводится марка транспортного средства и данные по пассажирам.

 

Блок-схема функции SpisPas() представлена на рисунке 9

Рисунок 9-Блок-схема функции SpisPas()

Функция Inform()

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

 

Блок-схема функции Inform() представлена на рисунке 10

Рисунок 10-Блок-схема функции Inform()

Функция SpisGod()

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

 

Блок-схема функции SpisGod() представлена на рисунке 11

 

Рисунок 11-Блок-схема функции SpisGod()

Функция SpisStag()

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

 

Блок-схема функции SpisStag() представлена на рисунке 12

Рисунок 12-Блок-схема функции SpisStage()

РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ

3.1 Основное меню программы

 

Рисунок 13-Скриншот основного меню программы

 

Основное меню программы состоит из девяти пунктов. Выбор необходимого пункта осуществляется путем ввода номера пункта меню. Если было введено число «0» то программа завершит свою работу.

 

3.2 Добавление объектов

Рисунок 14-Скриншот добавления объекта типа «Транспорт»

 

На рисунке 14 представлен скриншот добавления объекта класса «Транспорт». Сначала необходимо выбрать, какие данные нужно добавлять, а потом вводить данные по выбранному транспорту.

 

Рисунок 15-Скриншот добавления объекта «Персона»

 

На рисунке 15 показано добавление объекта «Персона». Добавление объекта осуществляется аналогично добавлению объекта «Транспорт»

 

Рисунок 16-Скриншот создание объекта класса «Водитель»

 

3.2 Удаление объектов

 

Рисунок 17-Скриншот удаления необходимого объекта класса «Персона»

 

На рисунке 17 показано удаление объекта класса «Персона». Для удаление нужной персоны необходимо сначала выбрать номер транспорта, затем ввести фамилию удаляемой персоны.

 

Рисунок 18-Скриншот удаление объекта класса «Транспорт»

 

3.3 Вывод перечня пассажиров в указанном транспорте

Рисунок 19-Скриншот вывода перечня пассажиров

 

На рисунке 19 показан вывод пассажиров в указанном транспорте. Сначала с клавиатуры вводится необходимый номер транспорта, список пассажиров которого мы хотим посмотреть.

 

3.4 Вывод информации по фамилии водителя

Рисунок 21-Скриншот вывода информации по фамилии водителя

 

На рисунке 21 представлен скриншот вывода информации по фамилии водителя. Для вывода информации необходимо ввести фамилию водителя.

 

 

3.5 Вывод перечня транспортных средств по году выпуска транспорта

Рисунок 22-Скриншот вывода перечня транспортных средств

На рисунке 22 представлен скриншот вывода перечня транспортных средств, которые были произведены после указанного года. Для вывода списка необходимо ввести год, по которому будет введены данные.

 

ЗАКЛЮЧЕНИЕ

Эта программа, создана для удобной обработки. Благодаря разработанному алгоритму мы получили ряд преимуществ. Ряд преимуществ иерархии классов:

-Иерархическое представление системы можно использовать для описания того, как влияют изменения приоритетов на верхних уровнях на приоритеты элементов нижних уровней.

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

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

-Иерархии устойчивы и гибки; они устойчивы в том смысле, что малые изменения вызывают малый эффект, а гибкие в том смысле, что добавления к хорошо структурированной иерархии не разрушают ее характеристик.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-26 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: