Автор: Пользователь скрыл имя, 18 Декабря 2011 в 13:44, курсовая работа
Программа обеспечивает возможность создания файла и хранения в нем информации о вызываемом городе, заказываемом номере телефона, ФИО заказчика, номере телефона заказчика и длительности оплаченного разговора а также выполнение требуемых функций по работе с этими данными. Курсовая содержит руководство пользователя, описание разработанных функций, листинг и тестирование программы, блок-схемы алгоритмов всех используемых функций и тестирование программы.
Введение………………………………………………………………….…… 3
Глава 1. Выбор метода реализации……………………...………………... 5
1.1 Обоснование выбора языка программирования………………………... 5
Техническое описание языка программирования……………………… 6
1.3 Технические требования к компьютеру для решения задачи …………. 7
Глава 2. Теоретические основы……………………...…………………… 8
2.1Динамические массивы …………………………………………………... 8
2.2Динамическое распределение памяти …………………………………… 9
2.3 Классы …………………………………………………………………….. 9
2.4 Структуры ……………………...…………………………………………. 10
Глава 3. Руководство программиста……………………...……………… 12
Глава 4. Руководство пользователя ……………………...………………. 15
Глава 5. Математическое и программное обеспечение ………………. 16
5.1.Математическое обеспечение……………………...………………………................................. 16
5.2.Спецификация функций ……………………...………………………….. 19
Глава 6. Тестирование программы ……………………...……………….. 25
Заключение…………………………………………………...………………. 31
Список литературы………………………
Динамическое выделение памяти
– это получение программной памяти
во время ее выполнения. Благодаря этой
системе программа может создавать переменные
во время выполнения, причем в нужном (в
зависимости от ситуации) количестве.
Динамическое выделение памяти для тех
или иных целей – важная составляющая
почти всех реальных программ.
2.3
Классы
Класс определяет новый тип данных, который задает формат объекта. Класс включает как данные, так и код, предназначенный для выполнения над этими данными. Следовательно, класс связывает данные с кодом. В С++ спецификация класса используется для построения объектов. Объекты – это экземпляр класса. По сути, класс представляет собой набор планов, которые определяют, как строить объект. Важно помнить, что класс – это логическая абстракция, которая реально не существует до тех пор, пока не будет создан объект этого класса, то есть то, что станет физическим представлением этого класса в памяти компьютера.
Определяя класс, объявляются данные которые он содержит, и код, который выполняется над этими данными.
В классе данные объявляются в виде переменных, а код оформляется в виде функций. Функции и переменные, составляющие класс, называются его членами. Таким образом, переменная, объявленная в классе, называется членом данных, а функция, объявленная в классе, называется функцией-членом.
Объявление класса начинается с ключевого слова class.
Объявление класса синтаксически подобно объявлению структуры.
По умолчанию члены класса
являются закрытыми (private-
В С++ класс создает новый тип
данных, который можно использовать
для создания объектов. В частности,
класс создает логическую
2.4
Структуры
Структура – это группа
В С++ структура представляет собой коллекцию объединенных общим именем переменных, которая обеспечивает удобное средство хранения родственных данных в одном месте. Структуры – это совокупный тип данных, поскольку они состоят из нескольких различных, но логически связанных переменных. По тем же причинам их иногда называют составными или конгломератными типами данных.
Прежде чем будет создан
Член структуры – это
В общем случае все члены структуры должны быть логически связанны
друг
с другом.
Глава 3. Руководство программиста
Описание
разработанных функций
3.1.Информационное
обеспечение
Таблица 1. Перечень классов
№ | Идентификатор | Описание | |
1 | elem | Класс, содержащий элементы списка | |
2 | list | Класс, содержащий непосредственно список с элементами и функции, обеспечивающие работу с ним | |
Таблица 2. Описание функций класса elem | |||
№ | Идентификатор | Тип данных | Описание |
1 | operator = | elem | Функция, осуществляющая перегрузку оператора копирования элементов |
Таблица 3. Описание других элементов класса elem | |||
№ | Идентификатор | Тип данных | Описание |
Общедоступные (public) | |||
1 | teleph | Символьный | заказываемый номер телефона |
2 | tel | Символьный | номер телефона заказчика |
3 | name | Символьный | ФИО заказчика |
4 | city | Символьный | вызываемый город |
5 | time | Целочисленный беззнаковый | длительность оплаченного разговора, в секундах |
6 | index | Целочисленный беззнаковый | Номер заказа в общей очереди |
7 | next | elem | указатель на следующий элемент списка |
8 | prev | elem | указатель на предыдущий элемент списка |
Таблица 4. Описание функцийкласса list | |||
№ | Идентификатор | Тип данных | Описание |
1 | indexing | Функция, не возвращающая значение | Функция по изменению нумерации списка в связи со вставкой или удалением элемента |
2 | getElem | elem | Функция, осуществляющая получение указателя на элемент в списке по его номеру в списке |
3 | addElem | Функция, не возвращающая значение | Функция, осуществляющая добавление элемента в список |
4 | findCity | elem | Функция, осуществляющая поиск номера заказа для заданного города |
5 | removeElem | Функция, не возвращающая значение | Функция, осуществляющая удаление элемента по его номеру |
6 | add | Функция, не возвращающая значение | Функция по добавлению заказа в список |
7 | remove | Функция, не возвращающая значение | Функция, осуществляющая удаление элемента по его номеру |
8 | operator<< | Поток вывода (ostream) | Функция, осуществляющая перегрузку оператора вывода списка |
9 | sortTime | Функция, не возвращающая значение | Функция, осуществляющая сортировку списка по длительности разговора |
10 | printCallsToCity | Функция, не возвращающая значение | Функция, осуществляющая вывод списка звонков в указанный город |
Таблица 5. Описание других элементов класса list | |||
№ | Идентификатор | Тип данных | Описание |
Защищенные члены (private) | |||
1 | head | elem | указатель на начальный элемент списка |
2 | tail | elem | указатель на конечный элемент списка |
3 | N | Целочисленное беззнаковое | количество элементов в списке |
Таблица 6.Описание входных данных | |||
№ | Идентификатор | Тип данных | Описание |
1 | teleph | Символьный | заказываемый номер телефона |
2 | tel | Символьный | номер телефона заказчика |
3 | name | Символьный | ФИО заказчика |
4 | city | Символьный | вызываемый город |
5 | time | Целочисленный беззнаковый | длительность оплаченного разговора, в секундах |
6 | index | Целочисленный беззнаковый | Порядковый номер элемента |
Таблица 7. Описание выходных данных | |||
№ | Идентификатор | Тип данных | Описание |
1 | ls | list | Список заказов |
Глава
4.
Руководство пользователя
Необходимо создать автоматизированное рабочее место (АРМ) диспетчера междугородней телефонной станции (МТС). Диспетчер МТС работает с ЭВМ в режиме меню. Поступающие заказы хранятся в памяти ЭВМ, то есть ведется электронный журнал.
По каждому заказу хранятся:
- вызываемый город;
- заказываемый номер телефона;
- ФИО заказчика;
- номер телефона заказчика;
-
длительность оплаченного
Задача должна решаться с помощью диалоговой системы, позволяющей выполнить :
- прием заказа;
-
исполнение очередного заказа(
- определение номера заказа в общей очереди заказов;
- определение номера заказа для заданного города;
- включение срочного заказа в очередь под номером N;
- формирование списка заказов в заданный город;
- упорядочение
заказов по возрастанию
Глава 5. Математическое и программное обеспечение
Алгоритм решения задачи
Формирование списка.
1. Функция indexing – для изменения нумерации списка в связи со вставкой или удалением элемента | |||||
1.1. Возвращаемые значения - отсутствуют | |||||
1.2. Параметры - отсутствуют | |||||
1.3. Локальные переменные | |||||
№ | Идентификатор | Тип | Описание | ||
1 | tmp | elem | Указатель на элемент | ||
2 | id | Цилочисленноебеззнаковое | Номер элемента | ||
2. ФункцияgetElem–для получения указателя на элемент в списке по его номеру в списке | |||||
1.1. Возвращаемые значения | |||||
№ | Идентификатор | Тип | Описание | ||
1 | tmp | elem | Указатель на элемент | ||
1.2. Параметры | |||||
№ | Идентификатор | Тип | Описание | ||
1 | index | Целочисленное беззнаковое | Номер элемента в списке | ||
1.3. Локальные переменные | |||||
№ | Идентификатор | Тип | Описание | ||
1 | tmp | elem | Указатель на элемент списка | ||
2. ФункцияaddElem–для добавления элемента в список | |||||
2.1. Возвращаемые значения - отсутствуют | |||||
2.2. Параметры | |||||
№ | Идентификатор | Тип | Описание | ||
1 | element | elem | Указатель на новый элемент списка | ||
2.3. Локальные переменные | |||||
№ | Идентификатор | Тип | Описание | ||
1 | id | Целочисленное безнаковое | номер | ||
2 | f | elem | Указатель на элемент списка | ||
3. ФункцияfindCity–для поиска элемента по указанному городу | |||||
3.1. Возвращаемые значения | |||||
№ | Идентификатор | Тип | Описание | ||
1 | tmp | elem | Указатель на элемент списка | ||
3.2. Параметры | |||||
№ | Идентификатор | Тип | Описание | ||
1 | id | Целочисленное беззнаковое | номер | ||
2 | City | символьный | Указатель на искомый город | ||
3.3. Локальные переменные | |||||
№ | Идентификатор | Тип | Описание | ||
1 | tmp | elem | Указатель на элемент списка | ||
4. Функцияadd - для добавления нового элемента в список | |||||
4.1. Возвращаемые значения - отсутствуют | |||||
4.2. Параметры | |||||
№ | Идентификатор | Тип | Описание | ||
1 | Teleph | Символьный | Указатель на номер вызываемого абонента | ||
2 | Tel | Символьный | Указатель на номер вызывающего абонента | ||
3 | Name | Символьный | Указатель на имя абонента | ||
4 | city | Символьный | Указатель на город | ||
5 | time | Целочисленный беззнаковый | Время разговора | ||
6 | index | Целочисленный беззнаковый | Номер позиции, в какую необходимо добавить элемент списка | ||
4.3. Локальные переменные | |||||
№ | Идентификатор | Тип | Описание | ||
1 | tmp | elem | Указатель на элемент списка | ||
5. Функцияremove–для удаления элемента по его номеру | |||||
5.1. Возвращаемые значения - отсутствуют | |||||
5.2. Параметры – отсутствуют | |||||
№ | Идентификатор | Тип | Описание | ||
1 | index | Целочисленный беззнаковый | Номер позиции | ||
5.3. Локальные переменные | |||||
№ | Идентификатор | Тип | Описание | ||
1 | tmp | elem | Указатель на элемент списка | ||
2 | Tmp2 | elem | Указатель на элемент списка | ||
6. Функция operator<<–для вывода списка в виде таблицы на экран. | |||||
6.1. Возвращаемые значения | |||||
№ | Идентификатор | Тип | Описание | ||
1 | stream | оstream (системный класс для управления выводом) | Переменная для вывода на экран | ||
6.2. Параметры | |||||
№ | Идентификатор | Тип | Описание | ||
1 | stream | оstream (системный класс для управления выводом) | Переменная для вывода на экран | ||
2 | ls | list | Список звонков | ||
6.3. Локальные переменные | |||||
№ | Идентификатор | Тип | Описание | ||
1 | tmp | elem | Указатель на элемент списка | ||
7. ФункцияsortTime–для сортировки списка по времени разговора | |||||
7.1. Возвращаемые значения - отсутствуют | |||||
7.2. Параметры - отсутствуют | |||||
7.3. Локальные переменные | |||||
№ | Идентификатор | Тип | Описание | ||
1 | tmp | elem | Указатель на элемент списка | ||
2 | tmp2 | elem | Указатель на элемент списка | ||
3 | f | elem | Указатель на элемент списка | ||
4 | t | elem | Указатель на элемент списка | ||
5 | srt | elem | Переменная для сортировки данных | ||
8. ФункцияprintCallsToCity – для выводазвонков в указанный город | |||||
8.1. Возвращаемые значения - отсутствуют | |||||
8.2. Параметры | |||||
№ | Идентификатор | Тип | Описание | ||
1 | City | символьный | Указатель на город | ||
8.3. Локальные переменные | |||||
№ | Идентификатор | Тип | Описание | ||
1 | i | Целочисленный | Универсальный счетчик | ||
беззнаковый | |||||
2 | id | Целочисленный | Номер элемента | ||
беззнаковый | |||||
9. ФункцияdrawMenu - для отрисовки меню | |||||
9.1. Возвращаемые значения - отсутствуют | |||||
9.2. Параметры | |||||
№ | Идентификатор | Тип | Описание | ||
1 | Level | Целочисленное беззнаковое | Уровень вложенности | ||
9.3. Локальные переменные | |||||
№ | Идентификатор | Тип | Описание | ||
1 | i | Целочисленный | Универсальный счетчик | ||
беззнаковый |