Разработка программного обеспечения

Оформление технического задания на разработку программы или программного изделия для вычислительных машин и комплексов. Принципы объектно-ориентированного программирования в среде Delphi. Ознакомление на конкретных примерах с технологиями OLE и СОМ.

Рубрика Программирование, компьютеры и кибернетика
Вид отчет по практике
Язык русский
Дата добавления 04.02.2011
Размер файла 8,4 M

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

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

Рис 1. Расположение компонент на форме

Компоненты Bevel, Label и Edit располагаем на форме в следующей последовательности: сначала Bevel, затем Label и Edit - так как Bevel должен оказаться «снизу» Label'a и Edit'a.

Четыре компонента Image располагаем на форме произвольным образом. Свойству Picture компонента Image1 (Image1.Picture) присваиваем значение arccos.bmp (загружаем рисунок из каталога e:\5381\Урок\Menu\). Соответственно в Image2.Picture загружаем arcsin.bmp, в Image3.Picture - arctg.bmp, в Image4.Picture - arcctg.bmp.

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

Помещаем на форму компонент MainMenu, двойным щелчком на компоненте вызываем Дизайнер Меню;

Проектируем меню согласно рисунку 2 (вставка разделителя осуществляется вводом символа `-' в поле Caption):

Рис 2. Проектирование главного меню программы

3. Кроме свойств Caption элементов Главного Меню, меняем свойство Name подпунктов меню «Функция» следующим образом:

Пункт подменю «Функция»

(сверху вниз)

Свойство Caption

Свойство Name

Первый

Cos(x)

cosx1

Второй

Sin(x)

sinx1

Третий

Tg(x)

tgx1

Четвертый

Ctg(x)

ctgx1

Пятый - разделитель

-

Не меняем

Шестой

Arccos(x)'

arccosx1

Седьмой

Arcsin(x)'

arcsinx1

Восьмой

Arctg(x)'

arctgx1

Девятый

Arcctg(x)'

arcctg1

4. Закрываем Дизайнер Меню и теперь за каждым пунктом меню закрепляем процедуру программы. Для этого просто щелкаем мышью на нужном пункте главного меню (оно уже появилось в форме).

В программу необходимо добавить следующие процедуры (закрепить за …):

за пунктом меню (п. Меню) «Привет!»:

//выдача сообщения при выборе п.Меню "привет"

procedure TForm1.N4Click(Sender: TObject);

begin

ShowMessage('Привет мир, Windows и пользователь!ж:)'+#13#10+'Это мы из МГВРК!');

end;

#13#10 - символ конца строки. С его помощью осуществляется переход на другую строку в окне выдачи сообщения. ` ж:)' = - символ “смешной рожицы с челочкой”

за п. Меню «Аргумент»:

//выбор пункта меню "Аргумент"

procedure TForm1.N7Click(Sender: TObject);

begin

label1.Caption:='Введите значение x:';

edit1.Visible:=true;

form1.activecontrol:=Edit1;

end;

за п. Меню «Выход»:

//выбор п.Меню "Выход" - выход из приложения

procedure TForm1.N2Click(Sender: TObject);

begin

close;

end;

за пунктами Меню cos(x), sin(x), tg(x), ctg(x):

//обработка выборов п.п.Меню "Функция" до разделителя:

//cos(x), sin(x), tg(x), ctg(x) осуществляется ОДНОЙ процедурой

procedure TForm1.cosx1Click(Sender: TObject);

var

cod:Integer;

ws,resstr:String;

begin

ws:=Edit1.text;

val(ws,x,cod);

try //начало блока try...except..end

with Sender As TMenuItem do //будем обрабатывать Sender как пункт Меню

begin //объект Sender вызвал эту процедуру

if (Sender = cosx1) then //если sender - это cosx1 (т.е.cos(x)), тогда:

begin

str(cos(x):1:4,ws);//сразу преобразуем значение функции в строку

Resstr:='Cos(x) = ';//и определим начало результирующей строки

end;

if (Sender = sinx1) then

begin

