Разработка сайтов и программного обеспечения, системное администрирование, обучение программированию и работе с СУБД MySQL

in english

КУРСОВАЯ РАБОТА

Главная Проекты Курсовая по ТРПП

Министерство Связи России.
Ставропольский колледж Связи.

 
 
 
Разработка приложения для распознавания графических образов.
 
 
 
 
Студент: Ткачёв Ф. И.
Преподаватель: Антонов В.В.

 
 
2005 г.

 

Содержание

Введение.
Описательная часть.

  • Анализ технического задания и возможные способы реализации поставленной задачи
  • Выбор инструментальных и программных средств
  • Программная документация
  • Подготовка данных
  • Реализация чтения данных
  • Реализация сравнения данных
Организационно-экономическая часть.
  • Разработка формы для ввода данных
  • Реализация ввода данных
  • Обработка данных формы
  • Реализация обработки ошибок
  • Реализация помощи
  • Тестирование разработнной программы
  • Эксплуатационная документация
Заключение.

Список источников информации.

Приложения.

Введение


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

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

Мощные программы типа FineReader или CineyForm способны не только распознавать текст, но и формулы, таблицы. Помимо этого в них имеются сервисы, которые позволяют генерировать веб-страницы чуть ли ненапрямую со сканера!

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

Ну, так о чем я?... А я о том, что врядли кто увидит в этой курсовой работе что-то солидное и тянущее на распознаватель образов. Это будет скорее похоже лишь на простой сравнитель чисел или битов в матрице заданного размера. Естественно размер изображения статический и количество символов на нем единично.

Ну что ж, приступим. Прыжок на месте и... Далее!


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


Анализ технического задания

Необходимо создать программный продукт, способный определить степень совпадения с образцом. Также небходимо предусмотреть защиту от «глупого» юзера.

Cпособы реализации поставленной задачи

 

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

Номер этапа Содержание Исполнитель
1 Формулировка задачи Человек
2 Выбор алгоритма Человек
3 Составление исходной программы на алгоритмическом языке Человек
4 Перевод исходной программы в коды машинных команд Компьютер
5 Исполнение машинной программы Компьютер

Эта схема достаточно условна. В ней скрыты довольно важные моменты, связанные с использованием готовых к употреблению библиотечных программ, с устранением синтаксических и алгоритмических ошибок в тексте исходной программы. В некоторых системах программирования (к ним, в частности, относится и QBasic) этапы 4 и 5 совмещены.

Каждому из этапов присущи свои особенности. Формулировка задачи должна исключать какую-либо неопределенность в задании исходных данных и устанавливать область их допустимых значений. Состав исходной информации должен быть достаточен для решения поставленной задачи. Так, например, нельзя построить треугольник, зная только два его параметра. Задание трех его углов тоже не позволяет найти однозначное решение. Алгоритм, как правило, должен приводить к решению задачи за конечное чис ло шагов или предусматривать прекращение бесконечных циклов при выполнении определенных условий. Программа на алгоритмическом языке должна иметь четко выраженную структуру и быть понятной не только ее автору. В случае необходимости она должна допускать участие человека в процессе принятия решений. Машинная программа должна располагать удобным интерфейсом и предоставлять в распоряжение пользователя интуитивно понятные средства ввода, управления вычислительным процессом, визуализации промежуточных и окончательных результатов. Это - далеко не полный перечень требований, выработанных многолетней практикой. Но остановимся чуть подробнее на деталях, связанных с организацией исходной программы на алгоритмическом языке.

 

Что такое "хорошая" программа?

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

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

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

Красивую программу можно сравнить со скульптурой, гениальный творец которой отсек от камня все лишнее.


Выбор инструментальных и программных средств


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

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

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

Мой выбор - язык С++ и интегрированная среда разработки C++Builder 6, которая несомненно считается лучшей среди профессионалов средой создания программ.

Среда представляет собой великолепный инструмент для создания приложений, использующих графический интерфейс пользователя (Graphical User Interface).

Язык Си был придуман в 1972 г. сотрудником Bell Laboratories (отделение известной телефонной компании AT&T) Деннисом Ритчи, одним из первых пользователей операционной системы Unix. Задумывался он не как универсальный алгоритмический язык, а, скорее, как инструмент для развития операционной системы и создания новых обслуживающих программ (утилит). Такой подход характерен для большинства системных программистов, разрабатывающих сложные проекты и придумывающих для облегчения своего труда различные сервисные процедуры, макрокоманды и т. п. По завершении разработки, как правило, эти инструментальные наборы предаются забвению или, в лучшем случае, остаются в личных архивах авторов. Язык Си эта участь миновала. Вполне возможно, что его становлению способствовало последующее всемирное признание операционной системы Unix.

