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

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

Рубрика Программирование, компьютеры и кибернетика
Вид шпаргалка
Язык русский
Дата добавления 26.06.2014
Размер файла 285,0 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

CFile::modeReadWrite - Файл открывается для записи и для чтения.

CFile::modeWrite - Файл открывается только для записи.

CFile::typeText - Используется классами, порожденными от класса CFile, например CStdioFile, для работы с файлами в текстовом режиме. Текстовый режим обеспечивает преобразование комбинации символа возврата каретки и символа перевода строки.

CFile::Binary - Используется классами, порожденными от класса CFile, например CStdioFile, для работы с файлами в двоичном режиме.

Необязательный параметр pError, который является указателем на объект класса CFileException, используется только в том случае, если выполнение операции с файлом вызовет ошибку. При этом в объект, указываемый pError, будет записана дополнительная информация.

После завершения работы с файлом, его надо закрыть. Класс CFile имеет для этого специальный метод Close.

Нужно заметить, что если был создан объект класса CFile и открыт файл, а затем объект удаляется, то связанный с ним файл закрывается автоматически с помощью деструктора.

Чтение и запись файлов

Для доступа к файлам предназначено несколько методов класса CFile: Read, ReadHuge, Write, WriteHuge, Flush.

Методы Read и ReadHuge предназначены для чтения данных из предварительно открытого файла. В 32-разрядных операционных системах оба метода могут одновременно считать из файла больше 65535 байт. Спецификация ReadHuge считается устаревшей и оставлена только для совместимости с 16-разрядными операционными системами.

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

Для записи в файл предназначены методы Write и WriteHuge. В 32-разрядных операционных системах оба метода могут одновременно записывать в файл больше 65535 байт.

В случае возникновения ошибки записи, например, переполнения диска, методы вызывают обработку исключения.

Когда используется метод Write или WriteHuge для записи данных на диск, они некоторое время могут находиться во временном буфере. Чтобы убедиться, что необходимые изменения внесены в файл на диске, нужно воспользоваться методом Flush.

Операции с файлами

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

Для изменения имени файла класс CFile включает статический метод Rename, выполняющий функции этой команды.

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

Для удаления файлов в классе CFile включен статический метод Remove, позволяющий удалить указанный файл.

Этот метод не позволяет удалять каталоги. Если удалить файл невозможно, то метод вызывает исключение.

Чтобы определить дату и время создания файла, его длину и атрибуты, предназначен статический метод GetStatus. Существует две разновидности метода - первый определен как виртуальный, а второй - как статический метод.

Виртуальная версия метода GetStatus определяет состояние открытого файла, связанного с данным объектом класса CFile. Этот метод вызывается только тогда, когда объект класса CFile создан и файл открыт.

Статическая версия метода GetStatus позволяет определить характеристики файла, не связанного с объектом класса CFile. Чтобы воспользоваться этим методом, необязательно предварительно открывать файл.

Блокировка

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

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

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

Установить блокировку можно с помощью метода LockRange. Чтобы снять установленные блокировки, надо воспользоваться методом UnlockRange.

Если в одном файле установлены несколько блокировок, то каждая из них должна сниматься отдельным вызовом метода UnlockRange.

Позиционирование

Чтобы переместить указатель текущей позиции файла в новое положение, можно воспользоваться одним из следующих методов класса CFile - Seek, SeekToBegin, SeekToEnd. В состав класса CFile также входят методы, позволяющие установить и изменить длину файла, - GetLength, SetLength.

При открытии файла указатель текущей позиции файла находится в самом начале файла.

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

Текущую позицию указателя файла можно определить с помощью метода GetPosition. Возвращаемое методом GetPosition 32-разрядное значение определяет смещение указателя от начала файла.

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

Чтобы переместить указатель в начало или конец файла, наиболее удобно использовать специальные методы. Метод SeekToBegin перемещает указатель в начало файла, а метод SeekToEnd - в его конец.

Но для определения длины открытого файла совсем необязательно перемещать его указатель. Можно воспользоваться методом GetLength. Этот метод также возвращает длину открытого файла в байтах.

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

Характеристики открытого файла

Чтобы определить расположение открытого файла на диске, надо вызвать метод GetFilePath. Этот метод возвращает объект класса CString, в котором содержится полный путь файла, включая имя диска, каталоги, имя файла и его расширение.

Если требуется определить только имя и расширение открытого файла, можно воспользоваться методом GetFileName. Он возвращает объект класса CString, в котором находится имя файла.

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

Панель инструментов и строка состояния. Создание панелей инструментов. Добавление и удаление пиктограмм с панелей инструментов.

Панель инструментов и строка состояния

Создание хорошего пользовательского интерфейса -- это едва ли не половина успеха в разработке приложения для Windows. К счастью, Visual C++ и его мастера предоставляют разработчику уникальные возможности для создания приложений, поддерживающих все привычные элементы пользовательского интерфейса, включая меню, диалоговые окна, панели инструментов и строку состояния. Тема меню и диалоговых окон уже рассматривалась. Рассмотрим вопросы создания и настройки панелей инструментов и строк состояния приложений.

Создание панелей инструментов

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

Если с помощью AppWizard создать стандартное приложение, имеющее панель инструментов, то последняя будет содержать пиктограммы для наиболее распространенных команд меню File и Edit, а также пиктограмму для отображения окна About. Но как быть, если ваше приложение не поддерживает эти команды? В данном случае потребуется так модифицировать создаваемую по умолчанию панель инструментов, чтобы она соответствовала командам именно вашего приложения.

Удаление пиктограмм с панели инструментов