str(sin(x):1:4,ws);

Resstr:='Sin(x) = ';

end;

if (Sender = tgx1)then

begin

str(tan(x):1:4,ws);

Resstr:='tg(x) = ';

end;

if (Sender = ctgx1)then

begin

str(cotan(x):1:4,ws);

Resstr:='Ctg(x) = ';

end;

end;

except //если в блоке try...except возникла ошибка, она обрабатывается ЗДЕСЬ

ShowMessage('А существует ли значение выбранной функции для Вашего аргумента?');

exit; //а мы просто о ней сообщим

end;

ShowMessage(Resstr + ws);

end;

за событием OnKeyPress элемента Edit1:

//выполняется при вводе символов в Edit

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

if not (key in ['0'..'9','-']) then

key:=#0;

end;

за пунктом меню arccos(x)':

//выбор п.Меню arccos(x)'

procedure TForm1.arccosx1Click(Sender: TObject);

begin //прямое преобразование Sender в элемент меню TMenuItem

TMenuItem(Sender).checked:= not (TMenuItem(Sender).checked);

if (TMenuItem(Sender).checked) then

image1.visible:=true

else

image1.visible:=false;

end;

за пунктом меню arcsin(x)':

//выбор п.Меню arcsin(x)'

procedure TForm1.arcsinx1Click(Sender: TObject);

begin

TMenuItem(Sender).checked:= not (TMenuItem(Sender).checked);

if (TMenuItem(Sender).checked) then

image2.visible:=true

else

image2.visible:=false;

end;

за пунктом меню arctg(x)':

//выбор п.Меню arctg(x)'

procedure TForm1.arctgx1Click(Sender: TObject);

begin

TMenuItem(Sender).checked:= not (TMenuItem(Sender).checked);

if (TMenuItem(Sender).checked) then

image3.visible:=true

else

image3.visible:=false;

end;

за пунктом меню arcctg(x)':

//выбор п.Меню arcctg(x)'

procedure TForm1.arcctgx1Click(Sender: TObject);

begin

TMenuItem(Sender).checked:= not (TMenuItem(Sender).checked);

if (TMenuItem(Sender).checked) then

image4.visible:=true

else

image4.visible:=false;

end;

На рисунке 3 изображен вид работающей программы.

Рис. 3. Работающее программное приложение.

Индивидуальные задания.

Ниже приведено 15 вариантов задач. По указанию преподавателя выберите свое индивидуальное задание. Уточните условие задания, количество, наименование, типы исходных данных. В соответствии с этим установите количество визуальных компонент в форме.

Во всех заданиях скалярные переменные вводить с помощью компонента TEdit с соответствующим пояснением в виде компонента TLabel. Скалярный результат выводить в виде компонента TLabel. Массивы представлять на форме в виде компонентов TStringGrid, в которых 0-й столбец и 0-ю строку использовать для отображения индексов массивов. Вычисления выполнять после нажатия соответствующих кнопок визуального компонента MainMenu.

1. Задана матрица размером NxM. Получить массив В, присвоив его k-му элементу значение 0, если все элементы k-го столбца матрицы нулевые, и значение 1 в противном случае.

2. Задана матрица размером NxM. Получить массив В, присвоив его k-му элементу значение 1, если элементы k-й строки матрицы упорядочены по убыванию, и значение 0 в противном случае.

3. Задана матрица размером NxM. Получить массив В, присвоив его k-му значение 1, если k-я строка матрицы симметрична, и значение 0 в противном случае.

4. Задана матрица размером NxM. Определить k - количество "особых" элементов матрицы, считая элемент "особым", если он больше суммы остальных элементов своего столбца.

5. Задана матрица размером NxM. Определить k - количество "особых" в матрицы, считая элемент "особым", если в его строке слева от него находятся элементы, меньшие его, а справа - большие.

6. Задана символьная матрица размером NxM. Определить k - количество различных элементов матрицы (т.е. повторяющиеся элементы считать один раз).

7. Дана матрица размером NxM. Упорядочить ее строки по неубыванию их первых элементов.

