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


Практикум по дисциплине

«Технология разработки программного обеспечения»


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

 

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

 

Цель работы: ознакомиться с правилами написания технического задания.

ГОСТ 19.201-78. Настоящий стандарт устанавливает порядокпостроения и оформления технического задания на разработку программы илипрограммного изделия для вычислительных машин, комплексов и систем независимоот их назначения и области применения.

Общие положения

1. Техническое задание оформляют в соответствии с ГОСТ 19.106-78на листах формата А4 и A3 по ГОСТ 2.301-68, как правило, без заполнения полейлиста. Номера листов (страниц) проставляют в верхней части листа над текстом.

2. Лист утверждения и титульный лист оформляют в соответствиис ГОСТ 19.104-78. Информационную часть (аннотацию и содержание), листрегистрации изменений допускается в документ не включать.

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

4. Техническоезадание должно содержать следующие разделы:

·название программы и область применения;

·основание для разработки;

·назначение разработки;

·технические требования кпрограмме илипрограммному изделию;

·технико-экономические показатели;

·стадии и этапы разработки:

·порядок контроля и приемки;

·приложения.

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

5. Содержание разделов

5.1. В разделе «Наименование и область применения» указываютнаименование, краткую характеристику области применения программы или программногоизделия и объекта, в котором используют программу или программное изделие.

5.2. В разделе«Основание для разработки» должны быть указаны:

·документ (документы), на основании которых ведется раз
работка;

·организация, утвердившая этот документ, и дата егоутверждения;

·наименование и (или) условное обозначение темыразработки.

5.3.   В разделе «Назначение разработки» должно быть указано
функциональное и эксплуатационное назначение программы
или программною изделия.

5.4. Раздел «Технические требования к программе илипрограммному изделию» должен содержать следующие подразделы:

·требования к функциональным характеристикам;

·требовании к надежности;

·условия эксплуатации;

·требования к составу и параметрам технических средств;

·требования к информационной и программнойсовместимости;

·требования к маркировке и упаковке;

·требования к транспортированию и хранению;

·специальные требования.

5.5. В подразделе «Требования к функциональнымхарактеристикам» должны быть указаны требования к составу выполняемых функций,организации входных и выходных данных, временным характеристикам и т. п.

5.6. В подразделе «Требования к надежности» должны бытьуказаны требования к обеспечению надежного функционирования (обеспечение устойчивогофункционирования, контроль входной и выходной информации, время восстановленияпосле отказа и т. п.).

5.7. В подразделе «Условия эксплуатации» должны быть указаныусловия эксплуатации (температура окружающего воздуха, относительная влажностьи т. п. для выбранных типов носителей данных), при которых должныобеспечиваться заданные характеристики, а также вид обслуживания, необходимоеколичество и квалификация персонала.

5.8. В подразделе «Требования к составу и параметрамтехнических средств» указывают необходимый состав технических средств суказанием их технических характеристик.

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

5.10. В подразделе «Требования к маркировке и упаковке» вобщем случае указывают требования к маркировке программного изделия, варианты испособы упаковки.

5.11. В подразделе «Требования к транспортированию ихранению» должны быть указаны для программного изделия условиятранспортирования, места хранения, условия хранения, условия складирования,сроки хранения в различных условиях.

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

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

5.14. В разделе «Порядок контроля и приемки» должны бытьуказаны виды испытаний и общие требования к приемке работы.

5.15. В приложениях ктехническому заданию при необходимости приводят:

·перечень научно- исследовательских и других работ,обосновывающих разработку;

·схемы алгоритмов, таблицы, описания, обоснования,расчеты и другие документы, которые могут быть использованы при разработке;

·другие источники разработки.

 

Пример разработки технического задания

Введение.

Работа выполняется в рамках проекта «Автоматизированнаясистема оперативно-диспетчерского управления электро-, теплоснабжением корпусовинститута».

2. Основание для разработки

1.Основанием для данной работы служитдоговор № 1234 от 10 марта 2003 г.

2.Наименование работы:

«Модуль автоматизированной системы оперативно-диспетчерскотоуправления теплоснабжением корпусов института».

3.Исполнители: ОАО «Лабораториясоздания программного обеспечения».

4.Соисполнители: нет.

3. Назначение разработки

Создание модуля для контроля и оперативной корректировкисостояния основных параметров теплообеспечения корпусов Московского института.

4. Технические требования

4.1. Требования к функциональным характеристикам.

4.1.1. Состав выполняемых функций. Разрабатываемое ПО должнообеспечивать:

·сбор и анализ информации о расходовании тепла, горячейи холодной воды по данным теплосчетчиков SA-94 на всех тепловых выходах.;

·сбор и анализ информации с устройств управлениясистемами воздушного отопления и кондиционирования типа РТ1 и РТ2 (разработкикафедры СММЭ и ТЦ);

·предварительный анализ информации на предметнахождения параметров в допустимых пределах и сигнализирование при выходепараметров за пределы допуска;

· выдачу рекомендаций по дальнейшей работе;

·отображение текущего состояния по набору параметров — циклически постоянно (режим работы круглосуточный), при сохранении периодичностиконтроля прочих параметров;

·визуализацию информации по расходу теплоносителя:

— текущую, аналогично показаниям счетчиков;

— с накоплением за прошедшие сутки, неделю, месяц — в видепочасового графика для информации за сутки и неделю;

— суточный расход — для информации за месяц.

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

По отдельному запросу осуществляются внутренние настройки.

В конце отчетного периода система должна архивировать данные.

4.1.2. Организация входных и выходных данных.

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

