Наука Молоков К.А. Основы информатики и программирование под Windows. Учебное пособие

Основы информатики и программирование под Windows. Учебное пособие

Возрастное ограничение: 12+
Жанр: Наука
Издательство: Проспект
Дата размещения: 07.08.2015
ISBN: 9785392191086
Язык:
Объем текста: 176 стр.
Формат:
epub

Оглавление

Введение

Глава 1. Основы информатики

Глава 2. Основы программирования на C++

Глава 3. Использование MS VISUAL C++

Заключение

Словарь основных понятий и терминов



Для бесплатного чтения доступна только часть главы! Для чтения полной версии необходимо приобрести книгу



Глава 3. ИСПОЛЬЗОВАНИЕ MS VISUAL C++


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


Д. Кнут


3.1. Проект консольное приложение


Рабочие области и проекты


Программные задачи в C++ оформляются в виде проектов. Проект (project) представляет собой набор файлов, которые совместно используются для создания одной программы.


Сами проекты размещаются в рабочих областях (workspaces). Для работы (запуска) уже готовой программы открывать всегда надо рабочую область. Минимальный набор файлов в рабочей области (папки) с именем My123 среда разработки MS Visual C++


My123 (сначала вводится имя проекта)


debug (папка с отладочной информацией)


*.cpp


*.dsp


*.dsw


Для открытия созданного проекта из среды MS Visual C++ надо выбрать в меню File\Open\workspace, найти папку проекта и открыть файл с расширением dsp или dsw.


3.2. Использование классов в других классах


При работе с классом, когда набирается имя класса, после печати знака-разделителя в виде подсказки (рис. 3.1) появляются все доступные методы и переменные класса.




Наследование


Объектно-ориентированное программирование (ООП) представляет механизм, посредством которого производному классу разрешается наследовать данные и операции от базового класса. Этот механизм, называемый наследованием класса (class inheritance), позволяет производному классу использовать данные и операции, которые были определены ранее в базовом классе. Производный класс может добавлять новые операции или переписывать некоторые операции, так как он устанавливает методы для обработки собственных данных.


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


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


В C++ обеспечивается три типа наследования: public, protect, private. В случае public наследования производный класс имеет все возможности и функции базового класса, но не имеет доступ к закрытым членам класса.


В Visual C++ удобно реализован интерфейс работы с файлами проекта. На рис. 3.2 показаны расформированные по папкам файлы консольного приложения. Дадим содержание исполняемых файлов (файлы с расширением *.cpp) и заголовочного файла с объявлением классов (*.h).



Рис. 3.2. Навигатор файлов FileView проекта консольного приложения


Это файл class.h




3.3. Мастер создания приложения Windows


Все современные среды программирования являются еще и автоматическими генераторами программного кода (классы, объекты, функции).


Мастер создания приложений, называемый AppWizard, позволяет создавать разные типы приложений, из которых мы, в частности, сталкивались с консольным приложением. Рассмотрим, как создавать с помощью MFC AppWizard MFC-приложения, использующие библиотеку классов.


1. Выбираем File->New, затем вкладку Projects.


2. Выбираем функцию создаваемого приложения MFC AppWizard (exe) (задаем имя приложения).


3. Первое, что должен определить программист – это сколько окон будет поддерживать будущее приложение.


4. MDI – Multiple Document Interface – одновременно можно держать открытым несколько документов.


5. SDI-Single Document Interface – позволяет в каждый момент времени иметь открытым только один документ.


6. Диалоговое приложение – приложение, которое вообще не открывает документов (не имеют меню).


7. Выбираем Dialog based. Приложение этого типа не имеет никакого меню и не может открывать или сохранять файлы. Программы, работающие в среде Windows, имеют GUI (Graphical User interface). Нажимаем Next.


8. Начинаем набирать (наследовать) уже существующие классы и функции. Если мы хотим иметь окошечко About, устанавливаем флажок в About Box.


9. Context-sensitive Help (контекстная справка) – для включения справки в приложения.


10. 3D controls (объемный дизайн элементов управления).


11. Automation – используется для подключения механизма ActivX по управлению нашим окном из другого приложения.


12. Windows Socket – для получения доступа к Internet или сети.


13. Title for your dialog – текст на заголовке окна.


14. Следующее окно настроек.


15. MFC Standard – другого не дано.


16. Включение текстов комментариев в автоматически генерируемый код.


17. Следующая строка очень важна. Если мы уверены, что необходимые файлы библиотек будут гарантированно присутствовать на компьютерах, куда вы понесете свою программу, то лучше выбрать режим разделяемых DLL- модулей (программа короче). Если же мы хотим получить независимый ни от чего продукт, то выбираем режим as a statically linked library.