Создайте приложение с многооконным интерфейсом, включающее панель инструментов. Для этого выберите команду File-New, в открывшемся диалоговом окне выберите вкладку Projects, присвойте приложению имя Tool и примите значения по умолчанию в каждом из диалоговых окон, которые AppWizard будет выводить на экран. Для ускорения процесса можно на первом же шаге щелкнуть на кнопке Finish. Мастер AppWizard по умолчанию формирует стационарную панель инструментов. Завершите создание приложения и запустите его. На экране вы увидите панель инструментов.

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

В качестве первого шага в процедуре настройки панелей инструментов выполним удаление пиктограмм, которые в приложении не потребуются. Начните с того, что для отображения ресурсов приложения щелкните на корешке вкладки ResourceView. Далее щелкните на значке + рядом с элементом Toolbar, а затем сделайте двойной щелчок на ресурсе IDR_MAINFRAME. Откроется окно редактирования панелей инструментов.

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

Добавление пиктограмм на панель инструментов

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

Предположим, что на панели инструментов требуется создать пиктограмму, которая вызывает программу вычерчивания в окне приложения красного, круга. В качестве значка этой пиктограммы в окне редактора пиктограммы нарисуем красный круг (с помощью, инструментa,Ellipse). Выведите на экран окно свойств Properties, и присвойте пиктограмме соответствующий идентификатор команды, например ID_CIRCLE.

Далее следует определить для пиктограммы содержание контекстного окна указателя (ToolTip) и ввести ее описание. Контекстное окно указателя будет выводиться на экран в том случае, когда пользователь поместит указатель мыши на данную пиктограмму и задержит его |на ней на одну-две секунды. Эта процедура напомнит пользователю, назначение данной пиктограммы. Для нашего примера подходящим значением для указателя будет слово Circle. Описание же пиктограммы выводится в строке состояния приложения. В нашем случае подходящим описанием будет фраза: Draws a red circle in the window. Введите обе эти текстовые строки в поле Prompt. Сначала вводится текст описания пиктограммы, затем -- знак перехода на новую строку (\n) и текст в контекстном окне указателя для данной пиктограммы.

Формирование строки состояния

Строки состояния являются очень полезными объектами, которые располагаются в нижней части окон приложений. Функция строки состояния (как она определена MFC) -- отображение описания команд и состояния различных клавиш клавиатуры, включая клавиши <Caps Lock> и <Scroll Lock>. Фактически строка состояния настолько стандартна с точки зрения программистов (это справедливо, по крайней мере, для приложений, создаваемых с помощью AppWizard), что для нее даже отсутствуют ресурсы, которые можно было бы редактировать, как в случае с панелью инструментов. Достаточно только потребовать от AppWizard включить строку состояния в приложение, и вся необходимая работа будет автоматически выполнена.

Четвертый этап создания приложения - выбор опций, определяющих внешний вид элементов пользовательского интерфейса. Диалоговое окно Step 4 содержит много переключателей-флажков, соответствующих предлагаемым опциям оформления. Среди них есть флажок Initial status bar.

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

CommandTolndex() Возвращает индекс индикатора, заданного его идентификатором

Create() Создает строку состояния

GetIternID() Возвращает идентификатор индикатора, заданного его индексом

GetItemRect() Возвращает параметры прямоугольника элемента, заданного его индексом

GetPanelnfoO Возвращает информацию об индикаторе

GetPaneStyle() Возвращает стиль индикатора

GetPaneText() Возвращает текст индикатора

GetStatusBarCtrl() Возвращает ссылку на объект класса CStatusBarCtrl, представленный объектом CStatusBar

Setlndicators() Задает идентификатор индикатора

SetPanelnfo() Задает для индикатора идентификатор, ширину и стиль

SetPaneStyle() Задает стиль индикатора

SetPaneText() Задает текст индикатора

Если при настройке AppWizard задать включение в приложение строки состояния, будет создано окно приложения. Строка состояния разделена на несколько частей, называемых ячейками, которые отображают определенную информацию о состоянии приложения и системы. Эти ячейки включают индикаторы для клавиш <Caps Lock>, <Num Lock> и <Scroll Lock>, а также область сообщений, в которой отображаются данные о состоянии и описание команд. Индикаторы прибиваются к правому краю, а все оставшееся место отдается для информационной строки. Чтобы увидеть описание команды, следует поместить указатель мыши на пиктограмму панели инструментов.

Рамка окна запоминает информацию об индикаторах в массиве. Самый левый индикатор имеет индекс 0. Когда вы создаете status bar, вы используете массив идентификаторов строк, которые рамка окна назначает соответствующим индикаторам. Далее можно пользоваться или идентификатором строки, или индексом его в массиве. По умолчанию первый индикатор «эластичный», он занимает все место оставшееся от индикаторов, которые прибиты к правому краю.

Чтобы создать объект класса CStatusBar необходимо выполнить следующие шаги:

Сконструировать объект CStatusBar;

Вызвать метод Create, чтобы создать окно для панели и назначить его для объекта класса CStatusBar;

Вызвать метод SetIndicators, чтобы назначить идентификатор строки каждому индикатору.

Есть три пути для установки текста на панели status bar.

Вызвать метод SetWindowText, чтобы установить текст на панели 0 только.

Вызвать метод CCmdUI::SetText при выполнении ON_UPDATE_COMMAND_UI для панели состояния.

Вызвать метод SetPaneText, чтобы установить текст на любой другой панели.

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

1.Создать идентификатор команды для новой ячейки.

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

3.Добавить идентификатор команды ячейки в массив индикаторов строки состояния.

4.Создать для ячейки функцию обработки команды обновления.