Основной режим использования системы — ежедневная работа.

4.2.   Требования к надежности.

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

4.3.   Условия эксплуатации и требования к составу ипараметрам технических средств.

Для работы системы должен быть выделен ответственныйоператор.

Требования к составу и параметрам технических средствуточняются на этапе эскизного проектирования системы.

4.4.   Требования к информационной и программнойсовместимости.

Программа должна работать на платформах Windows 98/ NT/2000.

4.5.   Требования к транспортировке и хранению. Программапоставляется на лазерном носителе информации.

Программная документация поставляется в электронном ипечатном виде.

4.6.   Специальные требования.

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

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

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

5. Требования к программной документации

Основными документами, регламентирующими разработку будущихпрограмм, должны быть документы Единой Системы Программной Документации (ЕСПД);руководство пользователя, руководство администратора, описание применения.

6. Технико-экономические показатели

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

7. Порядок контроля и приемки

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

8. Календарный план работ.

 

№ этапов Название этапа Сроки этапа Чем закачивается этап 1. Изучение предметной области. Проектирование системы. Разработка предложений по реализации системы. 01.02.200_ — 28.02.200_ Предложения по работе системы. Акт сдачи-приёмки. 2. Разработка программного модуля по сбору и анализу информации со счётчиков и устройств управления. Внедрение системы для одного из корпусов. 01.03.200_ — 31.08.200_ Программный комплекс. 3. Тестирование и отладка модуля. Внедрение системы во всех корпусах. 01.09.200_ — 30.12.200_ Готовая система контроля теплоснабжения, установленная в диспетчерском пункте. Программная документация. Акт сдачи-приёма работ.

 

Руководитель работ Сидоров А.В.

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

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

1. Разработка программногокомплекса «Автотранспорт».

2. Разработкапрограммного комплекса «Деканат института».

3. Разработкапрограммного комплекса «Обслуживание банкомата».

4. Разработкапрограммного комплекса «Управление гостиницей».

5. Разработка программногокомплекса «Выдача кредитов в банке».

6. Разработка программногокомплекса «Строительная фирма».

7. Разработка программногокомплекса «Управление библиотечным фондом».

8. Разработкапрограммного комплекса «АРМ работника склада»

9. Разработка программногокомплекса «АРМ администратора ателье по ремонту оргтехники»

10. Разработкапрограммного комплекса «АРМ администратора автосалона».

11. Разработкапрограммного комплекса «АРМ администратора ресторана».

12. Разработкапрограммного комплекса «АРМ сотрудника ЖЭСа».

13. Разработкапрограммного комплекса «АРМ администратора аэропорта».

14. Разработкапрограммного комплекса «АРМ работника отдела кадров».

15. Разработкапрограммного комплекса «АРМ администратора спорткомплекса».


«Утверждаю»

Профессор кафедры ВС

___________ (Иванов И. И.)

« »________ _ 200 г.

Техническое задание

на разработку «Модуля автоматизированной системыоперативно-диспетчерского управления теплоснабжением корпусов института»


Чебоксары, 200_


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

 

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ (ООП).

 

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

Общие положения

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

Класс — это тип данных. Объект класса — переменная типа «класс». Изопределения класса следует первое свойство ООП — инкапсуляция. Инкапсуляцияданных означает, что они являются не глобальными — доступными всей программе, а локальными — доступными только малой ее части.Инкапсуляция автоматическиподразумевает защиту данных. Для этого в структуре class используетсяспецификатор раздела private, содержащий данные и методы, доступные толькодля самого класса. Если данные и методысодержатся в разделе public, они доступны извне класса. Разделprotected содержит данные и методы, доступные из класса и любогоего производного класса.

Интегрированнаясреда разработчика DELPHI

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

/>

Рнс.1.Внешний вид окна Delphi.

1 — главное окно; 2 — основное меню; 3 — пиктограммы основного меню; 4 — окно инспектора объектов; 5- окно текста программы; 6 — окно пустой формы, 7 — меню компонентов

 

Главное окнавсегда присутствует на экране и предназначено дляуправления процессом создания программы. Основное меню (прил.1)содержит всенеобходимые средства для управления проектом. Пиктограммы облегчают доступ кнаиболее часто применяемым командам основного меню. Через меню компонентов(прил. 2) осуществляется доступ к набору стандартных сервисных программ средыDELPHI, которые описывают некоторый визуальный элемент (компонент), помещенныйпрограммистом в окно формы. Каждый компонент имеет определенный набор свойств(параметров), которые программист может задавать. Например, цвет, заголовококна, надпись на кнопке, размер и тип шрифта и др.

Окно инспектораобъектов(вызывается с помощью клавишиF11) предназначеного для изменения свойств выбранных компонентов и состоит издвух страниц. Страница Properties(Свойства) предназначена для изменениянеоходимых свойств компонента, страница Events (События) — для определенияреакции компонента на то или иное событие (например, нажатие определеннойклавиши или щелчок «мышью » по кнопке).

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

Окно текстапрограммы предназначено для просмотра, написания икоретироваиия текста программы. В системе DELPHI используется языкпрограммирования Object Pascal. При первоначальной загрузке в окне текстапрограммы находится текст, содержащий минимальный набор операторов для нормальногофункционирования пустой формы в качестве Windows-окна. При помещении некоторогокомпонента в окно формы текст программы автоматически дополняется описаниемнеобходимых для его работы библиотек стандартных программ (раздел uses) и типовпеременных (раздел type).