18. Следующее окно. На этом этапе можно уточнить имена для файлов и классов.


19. Нажимаем кнопку финиш и получаем надпись-статистику create a new skeleton project.


Общая архитектура приложения, файлы приложения показаны на рис. 3.3.


После этого мы видим перед собой собственно окно (рис. 3.4) в его визуальном представлении. Для каждого диалогового окна есть две вещи, которые нужно разработать – ресурсы окна и класс окна.


Ресурсы окна используются программой для того, чтобы вывести на экран его изображение и изображение элементов управления (в левом окне, где указаны файлы и т.д., появилась новая вкладка ResourceView, рис. 3.5). По умолчанию мы прямо в ней и находимся. Какие элементы там есть – что есть в нашем ресурсе, то и найдем.



Puc. 3.3. Файлы приложения для Windows, создаваемые мастером AppWizard



Рис. 3.4. Простое диалоговое приложение с названием “1”


• Dialog (это те ресурсы, которые мы выбрали) – диалоговое окно плюс окошко About (рис. 3.6), поэтому там два элемента. Щелкая на каждый из них, мы можем получить перед собой то или другое окно.


• Icon – если в программе используется иконка (а по умолчанию у нас одна такая вставлена в окно About), то мы увидим перечень ресурса иконки и по двойному щелчку попадем в редактор, где можно подправить или изменить ее вид. Для этого сначала добавляем иконку в проект (на строке Icon правой кнопкой мыши и команда Import – выбираем ту иконку, которую хотим, рис. 3.7). Дальше переключаемся на ресурс окна About, правой кнопкой на иконку и выбираем properties. В строке Image выбираем имя той иконки, которую хотим.


• StringTable и Version – позже.



Puc. 3.5. Ресурсы приложения



Рис. 3.6. Диалоговое окно About


Этому роскошному изображению естественно соответствует вполне обычный программный код, правда, сгенерированный за нас автоматически. Обратиться к нему можно как обычно через закладку FileView или ClassView (рис. 3.8).



Рис. 3.7. Ресурс иконка



Рис. 3.8. Окно ClassView для проекта диалогового приложения


3.4. Состав файлов


Состав файлов диалогового приложения под названием “1” приведен на рис. 3.9. Имена файлов, созданные мастером AppWizard, с изменениями заимствуются из названия проекта.



Puc. 3.9. Состав файлов диалогового приложения под названием “1”


3.5. Файловая структура приложения


Папка Debug и ее название описывалось выше.


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


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


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


EDITTEXT IDC_EDIT3,19,103,16,14,ES_AUTOHSCROLL


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


3.6. Основные классы, используемые в приложении


1. Объект приложения. Наследуется от класса CwinApp. Называется обычно С<MYимя_проекта>Арр. Его объявление и реализация находятся в файлах <Имя_проекта>.h


class CMy3App : public CWinApp // обратите внимание, что из самого заголовка следует, что класс публично унаследован от CWinApp. Это означает возможность вызова любого из методов, определенных в классе CWinApp.


и < Имя_проекта>.cpp


CMy3App::CMy3App()


BOOL CMy3App::InitInstance() //здесь происходит объявление диалогового окна и собственно его вызов


CMy3Dlg dlg;


m_pMainWnd = &dlg;


int nResponse = dlg.DoModal();


2. Объект окна. Использует класс, унаследованный от CDialog. Определение класса и его реализация содержатся в файлах <Имя_проекта >Dlg.h


class CMy3Dlg : public CDialog


и <Имя_проекта >Dlg.cpp


class CAboutDlg : public CDialog