19.Доступ к данным в Visual C++. Технологии DAO, RDO, ODBC

Выбор между классами ODBC и DAO

Вы получили общее представление о классах ODBC Visual C++ и узнали о том, как они используются в приложениях, созданных с помощью мастера AppWizard. Visual C++ также включает полный набор классов DAO, которые можно использовать для создания БД-приложений. DAO во многих отношениях является для классов ODBC суперклассом, включая большинство функциональных возможностей ODBC и добавляя при этом множество своих собственных. К сожалению, хотя классы DAO и могут работать с источниками данных ODBC, для которых существуют ODBC-драйверы, такое их применение не особенно эффективно. По этой причине DAO-классы больше подходят для создания программных приложений, оперирующих файлами баз данных формата .mdb фирмы Microsoft, создаваемых приложением Microsoft Access. Файлы других форматов, с которыми можно, используя классы DAO, работать напрямую, создаются приложениями FoxPro и Excel.

Классы DAO, которые используют приложение Microsoft Jet Database Engine, настолько похожи на классы ODBC, что во многих случаях можно конвертировать программы ODBC в DAO путем простого изменения названия класса в тексте программы: CDatabase изменяется на CDaoDatabase, CRecordset изменяется на CDaoRecordset, a CRecordView изменяется на CDaoRecordView. Однако между классами ODBC и DAO имеется существенное различие в том, как реализуются системные библиотеки. ODBC-классы реализованы как набор модулей DLL, в то время как классы DAO реализованы в виде объектов OLE. Использование объектов OLE делает систему DAO несколько более современной в сравнении с ODBC, по крайней мере, в отношении архитектуры.

Хотя система DAO реализована в виде объектов OLE, вам не придется беспокоиться о работе с подобными объектами напрямую. Входящие в MFC классы DAO берут обработку всех деталей управления на себя, предоставляя данные и методы, обеспечивающие взаимодействие с объектами OLE. Класс CDaoWorkspace обеспечивает с помощью статических методов прямой доступ к объектам ядра базы данных DAO. Хотя MFC берет управление рабочей областью на себя, можно использовать ее данные и методы для непосредственной инициализации связи с базой данных.

Еще одно отличие состоит в том, что классы DAO предоставляют более мощный набор функций, которые можно использовать для манипулирования базой данных. Эти более мощные методы позволяют выполнять с базами данных сложные операции, используя небольшой объем исходного текста на C++ или SQL-выражения, написанные непосредственно разработчиком.

*Обе системы (ODBC и ОАО) могут работать с ODBC-источниками данных. Однако DАО менее эффективна при таком применении, так как больше подходит для работы с файлами баз данных формата .mdb.

*Мастер AppWizard может создать заготовку БД-приложения, используя либо классы ODBC, либо классы DАО. Выбор типа создаваемого приложения зависит, по крайней мере, частично, от баз данных, с которыми вы будете работать.

*Обе системы -- и ODBC, и DAO -- используют для соединения с базой данных, к которой осуществляется доступ, объекты классов баз данных MFC. В ODBC такой класс базы данных называется CDatabase, а в системе DAO -- CDaoDatabase. Хотя эти классы и имеют разные названия, DAО-класс содержит множество членов, подобных тем, которые можно обнаружить в ODBC-классе.

*Обе системы, ODBC и DAO, используют объекты класса выборки данных для хранения записей, выбранных на текущий момент. В ODBC такой класс выборки данных называется CRecordset, а в системе DAO-- CDaoRecordset. Хотя эти классы и имеют разные названия, DAO-класс выборки данных содержит практически все члены класса ODBC. Кроме того, DAO-класс имеет большой набор дополнительных методов.

*Системы ODBC и DAO используют схожие методики просмотра содержимого источника данных, а именно: в обеих системах приложение должно создать объект базы данных, создать объект выборки данных, а затем вызвать методы соответствующего класса для манипулирования базой данных.

Различия между системами ODBC и DAO состоят в следующем.

*Хотя входящие в MFC классы ODBC и DAO похожи (иногда даже очень), некоторые аналогичные методы имеют разные имена. Кроме того, классы DAO включают много методов, которым нет аналогов в классах ODBC.

*В системе ODBC для определения опций, которые могут использоваться при открытии выборки данных, используются макросы и перечисления, тогда как в DAO для этих целей определены константы.

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

*Система ODBC реализована в виде набора DLL-модулей, а DAO реализована как набор объектов OLE.

*В ODBC объект класса CDatabase напрямую взаимодействует с источником данных. В DAO объект класса CDaoWorkspace занимает промежуточное положение между объектами классов CDaoRecordset и CDaoDatabase, что дает возможность рабочей среде взаимодействовать со многими объектами класса баз данных.

20.Доступ к данным в Visual C++. Технологии UDA, OLE DB

Первоначально OLE была задумана как технология интеграции программных продуктов, входящих в комплект Microsoft Office. Предшественницей OLE является реализованная в Windows технология динамического обмена данными DDE (Dynamic Data Exchange), до сих пор широко применяемая в этой среде.

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

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

Низкая популярность DDE вынуждала Microsoft искать различные способы его усовершенствования.

Для решения этой проблемы архитекторы OLE создали группу технологий,область применения которых гораздо шире составных документов (DDE). Основу OLE 2 составляет важнейшая из этих технологий -- Модель многокомпонентных объектов (Component Object Model -- СОМ). Новая версия OLE не только обеспечивает поддержку составных документов лучше, чем первая, но и, несомненно, идет куда дальше простого объединения документов, созданных в разных приложениях. OLE 2 позволяет по-новому взглянуть на взаимодействие любых типов программ.