Программа в среде DELPHIсоставляется как описание алгоритмов, которые необходимо выполнить, есливозникает определенное событие, связанное с формой (например, щелчок«мыши» на кнопке — событие OnClick, создание формы — OnCreate). Длякаждого обрабатываемого в форме события, с помощью страницы Events инспектораобъектов в тексте программы организуется процедура (procedure), между ключевымисловами begin и end которой программист записывает на языке Object Pascalтребуемый алгоритм.

Переключение между окномформы и окном текста программы осуществляется с помощью клавиши F12.

Меню и команды Delphi

Чтобывыдать команду в среде Delphi, можно воспользоваться тремя основными способами:

· С помощью меню.

· С помощью полоскиSpeedBar (инструментальной линейки).

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

Меню File

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

К командам, работающим с проектами, относятся New, New Application, Open, Reopen, Save Project As, SaveAll, Close All, Add to Project иRemove from Project. С файламиисходного кода работают команды New, New Form, New Data Module, Open, Reopen, Save As, Save,Close и Print. Основной командой является File/New,которую можно использовать для вызова экспертов, для начала работы с новымприложением, для наследования формы из уже существующей и т.д. Чтобы открытьпроект или файл исходного кода, с которыми вы работали последний раз,используйте команду File/Reopen.

Меню Edit

Стандартныевозможности меню Edit применимы как к тексту, так и к компонентам формы. Можнокопировать и вставлять тот или иной текст в редакторе, копировать и вставлятькомпоненты в одной форме или из одной формы в другую. Также можно копировать ивставлять компоненты в другое групповое окно той же формы, например, в панельили блок группы; копировать компоненты из формы в редактор, и наоборот. Delphiпомещает компоненты в буфер обмена, преобразуя их в текстовое описание. Можносоответствующим образом отредактировать этот текст, а затем вставить егообратно в форму в виде нового компонента. Можно выбрать несколько компонентов ископировать их как в другую форму, так и в текстовый редактор. Это можетпригодиться, когда вам придется работать с рядом схожих компонентов. Вы сможетескопировать один компонент в редактор, размножить его нужное число раз, а затемвставить назад в форму целую группу.

Меню Search

Есливы выберете команду Incremental Search, то вместо того чтобы показатьдиалоговое окно, где вводится образец для поиска, Delphi переходит в редактор.Когда вы введете первую букву, редактор перейдет к первому слову, котороеначинается с этой буквы. Продолжайте набор букв и, курсор будет последовательнопереходить к словам, в начале которых будут стоять введенные символы. Этакоманда очень эффективна и чрезвычайно быстра. Команда Browse Symbol вызываетObject Browser – инструмент, который можно использовать для просмотра многихдеталей при исследовании откомпилированной программы.

Меню View

Большинствокоманд меню View применяются для отображения какого-либо окна среды Delphi,например Project Manager, Breakpoints List или Components List. Эти окна не связаныдруг с другом. Эти окна не связаны друг с другом. Команда Toggle Form/Unitиспользуется для перехода от формы, над которой вы работаете к ее исходномукоду, и обратно. Команда New edit window создает дубликат окна редактирования иего содержимого. В Delphi это единственный способ просмотреть два файла рядомдруг с другом, поскольку редактор для показа нескольких загруженных файловиспользует ярлычки. После дублирования окна редактирования могут содержатьразные файлы. Последние две команды меню View можно использовать для удаления сэкрана полоски SpeedBar и палитры Components, хотя при этом среда Delphiстановится менее удобнее для пользователя. Команда Build All заставляет Delphiоткомпилировать каждый исходный файл проекта, даже если после последней трансляциион не был изменен. Для проверки написанного кода без создания программы можноиспользовать команду Syntax Check. Команда Information дает некоторыеподробности о последней выполненной вами трансляции. Команда Optionsприменяется для установки опций проекта: опций компилятора и редактора связей,опций объекта приложения и т.д.

Меню Run

МенюRun можно было бы назвать Debug (отладка). Большинство команд в нем относится котладке, включая саму команду Run. Программа, запускаемая внутри среды Delphi, выполняетсяв ее интегрированном отладчике (если не отключена соответствующая опция). Длябыстрого запуска приложения используется клавиша F9. Остальные командыприменяются в процессе отладки для пошагового выполнения программы, установкиточек прерывания, просмотра значений переменных и объектов, и т.п.

Меню Component

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

Меню Tools

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

Работа с формами

Проектированиеформ – ядро визуальной разработки в среде Delphi. Каждый помещаемый в формукомпонент или любое задаваемое свойство сохраняется в файле, описывающем форму(DFM-файл), а также оказывает некоторое влияние на исходный текст, связанный сформой (PAS-файл).

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

Приработе с формой можно обрабатывать ее свойства, свойства одного из еекомпонентов или нескольких компонентов одновременно. Чтобы выбрать форму иликомпонент, можно просто щелкнуть по нему мышью или воспользоваться Object Selector( комбинированный список в Object Inspector), где всегда отображены имя и типвыбранного элемента. Для выбора нескольких компонентов можно или нажать клавишуShift и щелкать по компонентам левой кнопкой мыши, или отбуксировать в формерамку выбора.

SpeedMenuформы содержит ряд полезных команд. Для изменения относительного расположениякомпонентов одного вида можно использовать команды Bring to Front и Send ToBack. Командой Revert To Inherited можно воспользоваться, чтобы вунаследованной форме установить те значения свойств выбранного компонента,которые были у них в родительской форме. При выборе сразу несколькихкомпонентов вы можете выровнять их или изменить их размеры.