8. Дана матрица размером NxM. Упорядочить ее строки по неубыванию суммы их элементов.

9. Дана матрица размером NxM. Упорядочить ее строки по неубыванию их наибольших элементов.

10. Определить, является ли заданная квадратная матрица n-го порядка симметричной относительно побочной диагонали.

11. Для матрицы размером NxM вывести на экран все ее седловые точки. Элемент матрицы называется седловой точкой, если он является наименьшим в своей строке и одновременно наибольшим в своем столбце, или наоборот.

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

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

14. В матрице размером NхМ поменять местами строку, содержащую элемент с наибольшим значением, со строкой, содержащей элемент с наименьшим значением.

15. Из матрицы n-го порядка получить матрицу порядка n-1 путем удаления из исходной матрицы строки и столбца, на пересечении которых расположен элемент с наибольшим по модулю значением.

Лабораторная работа 4.

ИСПОЛЬЗОВАНИЕ ТЕХНОЛОГИЙ OLE И СОМ В ВИЗУАЛЬНОМ ПРОГРАММИРОВАНИИ.

Цель работы: познакомиться на конкретных примерах с технологиями OLE и СОМ.

Основные понятия.

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

Еще одним шагом в эволюции программирования стала технология СОМ. По сути, именно она лежит в основе технологии OLE, и именно с помощью нее реализуется сложное взаимодействие между приложениями, написанными разными программистами и на разных языках. На этом занятии предлагается рассмотреть использование СОМ-серверов Delphi для работы с Word и Excel.

Программа 1 (OLE технологии).

Шаг 1. Создайте новую форму.

Шаг 2. Расположите на ней компоненты: OLEContainer (закладка System) и кнопку (Button).