Новые возможности программных систем многим обязаны СОМ, предоставившей общую парадигму взаимодействия программ любых типов: библиотек, приложений, системного программного обеспечения и др. Вот почему подход, предложенный СОМ, можно использовать при реализации практически любой программной технологии, и его применение дает немало существенных преимуществ.

21.Классы ODBC

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

Современные версии Visual C++ включают классы, базирующиеся на механизмах ODBC (Open Database Connectivity -- открытая связь с базами данных) и DAO (Data Access Objects-- объекты доступа к данным).

Основные понятия теории баз данных

Однофайловая модель базы данных:

В простейшем представлении база данных является набором записей. Каждая запись в базе данных состоит из полей, а в каждом поле содержится информация, связанная с этой конкретной записью. В такой базе данных каждому клиенту соответствует одна запись. Она состоит из шести полей: ИМЯ, УЛИЦА, ДОМ, ГОРОД, ИНДЕКС (почтовый индекс) и ТЕЛЕФОН (номер телефона) (пример одной записи). Вся БД будет состоять из большого кол-ва подобных записей. Данный тип СУБД исп-т однофайловую модель базы данных (flat database model). Однако в случае больших баз данных, одноф-я модель может привести к дублир-ю инф-и и нерацион-му исп-ю памяти.

Реляционная модель базы данных:

Реляционная (от relation -- отнош-е, связь) БД подобна неск-м связ-м одноф-м БД. При работе с реляционной БД можно не только выполнять поиск отдельн. записей, как это дел-ся в одноф-й БД, но и устанавл-ть связь одного набора записей с другим. Это позволяет организовать гораздо более эф-ное хранение данных. Каждый набор записей в реляц. БД наз-ся таблицей (table). Связи устан-ся с исп-м ключей (key), т.е. полей, значения которых хар-ют запись. (Напр, идентификационный код служащего мог бы быть ключом для таблицы служащих.)

Доступ к базе данных

Доступ к данным в реляц-х СУБД осущ-ся с исп-м опред-го командн. языка. Чаще всего для доступа к БД исп-ся язык SQL, который прим-ся при работе не только с СУБД для настольных комп-в, но и с громадными БД, исп-ми в банках, учебных завед-х, промышл-х корпорациях и других учр-х, в кот-х необх-мо решать сложнейшие задачи обр-ки инф-ции. Используя язык, подобный SQL, можно извлекать данные, представл-е полями записей из одной или неск-х таблиц, кот-е объед-ны в реляц. БД.

Классы ODBC Visual C++

Создавая с помощью мастера Visual C++ AppWizard прог-му, работ-ю с БД, вы получаете в итоге прилож-е, широко использ-е различные классы ODBC из состава библиотеки MFC. Наиболее важными из этих классов являются CDatabase, CRecordset и CRecordView.

Мастер AppWizard автомат-ки генерирует текст прог-мы, необх-й для coздания объекта класса CDatabase. Этот объект обесп-т связь м/у созд-м прилож-м и источником данных, с которым оно работает. В большинстве случаев использование класса CDatabase в прог-х, сгенерир-х AppWizard, прозрачно для программиста. Вся необх-я обр-ка обеспеч-ся самой сист-й упр-я.

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

И наконец, объект класса CRecordView в БД-программе занимает место объекта класса представления, с которым постоянно приходится иметь дело в приложениях, созданных с помощью мастера AppWizard. Окно, создаваемое объектом класса CRecordView, подобно диалоговому окну, выполн-му роль средства общения пользователя с приложением. Это диалоговое окно обеспечивает в приложении связь с объектом класса CRecordset, осуществляя обмен инф-й между программой, элементами управления окна и выборкой данных. Когда с помощью мастера AppWizard создается новое БД-приложение, на программиста возлагается обязанность поместить в окно объекта CRecordView элементы управления, способные выполнять ввод и редактирование данных. Как правило, это текстовые поля. Такие элементы управления следует связать с полями записей базы данных, которые они представляют, для того, чтобы приложение направляло данные, выбранные для просмотра, куда следует.

Создание БД-программы на основе классов ODBC:

Создать с помощью Visual C++ простую БД-программу, использующую классы ODBC, совсем несложно -- для этого нужно выполнить всего несколько операций.

1. Зарегистрировать базу данных в системе.

2.Исп-я мастер AppWizard, создать заготовку БД-приложения.

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

22.Регистрация БД. Создание заготовки приложения

Прежде чем приступить к созданию БД-приложения, необходимо БД, с кот-й вы хотите работать, зарег-ть в кач-ве ист-ка данных, доступ к которому будет осущ-ся ч/з драйвер ODBC. Для этого выполните следующие действия.

1.Создайте на жестком диске папку с именем Database и расположите в ней файл 1.mdb. Если у вас нет готового файла, можно самост-но сформ-ть в Microsoft Access три таблицы.

Файл 1.mdb предст-т собой БД, созд-ю в СУБД Microsoft Access. Эта БД будет исп-ся в качестве источника данных.

2.Из меню Start в Windows откройте Control Panel. В ее окне сделайте двойной щелчок на пиктограмме 32-Bit ODBC. Раскроется, диалоговое окно ODBC Data Source Administrator. Если в представленном в этом окне списке отсутствует необходимый вам драйвер (в данном примере -- Microsoft Access Driver), выполните следующий пункт. В противном случае перейдите сразу к п. 4

3.Щелкните на кнопке Add. Появится диал. окно Create New Data Source. Из списка драйверов выберите Microsoft Access Driver, а затем щелкните на кнопке Finish (Конец).