Спомощью SpeedMenu можно также открыть два диалоговых окна, в которых устанавливаетсяпорядок обхода визуальных управляющих элементов и порядок создания невизуальныхуправляющих элементов. Команда Add To Repository добавляет текущую форму всписок форм, доступных для использования в других проектах.

Дляустановки положения компонента кроме применения мыши имеются еще два способа:

· Установказначений для свойств Top и Left.

· Использованиеклавиш курсора при нажатой клавише Ctrl.

МетодCtrl+клавиша курсора особенно удобен при тонкой подстройке положения элемента.Точно также, нажимая клавиши курсора при нажатой клавише Shift, можноподстроить размер компонента.

Палитра компонентов

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

Каждаястраница палитры содержит ряд компонентов, которые обозначены пиктограммами иименами, появляющимися ввиле подсказки. Эти имена являются официальныминазваниями компонентов. В действительности это названия классов, описывающихкомпоненты без первой буквы T (например, если класс называется Tbutton, имябудет Button). Если необходимо поместить в форму несколько компонентов обного итого же вида, то при выборе компонента щелчком в палитре удерживайте нажатойклавишу Shift Затем при каждом щелчке в форме Delphi будет вставлять новыйкомпонент выбранного вида.Чтобы остановить эту операцию, просто щелкните постандартному селектору (пиктограмма стрелки) слева от палитры Components.

Структура программDELPHI

Программа в DELPHIсостоит из файла проекта (файл с расширением .dpr), одного илинескольких файлов исходного текста (с расширением .pas), файлов сописанием окон формы (с расширением .dfm).

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

Файл исходноготекстапрограммный модуль (Unit)предназначен для размещения текстов программ. В этом файле программистразмещает текст программы, написанный на языке PASCAL.

В разделе объявленийописываются типы, переменные, заголовки процедур и функции, которые могут бытьиспользованы другими модулями, через операторы подключения библиотек (Uses). Вразделе реализации располагаются тела процедур и функций, описанных в разделеобъявлений, а также типы переменных, процедуры и функции, которые будутфункционировать только в пределах данного модуля. Раздел инициализациииспользуется редко, и ею можно пропустить. Модуль имеет следующую структуру:

unit Unit1;

interface

// Раздел объявлений

implementation

// Раздел реализации

begin

// Раздел инициализации

end.

При компиляции программыDELPHI создает файл с расширением .dcu, содержащий в себе результатперевода в машинные коды содержимого файлов с расширением .pas и .dfm.Компоновщик преобразует файлы с расширением .dcuв единыйзагружаемый файл с расширением .exe. В файлах, имеющих расширение .~df,.~dp, .~pa, хранятся резервные копии файлов с образом формы, проекта иисходного текста соответственно.

Пример написанияпрограммы линейного алгоритма.

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

[ u=tg2(x + y)-ey-z *cosx2+ sin z2 ]

Настройка формы

Пустая форма в правомверхнем углу имеет кнопки управления, которые предназначены: для свертыванияформы в пиктограмму />, для разворачивания формы на весьэкран /> ивозвращения к исходному размеру /> и для закрытия формы />. С помощьюмыши, «захватывая» одну из кромок формы или выделенную строкузаголовка, отрегулируйте нужные размеры формы и ее положение на экране (рис2.).

/>

Рис.2. Внешний видформы

 

Изменение заголовкаформы

Новая форма имеетодинаковые имя (Name) и заголовок (Caption) -FORM1. Имя формы менять нерекомендуется, т.к. оно входит в текст программы.

Для изменения заголовкавызовите окно инспектора объектов (F11) и щелкните кнопкой мыши на форме. Вформе инспектора объектов найдите и щелкните мышью на Properties — Caption. Ввыделенном окне наберите «Лраб №1».

Размещение строкиввода (TEdit)

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

В данной программе спомощью однострочного редактора будут вводиться переменные х, у, z типаextended или integer.

Выберите в меню компонентовStandard пиктограмму />, щелкните мышью в том местеформы, где вы хотите ее поставить. Вставьте три компонента TEdit в форму. Захватываяих «мышью», отрегулируйте размеры окон и их положение. Обратитевнимание на то, что в тексте программы появились три новьгх однотипныхпеременных Edit1, Edit2, Edit3. В каждой из этих переменных: расширением .Textбудет содержаться строка символов (тип String) и отображаться в соответствующемокне Edit.

Так как численныезначения переменных х, у, z имеют действительный тип дляпреобразованиястроковой записи числа, находящегося в переменной Edit.Text, в действительное,используется стандартная функция X:=StrToFloat(Edit1.Text).

Если исходные данныеимеют целочисленный тип, например integer, то используется стандартная функцияХ:=StrToInt(Edit1.Text).

При этом в записи числане должно быть пробелов, а действительное число пишется с десятичной занятой.

С помощью инспектораобъектов установите шрифт и размер символов, отображаемых в строке Edit(свойство Font).

Размещение надписей(TLabel)

На форме имеются четырепояснительные надписи. Для нанесения таких надписей на форму используетсякомпонент TLabel. Выберите в меню компонентов Standard пиктограмму /> , щелкните наней мышью. После этого в нужном месте формы щелкните мышью, появится надписьLabel1. Проделайте это для четырех надписей. Для каждой надписи, щелкнув на неймышью, отрегулируйте размер и, изменив свойство Caption инспектора Объектов,введите строку, например «Введите значение X:», а также выберитеразмер символов (свойства Font).

Обратите внимание, что втексте программы автоматически появились четыре новых переменных типа .TLabel.В них хранятся пояснительные строки, которые можно изменять в процессе работыпрограммы.

