Содержание Глава 1. Выбор программных средств.. 3 1.1.Выбор средств разработки. 3 1.2.Дополнительные компоненты.. 3 Глава 2. Анализ предметной области и создание концептуальной модели.. 3 2.1. Сбор информации о предметной области. 3 2.2. Выделение сущностей. 3 Глава 3. Программная реализация.. 3 3.1. Логическая структура программы.. 3 3.2.Подключение готовых библиотек кода. 3 Заключение.. 3 Список используемых источников.. 3 8 Приложение а. Внешний вид программы... 19
Введение Каждый день люди используют компьютеры для различных целей. Компьютеры становятся всё более доступными, кроме того, они продолжают становиться более мощными в процессе обработки информации и более простыми в использовании. Самые крупные компании ведут учёт занятости всех рабочих в больших базах данных, которые управляются компьютерными программами. Подобные программы и базы данных используются в таких сферах деятельности бизнеса, как предоставление потребительских счетов, контроль за полученными и возможными денежными поступлениями, контроль над необходимым объёмом предложения и количеством произведённой, хранимой, поставленной на рынок и проданной продукции. В малом масштабе многие предприятия заменили уже кассовый аппарат специальным кассовым терминалом. Компьютеры появились очень давно в нашем мире, но только в последнее время их начали так усиленно использовать во многих отраслях человеческой жизни. Ещё десять лет назад было редкостью увидеть какой-нибудь персональный компьютер — они были, но были очень дорогие, и даже не каждая фирма могла иметь у себя в офисе компьютер. А теперь? Теперь в каждом третьем доме есть компьютер, который уже глубоко вошёл в жизнь самих обитателей дома. Такое широкое использование и объясняет наличие огромного количества программных продуктов для удовлетворения интересов человека. Речь пойдёт о виртуальных учебниках. Электронные книги сегодня медленно, но уверенно отвоёвывают всё новые и новые позиции у традиционных, бумажных книг. Многие люди сегодня предпочитают, скачав из Интернета текст интересующей их книги, прочесть её на экране монитора. Однако многие пользователи предпочитают прослушивать её в целях бережливости своего зрения или в силу каких-либо других причин. Но особенно актуален этот вопрос для незрячих и слабовидящих пользователей ПК, которые ограничены в выборе альтернативных источников получения информации методом её прочтения. Даная задача ставиться перед различного рода прикладными программами, создаваемыми для прослушивания загружаемых в них электронных учебников. Они существенно облегчают жизнь не только слабовидящих людей, но и дают возможность не терять времени, которое уходит сидя за чтением книги. Благодаря таким программам можно «читать» книгу и одновременно делать что-то ещё. Цель данной курсовой работы – это создание такого приложения, которое сможет прочитать пользователю ту книгу в электронном варианте, которую он сам захочет. Для реализации этого проекта необходимо решить следующие задачи: 1. Подбор материалов и сервисов чтения. 2. Моделирование предметной области и обоснование выбранных средств разработки проекта. 3. Программная реализация проекта. Глава 1. Выбор программных средств 1.1. Выбор средств разработки Программиста, привыкший к платформе Майкрософт, может представить себе C Sharp как промежуточный вариант между C++ и Visual Basic, если рассматривать сложность языковых конструкций и возможности языка. C Sharp имеет C стиль синтаксиса (для управляющих конструкций, блоков кода, описания сигнатуры методов и др.), много общего с Java (отсутствие множественного наследования и шаблонов, наличие сборщика мусора) и Дельфи (ориентированность на создание компонент), в то же время имеет и свой колорит. При создании языка в основу дизайна легла легкость использования, доминирующая над мощностью языка и скоростью выполнения. Отсюда и сборщик мусора с управляемыми объектными ссылками, который автоматически освобождает за Вас память, отбирая при этом процессорное время. Вы также получаете безопасность работы с типами, а это по мнению многих является вторым важнейшим фактором избежания ошибок. C Sharp объектно-ориентированный язык, как и вся платформа .NET. Более того, это язык, ориентированный на написание компонент. C Sharp создан для программирования в управляемой среде с присутствующим сборщиком мусора, но позволяет писать и неуправляемый (unmanaged) код. Цельность концепции видна, скажем в реализации упаковки/распаковки. Это позволяет рассматривать все типы (даже примитивные) как объекты, что разрешает многие проблемы дизайна приложений. При создании языка рассматривалась не только простота написания приложений, но и их поддержки - в связи с чем в язык включили поддержку XML комментариев и контроля версий. Настоящий подарок для программистов. Помимо сборщика мусора и безопасности работы с типами для избежания ошибок в языке также применяется автоматическая инициализация переменных. Все типы, которые размещаются в стеке (value types, к которым относятся примитивные типы, структуры и прочие наследники класса ValueType) инициализируются нулями. Объекты остальных типов размещаются в куче, доступ к ним осуществляется по объектной ссылке, и ссылки эти инициализируются в значение null (которая говорит, что данная ссылка не имеет ассоциированного объекта в куче). В C Sharp представлена концепция пространств имен, аналогичная пакетам в Java. Это позволяет иерархически структурировать Вашу систему типов, делая код намного более понятным и позволяя избежать проблем с именованием. Вы можете рассматривать пространства имен как директории, а языковые типы как файлы в этих директориях. В языке для работы с событиями и обратными вызовами представлена новая концепция объектно-ориентировано и безопасной с точки зрения системы типов ссылки на функцию - "делегат". Именно эта концепция позволяет описывать события C Sharp компонента без возвратных интерфейсов и дополнительных усилий, достаточно использовать ключевое слово event. Индексаторы и свойства органично дополняют события до создания описываемого сигнатурой компонента. C Sharp позволяет использовать при разработке парадигму атрибутивного программирования, когда в компиляционных модулях вместе с типом может сохраняться мета-информация. Данная информация впоследствии может быть получена и использована во время выполнения. Более того, этой информацией может воспользоваться компилятор или, скажем, дизайнер, что позволяет, не запуская компонент, получать информацию о нем. Работа с атрибутам позволяет использовать COM, COM+ и DLL в C Sharp приложениях, работающих в среде .NET. Перечисления позволяют обезопасить работу с перечисляемыми типами. Реализация структур как типов, работа с которыми идет по значению, вкупе с возможностью использовать не только вложенные массивы (как в Java), но и многомерные позволяет оптимизировать производительность приложений. При написании стандартных приложений под .NET трудно подобрать более подходящий язык для реализации всех задуманных идей. По этой причине наилучшим вариантом программного продукта для написания курсовой работы является C Sharp. 1.2. Дополнительные компоненты При создании приложений, использующих платформу Microsoft .NET, возникает задача применения в собственных проектах уже готовых библиотек кода, написанных на других языках. Сжатые сроки разработки и уже имеющиеся программные блоки не позволяют отказаться от готовых решений, поэтому их приходится использовать, встраивая в структуру собственных проектов. Код, выполняющийся под управлением среды выполнения (в случае платформы .NET — среды Common Language Runtime), называется управляемым. Напротив, код, запускаемый не под управлением среды, называется неуправляемым. Примером неуправляемого кода могут служить COM-компоненты, Microsoft ActiveX интерфейсы и функции API Win32. Microsoft .NET Framework позволяет взаимодействовать с COM-компонентами, COM+-службами, внешними типами библиотек и разными службами операционной системы. Перехват исключений различается в управляемом и неуправляемом коде. Платформа .NET Framework предлагает две службы взаимодействия управляемого кода с неуправляемым — Platform Invoke и COM interoperability, которые используют реальные возможности проекта. Объектная модель COM (Common Object Model) компонентов имеет некоторые существенные отличия от объектной модели компонентов .NET Framework. · Управление жизненным циклом объектов. Клиенты СОМ-объектов сами управляют этим циклом, среда CLR платформы .NET берет эту задачу на себя. · Обращение к службам и объектам. Клиенты COM-объектов узнают о функциональности службы путем опроса ее интерфейса, клиенты .NET-объектов могут получить описание функциональности, используя пространство имен Reflection. · Среда CLR перемещает объекты в памяти для улучшения производительности, обновляя ссылки этих объектов. Клиенты COM имеют постоянную ссылку на ячейки памяти, не изменяющуюся в течение всей жизни объекта. Для преодоления этих различий CLR предлагает классы-оболочки, которые позволяют управляемым и неуправляемым клиентам думать, что они работают с объектами той же среды, что и они сами. Когда управляемый клиент вызывает неуправляемый метод, CLR создает временную оболочку RCW (Runtime Callable Wrapper). RCW абстрагирует различия между управляемым и неуправляемым кодом. CLR также создает оболочку CCW (COM Callable Wrapper) для обращения процесса, которая позволяет COM-объектам запускать методы .NET-объектов. Часто требуется применение функций WinAPI, находящихся в файлах dll. Когда служба вызывает функцию, совершаются следующие операции: · обнаружение необходимой библиотеки; · загрузка найденной библиотеки в оперативную память; · обнаружение адреса библиотеки в памяти и передача аргументов функции, с их преобразованием при необходимости; · после этого передается управление неуправляемой функции и ждет завершения. Для подключения функции необходимо представить адрес библиотеки и данные о функции: название, входящие и исходящие аргументы.
Глава 2. Анализ предметной области и создание концептуальной модели 2.1. Сбор информации о предметной области Перед тем, как начать работу над проектом, необходимо изучить структуру DLL файлов, т.к. через подключение этих библиотек мы достигнем наиболее оптимального решения поставленной задачи. DLL - это сокращение от Dynamic Link Library (динамически загружаемая библиотека). С формальной точки зрения DLL - особым образом оформленный относительно независимый блок исполняемого кода. Особый способ оформления предполагает наличие в DLL так называемых секций импорта и экспорта. Секция экспорта указывает те идентификаторы объектов (функций, классов, переменных), доступ к которым предоставляет данная DLL. В этом случае мы говорим об экспортировании идентификаторов из DLL. В общем случае, именно секция экспорта предоставляет особый интерес для разработчиков. Хотя ничто не мешает реализовать DLL, которая не имеет данной секции, но, тем не менее, выполняет полезную работу. Относительная независимость связана с наличием/отсутствием секции импорта у DLL (т.е. секции, в которой описываются внешние зависимости данной DLL от других). Подавляющее большинство DLL (за исключением, быть может, DLL ресурсов) импортирует функции из системных DLL (kernel32.dll, user32.dll, gdi32.dll и др.). В большинстве случае при создании проекта в его опциях автоматически проставляется стандартный набор таких библиотек. Иногда в этот список необходимо добавить требующиеся для Ваших задач DLL (например, в случае использования библиотеки сокетов требуется дополнительно подключить библиотеку ws2_32.dll). "Исполняемый" код в DLL не предполагает автономного использования. Перед тем, как можно будет приступить к использованию, необходимо загрузить DLL в область памяти вызывающего процесса (т.е. DLL не может выполняться сама по себе - ей обязательно нужен клиент). Это явление носит название "проецирование DLL на адресное пространство процесса". И это не удивительно, если вспомнить тот факт, что процессор работает не только с регистрами, но и с адресами памяти. Поэтому каждому объекту DLL требуется свое место "под солнцем", чтобы иметь возможность быть выполненным при вызове. В конечном коде exe-файла, который генерирует компилятор, не будет инструкций процессора, соответствующих коду данной функции. Вместо этого будет сгенерирована инструкция вызова соответствующей функции (call). Так как DLL отображена на адресное пространство процесса, то код DLL будет легко доступен по call-вызову. Итак, формально, DLL - особым образом оформленный программный компонент, доступ к исполняемому коду которого приложение получает в момент старта (DLL неявной загрузки) или в момент использования (DLL явной и отложенной загрузки). 2.2. Выделение сущностей При анализе предметной области были выделены следующие сущности и проблемы: на начальном этапе реализации требовалось создать текстовый редактор для отображения читаемого текста. Его задача заключается в том, чтобы пользователь мог полноценно воспользоваться всеми стандартными функциями редактирования текста. Затем – подключить имеющиеся голосовые движки и предоставить пользователю возможность самостоятельно выбрать понравившийся синтезатор речи. Следующий этап разработки – создание удобного и понятного интерфейса, не требующего от пользователя высокого уровня компьютерной грамотности.
Рефераты по информатикеСодержание Глава 1. Выбор программных средств.. 3 1.1.Выбор средств разработки. 3 1.2.Дополнительные компоненты.. 3 Глава 2. Анализ предметной
Оценок: 334 (Средняя 5 из 5)
Наверняка у вас есть товары или услуги, продажа которых приносит вам максимальную прибыль. Для быстрого старта в сети вам необходимо создание посадочной страницы (одностраничного сайта), на которой будет размещена информация о маржинальных товарах/услугах интернет магазина. За 8 лет опыта разработки конверсионных страниц мы выработали оптимальную структуру, которая позволит привлекать через landing page больше продаж. На такую структуру «одевается» ваш контент — фирменный стиль, тексты, фотографии, уникальные торговые предложения, после чего страница выходит в свет. Разработка лендинга и запуск в сети — до 7 рабочих дней. Стоит отметить, что в разработку самой посадочной страницы входит и написание копирайтером продающих текстов для вашего бизнеса, чтобы каждый посетитель страницы захотел совершить покупку именно у вас. Результат: качественно разработаная продающая посадочная страница, которая готова приносить вам новых клиентов.