{


void CMy3Dlg::OnPaint()



void CMy3Dlg::OnOK()


{


CDialog::OnOK();


}


3. Дочерние окна. В нашем случае это окно About программы. Само окно (его класс) объявляется уже в файле <Имя_проекта >Dlg.cpp, так как является для него дочерним.


class CAboutDlg : public CDialog


и в этом же файле формируются все необходимые для этого окна функции void CAboutDlg::OnOK()


{


CDialog::OnOK();


}


если далее по ходу программы нам захочется обратиться к окну (например, вызвать его по нажатию клавиши), то мы должны:


заиметь (объявить) объект этого класса (будем иметь имя, по которому сможем обращаться к окну);


далее для данного имени вызываем функцию



4. Компоненты. Сейчас все они объявлены как ресурсы и описаны в файле resource.h.


3.7. Венгерская нотация


Пусть вас не удивляют такие, на первый взгляд, неудобочитаемые имена переменных, как lpszClassName и wcInit. Почему не просто init? Программисты Microsoft для идентификации переменных руководствуются негласным соглашением, известным как венгерская нотация. Она названа так потому, что ее в Microsoft популяризировал венгерский программист Чарльз Шимоньи. И действительно, на первый взгляд кажется, будто идентификаторы переменных написаны не на английском, а на каком-то другом языке.


В венгерской нотации переменным даются описательные имена, такие как Count и ClassName, начинающиеся с заглавных букв. Если имя состоит из нескольких слов, каждое слово начинается с заглавной буквы. Затем перед описательным именем добавляются буквы, чтобы указать тип переменной. Например, nCount для типа int и bFlag для типа BOOLEAN. Теперь программист не сможет забыть о типе переменной или сделать такие глупости, как передача функции, ожидающей значения без знака, числовой знаковой переменной.


Этот стиль приобрел широкую популярность, хотя некоторые программисты его ненавидят. Но дело обстоит таким образом, что структуры, применяемые API, и классы, определенные в MFC, используют венгерскую нотацию, поэтому вам тоже придется пользоваться ею. В венгерской нотации предлагаются следующие префиксы (табл. 3.1).


Таблица 3.1


Префиксы по венгерской нотации


A

Массив

B

Булева

D

Число с двойной точностью

H

Дескриптор

i

Целое число

Индекс в ...

lp

Двойной указатель

lpfn

Двойной указатель на функцию

m_

Переменная – член структуры или класса

n

Целое число

Количество чего-либо

p

Указатель

s

Строковая переменная

sz

Строковая переменная, ограниченная нулем

u

Целое число без знака

C

Класс


3.8. Функции в файле приложения


Запишем последовательность вызовов функций объекта приложения. CMy3App construction – вызывается при загрузке программы перед вызовом WinMain(), поэтому не надо туда ничего помещать из своего кода.


CMy3App::CMy3App()


CMy3App initialization – выполняется инициализация приложения, а именно:


− регистрация нового класса окна;


− создание экземпляра главного окна и его отображение;


− запуск процесса накопления сообщений.


BOOL CMy3App::InitInstance()


3.9. Функции в файле диалогового окна


Опишем назначение функций диалогового окна.


// 3Dlg.cpp : implementation file


#include “stdafx.h”


void CAboutDlg::DoDataExchange(CDataExchange* pDX) // эта функция поддерживает обмен данными диалога (DDX-dialog data exchange) и проверку данных диалога (DDV-dialog data verification). DDX позволяет связывать элемент данных с элементом управления, типа текстового поля. DDV позволяет проверять вводимые пользователем данные на соответствие набору правил.


BOOL CMy3Dlg::OnInitDialog() //здесь происходит большая часть действий по инициализации. Идет запуск системного меню, пиктограммы.


void CMy3Dlg::OnSysCommand(UINT nID, LPARAM lParam) // эта функция вызывается всякий раз, когда выбирается какой-либо пункт в системном меню. Функция проверяет, выбрал ли пользователь пункт меню About. Если это так, содается экземпляр CAboutDlg и вызывают функцию DoModal(), открывающую диалоговое окно. Ну и мы туда добавляем все, что нам надо.


void CMy3Dlg::OnPaint() // обрабатывает сообщение WM_PAINT. Это сообщение указывает, что окно должно быть перерисовано.


HCURSOR CMy3Dlg::OnQueryDragIcon() // используется системой, когда получено сообщение о перетаскивании минимизированного окна.


Наши функции могут выглядеть следующим образом:


void CMy3Dlg::OnButton1(),


void CMy3Dlg::OnTimer(UINT nIDEvent),


void CMy3Dlg::OnCancel().


3.10. Панель элементов управления


Богатая палитра образцов элементов управления имеется в вашем распоряжении для того, чтобы вставлять те или иные из них в диалоговое окно приложения. Для установки элементов диалогового окна используется технология What You See Is What You Get. Чтобы установить в своем окне кнопку, нужно выбрать ее образец на поле инструментов, перетянуть в желаемое место на поле заготовки, сбросить ее там. Текст на ней по умолчанию соответствует названию самого элемента Button1. Чтобы вести любые настройки этого элемента, необходимо нажать на нем правой кнопкой мыши и выбрать пункт Properties. Caption – это и есть текст на кнопке, меняем на то, что надо.


Теперь, как на нее нажать. В основе всего лежит понятие “событие”. При нажатии на кнопку происходит событие, которое называется OnClick. Событие OnClick – это штука универсальная, а вот от кого поступило событие и поставит его в соответствие определенной кнопке. Мы уже говорили, что наше диалоговое окно является классом, этот класс объявлен в файле 1Dlg.h, так


class CMy1Dlg: public CDialog.


Данный класс является наследником класса CDialog, а это значит, что существуют уже некоторые методы, объявленные в Public, и переменные, объявленные в Private до нас, и мы ими можем пользоваться. Поскольку нажатие клавиши – это действие (набор действий), то получается, что мы фактически должны просто объявить новый метод (функцию), которая будет стартовать при нажатии клавиши. Поскольку мы говорили об автоматической генерации кода, то среда программирования частично нам в этом поможет. Если дважды щелкнуть на кнопку, то появится диалоговое окно (рис. 3.10), которое просит от нас ввести (исправить стандартное) имя функции, которая будет запускаться при нажатии клавиши.



Рис. 3.10. Изменение имени функции, которая будет запускаться по событию нажатия назначенной кнопки диалога


Нажимаем OK и попадаем в код программы, где уже в карте допустимых сообщений от окна добавлена строка


ON_BN_CLICKED(IDC_BUTTON3, OnButton3)


И еще организована пустая функция


void CMy1Dlg::OnButton3()


{


// TODO: Add your control notification handler code here


}


внутрь которой мы и можем писать все, что хотим.


void CMy1Dlg::OnButton3()


{// TODO: Add your control notification handler code here


AfxMessageBox(“O !!!!”);


}


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


WizardBar C++ Class – перечень классов, определенных в нашем приложении (само приложение, класс окно диалога и класс About);


WizardBar C++ Filter – для выбранного класса отображает все элементы, существующие в нем (у нас в классе диалогового окна – кнопка ОК, кнопка Cancel и наша кнопка Button1);


WizardBar C++ Members – для выбранного элемента отображает допустимые, уже определенные в стандартном классе методы. Здесь для кнопки у нас как раз и есть выбор того, что мы хотим – одиночный щелчок или двойной. Когда мы выберем тот или иной метод, откроется то же, что и при двойном щелчке – диалоговое окно, правим имя и т.д. Это действие называется переопределение стандартного метода. Теперь в списке методов будет отображаться не типовой метод, а наш – мы его переопределили.


Надпись (Static Text) – используется как поле для вывода надписи (используют обычно как комментарий к чему-либо). Дгя создания нескольких строк используется символ \n.


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


Флажок (Check Box) – используется для установки опций, каждая из которых может быть выбрана независимо от других.


Переключатель (Radio button). Используется для выбора одного действия из связанных действий.


Список (List box). Используется для выбора элемента с заранее определенного списка (для ускорения функции ввода информации) + гарантия корректного ввода (выше списка не прыгнешь).


Поле со списком (Combo box). Комбинация текстового поля и списка, т.е. хочешь, выбирай, хочешь, вводи.




Основы информатики и программирование под Windows. Учебное пособие

Учебное пособие представляет собой материал по основам информатики и программированию под Windows с использованием среды разработки MS Visual C++. <br /> Рассмотрены основы применения дисковой операционной системы MS DOS, MS Windows, показана роль и эффективность файловой системы для хранения файлов. Для хорошего усвоения материала последовательно и подробно излагается описание работы с отладчиком Windows, создание командных файлов и их использование. Значительная роль уделяется архитектуре процессора, системам счисления, принципам работы процессора, программированию и подходам к решению различных задач на языке ассемблер и языке высокого уровня С++.<br /> Может быть использовано при выполнении расчетов раздела статистики курса высшей математики, а также при решении практических инженерных задач.<br /> Предназначено для студентов специальности «Оборудование и технология сварочного производства» всех форм обучения. Может быть полезно для аспирантов, магистров и специалистов, занимающихся вопросами реализации расчетов и моделирования.

179
 Молоков К.А. Основы информатики и программирование под Windows. Учебное пособие

Молоков К.А. Основы информатики и программирование под Windows. Учебное пособие

Молоков К.А. Основы информатики и программирование под Windows. Учебное пособие

Учебное пособие представляет собой материал по основам информатики и программированию под Windows с использованием среды разработки MS Visual C++. <br /> Рассмотрены основы применения дисковой операционной системы MS DOS, MS Windows, показана роль и эффективность файловой системы для хранения файлов. Для хорошего усвоения материала последовательно и подробно излагается описание работы с отладчиком Windows, создание командных файлов и их использование. Значительная роль уделяется архитектуре процессора, системам счисления, принципам работы процессора, программированию и подходам к решению различных задач на языке ассемблер и языке высокого уровня С++.<br /> Может быть использовано при выполнении расчетов раздела статистики курса высшей математики, а также при решении практических инженерных задач.<br /> Предназначено для студентов специальности «Оборудование и технология сварочного производства» всех форм обучения. Может быть полезно для аспирантов, магистров и специалистов, занимающихся вопросами реализации расчетов и моделирования.

Внимание! Авторские права на книгу "Основы информатики и программирование под Windows. Учебное пособие" (Молоков К.А.) охраняются законодательством!