Размещениемногострочного окна вывода (ТМето)

Для вывода результатовработы программы обычно используется текстовое окно, которое представленокомпонентом (ТMemo). Выберите в меню компонентов пиктограмму /> и поместите компонентТМеmо на форму. С помощью мыши отрегулируйте его размеры и местоположение.После установки с помощью инспектора свойства ScrollBars — SSBoth в окнепоявятся вертикальная и горизонтальная полосы прокрутки.

В тексте программыпоявилась переменная Memo1 типа ТMemo. Информация, которая отображаетсяпострочно в окно типа ТMemo, находится в массиве строк Memo1.Lines. Каждаястрока имеет тип String.

Для чистки окнаиспользуется метод Memo1.Сlеаr. Для того чтобы добавить новую строку в окно,используется метод Memo1.Lines.Add (переменная типа String).

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

Например, если переменнаяu:=100 целого типа, то метод Memo1.Line.Add сделает это и в окне появитсястрока «Значение u=100». Если переменная u:=-256,38666действительная, то при использовании метода Meno1.Lines.Add('Значениеu='+FloatToStrF(u.ffFixed,8,2)) будет выведена строка «Значение u=-256.39». При этом под все число отводится восемь позиций, из которых двепозиции занимает его дробная часть.

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

Написание программыобработки события нажатия кнопки(ButtonClick)

Поместите на формукнопку, которая описывается компонентом TButton, для чего выберем в менюкомпонентов Standard пиктограмму />. С помощью инспектора объектовизмените заголовок (Caption) — Button1 на слово «Выполнить» илидругое по вашему желанию. Отрегулируйте положение и размер кнопки.

После этого два раза щелкнитемышью на кнопке, появится текст программы, дополненной заголовком процедурыобработчика события — нажатия кнопки (Procedure TForm1.ButtonClick(Sender:TObject);).

Наберите текст этойпроцедуры, приведенный в примере.

Запуск и работа спрограммой

Запустить программу можнонажав Run в главном меню Run, или клавишу F9, или пиктограмму />. При этом происходиттрансляция и, если нет ошибок, компоновка программы и создание единогозагружаемого файла с расширением .exe. На экране появляется активная формапрограммы.

Работа с программойпроисходит следующим образом. Нажмите (щелкните мышью) кнопку«Выполнить». В окне Memo1 появляется результат. Измените исходныезначения х, у, z в окнах Edit и снова нажмите кнопку «Выполнить» — появятся новые результаты. Завершить работу программы можно нажав или в главномменю Run, или кнопку {}на форме.

Текст программы:

unit tema1;

interface

uses

Windows,Messages. SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

type

TForm1 =class(TForm)

Label1:TLabel;

Edit1:TEdit;

Label2:TLabel;

Edit2:TEdit:

Label3:TLabel;

Edit3: TEdit;

Label4:TLabel;

Memo1:TMemo;

Buttonl:TButfon;

procedureFormCreate(Sender: TObject);

procedureButton1Click(Sender: TObject);

 private

{ Privatedeclarations }

 public

{ Publicdeclarations }

 end;

var

Form1: TForm1;

Implementation

 {$R*.DFM}

procedureTForm1.Button1Click(Sender: TObject);

var

x, y, z, a, b,c, u: extended;

begin

x:=StrToFloat(Edit1.Text);// Считывается значение X

Memo1.Lines.Add('X= '+Edit1.Text); // Вывод X в окно Memo1

y:=StrToFloat(Edit2.Text);// Считывается значение Y

Memo1.Lines.Add('Y= '+Edit2.Text); // Вывод Y в окно Memo1

z:=StrToFloat(Edit3.Text);// Ситывается значение Z

Memo1.Lines.Add('Z= '+Edit3.Text); // Вывод Z в окно Memo1

 // Вычисляем арифметическое выражение

a:=Sqr(Sin(x+y)/Cos(x+y));

b:=Exp(y-z);

c:=Sqrt(Cos(Sqr(x))+Sin(Sqr(z)));

u:=a-b*c;

 // Выводим результат вокно Memo1

Memo1.Lines.Add('Результат U ='+FloatToStrF(u,ffFixed,8,3));

 end;

end.

Кнопки-переключатели вDELPHI

При создании программ иDELPHI дня организации разветвлений часто используются компоненты в видекнопок-переключателей. Состояние такой кнопки (включено — выключено) визуальноотражается на форме.

Компонент TCheckBoxорганизует кнопку независимого переключателя, с помощью которой пользовательможет указать свое решение типа да/нет. В программе состояние кнопки связано созначением булевской переменной, которая проверяется с помощью оператора if.

Компонент TRadioGroupорганизует группу кнопок — зависимых переключателей. При нажатии одной изкнопок группы все остальные кнопки отключаются. В программу передается номервключенной кнопки (0,1,2,..), который анализируется с помощью оператора case.

 

Пример написанияпрограммы разветвляющегося алгоритма

Задание: ввести три числа — х, у, z.Вычислить по усмотрению u=sin(x) или

u=cos(x), или u=tg(х).Найти по желанию максимальное из трех чисел: max(x, у, z), или min (|x|, |у|,|z|).

Создать форму и написатьсоответствующую программу.

Создание формы

Создайте форму, такую жекак в первом задании, скорректировав текст надписей и положение окон TEdit.

Работа с компонентомTCheckBox

Выберите в менюкомпонентов Standard пиктограмму {} и поместите ее в нужное место формы. Спомощью инспектора объектов измените заголовок (Caption) на «maabs».В тексте программы появилась переменная CheckBox типа TCheckBox. Теперь взависимости от того, нажата или нет кнопка, булевская переменная CheckBox.Checkedбудет принимать значения True или False.