Теперь Microsoft Access Driver явл-ся тем ODBC-драйвером, кот-й будет связан с ист-м данных, предназн-м для работы с прилож-м.

4.В диалоговом окне ODBS Data Source Administrator выделите строку Microsoft Access 97 Database и щелкните на кнопке Configure. Когда раскроется диалоговое окно ODBC Microsoft Access 97 Setup, введите значение Department Store в поле Data Source Name (имя источника данных) и значение Department Store Sample в поле Description (Описание).

Имя источника данных предназ-но для идентифик-и каждого из созд-х источников данных. Поле Description дает возможность ввести более детальную информацию о созданном источнике данных.

5.Щелкните на кнопке Select. Появится окно Select Database (Выбор базы данных), предназн-е для поиска и выборки файла. Отыщите на жестком диске и выберите файл 1.mdb.

6.Для завершения работы по выбору базы данных щелкните на кнопке ОК. Теперь в системе установлен доступ к файлу БД 1.mdb с помощью драйвера ODBC Microsoft Access Driver.

Создание заготовки для приложения 123 (допустим):

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

1.В строке меню Visual Studio выберите команду File--New. Щелкните на корешке вкладки Projects.

2.В списке выберите значение MFC AppWizard (ехе) и введите значение 123 в поле Name. Щелкните на ОК. Появится диалог. окно MFC AppWizard Step 1.

3.Для того чтобы гарантир-ть, что приложение 123 не позволит открыть более одного окна, установите флажок опции Single document. Щелкните на кнопке Next.

4.Для того чтобы AppWizard сгенерир-л классы, необх-е для просмотра содерж-го БД, установите переключатель Database view without file support (Просмотр БД без поддержки работы с файлами). Приложение не будет созд-ть или исп-ть никаких доп-х файлов, кроме файла БД, поэтому оно не нужд-ся в поддержке работы с файлами (механизма сохр-я/восстан-я). Для подсоединения приложения к созданному ранее источнику данных щелкните на кнопке Data Source (Источник данных).

5.Разверните в диалоговом окне Database Options список источников данных ODBC и выберите источник данных Department Store. Щелкните на кнопке ОК.

6.Выберите в диалоговом окне Select Database Tables таблицу и щелкните на ОК. Вновь раскроется диал. окно Step 2, в котором сразу под кнопкой Data Source будут выведена инф-я о подключенном источнике данных. Теперь таблица наша источника данных связана с создав-м прилож-м 123. Щелкните на кнопке Next и переходите к следующему этапу настройки.

7.Щелкнув на кнопке Next, примите установку по умолчанию No compound document support (He поддерживать сост-е документы).

8.В диалоговом окне MFC AppWizard - Step 4 of 6 сбросьте флажок опции Printing and print preview (Печать и предварительный просмотр распечатки). Next.

9.Next, примите установки по умолчанию в окне MFC AppWizard - Step 5 of 6. На след-м, шестом этапе, просто щелкните на кнопке Finish, завершив процесс задания устан-к для прилож-я 123.

10.ОК, после чего мастер AppWizard создаст заготовку прилож-я 123.

23.Создание экранной формы для отображ-я содерж-го БД

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

1.Для отображ-я ресурсов приложения щелкните на корешке вкладки ResourceView.

2.Разверните дерево ресурсов. Далее аналогичным образом откройте папку ресурсов Dialog. Сделайте двойной щелчок на идентиф-ре диалог.окна IDD_EMPLOYEE_FORM и тем самым откройте диалог.окно в редакторе ресурсов.

3.Выделите, щелкнув на ней, строку в центре диалогового окна, а затем удалите ее, нажав клавишу <Del>.

4.Пользуясь инструм-ми редактора диалог.окна, добавьте в него текстовые поля редактир-я и статич-е надписи. Присвойте полям редактир-я идентиф-ры. Для текстового поля IDC_EMPLOYEE_ID установите стиль Read-Onlу (Edit Properties) (лаба 4).

5.Каждое из этих текстовых полей будет представлять поле записи БД. Атрибут Read-Onlу установлен для первого (текстового) поля по той причине, что оно будет содержать первичный ключ БД, который не подлежит изменению.

6.Вызов мастера ClassWizard выберите команду и в раскрывшемся окне щелкните на вкладке Member Variables.

7.Выбрав ресурс IDC_EMPLOYEE_DEPT, щелкните на кнопке Add Variable. Раскроется диалоговое окно Add Member Variable.

8.Щелкните на стрелке рядом с раскрывающимся списком Member Variable Name и выберите в нем значение m_pSet->m_DeptID.

9.Аналогично свяжите с элементами редактирования остальные перем.-члены. Устан-ли связь, посредством кот-й может происх-ть обмен данными м/у элем-ми редактир-я и источником данных.

10.После щелчка на кнопке ОК в окне MFC ClassWizard внесенные изменения будут зафиксированы в тексте программы.

24.Добавление и удаление записей

Когда мы включим в создаваемое прилож-е возм-ть добавлять и удалять записи в таблице БД, оно превратится в полнофункц-ю программу обработки однофайловой (но не реляционной) БД. В нашем случае в роли однофайловой базы данных выступает таблица Employee реляционной базы данных универмага. Добавление и удаление записей в таблице базы данных реализуется достаточно просто благодаря существованию в Visual C++ классов CRecordView и CRecordset, предоставляющих все необходимые методы для выполнения этих стандартных операций. Необходимо будет добавить в приложение несколько команд меню.

1.Щелкните на корешке вкладки ResourceView. откройте папку Menu и сделайте двойной щелчок на меню IDR_MAINFRAME.