Шаг 3. Создайте файл Excel. Занесите в него свои ФИО. Сохраниете его `H:\l.xls'.

Шаг 4. Создайте процедуру обработки сообщения о нажатии на кнопку:

procedure TForml.ButtonlClick(Sender: TObject); begin

OLEContainerl.CreateLinkToFile('H:\1.xls',FALSE); end;

Шаг 5. Скомпилируйте приложение. Нажмите на кнопку. Убедитесь, что в OLEContainer будет загружен созданный вами файл 1 .xls.

Шаг 6. Щелкните 2 раза на OLEConatainer, и вы увидите, что будет запущен Microsoft Excel с загруженным в него вашим фалом. Внесите в файл изменения. Сохраните файл и закройте Excel. Нажмите в своем приложении кнопку и убедитесь, что в OLEContainer отобразились изменения файла (рис. 1).

Шаг 7. Измените процедуру обработки сообщения о нажатии на кнопку следующим образом:

procedure TForml.ButtonlClick(Sender: TObject);

begin

OLEContainerl. CreateObj ectFromFile (' H::\l .xls ' , false) ;

end;

Шаг 8. Добавьте еще одну кнопку на форму и напишите для нее обработчик события нажатия на нее:

procedure TForml.Button2Click(Sender: TObject);

begin

OLEContainerl.Close;

end;

Шаг 9. Скомпилируйте проект. Нажмите на кнопку «Загрузить файл». В OLEContainer'e отобразится содержимое файла.

Щелкните 2 раза на OLEContainer. Вы получите результат, показанный на рис. 2.

Excel будет встроен в ваше приложение, и в нем будет открыт ваш файл. Для того чтобы выйти из режима редактирования, нажмите кнопку «Закрыть файл».

Шаг 10. Теперь снова поменяйте процедуру для первой кнопки:

procedure TForml.ButtonlClick(Sender: TObject);

begin

OLEContainerl.InsertObjectDialog;

end;

Шаг 11. Скомпилируйте проект. Теперь при нажатии на кнопку «Загрузить файл» будет появляться стандартная форма, показанная на рис. 3. В ней показаны все программы, которые вы можите встраивать или связывать со своей программой.

Рис.1. Иллюстрация шага 6.

Рис.2. Иллюстрация шага 9.

Рис.3. Иллюстрация шага 11.

Можно создать новый объект этих программ или использовать объекты из файла, также есть возможность связывать объект или внедрять в приложение (рис. 4).

Рис. 4. Иллюстрация шага 11.

Шаг 12. Поэкспериментируйте с различными приложениями.

Программа 2 (СОМ сервера Delphi). I

Рассмотрим также, как можно использовать СОМ-технологии для внесения изменений в документы других программ.

Следующая программа предназначена для записи данных из вашей программы в документ Excel и считывания информации из документа. 1

Найдите на закладке Servers компонент ExcelApplication и
поместите его на форму нового приложения. Установите свойство этого компонента AutoQuit=true.

Создайте файл 'H:\2.xls\

Поместите на форму одну кнопку. Дайте ей название «Записать данные». Напишите для нее обработчик события нажатия на кнопку:

procedure TForml.ButtonlClick(Sender: TObject);

var Filenamel:01eVariant;

begin

ExcelApplicationl.Connect;

//Запись в существующий файл

Filenamel: = 'Н:\2.xls ' ;

ExcelApplicationl.Workbooks.Open(Filenamel, EmptyParam,

EmptyParam,EmptyParam, EmptyParam, EmptyParam,

EmptyParam, EmptyParam,EmptyParam, EmptyParam,

EmptyParam, EmptyParam, false, 0);

//Установка цвета заливки ячейки Excel

ExcelApplicationl.Range[Edit2.Text,Edit2.Text].Interior .Colorlndex := 5;

//Занесение информации в определенную ячейку таблицы ExcelApplicationl.Range[Edit2.Text,Edit2.Text].Value:=

Editl.Text;

ExcelApplicationl.Disconnect;

end;

Добавьте на форму два компонента Label и Edit, как показано на рисунке.

5. Скомпилируйте проект. Внесите текст для вставки в Excel
и номер ячейки (он состоит из буквы - номер столбца, и цифры - номер строки) (рис. 5).

Рис.5. Иллюстрация шага 5.

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

6. Добавьте в предыдущую процедуру для наглядности следующую строку:

... ...

ExcelApplicationl.Visible[0]:=TRUE;

//Установка цвета заливки ячейки Excel

......

7. Скомпилируйте проект еще раз. Теперь Excel будет запущен не в фоновом режиме, как это было ранее.

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

8. Измените название элементов на форме.

9. Измените процедуру нажатия на кнопку следующим образом:

procedure TFcrml.ButtonlClick(Sender: TObject);

var FileNamel: OleVariant;

begin

ExcelApplicationl.Connect;

Filename1: = 'D:\2.xls1;

ExcelApplicationl.Workbooks.Open(Filenamel, EmptyParam,

EmptyParam, EmptyParam, EmptyParam, EmptyParam,

EmptyParam,

EmptyParam, EmptyParam, EmptyParam, EmptyParam,

EmptyParam, false, 0);

Editl.Text:=ExcelApplication1.Range[Edit2.Text, EmptyParam].Text;

ExcelAppiicationl.Disconnect; end;

10. Создайте программу для записи информации в документ Word. Для этого измените форму проекта, как показано на рис. 6 (добавьте компоненты WordApplication и WordFont) и перепишите обработчик нажатия на кнопку:

procedure TForml.ButtonlClick(Sender: TObject);

begin

WordApplicationl.Connect;

//создание нового документа

WordApplicationl.Documents.Add(EmptyParam,EmptyParam);

WordApplicationl.Visible:=true;

//Установка шрифта

WordFontl .ConnectTo (WcrdApplicationl. Selection . Font) ;

WordFontl.Bold:=3;

WordFontl.Size:=17;

//Вставка текста

WordApplicationl.Selection.InsertAfter(Editl.Text);

WordApplicationl.Disconnect;

end;

Рис.6. Форма с компонентами WordApplication и WordFont.

Индивидуальные задания.

Ниже приведено 15 вариантов задач. По указанию преподавателя выберите свое индивидуальное задание. Уточните условие задания, количество, наименование, типы исходных данных.

Во всех заданиях скалярные переменные вводить с помощью компонента TEdit с соответствующим пояснением в виде компонента TLabel. Скалярный результат выводить в виде компонента ExcelApplication в файл табличного процессора Excel или WordApplication в файл Word.

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

2. Дан массив, содержащий от 1 до k символов, за которым следует точка. Напечатать этот текст в файл Word в обратном порядке.

3. Дан непустой массив из цифр. Вывести в файл Excel цифру, наиболее часто встречающуюся в этом массиве.

4. Отсортировать элементы массива X по возрастанию. Результат напечатать в файл Excel.

5. Элементы массива X расположить в обратном порядке. Результат напечатать в файл Excel.

6. Элементы массива X циклически сдвинуть на k позиций влево. Результат напечатать в файл Excel.

7. Элементы массива X циклически сдвинуть на k позиций вправо. Результат напечатать в файл Excel.

8. Преобразовать массив X по следующему правилу: все отрицательные элементы массива перенести в начало, а все остальные - в конец, сохраняя исходное взаимное расположение как среди отрицательных, так и среди остальных элементов. Результат напечатать в файл Excel.

9. Элементы каждого из массивов X и Y упорядочены по неубыванию. Объединить элементы этих двух массивов в один массив Z так, чтобы они снова оказались упоряченными по неубыванию. Результат напечатать в файл Excel.

10. Дан массив из 4 символов. Определить, симметричен ли он, т.е. читается ли он одинаково слева направо и справа налево. Если симметричен, то вывести его в файл Word.

11. Дано два массива. Найти наименьшее среди тех элементов первого массива, которые не входят во второй массив. Напечатать эти наименьшие числа в файл Word.

12. Определить количество инверсий в этом массиве X (т.е. таких пар элементов, в которых большее число находится слева от меньшего: х{i}>х{j} при i<j). Напечатать эти пары в файл.

13. Дан массив из строчных латинских букв. Вывести в файл Word этот массив в алфавитном порядке все буквы, которые входят в этот текст по одному разу.

14. Вывести в файл Excel заданный массив из k символов, удалив из него повторные вхождения каждого символа.

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

Лабораторная работа 5

Знакомство со средой проектирования программных продуктов Visual C++

Цель работы: познакомиться с принципами объектно-ориентированного программирования в средеVisual C++.

Задание:

1) Создать проект программы

2) Визуально спроектировать диалоговую панель

3) Связать элементы управления с событиями

4) Сохранить и выполнить программу

Порядок выполнения работы.

Теперь рассмотрим все пункты по порядку.

1) Вначале запустим Visual C++. Зайдем в меню FILE -> NEW..., выберем там Project. Ваша панель должна выглядеть теперь так:

Рис.1.

Затем выбираем MFC AppWizard(exe). В окне редактирования Project Name задаем имя программы и нажимаем OK.

Шаг 1. Теперь выбираем Dialog based, как показано на рис 2. Вы задали компилятору, что программа ваша будет основана на диалоговых окнах.

Рис. 2.

Шаг 2. В этой панели введите название программы как показано на рис 3 . Рассмотрим здесь группу "What features would you like to include".

Рис. 3.

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

Теперь щелкаем NEXT.

Шаг 3. Вы видите, что диалоговая панель задает два вопроса:

1) Нужно ли вставлять комментарии в исходный текст, который будет являться каркасом вашей программы?

2) Программа, которую создает для вас MFC AppWizard, будет иметь библиотеку с динамической компоновкой (DLL), а не статической? Dll дает преимущество в том, что EXE файл будет меньшего размера, а рядом к нему будет прилагаться DLL файл.

Выбираем всё как показано на рис 4.

Рис. 4.

Затем нажимаем NEXT и щелкаем FINISH, посмотрите, чтобы было выбрано все, как показано на рис. 5.

Рис.5.

Вы закончили создание проекта программы!

Все каркасные файлы для вашей программы написал Visual C++, с помощью мастера настроек MFC AppWizard. MFC - это вещь очень полезная, с помощью нее можно быстро создавать программы, так как все дежурные файлы он пишет сам, что сильно облегчает работу программиста, ведь не писать стандартный набор текста каждый раз!

А теперь мы спроектируем диалоговую панель.

Сейчас мы визуально спроектируем диалоговую панель. Для этого вначале выберите закладку "Resourse View" и раскройте пункт Hello Resource, как показано на рис. 6.

Рис.6.

Здесь вы видите две записи:

1) IDD_ABOUTBOX

2) IDD_HELLO_DIALOG

1) - это название диалоговой панели ABOUT, а 2)- название главной диалоговой панели. Выполните щелчок по второй строчке(2) и справа появится, диалоговая панель. В этом режиме можно ее редактировать (см. рис. 7).

Рис.7.

Удалите из диалоговой панели текст: "TODO:.." и две кнопки, для этого щелкните на эти элементы и нажмите DEL. Теперь у вас чистая панель и вы можете спроектировать ее на свой вкус.

Cправа от диалоговой панели находятся элементы управления(если вы их не видите, то зайдите в TOOLS->CUSTOMIZE, в закладке TOOLBARS, CONTROLS - поставьте флажок). Вы можете редактировать панель в полном экране, для этого зайдите в VIEW->FULLSCREEN.

Сейчас выберите в элементах управления Button,

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

Рис.7.

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

Выведется такая диалоговая панель (рис 7).

Вместо текста IDC_BUTTON1 введите IDC_SAYHELLO_BUTTON, зададим идентификатор, по которому VC будет распознавать элемент. В строке Captions(надпись), введите название кнопки Say Hello.

Вставьте теперь еще одну кнопку такого же размера, c ID - IDC_EXIT_BUTTON и Captions(надпись) Exit. Диалоговая панель должна выглядеть, как показано на рис. 1.8

Все свойства диалогового окна будут задавать таблицей, где будут указываться свойства элементов диалога. Свяжем элементы управления с событиями. Два элемента - это две кнопки: Say Hello и Exit. Теперь воспользуемся еще одним мастером ClassWizard, он сильно облегчит нам работу. Зайдите в VIEW->ClassWizard, появится такая диалоговая панель

Рис.1.8.

Рассмотрим эту панель.

1) Project- здесь вы выбираете свой проект.

2) ClassName - название класса, элементы которого вы будете связывать с событиями, проверьте, чтобы там было установлено CHelloDlg - это класс, который связан с главным диалоговым окном.

3) Object IDs - это идентификаторы(названия) элементов управления, в нашем случае это две кнопки. Первый идентификатор - это название самого класса, оно туда включено, так как с ним связаны многие события( это такие значения, которые возвращаются Windows, при совершении какого-нибудь действия).

4) Messages - а это как раз те самые события, которые генерирует программа. К примеру, если вы нажали на кнопку, то генерируется событие BN_CLICKED, а если два раза - то BN_DOUBLECLICKED.

5) Members function - это список функций, которые вы включили, и соответствующие им события.

Теперь свяжем кнопку EXIT с событием BN_CLICKED - оно возникает при нажатие на кнопку. Для этого щелкнем в Object IDs на IDC_EXIT_BUTTON, справа появится события, с которыми можно связать эту кнопку. Выбираем там BN_CLICKED. И щелкаем на кнопке Add Function , которая находится справа. Этим нажатием вы говорите Visual C++, что вам необходимо связать это событие с функцией. Выведется такая диалоговая панель, где вам предложат выбрать название функции. Оставьте все по умолчанию и нажмите кнопку OK.

В Members function появилась запись о том, что связали кнопку (c итендификатором IDC_EXIT_BUTTON) с функцией OnExitButton. Теперь щелкаем по кнопке Edit Code, которая находится ниже кнопки Add Fucnction. При нажатии на эту кнопку мы переходим в режим редактирования исходного текста. В окошке появится тест:

void CHelloDlg::OnExitButton()

{

// TODO: Add your control notification handler code here

}

Коментарий // TODO: Add your control notification handler code here говорит, что после него можно ставлять свой код.

Начало вашего кода будет обозначаться

///Здесь начинается ваш код///

А конец вашего кода -

///Здесь заканчивается ваш код///

Теперь введем код, для этого вам надо переписать его

void CHelloDlg::OnExitButton()

{

// TODO: Add your control notification handler code here

///Здесь начинается ваш код///

OnOK();

///Здесь заканчивается ваш код///

}

Напишем OnOK();, эта функция будет выполняться при каждом нажатии на кнопку EXIT, и она предназначена для завершения программы. Проверьте, чтобы в написании OnOK, OK было написано с большой буквы, иначе, при компиляции программы, Visual C++ сообщит вам об ошибке, так символы верхнего и нижнего регистра в VC имеют распознаются по-разному.

Итак вы связали кнопку EXIT с событием BN_CLICKED, а его с функцией OnExitButton, которая будет выполняться при каждом нажатии на кнопку EXIT.

Теперь свяжем кнопку Say Hello с событием BN_CLICKED. Для этого зайдем в меню VIEW->ClassWizard.

Выберем в Object IDs IDC_SAYHELLO_BUTTON.

Щелкнем на BN_CLICKED в Messages (этим связываете кнопку Say Hello с событием BN_CLICKED).

Нажимаем на Add function, этим связываете событие BN_CLICKED с функцией.

В раскрывшемся окне оставляем все по умолчанию и нажимаем кнопку OK.

Затем нажимаем на кнопку Edit Code, для редактирование исходного текста.

И в раскрывшемся окне пишем следующий код:

void CHelloDlg::OnSayhelloButton()

{

// TODO: Add your control notification handler code here

///Здесь начинается ваш код///

MessageBox("Say Hello");

///Здесь заканчивается ваш код///

}

Функция MessageBox("Say Hello"); вызывает окно сообщений, в котором написан текст Say Hello, который и является параметром этой функции.

Итак, связали кнопки Say Hello и EXIT с событием BN_CLICKED. При нажатии на кнопку Exit программа завершается, а при нажатии на кнопку Say Hello выводится сообщение "Say Hello".

Теперь осталось построить и выполнить программу. Нажимаем Далее...

Компиляция и запуск программы

Для того, чтобы выполнить программу надо ее вначале сохранить. Зайдите в меню File и там нажмите на Save All. Затем надо ее построить (скомпилировать).

Зайдем в меню Build->Build Hello.exe, начнется построение программы. Если компилятор не выдал сообщение об ошибке, которые можно посмотреть в появившемся внизу окошке, то можно смело запускать программу.

Теперь осталось только выполнить программу, для этого зайдите в меню Build->Execute Hello.exe

Ваша программа должна будет выглядеть так:

А окно сообщений при нажатии на кнопку Say Hello:

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

Индивидуальные задания.

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

С помощью инспектора объектов измените цвет формы, шрифт выводимых символов.

Задание: составить программу вычисления арифметического выражения по вариантам:

варианта

Программируемая формула

A

B

C

D

Результат

1

105

5

2

2.5

1.95862E+2

2

104

10

0.1

-3

-1.48774E+1

3

104

10

0.2

3

1.79615E+1

4

10-2

-1.5

4.1

-3

1.61778E-2

5

101

-1.7

3.9

-3

-3.83304E+0

6

103

3.5

4.1

-3

1.06442E+1

7

101

-0.5

1.1

-1

9.65643E-1

8

102

-20.5

5.1

-1.5

1.36556E+3

9

10-1

2.5

5.1

-1.5

-5.55037E-1

10

10-1

1.2

5.1

2.05

1.42678E+3

11

103

12

7.21

-

2.79759E-1

12

10

1.3

0.1

-.05

4.66048E+0

13

10-2

1.39

3.1

0.55

1.39860E-4

14

10-3

21.39

23.1

-0.12

-4.73017E+0

15

10-1

2.1

0.1

-3.12

-2.24257E+0


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

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