Работа с компонентомTRadioGroup

Выберите в менюкомпонентов Standard пиктограмму {} и поместите ее в нужное место формы. На формепоявится окаймленный линией чистый прямоугольник с заголовком RadioGroup1.Замените заголовок (Caption) на U(х). Длятого чтобы разместить накомпоненте кнопки, необходимо свойство Columns установить равным единице(кнопки размещаются в одном столбце). Дважды щелкните по правой части свойстваItems мышью, появится строчный редактор списка заголовков кнопок. Наберите тристроки с именами: в первой строке sin(x), во второй — cos(х), в третьей — tg(х), нажмите ОК.

После этого на формевнутри окаймления появится три кнопки-переключателя с введенными надписями.

Обратите внимание на то,что в тексте программы появилась переменная RadioGroup типа TRadioGroup. Теперьпри нажатии одной из кнопок группы в переменной целого типаRadioGroup1.ItemIndex будет находиться номер нажатой клавиши (отсчитывается от нуля),что используется в тексте приведенной программы.

Создание обработчиковсобытий FormCreate и Botton1Click

 Процедуры — обработчики событийFormCreate и Botton1Click создаются аналогично тому, как и в первой теме. Текстпроцедур приведен ниже.

Запустите программу иубедитесь в том, что все ветви алгоритма выполняются правильно.

Текст программы приведенниже.

unit tema2;

interface

uses

 Windows,Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,ExtCtrls;

 type

TForm1 =class(TForm)

CheckBox1:TCheckBox;

RadioGroup1:TRadioGroup;

Memo1: TMemo;

Button1:TButton;

Edit1:TEdit;

Label1:TLabel;

Label2:TLabel;

Edit2:TEdit;

Label3:TLabel:

Edi3: TEdlt;

procedureFormCreate(Sender: TObject);

procedureButton1Click(Sender: TObject);

 private

{Privatedeclarations}

public

{publicdeclarations}

var

Form1: TForm1;

implementation

{$R.DFM}

procedureTForm1.FormCreate(Sender: TObject);

begin

Edit1.Text:='0,1';

Edit3.Ttext:='0,356';

Memo1.Clear;

Memo1.Lines.Add('Рез-ты ст.гр.9383 Валента А.А.');

end;

procedureTForm1.Button1Click(Sender: TObject);

var x, y, z,u, ma: extended;

begin

 // Ввод исходныхданных и их вывод в окно Memo1

x:=StrToFloat(Edit1.Text);

 Memo1.Lines.Add('x='+Edit1.Text);

y:=StrToFloat(Edlt2.Text);

 Memo1.Lines.Add('y='+Edit2.Text);

z:=StrToFloat(Edtt3.Text);

 Memo1.Lines.Add('z='+Edit3.Text);

 // Проверка номера нажатой кнопки ивыбор соответствующей ей функции

 case RadioGroup.ltemlndex of

 0: u:=cos(x);

 1: u:=sin(x);

 2:u:=sin(x)/cos(x);

 end:

 // ПроверкасостояниякнопкиСheckBox1

 if CheckBox1.Checked then

 begin

 u:=abs(u);

 y:=abs(y);

 z:=abs(z)

 end;

 // Нахождениемаксимального из трех чисел

 if u>y then ma:=u else ma: =y;

 if z>ma thenma:=z;

 if CheckBox1.Checkedthen

 Memo1.Lines.Add('maxabs='+FloatToStrF(ma,ffFixed,8,2))

 else

 Memo1.Lines.Add('max='+FtoatToStrF(ma,ffGeneral,8,2));

end;

end.

Пример написанияпрограммы циклического алгоритма

Задание: написать иотладить программу, которая выводит таблицу значений функции S(х) для хизменяющихся в интервале от XI до Х2 с шагом h.

Текст программы приведенниже.

unit tema3;

interface

uses

Windows, Messages,SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;

 

type

TForm1 =class(TForm)

 Memo1: TMemo;

 Button1:TButton;

 Label1:TLabel;

 Label2:TLabel;

 Label3:TLabel;

 Label4:TLabel;

 Edit1: TEdit;

 Edit2: TEdit;

 Edit3: TEdit;

 Edit4: TEdit;

procedureFormCreate(Sender: TObject);

procedureButton1Click(Sender: TObject);

private

 { Privatedeclarations }

public

 { Publicdeclarations}

end;

var Form1:TForm1;

implementation

{$R*.DFM}

procedureTForm1.FormCreate(Sender: TObject);

begin

 Edit1.Text:='0';

 Edit2.Text:='2';

 Edit3.Text:='5';

 Edit4.Text:='0.25';

Memo1.Clear;

Memo.Lines.Add('Результаты ст. гр. 9383 Валета А.В.');

end;

procedureTForm1.Button1Cllck(Sender: TObject);

var x1, x2, x,h, a, s: extended;

 N, k, c:integer;

begin

x1:=StrToFloat(Edit1.Text);

 Memo1.Lines.Add('x1='+Edit1.Text);

x2:=StrToFloat(Edit2.Text);

 Memo1.Lines.Add('x2='+Edit2.Text);

N:=StrTolnt(Edit3.Text);

 Memo1.lines.Add('N='+Edit3.Text);

h:=StrToFloat(Edit4.Text);

 Memo1.Lines.Add('h='+Edit4.Text);

 c:=-1;

 x:=x1;