2.Щелкните в меню Record, выберите команду View->Properties. В поле ID введите значение ID _RECORD_ADD, а в поле Caption введите значение &Add Record.

3.В следующий пустой элемент меню внесите команду удаления, имеющую идентификатор ID_RECORD_DELETE (поле ID) и заголовок &Delete Record (поле Caption).

Далее необходимо добавить на панель инструментов пару новых пиктограмм и связать с ними эти команды: В дереве ресурсов в окне Resource View откройте папку Toolbar и сделайте двойной щелчок на идентификаторе IDR_MAINFRAME.

Щелкнув на пустой пиктограмме панели инстр-в, выберите ее, а затем с пом-ю инструм-в графич-го редактора нарисуйте на ней голубой знак «плюс».

Сделайте двойной щелчок на новой пиктограмме панели инструментов. В списке ID выберите значение ID_RECORD_ADD.

Снова выделите пустую пиктограмму панели инструментов и нарисуйте на красный знак “-”; присвойте пиктограмме идентификатор ID_RECORD_DELETE.

Выполните следующие операции:Раскройте окно Class Wizard и выберите в нем вкладку Message Maps. В списке Class Name выберите значение CEmployeeView, а в списке Object Ids выберите значение ID_RECORD_ADD, после чего сделайте двойной щелчок на значении COMMAND в списке Messages. Раскроется диалоговое окно Add Member Function.

4.В окне ClassView, дважды щелкнув на элементе CEmployeeView, откройте файл EmployeeView.h. В объявлении класса добавьте следующие строки в раздел Attributes:

protected:

BOOL m_bAdding;

5.В окне ClassView сделайте двойной щелчок на конструкторе класса CEmployeeView и добавьте следующую строку в конец этой функции:

m_bAdding = FALSE;

6.Сделайте двойной щелчок на функции OnRecordAdd() и отредактируйте ее, добавив отработчики.

7.В окне ClassView щелкните правой кнопкой мыши на элементе CEmployeeView и выберите в раскрывшемся контекстном меню команду Add Virtual Function. В левом списке выберитe значение OnMove, а затем щелкните на кнопке Add and Edit. В результате в класс будет добавлена функция и можно будет немедленно отредактировать заготовку ее текста.

8.Отредактируйте функцию OnMove() так, чтобы она содержала текст программы, приведенный ниже.

9.Сделайте двойной щелчок на функции OnRecordDelete() и отредактируйте.

Анализ функции OnRecordAdd()

Функция OnRecordAdd() начинает свою работу с вызова метода AddNew() класса CEmployeeSet, производного от класса CRecordset. Вызванная ф-ция формирует пустую запись, предназначенную для заполнения пользователем. Однако эта запись не появится на экране до тех пор, пока не будет вызван метод UpdateData() класса представл-я. После того как польз-ль создаст новую запись, необходимо будет обновить БД. Установка в данной подпрогр-ме опред-го флажка позволит подпрограмме пересылки определить, какое именно действие польз-ля имеет место: перемещение к следующей записи БД от существовавшей ранее записи базы или же от вновь добавленной. Именно с этой целью переменной m_bAdding присваивается значение TRUE.

В данный момент, когда польз-лю предоставл-ся возм-ть ввести новую запись, необх-мо изменить статус поля кода служащего Employee ID, обычно имеющего атрибут "только чтение". Для снятия этого атрибута прогр-ме прежде всего необх-мо с пом-ю ф-ции GetDlgltem() получить ук-ль на соотв-й элемент упр-я, а затем вызвать метод SetReadOnly() для присвоения значения FALSE атрибуту "только чтение" этого элемента управления.

Анализ функции OnMove()

Теперь, когда пустая запись выведена на экран, польз-ль легко заполнит поля ввода. Для того чтобы новая запись действ-но была помещена в БД, польз-лю необх-мо выполнить переход к другой записи базы. При этом будет вызван метод OnMove() класса представления. Обычно функция OnMove() не выполняет ничего, кроме отображ-я след-й записи БД. Сделанное нами переопред-е этой ф-ции доп-но обесп-т и сохран-е новой записи.

При вызове ф-ция OnMove() прежде всего проверяет значение логич-ской перемен-й m_bAdding и т.о. выясняет, от какой записи происходит переход: от существовавшей или от вновь добавл-й. Если значение m_bAdding равно FALSE, то основное тело оператора if пропускается и выполняется фрагмент программы, следующий за else. При этом программа вызывает метод OnMove() базового класса (CRecordView), который выполняет обычный переход на следующую запись.

Если переменная m_bAdding имеет значение TRUE, выполняется основное тело оператора if. Здесь программа прежде всего сбрас-т флаг m_bAdding, а затем вызывает ф-цию UpdateData() для передачи данных из полей окна представления в буфер выбранных записей. Вызов функции CanUpdate() класса выборки данных определяет, можно ли обновлять источник данных, и, если можно, вызов ф-ции Update(), явл-ся членом этого же класса, добавляет новую запись к источнику данных.

Для формирования новой выборки данных программа должна вызвать функцию Requery(), являющуюся членом класса CRecordset, а затем вызовом метода класса окна представления UpdateData() поместить новые данные в элементы управления этого окна. И наконец, программа восстанавливает для поля кода служащего Employee ID атрибут "только чтение", еще раз вызвав функции GetDlgltemO и SetReadOnly().

Анализ функции OnRecordDeleteO

Удаление записи выполняется достаточно просто. Функция OnRecordDelete() вызывает функцию Delete(), являющуюся членом класса выборки данных. После выполнения удаления вызов метода MoveNext() класса выборки данных позволяет организовать переход к отображению следующей записи таблицы.