Си - язык профессионалов, на котором сегодня написано большинство программных систем. Большая часть высших учебных заведений, особенно технического профиля, использует Си в качестве основного языка преподавания программирования. Такие среды визуального программирования, как Borland C++ Builder и Microsoft Visual C++ являются несомненными лидерами в разработках современного программного обеспечения.

 


Программная документация


Техническое задание
000.СКС.00001-01 01

Техническое задание (ГОСТ 19.201-78) - основной документ программной документации, который определяет требования, предъявляемые к программному продукту, данные для его разработки, сроки разработки и виды испытаний.

Основанием для разработки служит задание на написание программы для распознавания графических образов.

Назначение разработки заключается в создании программного продукта, работающего в сфере программ "новой волны", то есть программ реализующих состыковку внешней части мира ощущений в более удобную форму представления данных компьютеру. Программы такого рода уже конечно не новость, взять к примеру Fine Reader или Ciney Form в сфере распознавания графики и конвертации ее в текст, Dragon Dictate или как его называют по-русски "Горыныч" в области распознавания звуков.

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

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

Требования к продукту:

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

Сроки и стадии разработки:
Подготовка и построение математической модели - 2 дня
Разработка основного алгоритма - 2 дня
Перенос алгоритма на язык программирования - 3 дня
Создание интерфейса пользователя - 1 день
Отладка и испытание - 10 дней
Реализация справочной системы - 2 дня
Программная документация - 5 дней
Сдача - 1 день

Требования к составу и параметрам технических средств

Необходимый состав технических средств:
- центральный процессор класса Pentium I 110 MГц;
- объём оперативной памяти не менее 16 Mb;
- минимальная ёмкость жесткого диска 1 Gb;
- привод для чтения компакт-дисков;
- привод для чтения гибких дисков;
- стандартный манипулятор "мышь";
- стандартная клавиатура;
- стандартный SVGA монитор.

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


Документ-концепция
000.СКС.00001-01 72

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

Описание пользователя

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

Характеристики продукта

Программа Image Recognizer рботает под управлением операционой системы Windows(95/98/NT4/NT5/XP). Необходимым условием работы является наличие манипулятора "мышь", либо его эмуляции - например TouchPad'а.

Атрибуты функций

Функции \ Атрибуты Справка Ввод образа Добавление образа Распознавание
Статус Включён Включён Включён Включён
Приоритет Важный Важный Важный Критический
Уровень трудозатрат Низкий Средний Средний Низкий
Риск Низкий Низкий Низкий Низкий
Стабильность Высокая Высокая Высокая Высокая
Целевая версия 1.0 1.0 1.0 1.0
Кому предназначен Оператор Оператор Оператор Оператор
Обоснование ТЗ ТЗ ТЗ ТЗ

Справка о программе предназначена для ознакомления с программой. Содержит HTML документ «Справка». Просмотреть справку можно при нажатии на главной кнопочной форме, копки «Справка о программе».

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

Добавление образа означает внос нового образца в депозитарий образцов. Заключется в вводе нового графического образа и вызове модального окна наименования образца.

Распознание заключается в определении максимального совпадения с одним из образцов в депозитарии.

 


Спецификация

Спецификация (ГОСТ 19.202-78) - основной документ программной документации, который содержит полное описание требований к исходному программному продукту для конкретного типа ЭВМ.

Обозначение Наименование Примечания
000.СКС.00001-01 01 Техническое задание  
000.СКС.00001-01 12 Программа и методика испытаний  
000.СКС.00001-01 34 Пояснительная записка  
000.СКС.00001-01 72 Документ- концепция  

Тестирование разработанной программы


Основные понятия и принципы тестирования ПО

Тестирование - процесс выполнения программы с целью обнаружения ошибок. Шаги процесса задаются тестами.

Каждый тест определяет:

Тестирование обеспечивает:

Существуют 2 принципа тестирования программы:

Тестирование программы, как правило, приводит к выявлению в ней ошибок. Устранению которых способствует отладка. С++Builder представляет очень мощные отладочные средства. Отладка - процесс локализации и фиксирования программных ошибок. Но если найти обычные ошибки профессиональному программисту не сотавляет труда, то есть ряд специфических ошибок типа утечки памяти или отсутствия в деструкторе класса высвобождения указателей. Вот такие ошибки и создают трудности. Вроде компиляция прошла нормально и программа отлинкована без сучка и задоринки, а при работе высыпаютcя сообщения типа «Память по адресу 0x824a3c5d824 не может быть 'read'». Для таких случаев есть в C++ Builder Code Guard (Хранитель Кода). Приведен технический перевод:

CodeGuard сокращает время отладки для приложений разработанных в C++Builder. Он сообщает ошибки, которпые не пойманы компилятором поскольку они не нарушают синтаксические правила. CodeGuard ПРОСЛЕЖИВАЕТ время прогона библиотек Borland, с полной поддержкой для мультипоточных приложений.

