Министерство образования Республики Беларусь
Министерство образования и науки Российской Федерации
Государственное учреждение высшего профессионального образования
«БЕЛОРУССКО–РОССИЙСКИЙ УНИВЕРСИТЕТ»
Кафедра «Автоматизированные системы управления»
Курсовая работа
по дисциплине «Технологии программирования»
Разработка специализированного программного модуля для решения указанной задачи
051.23 01 02.081425.03.81-01
2010
Содержание
1 Выбор технологии, языка и среды программирования
2 Анализ и уточнение требований к программному продукту
2.1 Анализ процесса обработки информации и выбор структур данных для ее хранения
2.2 Выбор методов и разработка основных алгоритмов решения задачи
3 Разработка структурной схемы программного продукта
4 Проектирование интерфейса пользователя
4.2 Разработка форм ввода-вывода информации
5 Выбор стратегии тестирования и разработка тестов.
Список использованных источников
Приложение А. Техническое задание
Приложение Б. Руководство пользователя
Приложение В. Код программы
Целью данной курсовой работы является разработка программного модуля, позволяющего создать с помощью шаблона класса «бинарное дерево» картотеку абонентов, содержащую сведенья о телефонах и их владельцах.
В разделе «Выбор технологии, языка и среды программирования» выбор средств реализации.
В разделе «Анализ и уточнение требований к программному продукту» проводится выбор структуры данных для хранения информации, метода и разработки основных алгоритмов решения задачи.
В разделе «Разработка структурной схемы программного продукта» приведена структурная схема программы.
В разделе «Проектирование интерфейса пользователя» производится построение графа диалога, а также разработка форм ввода-вывода информации.
В разделе «Выбор стратегии тестирования и разработка тестов» проводится тестирование нашей программы при различных исходных значениях.
Приложения содержат код программы и основные программные документы – руководство программиста и техническое задание, разработанные в соответствии с требованиями стандартов.
1 Выбор технологии, языка и среды программирования
В соответствие с заданием, языком программирования был выбран C#, а средой программирования – Microsoft Visual Studio 2010. Для реализации программы использовалось объектно-ориентированное программирование.
Объектно-ориентированное программирование (ООП) — парадигма программирования, основанная на представлении предметной области (и/или проблемной области) в виде системы взаимосвязанных абстрактных объектов и их реализаций.
Основной проблемой процедурного программирования является то, что данные и функции их обработки не были связаны. Это вносило некоторую сложность в разработку программы. С появлением концепции ООП появилась новая структура данных — Класс. Это по сути дела тип данных, внешне похожий на структуру (в языке Си) или запись (в Pascal-е), в котором кроме данных (свойства) также содержались функции их обработки (методы). При этом появляются такие свойства как наследование, полиморфизм и инкапсуляция.
2 Анализ и уточнение требований к программному продукту
К системе необходимо предъявить ряд требований, выполнение которых обеспечит достижение оптимальных значений всех параметров целевой функции.
Для хранения информации была выбрана структура данных типа бинарное дерево. Бинарное (двоичное) дерево - это упорядоченное дерево, каждая вершина которого имеет не более двух поддеревьев, причем для каждого узла выполняется правило: в левом поддереве содержатся, только ключи, имеющие значения, меньшие, чем значение данного узла, а в правом поддереве содержатся, только ключи, имеющие значения, большие, чем значение данного узла. Бинарное дерево является рекурсивной структурой, поскольку каждое его поддерево само является бинарным деревом и, следовательно, каждый его узел в свою очередь является корнем дерева.
В данной курсовой работе необходимо создать шаблона класса «бинарное дерево» и написать программу, использующую этот шаблон класса для создания картотеки абонентов, содержащую сведенья о телефонах и их владельцах. Программа должна:
· обеспечивать начальное формирование картотеки в виде двоичного дерева
· производить вывод всей картотеки
· вводить номер телефона и время разговора
· выводить извещение на оплату телефонного разговора
Также, программа должна обеспечивать диалог с помощью меню и контроль ошибок при вводе.
· Главное меню - функция меню, выбор пункта меню в зависимости от того, какое действие необходимо произвести;
· Добавление элемента – добавление номера и время разговора в «бинарное дерево»
· Вывести всю картотеку – производит вывод картотеки по номерам телефонов в порядке возрастания.
· Извещение на оплату – по указанному номеру телефона создаёт файл под именем данного телефона и записывает информацию по оплате телефонного звонка.
4 Проектирование интерфейса пользователя
Для работы с программой было реализовано меню, состоящее из 4 методов класса MenuDialog:
MainDialog – главное меню, через которое осуществляется выбор необходимого действия. Имеет 3 варианта действий:
1) Переход в меню добавления нового номера.
2) Переход в меню для вывода всей картотеки.
3) Выход из программы.
NewPhoneDialog – меню добавления нового абонента. При успешном добавлении программа возвращает пользователя в главное меню. В случае ошибки ввода данных предоставляется возможность вернуться в главное меню, либо повторить ввод данных.
SearchDialog – меню вывода картотеки. Производит вывод картотеки и предоставляет пользователю 2 варианта последующих действий:
1) Переход в меню для создания извещения по оплате телефонного разговора.
2) Выход в главное меню.
PricePhoneDialog – меню создания извещения по оплате телефонного разговора. Создаёт файл <номер телефона>.txt , в котором содержится:
· Имя абонента;
· Номер телефона;
· Время разговора;
· Цена за минуту разговора;
· Итого к оплате.
После создания файла с извещением, пользователь остаётся в меню SearchDialog.
В программе осуществляется 2 способа ввода данных:
1) Ввод при добавлении нового абонента. Из главного меню вызывается метод NewPhoneDialog класса MenuDialog. Для добавления абонента необходимо заполнить следующие поля:
· Имя абонента (до 22 знаков);
· Номер телефона (формат ввода – цифры, 7 знаков);
· Время разговора (формат ввода – мин:сек).
·
Рисунок 3 – Добавление нового абонента
Контроль ошибок:
В случае неверного ввода номера телефона, либо времени разговора, на экран выдаётся сообщение об ошибке ввода.
Рисунок 4 – Сообщение об ошибке ввода
2) Ввод данных при создании извещении на оплату телефонного разговора. Из меню SearchDialog вызывается метод PricePhoneDialog. Для создания извещения, необходимо:
· Указать номер телефона (формат ввода – цифры, 7 знаков);
· Ввести цену за минуту разговора (формат ввода – цифры).
Рисунок 5 – Создание извещения на оплату
Контроль ошибок:
В случае неверного ввода номера телефона, либо цены за минуту разговора, на экран выдаётся сообщение об ошибке ввода.
Рисунок 6 – Сообщение об ошибке ввода при создании извещения на оплату
5 Выбор стратегии тестирования и разработка тестов
Контрольный пример – это специальные данные, являющиеся исходными для программного алгоритма и отвечающие требованиям по объему и составу вводимой информации, которая должна соответствовать поставленной задаче. Для того чтобы подтвердить работоспособность системы необходимо провести тестирование, и показать реализацию основных функций.
В качестве результатов тестирования, чтобы показать работоспособность системы запустим программу.
Добавим нового абонента:
· Имя абонента: Льдов Анатолий
· Номер телефона: 2425017
· Время разговора: 21:07
·
Рисунок 7 – Успешное создание новой записи
Как видно из рисунка 7 создание новой записи прошло успешно.
Добавим ещё несколько записей и выведем картотеку путём нажатия «2» в главном меню. Картотека выведена в алфавитном порядке. Все данные соответствуют исходным данным, введённым при добавлении записей. Попытаемся создать извещение на оплату. Выберем «1» и введём номер 242-50-17. Цена минуты разговора равняется 2 рублям. Вводим «2». После окончания ввода данных, на экране отобразиться сообщение (рисунок 9) об успешном создании извещения под именем 2425017.txt (рисунок 10).