49060 (Создание программы для работы со сканером), страница 2

2016-07-30СтудИзба

Описание файла

Документ из архива "Создание программы для работы со сканером", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "49060"

Текст 2 страницы из документа "49060"

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

Язык С++ с появлением первых трансляторов нашёл сразу же очень широкое распространение, на нём было создано огромное количество программ и приложений. По мере накопления опыта создания больших программных систем обнажились недостатки, которые привели к поиску альтернативных решений. Таким альтернативным решением стал язык Java, который в некоторых областях стал конкурировать по популярности с C++, а фирма Майкрософт предложила язык С# как новый язык, развивающий принципы С++ и использующий преимущества языка Java. В дальнейшем появился язык Nemerle, объединяющий достоинства C# с возможностью функционального программирования. В последнее время появилась попытка объединения эффективности C++, безопасности и скорости разработки, как в Java и C#. Был предложен язык D, который пока не получил широкого признания.

    1. Достоинства языка C++

  1. Кроссплатформенность. На языке C++ разрабатывают программы для самых различных платформ и систем.

  2. Возможность работы на низком уровне с памятью, адресами, портами.

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

    1. Недостатки языка C++

  1. Плохая поддержка модульности. Подключение интерфейса внешнего модуля через препроцессорную вставку заголовочного файла (#include) серьёзно замедляет компиляцию, при подключении большого количества модулей. Для устранения этого недостатка, многие компиляторы реализуют механизм прекомпиляции заголовочных файлов Precomplied Headers.

  2. Язык C++ является сложным для изучения и для компиляции.

  3. Некоторые преобразования типов неинтуитивны. В частности, операция над беззнаковым и знаковым числами выдаёт беззнаковый результат.

  4. Препроцессор С++ (унаследованный от С) очень примитивен. Это приводит с одной стороны к тому, что с его помощью нельзя (или тяжело) осуществлять некоторые задачи метапрограммирования, а с другой, вследствие своей примитивности, он часто приводит к ошибкам и требует много действий по обходу потенциальных проблем. Некоторые языки программирования (например, Scheme и Nemerle) имеют намного более мощные и более безопасные системы метапрограммирования (также называемые макросами, но мало напоминающие макросы С/С++).

  5. С конца XX века в сообществе С++ получило распространение так называемое метапрограммирование на базе шаблонов. По сути, оно использует особенности шаблонов C++ в целях реализации на их базе интерпретатора примитивного функционального языка программирования выполняющегося во время компиляции. Сама по себе данная возможность весьма привлекательна, но, вследствие вышесказанного, такой код весьма трудно воспринимать и отлаживать. Языки Lisp/Scheme, Nemerle и некоторые другие имеют более мощные и одновременно более простые для восприятия подсистемы метапрограммирования. Кроме того, в языке D реализована сравнимая по мощности, но значительно более простая в применении подсистема шаблонного метапрограммирования.

  6. Хотя декларируется, что С++ мультипарадигменный язык, реально в языке отсутствует поддержка функционального программирования. Отчасти, данный пробел устраняется различными библиотеками (Loki,Boost) использующими средства метапрограммирования для расширения языка функциональными конструкциями (например, поддержкой лямбд/анонимных методов), но качество подобных решений значительно уступает качеству встроенных в функциональные языки решений. Такие возможности функциональных языков как сопоставление с образцом вообще крайне сложно эмулировать средствами мета программирования.

Раздел 3. ОПИСАНИЕ РАЗРАБОТАННОЙ ПРОГРАММЫ

3.1. Описание структуры программы

В отличие от принтеров сканеры изначально не поддерживались ОС Windows и не имеют API для работы с ними . В начале своего появления сканеры взаимодействовали с программами посредством уникального для каждой модели сканера интерфейса, что серьезно затрудняло включение поддержки работы со сканером в прикладные программы. Для решения этой проблемы был разработан TWAIN - индустриальный стандарт интерфейса программного обеспечения для передачи изображений из различных устройств в Windows и Macintosh. Стандарт издан и поддерживается TWAIN рабочей группой - официальный сайт www.twain.org. Стандарт издан в 1992 гаду.

В настоящее время действует версия 1.9 от января 2000 г. Абревеатура TWAIN изначально не имела какого-то определенного смысла хотя позже была придумана расшифровка: (Technology Without An Interesting Name - Технология без интересного имени). TWAIN - не протокол аппаратного уровня, он требует драйвера (названного Data Source или DS) для каждого устройства.

К настоящему времени (май 2000 г.) TWAIN доступен для Windows 3.1 и выше (Intel и совместимые процессоры), Macintosh и OS/2. Для Linux самый близкий стандарт - SANE..

Менеджер TWAIN (DSM) - действует как координатор между приложениями и Источником Данных (Data Source). DSM имеет минимальный пользовательский интерфейс - только выбор DS. Все взаимодействие с пользователем вне прикладной программы осуществляется по средствам DS.

Каждый источник данных разрабатывается непосредственно производителем соответствующих устройств. И их поддержка стандарта TWAIN осуществляется на добровольной основе.

3.3.1 Использование TWAIN

DSM и DS это DLLs загружаемые в адресное пространство приложения и работают как подпрограммы приложения. DSM использует межпроцесcную связь, что бы координировать действия со своими копиями, когда больше чем одна программа использует TWAIN.

Упрощенная схема действия приложения использующего TWAIN:

1. Открыть диалог настройки соответствующего устройства (диалог отображает DS) и задать соответствующие настройки.

2. Приложение ожидает сообщение от DS, что изображение готово. Во время ожидания все зарегистрированные сообщения будут направляться через TWAIN. Если это не будет выполняться, то приложение не получит сообщения о готовности изображения.

3. Приложение принимает изображение от DS.

TWAIN определяет три типа передачи изображения:

Native - в Windows это DIB в памяти

Memory - как блоки пикселей в буферах памяти

File - DS записывает изображение непосредственно в файл (не обязательно поддерживается)

4. Приложение закрывает DS.

3.3.2 Структура программы и используемые функции.

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

TWAIN_SelectImageSource(hwnd: HWND): Integer;.

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

Для сохранения

Ф аил сохранить как (вписать имя и через точку расширение)

ЗАКЛЮЧЕНИЕ

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

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

Выбран язык программирования, Borland Delphi 7 Studio как прогрессивный язык объектно-ориентированного программирования.

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

СПИСОК ЛИТЕРАТУРЫ

1. Архангельский А. Я. "Разработка прикладных программ для Windows в Delphi 7"

2. Дарахвелидае П. Г., Марков Е. П. "Программирование в Delphi 7."

3. Зайцев О. В., Владимиров А. М. " Объектно-ориентированное пронграммирование"

4. Галисеев Г. В. "Программирование в среде Delphi 8 for.NET"

5. Гофман В. Э., Хомоненко А. Д. "Delphi. Быстрый старт"

6. Тейксейра С., Пачеко К. "Borland Delhi 6. Руководство разработчика"

7. Фаронов В. В. Программирование баз данных в Delphi 7. Учебный курс; Питер, 2006. – 457с.

8. Фаронов В.В., Шумаков П.В. Delphi 5. Руководство разработчика баз данных.; Нолидж, 2000. – 640с. 

9. Культин Н. Б. Основы программирования в Delphi 7; СПб:БХВ-Петербург, 2003. – 608с.

10. Елманова Н. и др. "Delphi и технология COM. Мастер-класс"

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Нет! Мы не выполняем работы на заказ, однако Вы можете попросить что-то выложить в наших социальных сетях.
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
4144
Авторов
на СтудИзбе
666
Средний доход
с одного платного файла
Обучение Подробнее