Однако здесь может возникнуть проблема, если удаляемая запись была в таблице последней или же единственной. Вызов метода IsEOF() класса CRecordset позволяет выяснить, достигнут ли конец последовательности записей. Если эта функция возвращает TRUE, то указатель записи нужно поместить на последнюю запись в текущей выборке. Для этого используется метод класса выборки данных MoveLast().

Когда все записи из текущей выборки данных будут удалены, указатель текущей записи будет находиться в начале выборки. Программа может проверить наличие такой ситуации посредством вызова метода IsBOF() класса CRecordset. Если эта функция возвращает TRUE, программа устанавливает значения полей текущей записи равными NULL.

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

25.Сортировка и фильтрация записей

Часто при работе с базой данных требуется изменить порядок, в котором записи отображаются на экране, или же осуществить поиск записей, удовлетворяющих определенному критерию. Существующие в MFC классы работы с базами данных ODBC располагают методами, позволяющими сортировать выбранные записи по любому из их полей. Кроме того, вызов определенных методов этих классов предоставит возможность ограничить набор отображаемых записей только такими, поля которых содержат указанную информацию, например конкретное имя или идентификатор. Данная операция называется фильтрацией. В этом разделе мы добавим функции сортировки и фильтрации в приложение Employee. Выполните следующие действия.

Анализ функции OnSortFirstName(). Все функции сортировки имеют одинаковую структуру. Они закрывают выборку данных, устанавливают свои переменныe-члены m_strSort в выборке и снова открывают выборку данных, а затем вызывают функцию UpdateData() для обновления окна представления данными из вновь полученной отсортированной выборки данных. Однако в тексте функций сортировки вы не найдете ни одного вызова функции, в названии которой было бы слово Sort. Когда же в таком случае выполняется сортировка? Она выполняется, когда выборка данных открывается заново.

Объект класса CRecordSet (как и объект любого другого класса, производного от CRecordSet, например объект класса CDBSet в этой программе) использует специальную строковую переменную m_strSort для определения способа упорядочения записей. Объект анализирует эту строковую переменную при формировании выборки данных и соответственно упорядочивает выбранные из базы записи.

Анализ функции DoFilter(). Всякий раз, когда пользователь выбирает команду из меню Filter, управляющая программа вызывает соответствующий этой команде метод: OnFi lterDept(), OnFilterUserlD(), OnFiIterMiddleName() или OnFilterEMail(). Каждая из этих функций ничего не делает, кроме вызова метода DoFilter(), передавая ему в качестве параметра строковую переменную, определяющую поле, по которому требуется выполнить фильтрацию.

Функция DoFilter() независимо от того, какая именно команда была выбрана в меню, всегда отображает одно и то же диалоговое окно. Если значение result не равно IDOK, значит, пользователь выполнил щелчок на кнопке Cancel и весь оператор IF пропускается, а функции DoFilter() остается только закончить свою работу.

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

ИдентификаторПоля = Значение

Здесь ИдентификаторПоля является аргументом типа CString функции DoFiIter(), а Значение вводится пользователем в диалоговом окне. Например, если пользователь выберет команду фильтрации по полю отдела и введет в диалоговом окне значение фильтра hardware, функция DoFiIteг() должна будет создать строку.

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

Что произойдет, если в результате работы установленного фильтра не будет выбрано ни одной записи? Хороший вопрос. Функция DoFilter() обнаруживает подобную ситуацию, подсчитывая количество записей в создаваемой выборке и сравнивая затем это число с нулем. Если набор записей пуст, программа выводит окно сообщения, информирующее пользователя о сложившейся ситуации. Затем программа закрывает выборку, присваивает строковой переменной фильтра пустое значение и снова открывает выборку записей. Таким образом восстанавливается выборка, включающая все записи таблицы User.

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

27.Схема процесса обмена данными между источником данных и экранной формой с использованием классов CRecordSet и CRecordView. Режимы работы с наборами данных Snapshot и Dynaset

Класс CRecordset

Все компоненты и методы этого класса можно разбить на семь категорий:

· Компоненты данных. Служат для хранения информации, используемой для непосредственной работы с базой данных, к которой объект этого класса был присоединен.

· Конструирование. В эту категорию входят конструктор и методы для открытия/закрытия форм базы данных.

· Атрибуты результирующего набора. Функции, используемые для получения информации о результирующем наборе, к которому присоединен объект класса CRecordset.

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

· Операции перемещения по результирующему набору. Функции, позволяющие перемещаться по записям результирующего набора.

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

· Переопределяемые методы. Пять переопределяемых функций, позволяющие программисту настроить функционирование объекта класса CRecordset.

CRecordset::dynaset Результирующий набор с возможностью двунаправленного просмотра. При этом режиме изме-нения, вносимые в базу данных другими пользователями, отображаются сразу же. К сожалению, декларированное поведение результирующего набора при этом режиме не поддерживается

CRecordset::snapshot Статический результирующий набор с возможностью двунаправленного просмотра. При этом режиме изменения, вносимые в базу данных другими пользователями, отображаются не сразу, а только после закрытия и повторного открытия pe-зультирующего набора.

Класс CRecordView

Объекты этого класса предоставляют для изображения записей базы данных в элементах управления форму, которая непосредственно соединена с объектом CRecordset. Объекты CRecordView используют механизм DDX (Dialog Data Exchange, Обмен данными с блоком диалога) и RFX (Record Field Exchange, Обмен полями записей) для автоматического перемещения данных между элементами управления формы и полями результирующего набора. Кроме того, можно воспользоваться реализованными возможностям перемещения по записям и обновления текущей записи.