repeat

 a:=1;

 S:=1;

 for k:=1 to Ndo

 begin

 a:=c*a*x/k;

 s:=s+a;

end;

Memo1.lines.Add('при x=' +FloatToStrF(x,ffFixed,6,2)+ ' сумма = '+FloatToStrF(s,tfFtxed,6,2));

 x:=x+h;

until x>x2;

end;

end.

После отладки программы составьтетест (N=2, Х1=0, Х2=1, h=3), установите курсор на первый оператор (N:= ),нажмите клавишу F4. После этого нажимая клавишу F7, выполните пошаговую программуи проследите, как меняются все переменные в процессе выполнения.

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

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

Часть1. Использование ООП для программирования линейных алгоритмов.

1. Найти сумму цифрзаданного четырехзначного числа.

2. Определить число,полученное в оратном порядке цифр, заданного трехзначного числа.

3. Вывести на экран1 или 0в зависимости от того, равна ли сумма двух первых цифр заданногочетырехзначного числа сумме двух его последних цифр.

4. Вывести на экран1или 0в зависимости от того, равен ли квадрат эго трехзначногочисла кубу суммы цифр этого числа.

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

6. Вывести на экран1 или 0в зависимости от того, есть ли среди цифр трехзначного числаодинаковые.

7. Присвоить целойпеременной k третью от конца цифру в записи положительного целого числа n.

8. Присвоить целойпеременной k первую цифру из дробной части положительного вещественного числа.

9. Целой переменнойS присвоить сумму цифр трехзначного целого числа k.

10. Идет k-я секундасуток. Определить, сколько полных часов (h) и полных минут (m) прошло кэтому моменту.

11. Определить f — угол (в градусах) между положением часовой стрелки в начале суток и ееположением в h -часов, т — минут и s — секунд (0<=Н<=11,0<=т,s< =59).

12. Определить hполное количество часов и m — полное количество минут, прошедших от началасуток до того момента (в первой половине дня), когда часовая стрелкаповернулась на f градусов(0<=f<360, f — вещественное число).

13. Пусть kцелоеот 1 до 365. Присвоить целой переменной n значение 1,2,3,...,6 или 7 взависимости от того, на какой день недели (понедельник, вторник, ..., субботаили воскресенье) приходится k-й день невысокосного года, в втором 1 января — понедельник.

14. Поменять местамизначения целых переменных х и у, не используя дополнительныепеременные.

15. Вывести на экран1 или 0в зависимости от того, имеют три заданных числа одинаковуючетность или нет.

Часть2. Использование ООП для программирования ветвящихся алгоритмов.

1. Известно, что изчетырех чисел а1, а2, а3 и а4 одно отлично от трex других, равных междусобой. Присвоить номер этого числа переменной п.

2. По номеру n(n>0) некоторого года определить cномер его столетия (учесть, что,к примеру, началом XX столетия был 1901, а не 1900 год!).

3. Значенияпеременных а, b и c поменять местами так, чтобы оказаль а<=b<=с.

4. Дано целое k от 1до 180. Определить, какая цифра находится в k-й позиции последовательности10111213...9899, в которой выписаны подряд все двузначные числа.

5. Дано натуральноеk. Определить k-ю цифру в последовательности 110100100010000100000..., вкоторой выписаны подряд степени 10.

6. В старояпонскомкалендаре был принят 60-летний цикл, состоявший из пяти 12-летних подциклов.Подциклы обозначались названиями цвета: green(зеленый), red (красный), yellow(желтый), white(белый) и black (черный). Внутри каждого подцикла годы носилиназвания животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы,обезьяны, курицы, собаки и свиньи. (1984 год – год зеленой крысы -былначалом очередного цикла). Разработать программу, которая вводит номер некоторогогода нашей эры и выводит его название по старояпонскому календарю.

7. Если сумма трехпопарно различных действительных чисел х, у, z меньше единицы, тонаименьшее из этих трех чисел заменить полусуммой двух в противном случаезаменить меньшее из х и у полусуммой двул оставшихся значений,

8. Для целого числаk от 1 до 99 вывести фразу «мне k лет», учитывая при этом, что принекоторых значениях kслово «лет» надо заменить на слово«год» или «года».

9. Для натуральногочисла k вывести фразу «мы выпили k бутылок пива», согласно окончаниеслова «бутылка» с числом k.

10. Typeкурс=(С, В, Ю,3); {север, восток, юг, запад}

Приказ=(вперед,вправо, назад, влево);

Var К1, К2: курс;ПР: приказ;

Корабль сначала шел покурсу К1, а затем его курс был изменен согласно прикаказу ПР1.Определить К2 — новый курс корабля.

11. Туре месяц =(январь, февраль, март, апрель, май, июнь, июль, август, сентябрь, октябрь,ноя6рь, декабрь);

день=1...31;

Var d1,d2: день;

m1,т2:месяц;

t:boolean;

Переменной tприсвоитьзначение 1 если дата d1, m1предшествует (в рамках года) дате d2, m2,и значение 0 в других случаях.

12. Туре нота=(до,ре, ми, фа, солmь, ля, си);

интервал=(секунда,терция, кварта, квинта, секста, септима);

var n1, n2: нота;

i: интервал;

Определить i-й интервал,образованный нотами п1 и п2(п1<>п2): секунда — это интервализ двух соседних (по кругу) нот (например, ре и ми, си и до), терция — интервалчерез ноту (например, фа и ля, си и ре) и т.д.

13. Туреединица=(дециметр, километр, метр, милиметр, санптиметр);

длина=real;

var х: длина;

Р: единица;