CodeGuard ОБЕСПЕЧИВАЕТ два главных типа охвата:

Память и ресурс используются. CodeGuard ПРОВЕРЯЕТ на наличие неправильного использования памяти, неправильного распределения памяти или освобождения, неправильных файловых потоков или дескрипторов, и утечки ресурсов, вызываной неправильным использованием файловых потоков или дескрипторов. Он проверяет указатели на разыменовывание и проверяет арифметику указателя. CodeGuard МОЖЕТ сообщить ошибку, если ваша программа пытается поиметь доступ к памяти или ресурсам, которые уже высвобождены.

Функциональное подтверждение вызова. CodeGuard ПРОВЕРЯЕТ функциональные аргументы и сообщает функциональную ошибку, определенную обратной величиной. Это подтверждает указатели ресурса Windows использованные на функциональных вызовах.

Включение и компонуя CodeGuard

CodeGuard ИСПОЛЬЗУЕТ статическую библиотеку (CG32.LIB) или динамическая связь библиотеки (CG32.DLL). Эти библиотеки содержат функции суперобложки, которые проверяют функциональные аргументы и возвращают величины. CodeGuard МОЖЕТ обнаружить ошибки только в модулях компилированных опциями компилятора CodeGuard.


Эксплуатационная документация

Эксплуатационная документация на программный продукт «Распознавание графических образов» состоит из следующих документов:

  1. Руководство пользователя - документ, в котором содержатся сведения необходимые для эксплуатации программы, для проверки и настройки программы, для общения пользователя с компьютером в процессе выполнения программы.
  2. Ведомость эксплуатационных документов (ГОСТ 19.507-79) - основной документ эксплуатационной документации, в котором указываются документы на программу и её составные части.

Заключение

Отметим, что создание программы в данной работе способствовало изучению новых областей знаний в области программирования и в частности, в области технологий распознавания образов и объектов.

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

Что же касается востребованности данного программного продукта на рынке программного обеспечения, то программа полностью неконкурентоспособна. Она лишь может занять нишу первой ступеньки к распознаванию образов и то только как концептуальная модель.

 


Список литературы

  1. М. Эллис, Б. Строуструп. Справочное руководство по языку C++ с комментариями: Пер. с англ. - Москва: Мир, 1992. 445с.
  2. Стенли Б. Липпман. C++ для начинающих: Пер. с англ. 2тт. - Москва: Унитех; Рязань: Гэлион, 1992, 304-345сс.
  3. Бруно Бабэ. Просто и ясно о Borland C++: Пер. с англ. - Москва: БИНОМ, 1994. 400с.
  4. В.В. Подбельский. Язык C++: Учебное пособие. - Москва: Финансы и статистика, 1995. 560с.
  5. Ирэ Пол. Объектно-ориентированное программирование с использованием C++: Пер. с англ. - Киев: НИИПФ ДиаСофт Лтд, 1995. 480с.
  6. Т. Фейсон. Объектно-ориентированное программирование на Borland C++ 4.5: Пер. с англ. - Киев: Диалектика, 1996. 544с.
  7. Т. Сван. Освоение Borland C++ 4.5: Пер. с англ. - Киев: Диалектика, 1996. 544с.
  8. Г. Шилдт. Самоучитель C++: Пер. с англ. - Санкт-Петербург: BHV-Санкт-Петербург, 1998. 620с.
  9. У. Сэвитч. C++ в примерах: Пер. с англ. - Москва: ЭКОМ, 1997. 736с.
  10. К. Джамса. Учимся программировать на языке C++: Пер. с англ. - Москва: Мир, 1997. 320с.
  11. В.А. Скляров. Язык C++ и объектно-ориентированное программирование: Справочное издание. - Минск: Вышэйшая школа, 1997. 480с.
  12. Х. Дейтел, П. Дейтел. Как программировать на C++: Пер. с англ. - Москва: ЗАО "Издательство БИНОМ", 1998. 1024с.
  13. А. Робачевский. Операционная система UNIX® С-Пб.:БХВ, Петербург, 2002
  14. В.А. Шамис. Borland C++ Builder 6. Для профессионалов. СПб.: Питер, 2003
  15. http://algolist.manual.ru/
  16. http://www.sources.net/
  17. http://www.referatov.net/
  18. http://www.google.ru/
  19. http://www.borland.com/
  20. http://forum.vingrad.ru/
  21. http://www.citforum.ru/
  22. Справочная система Borland® C++Builder 6

Скачать курсовую и программу

Реклама:

Комментарии:

ujawohyg:
https://wk0.ru/
имя:

e-mail (не публикуется):

комментарий:

© Ткачев Филипп, 2005—2018
Программист, веб-разработка и прикладное ПО.
Все права защищены.