Вce компоненты и методы этого класса можно условно разбить на три категории.

...

Подобные документы

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

    учебное пособие [2,1 M], добавлен 27.04.2011

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

    дипломная работа [645,3 K], добавлен 21.11.2010

  • Средства и технологии разработки приложений баз данных. Компоненты управления доступом к БД. Описание программного окружения доступа к данным. Механизм получения и отправки данных. Специфика связи внутреннего представления с интерфейсом приложения.

    презентация [29,4 K], добавлен 19.08.2013

  • Web-дизайн, web-страница, основы строения сайта. Текстовые редакторы для разработки Web приложений. Стандартные средства разработки для Unix систем. Профессиональные среды разработки и их ответвления. Визуальные редакторы для разработчиков Web.

    курсовая работа [1,4 M], добавлен 12.08.2015

  • Устройство веб-приложений, преимущества их построения. Характеристика технологий веб-программирования, используемых на стороне сервера и на стороне клиента. Формирование и обработка запросов, создание интерактивного и независимого от браузера интерфейса.

    контрольная работа [76,4 K], добавлен 08.07.2014

  • Структурные подразделения и отделы организации, ее технические программные средства. Разработка приложений обработки данных на ассемблере, языке программирования высокого уровня. Тестирование и оптимизация программных модулей. Разработка документации.

    отчет по практике [175,0 K], добавлен 30.09.2022

  • Вопросы программирования в Maple версий 6-11 и разработка приложений. Рассматривает эффективные приемы программирования и разработки приложений для многих разделов техники, математики, физики, для решения которых пакет не имеет стандартных средств.

    монография [4,8 M], добавлен 13.03.2008

  • Преимущества операционной системы Android. Проектирование интерфейса приложений. Визуальные редакторы и средства кроссплатформенной разработки. Оптимизация игрового процесса, выбор фреймворка и библиотек. Классификация и характеристика игр по жанрам.

    дипломная работа [2,6 M], добавлен 10.07.2017

  • Сущность языков разметки и этапы проектирования. Общая характеристика бесплатных приложений для работы с кодом в текстовом формате. Особенности визуальных редакторов и суть платных приложений. Стандартные средства разработки для Unix систем и их замена.

    курсовая работа [49,6 K], добавлен 04.06.2013

  • Архитектура операционной системы Android, набор библиотек для обеспечения базового функционала приложений и виртуальная машина Dalvik. Объектно-ориентированный язык программирования Java как инструмент разработки мобильных приложений для ОС Android.

    дипломная работа [1,6 M], добавлен 08.07.2015

  • Разработка критериев оценки экрана веб-приложений. Основные подходы к защите веб-приложений. Анализ российских нормативных документов. Зарубежная практика выбора экрана веб-приложений. Разработка и обоснование общих требований к механизмам защиты.

    дипломная работа [68,7 K], добавлен 04.08.2016

  • Разработка приложений на платформе Win32 для исследования взаимодействия между процессами через отображение файла в память. Модель приложений "клиент - сервер". Описание алгоритма работы программы-клиента и программы-сервера. Результаты работы приложений.

    курсовая работа [869,3 K], добавлен 18.05.2014

  • Жизненный цикл программного продукта. Современные среды разработки приложений. Защита информации в базах данных. Особенности разработки приложения с помощью среды Delphi 7. Проверка программного модуля на предмет соответствия стандартам кодирования.

    отчет по практике [589,0 K], добавлен 18.05.2017

  • Приложение для организации и контроля разработки программного обеспечения, сокращающее сроки проектирования программных продуктов и оптимизирующее данный процесс. Технологии создания приложений на платформе .NET. Алгоритм получения и обновления списка.

    дипломная работа [861,9 K], добавлен 27.11.2014

  • Проектирование системы управления базами данных. Особенности реализации в MS SQL. Разработка пользовательского интерфейса. Тестирование и отладка приложения. Руководство пользователя и системного администратора. Анализ и методы разработки приложений.

    курсовая работа [867,9 K], добавлен 16.07.2013

  • Средства разработки, ориентированные на конкретные СУБД. Наиболее известные приложения на основе Eclipse Platform. Проект NetBeans IDE, его возможности. KDevelop — свободная интегрированная среда разработки для UNIX-подобных операционных систем.

    реферат [107,5 K], добавлен 14.04.2014

  • Преимущество построения Web-приложений для поддержки стандартных функций браузера. Настройка проекта Web-приложения. Создание и изменение исходных файлов. Изменение файла JavaServer Pages по умолчанию. Основные проблемы при выполнении Web-приложений.

    контрольная работа [362,8 K], добавлен 10.11.2013

  • Подходы и алгоритмы автоматизации тестирования. Анализ специфики работы с локальными и веб-приложениями, внедрение автоматических тестов в процесс контроля качества приложений Global XB, GCube и Thistle. Оптимальный инструмент разработки скриптов.

    дипломная работа [1,5 M], добавлен 15.01.2012

  • Знакомство с этапами разработки трёх приложений для системы семейства Linux с использованием языка программирования С++. Анализ особенностей операционной системы Ubuntu 12.10. Характеристика способов тестирования команд с помощью стандартных средств.

    контрольная работа [732,1 K], добавлен 06.08.2013

  • Основные принципы написания оконных приложений с графическим интерфейсом на языке Java в среде Eclipse. Управление компоновками компонентов: показ диалоговых окон, вывод графической информации. Структура приложения и размещение элементов интерфейса.

    лабораторная работа [1,1 M], добавлен 01.05.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.