Значение переменной х,означающее некоторую длину в единицах р, заменить на величину этой жедлины в метрах.

14. Туресезон=(зима, весна, лето, осенъ);

Var m: месяц; {определение«месяц» см. в 26}

S: сезон;

Определить S-сезон, накоторый приходится месяц m.

15. Var k: 1...9;

Вывести значениепеременной k римскими цифрами.

Часть3. Использование ООП для программирования циклических алгоритмов.

1. Подсчитать k — количествоцифр в десятичной записи целого — n неотрицательного числа n.

2. Переменной tприсвоить значение 1 или 0 в зависимости от того, является ли натуральное числоk степенью 3.

3. Дано nвещественных чисел. Вычислить разность между максимальным и минимальным из них.

4. Дана непустаяпоследовательность различных натуральных чисел, за которойследует 0.Определить порядковый номер наименьшего из них.

5. Даны целое n>0и последовательность из n вещественных чисел, среди которых есть хотя бы одноотрицательное число. Найти величину наибольшего среди отрицательных чисел этой последовательности.

6. Дано n вещественныхчисел. Определить, образуют ли они возврастающую последовательность.

7. Данапоследовательность из n целых чисел. Определить, со скольких отрицательныхчисел она начинается.

8. Определить k — количествотрехзначных натуральных чисел, сумма цифр которых равна n(1<=n<=27). Операцииделения (/, div и mod) не использовать.

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

10. Переменной tприсвоить значение 1 или 0 в зависимости от того, можно или нет натуральноечисло n представить в виде трех полных квадратов.

11. Дано натуральноечисло n. Выяснить, входит ли цифра 3 в запись числа n{2}.

12. Дано натуральноечисло n. Найти сумму его цифр

13. Дано целоеn>0, за которым следует n вещественных чисел. Определить, сколько среди нихотрицательных.

14. Дано натуральноечисло n. Переставить местами первую и последнюю цифры числа n.

15. Дано натуральноечисло n. Заменить порядок следования цифр числа n на оборот.

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

 

ВИЗУАЛЬНОЕ ПРОГРАММИРОВАНИЕ

 

Цель работы: приобретение навыков работы свизуальными компонентами.

Общиеположения

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

Главное меню располагается в верхней части формыпод ее заголовком и содержит наиболее общие команды приложения. В Delphi главное меню представленокомпонентом MainMenu.

Для создания и измененияменю в процессе разработки приложения в среде Delphi предназначен Конструктор меню (Menu Designer). Запуск Конструктора меню можновыполнить по команде Menu Designer…контекстного меню компонента MainMenu, а также с помощью двойного щелчка кнопкой мыши на этот компонент. Приконструировании меню имеет тот же вид, что и при выполнении приложения.

Наименование пункта менюзадается путем присвоения нужного значения его свойству Caption. Кроме того, в Delphi у компонента MainMenu доступны такие свойства как Checked и Bitmap, определяющие соответственно:

· Checked = true/false– наличие/отсутствие отметки Ö у пункта меню (для отметки выбора);

· Bitmap = рисунок, определяющий наличиекартинки перед названием пункта в меню.

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

Примернаписания программы

Задание. Используя компонент MainMenu создать приложение, которое привыборе определенного пункта меню обеспечивает:

- вывод на экрансообщения «Привет!»;

- вводпользователем некоторого числа (аргумента);

- вычисление cos, sin, tg, ctg, введенного аргумента;

- вывод формул длявычисления arccos(x), arcsin(x), actg(x),arcctg(x);

- выход изпрограммы.

Реализация.

Создали новую форму ирасположили на ней компоненты: MainMenu, Bevel, Label, Edit, Image, согласно рисунку 1.

/>

Рис 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.

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

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

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

3.  

/>

Рис 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. Закрываем ДизайнерМеню и теперь за каждым пунктом меню закрепляем процедуру программы. Для этогопросто щелкаем мышью на нужном пункте главного меню (оно уже появилось вформе).

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

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

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

procedureTForm1.N4Click(Sender: TObject);

begin

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

end;

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

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

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

procedureTForm1.N7Click(Sender: TObject);

begin

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

 edit1.Visible:=true;

 form1.activecontrol:=Edit1;

 end;

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

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

procedureTForm1.N2Click(Sender: TObject);

begin

 close;

end;

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

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

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

procedureTForm1.cosx1Click(Sender: TObject);

var

 cod:Integer;

 ws,resstr:String;

begin

 ws:=Edit1.text;

 val(ws,x,cod);

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

 with SenderAs 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

procedureTForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

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

 key:=#0;

end;

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

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

procedureTForm1.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)'

procedureTForm1.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)'

procedureTForm1.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)'

procedureTForm1.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

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

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

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

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;

4. Добавьте на формудва компонента 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 liketo 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. При нажатии на эту кнопку мыпереходим в режим редактирования исходного текста. В окошке появится тест:

voidCHelloDlg::OnExitButton()

{

// TODO: Addyour control notification handler code here

}

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

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

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

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

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

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

voidCHelloDlg::OnExitButton()

{

// TODO: Addyour 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, для редактирование исходного текста.

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

voidCHelloDlg::OnSayhelloButton()

{

// TODO: Addyour 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 вариантов задач. По указанию преподавателя выберите своеиндивидуальное задание. Уточните условие задания, количество, наименование, типыисходных данных. В соответствии с этим установите количество окон, тексты заголовковна форме, размеры шрифтов, а также типы переменных и функции преобразования привводе и выводе результатов.

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

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

еще рефераты
Еще работы по информатике, программированию