РОСЖЕЛДОР
Государственноеобразовательное учреждение
высшегопрофессионального образования
«Ростовскийгосударственный университет путей сообщения»
Курсоваяработа
подисциплине:
«Технологияпрограммирования»
по теме: «Объектно-ориентированная разработка программ»
Работу выполнил: БеланА.И.
Работу проверила: доц.Ведерникова О.Г.
Группа: ИС-V-607
Ростов-на-Дону
2011г.
Содержание:
1. Теоретическийвопрос:
ОБЩИЕ ПРИНЦИПЫ РАЗРАБОТКИ ПРОГРАММНЫХСРЕДСТВ.
1.1 Специфика разработки программныхсредств.
1.2 Жизненный цикл программного средства.
1.3 Понятие качества программногосредства.
1.4 Обеспечение надежности — основноймотив разработки программного средства.
1.5 Методы борьбы со сложностью.
1.6 Обеспечение точности перевода.
1.7 Преодоление барьера между пользователеми разработчиком.
1.8 Обеспечение контроля правильностипринимаемых решений.
2. Практическаячасть:
Разработать форму и интерфейсприложений, реализовать алгоритмы решения задач на языке Delphi
2.1 Программа «Треугольники»определяет, может ли быть построен прямоугольный треугольник по заданным длинамсторон а,b, с ивыводит соответствующее сообщение
2.2 В заданных массивах А и Впоменять местами максимальные элементы. Вывести на экран преобразованныемассивы.
2.3 Разместить на форме объект “Shape”( эллипс) и кнопку “Button” с названием «Цвет формы». Призапуске (выполнении) программы при нажатии на кнопку выводится стандартноедиалоговое окно выбора цвета и цвет формы изменяется соответственно.
ПРИЛОЖЕНИЕ А
ПРИЛОЖЕНИЕ В
ВЫВОДЫ
Список использованной литературы
1. Теоретическийвопрос: ОБЩИЕПРИНЦИПЫ РАЗРАБОТКИ ПРОГРАММНЫХ СРЕДСТВ.
1.1 Спецификаразработки программных средств
Разработка программныхсредств имеет ряд специфических особенностей
· Прежде всего, следует отметитьнекоторое противостояние: неформальный характер требований к ПС(постановки задачи) и понятия ошибки в нем, но формализованный основнойобъект разработки программы ПС. Тем самым разработка ПС содержитопределенные этапы формализации, а переход от неформального к формальному существеннонеформален.
· Разработка ПС носит творческий характер(на каждом шаге приходится делать какой-либо выбор, принимать какое-либорешение), а не сводится к выполнению какой-либо последовательностирегламентированных действий. Тем самым эта разработка ближе к процессупроектирования каких-либо сложных устройств, но никак не к их массовомупроизводству. Этот творческий характер разработки ПС сохраняется до самого ееконца.
· Следует отметить также особенностьпродукта разработки. Он представляет собой некоторую совокупность текстов (т.е.статических объектов), смысл же (семантика) этих текстов выражаетсяпроцессами обработки данных и действиями пользователей, запускающих этипроцессы (т.е. является динамическим). Это предопределяет выборразработчиком ряда специфичных приемов, методов и средств.
· Продукт разработки имеет и другуюспецифическую особенность: ПС при своем использовании (эксплуатации) нерасходуется и не расходует используемых ресурсов.
1.2 Жизненный циклпрограммного средства
Под жизненным цикломПС (softwarelifecycle) понимают весь период его разработкии эксплуатации (использования), начиная от момента возникновения замысла ПС икончая прекращением всех видов его использования. Жизненный цикл охватываетдовольно сложный процесс создания и использования ПС (softwareprocess). Этот процесс может бытьорганизован по-разному для разных классов ПС и в зависимости от особенностейколлектива разработчиков.
В настоящее время можновыделить 5 основных подходов к организации процесса создания и использованияПС.
· Водопадныйподход. При таком подходе разработка ПС состоит из цепочки этапов. На каждомэтапе создаются документы, используемые на последующем этапе. В исходномдокументе фиксируются требования к ПС. В конце этой цепочки создаютсяпрограммы, включаемые в ПС.
· Исследовательскоепрограммирование. Этот подход предполагает быструю (насколько это возможно)реализацию рабочих версий программ ПС, выполняющих лишь в первом приближениитребуемые функции. После экспериментального применения реализованных программпроизводится их модификация с целью сделать их более полезными дляпользователей. Этот процесс повторяется до тех пор, пока ПС не будет достаточноприемлемо для пользователей. Такой подход применялся на ранних этапах развитияпрограммирования, когда технологии программирования не придавали большогозначения (использовалась интуитивная технология). В настоящее время этот подходприменяется для разработки таких ПС, для которых пользователи не могут точносформулировать требования (например, для разработки систем искусственногоинтеллекта).
· Прототипирование.Этот подход моделирует начальную фазу исследовательского программированиявплоть до создания рабочих версий программ, предназначенных для проведенияэкспериментов с целью установить требования к ПС. В дальнейшем должнапоследовать разработка ПС по установленным требованиям в рамках какого-либодругого подхода (например, водопадного).
· Формальныепреобразования. Этот подход включает разработку формальных спецификаций ПС и превращениеих в программы путем корректных преобразований. На этом подходе базируетсякомпьютерная технология (CASE-технология)разработки ПС.
· Сборочноепрограммирование. Этот подход предполагает, что ПС конструируется, главнымобразом, из компонент, которые уже существуют. Должно быть некоторое хранилище(библиотека) таких компонент, каждая из которых может многократноиспользоваться в разных ПС. Такие компоненты называются повторноиспользуемыми (reusable). Процесс разработки ПС при данном подходе состоит скорее из сборкипрограмм из компонент, чем из их программирования .
В моей курсовой работемы, в основном, будем рассматривать водопадный подход с некоторымимодификациями. Во-первых, потому, что в этом подходе приходиться иметь дело сбольшинством процессов программной инженерии, а, во-вторых, потому, что врамках этого подхода создается большинство больших программных систем. Именноэтот подход рассматривается в качестве индустриального подхода разработкипрограммного обеспечения. Исследовательское программирование исходит из взглядана программирование как на искусство. Оно применяется тогда, когда водопадныйподход не применим из-за того, что не удается точно сформулировать требования кПС. В моей курсовой работе мы этот подход рассматривать не будем.Прототипирование рассматривается как вспомогательный подход, используемый врамках других подходов, в основном, для прояснения требований к ПС.
Врамках водопадного подхода различают следующие стадии жизненного цикла ПС (см.рис.1): разработку ПС, производство программных изделий (ПИ) и эксплуатацию ПС.
/>
Рис. 1. Стадии и фазыжизненного цикла ПС.
Стадия разработки(development) ПС состоит из этапа его внешнегоописания, этапа конструирования ПС, этапа кодирования (программирование в узкомсмысле) ПС и этапа аттестации ПС. Всем этим этапам сопутствуют процессыдокументирования и управления (management) ПС. Этапы конструирования и кодирования часто перекрываются,иногда довольно сильно. Это означает, что кодирование некоторых частейпрограммного средства может быть начато до завершения этапа конструирования.
Этап внешнего описанияПС включает процессы, приводящие к созданию некоторого документа, которыймы будем называть внешним описанием (requirementsdocument) ПС. Этот документ являетсяописанием поведения ПС с точки зрения внешнего по отношению к нему наблюдателяс фиксацией требований относительно его качества. Внешнее описание ПСначинается с анализа и определения требований к ПС со стороны пользователей (заказчика),а также включает процессы спецификации этих требований. Конструирование (design) ПС охватывает процессы: разработкуархитектуры ПС, разработку структур программ ПС и их детальную спецификацию.
Кодирование (coding) ПС включает процессы созданиятекстов программ на языках программирование, их отладку с тестированием ПС.
На этапе аттестации(acceptance) ПС производится оценка качества ПС.Если эта оценка оказывается приемлемой для практического использования ПС, торазработка ПС считается законченной. Это обычно оформляется в виде некоторогодокумента, фиксирующего решение комиссии, проводящей аттестацию ПС.
Программное изделие(ПИ) экземплярили копия разработанного ПС. Изготовление ПИ это процесс генерации и/иливоспроизведения (снятия копии) программ и программных документов ПС с целью ихпоставки пользователю для применения по назначению. Производство ПИ это совокупность работ по обеспечению изготовления требуемого количества ПИ вустановленные сроки. Стадия производства ПИ в жизненном цикле ПС является, посуществу, вырожденной (не существенной), так как представляет рутинную работу,которая может быть выполнена автоматически и без ошибок. Этим она принципиальноотличается от стадии производства различной техники. В связи с этим влитературе эту стадию, как правило, не включают в жизненный цикл ПС.
Стадия эксплуатацииПС охватывает процессы хранения, внедрения и сопровождения ПС, а такжетранспортировки и применения ПИ по своему назначению. Она состоит из двухпараллельно проходящих фаз: фазы применения ПС и фазы сопровождения ПС.
Применение (operation) ПС это использование ПСдля решения практических задач на компьютере путем выполнения ее программ.
Сопровождение (maintenance) ПС это процесс сбораинформации о качестве ПС в эксплуатации, устранения обнаруженных в нем ошибок,его доработки и модификации, а также извещения пользователей о внесенных в негоизменениях.
1.3 Понятие качествапрограммного средства
Каждое ПС должновыполнять определенные функции, т.е. делать то, что задумано. Хорошее ПС должнообладать еще целым рядом свойств, позволяющим успешно его использовать втечении длительного периода, т.е. обладать определенным качеством. Качество(quality)ПС это совокупностьего черт и характеристик, которые влияют на его способность удовлетворятьзаданные потребности пользователей. Это не означает, что разные ПС должныобладать одной и той же совокупностью таких свойств в их наивысшей степени.Этому препятствует тот факт, что повышение качества ПС по одному из такихсвойств часто может быть достигнуто лишь ценой изменения стоимости, сроковзавершения разработки и снижения качества этого ПС по другим его свойствам. КачествоПС является удовлетворительным, когда оно обладает указанными свойствами втакой степени, чтобы гарантировать успешное его использование.
Совокупность свойств ПС,которая образует удовлетворительное для пользователя качество ПС, зависит отусловий и характера эксплуатации этого ПС, т.е. от позиции, с которой должнорассматриваться качество этого ПС. Поэтому при описании качества ПС, преждевсего, должны быть фиксированы критерии отбора требуемых свойств ПС. Внастоящее время критериями качества ПС (criteriaofsoftwarequality) принято считать:
· функциональность,
· надежность,
· легкость применения,
· эффективность,
· сопровождаемость,
· мобильность.
Функциональность это способность ПСвыполнять набор функций, удовлетворяющих заданным или подразумеваемымпотребностям пользователей. Набор указанных функций определяется во внешнемописании ПС.
Надежность подробно обсуждалась в первойлекции.
Легкость применения это характеристики ПС,которые позволяют минимизировать усилия пользователя по подготовке исходныхданных, применению ПС и оценке полученных результатов, а также вызыватьположительные эмоции определенного или подразумеваемого пользователя.
Эффективность это отношение уровня услуг,предоставляемых ПС пользователю при заданных условиях, к объему используемыхресурсов.
Сопровождаемость это характеристики ПС,которые позволяют минимизировать усилия по внесению изменений для устранения внем ошибок и по его модификации в соответствии с изменяющимися потребностямипользователей.
Мобильность это способность ПС бытьперенесенным из одной среды (окружения) в другую, в частности, с одногокомпьютера на другой.
Функциональность инадежность являются обязательными критериями качества ПС, причем обеспечениенадежности будет красной нитью проходить по всем этапам и процессам разработкиПС. Остальные критерии используются в зависимости от потребностей пользователейв соответствии с требованиями к ПС. Обеспечение этих критериев будетобсуждаться в подходящих разделах курса.
1.4 Обеспечениенадежности основной мотив разработки программных средств
Рассмотрим теперь общиепринципы обеспечения надежности ПС, что, как мы уже подчеркивали, являетсяосновным мотивом разработки ПС, задающим специфическую окраску всемтехнологическим процессам разработки ПС. В технике известны четыре подходаобеспечению надежности:
· предупреждение ошибок;
· самообнаружение ошибок;
· самоисправление ошибок;
· обеспечение устойчивости к ошибкам.
Целью подходапредупреждения ошибок не допустить ошибок в готовых продуктах, в нашемслучае в ПС. Проведенное рассмотрение природы ошибок при разработке ПСпозволяет для достижения этой цели сконцентрировать внимание на следующихвопросах:
· борьба со сложностью,
· обеспечение точности перевода,
· преодоление барьера междупользователем и разработчиком,
· обеспечение контроля принимаемыхрешений.
Этот подход связан сорганизацией процессов разработки ПС, т.е. с технологией программирования. Ихотя, как мы уже отмечали, гарантировать отсутствие ошибок в ПС невозможно, нов рамках этого подхода можно достигнуть приемлемого уровня надежности ПС.
Остальные три подходасвязаны с организацией самих продуктов технологии, в нашем случае программ. Они учитывают возможность ошибки в программах. Самообнаружение ошибкив программе означает, что программа содержит средства обнаружения отказа впроцессе ее выполнения. Самоисправление ошибки в программе означает не толькообнаружение отказа в процессе ее выполнения, но и исправление последствий этогоотказа, для чего в программе должны иметься соответствующие средства. Обеспечениеустойчивости программы к ошибкам означает, что в программе содержатся средства,позволяющие локализовать область влияния отказа программы, либо уменьшить егонеприятные последствия, а иногда предотвратить катастрофические последствияотказа. Однако, эти подходы используются весьма редко (может быть, относительночаще используется обеспечение устойчивости к ошибкам). Связано это, во-первых, стем, что многие простые методы, используемые в технике в рамках этих подходов,неприменимы в программировании, например, дублирование отдельных блоков иустройств (выполнение двух копий одной и той же программы всегда будетприводить к одинаковому эффекту правильному или неправильному). А,во-вторых, добавление в программу дополнительных фрагментов приводит к ее усложнению(иногда значительному), что в какой-то мере мешает методампредупреждения ошибок.
1.5 Методы борьбы сосложностью
Мы уже обсуждали в лекции2 сущность вопроса борьбы со сложностью при разработке ПС. Известны два общихметода борьбы со сложностью систем:
· обеспечения независимости компонентсистемы;
· использование в системахиерархических структур.
Обеспечение независимостикомпонент означает разбиение системы на такие части, между которыми должныостаться по возможности меньше связей. Одним из воплощений этого методаявляется модульное программирование. Использование в системах иерархическихструктур позволяет локализовать связи между компонентами, допуская их лишьмежду компонентами, принадлежащими смежным уровням иерархии. Этот метод, по существу,означает разбиение большой системы на подсистемы, образующих малую систему.Здесь существенно используется способность человека к абстрагированию.
1.6 Обеспечениеточности перевода
Обеспечение точностиперевода направлено на достижение однозначности интерпретации документовразличными разработчиками, а также пользователями ПС. Это требуетпридерживаться при переводе определенной дисциплины. Майерс предлагаетиспользовать общую дисциплину решения задач, рассматривая перевод как решениезадачи. Лучшим руководством по решению задач он считает книгу Пойа «Как решатьзадачу». В соответствии с этим весь процесс перевода можно разбить наследующие этапы:
· Поймите задачу;
· Составьте план (включая цели и методырешения);
· Выполните план (проверяя правильностькаждого шага);
· Проанализируйте полученное решение.
Подробно обсуждать этотвопрос мы здесь не будем.
1.7 Преодолениебарьера между пользователем и разработчиком
Как обеспечить, чтобы ПСвыполняла то, что пользователю разумно ожидать от нее? Для этого разработчикамнеобходимо правильно понять, во-первых, чего хочет пользователь, и, во-вторых,его уровень подготовки и окружающую его обстановку. Ясное описаниесоответствующей сферы деятельности пользователя или интересующей его проблемнойобласти во многом облегчает достижение разработчиками этой цели. При разработкеПС следует привлекать пользователя для участия в процессах принятия решений, атакже тщательно освоить особенности его работы (лучше всего побывать вего «шкуре»).
1.8 Контроль принимаемыхрешений
Обязательным шагом вкаждом процессе (этапе) разработки ПС должна быть проверка правильностипринятых решений. Это позволит обнаруживать и исправлять ошибки на самой раннейстадии после ее возникновения, что, во-первых, существенно снижает стоимость ееисправления и, во-вторых, повышает вероятность правильного ее устранения.
С учетом спецификиразработки ПС необходимо применять везде, где это возможно,
· смежный контроль,
· сочетание как статических, так идинамических методов контроля.
Смежный контрольозначает, проверку полученного документа лицами, не участвующими в егоразработке, с двух сторон: во-первых, со стороны автора исходного дляконтролируемого процесса документа, и, во-вторых, лицами, которые будутиспользовать полученный документ в качестве исходного в последующихтехнологических процессах. Такой контроль позволяет обеспечивать однозначностьинтерпретации полученного документа.
Сочетание статических идинамических методов контроля означает, что нужно не только контролироватьдокумент как таковой, но и проверять, какой процесс обработки данных онописывает. Это отражает одну из специфических особенность ПС (статическаяформа, динамическое содержание).
2. Практическая часть:Разработать форму и интерфейс приложений, реализоватьалгоритмы решения задач на языке Delphi
2.1Программа «Треугольники» определяет, может ли быть построен прямоугольныйтреугольник по заданным длинам сторон а,b, с и выводит соответствующеесообщение
2.2. Взаданных массивах А и В поменять местами максимальные элементы. Вывести наэкран преобразованные массивы.
2.3. Разместить на форме объект “Shape”( эллипс) и кнопку “Button” с названием «Цвет формы». Призапуске (выполнении) программы при нажатии на кнопку выводится стандартноедиалоговое окно выбора цвета и цвет формы изменяется соответственно.
Для решения этой задачи,мы разработаем форму и интерфейс приложений на языке Delphi. Разработаем форму, которая будет основным меню длярешения поставленных задач. Вызова форм colorshape, parray и тugol,которые будут реализовывать задачи. Программа построенна на модальных окнах.
Анализ техническогозадания и постановка задачи проектирования.
Так, согласно заданию,программа должна быть реализована в среде Delphi и должна выполнять следующие функции:
— вывод на экран информации о заданиии назначении программы;
— ввод пользователем значений, определяющих параметры;
- проверкаполученного от пользователя значения и вывод результатов работы программы;
Составим следующийалгоритм:
1. По запуску программы вывести диалоговоеокно с выбором программ которые нужно выполнить.
2. Программа треугольник при запускезапрашивает у пользователя значение сторон и выводит сообщение о возможностипостроения прямоугольного треугольника.
3. В заданных массивах А и В поменятьместами максимальные элементы. Вывести на экран преобразованные массивы.
4. Программа цвет формы выводитпользователю диалоговое окно, меняет цвет формы и фигуры при нажатии кнопкусоответственно.
Наиболее важными свойствами формы (всего их 38) являются:
Caption – заголовок, указывающийнаименование формы;
Color – цвет фона формы;
Height – высота окна формы в пикселях;
Left – смещение по горизонтали в пикселяхлевого верхне
Top – смещение по вертикали в пикселяхлевого верхнего
Width – ширина окна формы в пикселях.
BorderStyle — тип рамки;
Font — шрифт и его атрибуты;
Icon — пиктограмма для изображениясвернутой формы;
Visible — задает видимую или невидимуюформу;
Для создания интерфейсаможно использовать базовые компоненты к ним можно отнести:
Label — поле вывода текста;
Edit — поле ввода/редактирования текста;
Button — командная кнопка;
GroupBox – рамка группы
CheckBox — «флажок», независимая кнопкавыбора;
RadioGroup – рамка группы переключателей
RadioButton – радиокнопка, «переключатель»,
ListВox — список выбора;
Combo Box— комбинированный список выбора.
Для построения данногоприложения, применялись следующие свойства формы из всех возможных:
Caption заголовок, указывающий наименование формы;
Color цвет фона формы;
Height высота окна формы в пикселях;
Left смещение по горизонтали в пикселях левого верхне
Top смещение по вертикали в пикселях левого верхнего
Width ширина окна формы в пикселях.
BorderStyle — тип рамки;
Font — шрифт и его атрибуты;
Icon — пиктограмма для изображения свернутой формы;
Visible — задает видимую или невидимую форму;
Position — задает расположение формы при выполнении приложения
Событий, которые могутпроизойти с каким-либо элементом управления не так уж и много. Для кнопки,например, есть два основных события: 1) – одинарный щелчок мышью на ней (click), 2) – двойной щелчок мышью на ней (double click). Программист, если необходимо реакция на нажатиекнопки (а иначе зачем она нужна?), должен написать процедуру-обработчиксообщения (Event handler), вызывающую определенные ответные действия.
Визуальный Компонент TLabel представляет собой статический тексти применяется для идентификации других объектов приложения. Он располагаетсярядом с полями редактирования, флажками, переключателями и помогаетпользователю сориентироваться в их назначении. Обычно компонент TLabel события не обрабатывает.
Визуальный Компонент TEdit позволяет пользователю ввести склавиатуры строку символов, или вывести в их поле редактирования. Привводе-выводе данных изменяется значение свойства Text компонента типа TEdit. Заметим, что введенный текст будет типа string, и выводимый текст должен быть типа string. Для преобразования строки символовв число и обратно существуют специальные функции, например, некоторые из них:
1) StrToInt(Text_String)– преобразует строку Text_String в целое число (конечно, если онасостоит из символов, которые соответствуют цифрам, иначе, преобразованиебессмысленно);
2) IntToStr(Number_Integer)– преобразует целое число Number_Integer в строку эквивалентных символов;
· Листинг программысодержится в приложении А.
· Результаттестового запуска приведен в приложении В.
· Программаразработана с использованием языка Delphi.
Приложение А
Листинг программ:
unit tmain;
{$modeobjfpc}{$H+}
interface
uses
Classes,SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls;
type
{ TForm1 }
TForm1 =class(TForm)
Button1:TButton;
Button2:TButton;
Button3:TButton;
Button4:TButton;
procedureButton1Click(Sender: TObject);
procedureButton2Click(Sender: TObject);
procedureButton3Click(Sender: TObject);
procedureButton4Click(Sender: TObject);
private
{ privatedeclarations }
public
{ publicdeclarations }
end;
var
Form1:TForm1;
implementation
uses Tugol,parray, colorshape;
{ TForm1 }
procedureTForm1.Button1Click(Sender: Tobject);
begin
Form1.Hide; //закрытьобъект1
Form2.ShowModal;// открытьобъект2
end;
procedureTForm1.Button2Click(Sender: TObject);
begin
Form1.Hide;
Form3.ShowModal;// открытьобъект3
end;
procedureTForm1.Button3Click(Sender: TObject);
begin
Form1.Hide;
Form4.ShowModal;// открытьобъект4
end;
procedureTForm1.Button4Click(Sender: TObject);
begin
Form1.Close; //закрытьобъект1
end;
initialization
{$Itmain.lrs}
end.
unit Tugol;
{$modeobjfpc}{$H+}
interface
uses
Classes,SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls;
type
{ TForm2 }
TForm2 =class(TForm)
Button1:TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label1:TLabel;
Label2:TLabel;
Label3:TLabel;
Label4:TLabel;
procedureButton1Click(Sender: TObject);
procedureEdit1KeyPress(Sender: TObject; var Key: char);
procedureEdit2KeyPress(Sender: TObject; var Key: char);
procedureEdit3KeyPress(Sender: TObject; var Key: char);
procedureFormClose(Sender: TObject; var CloseAction: TCloseAction);
private
{ privatedeclarations }
public
{ publicdeclarations }
end;
var
Form2:TForm2;
implementation
uses tmain;
{ TForm2 }
procedureTForm2.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
Form1.Show;
end;
procedureTForm2.Button1Click(Sender: TObject);
var a,b,c,max,min,srd:integer;//переменные для сторон прямоугольника и вычислений
begin
// преобразование строковыхзначений в числовые
a:=StrToInt(Edit1.Text);
b:=StrToInt(Edit2.Text);
c:=StrToInt(Edit3.Text);
//Находим максимальнуюпо длине стророну
max:=a;
if b>maxthen max:=b;
if c>maxthen max:=c;
// Находим минимальную по длинесторону
min:=a;
if b
if c
// Находим среднию по длине сторону
srd:=a+b+c-min-max;
if(sqr(max)=sqr(srd)+sqr(min)) then //Проверяем теорему Пифагора a2 + b2 = c2
Showmessage('Этопрямоугольный треугольник!'
+' Стороны в порядкевозрастания их длины: '
+IntToStr(min)+' '
+IntToStr(srd)+''
+IntToStr(max))
else ShowMessage('Это неможет быть прямоугольный треугольник!');
end;
procedureTForm2.Edit1KeyPress(Sender: TObject; var Key: char);
begin
case key of
'0'..'9':; //можно вводитьтолько цифры
',':; //или дробныйчисла
#8:; // клавиша BackSpace
#13: Edit2.SetFocus;// клавиша Enter, и переход на другое окно ввода
// Остальные символы — запрещены !
else key := Chr(0); //запрещаем отображать символ
end;
end;
procedureTForm2.Edit2KeyPress(Sender: TObject; var Key: char);
begin
case key of
'0'..'9':; //можновводить только цифры
',':; //или дробныйчисла
#8:; // клавиша BackSpace
#13: Edit3.SetFocus;// клавиша Enter, и переход на другое окно ввода
// Остальные символы — запрещены !
else key := Chr(0); //запрещаем отображать символ
end;
end;
procedureTForm2.Edit3KeyPress(Sender: TObject; var Key: char);
begin
case key of
'0'..'9':; //можновводить только цифры
',':; //или дробныйчисла
#8:; // клавиша BackSpace
#13: Button1.SetFocus;// клавиша Enter, и переход на кнопку вычисления
// Остальные символы — запрещены !
else key := Chr(0); //запрещаем отображать символ
end;
end;
initialization
{$Itugol.lrs}
end.
unit parray;
{$modeobjfpc}{$H+}
interface
uses
Classes,SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
Grids,StdCtrls;
type
{ TForm3 }
TForm3 =class(TForm)
Button1:TButton;
Label1:TLabel;
Label2:TLabel;
Label3:TLabel;
Label4:TLabel;
Label5:TLabel;
Label6:TLabel;
Label7:TLabel;
Label8:TLabel;
StringGrid1:TStringGrid;
StringGrid2:TStringGrid;
procedureButton1Click(Sender: TObject);
procedureFormClose(Sender: TObject; var CloseAction: TCloseAction);
procedureFormShow(Sender: TObject);
private
{ privatedeclarations }
public
{ publicdeclarations }
end;
const
size = 6;
var
Form3:TForm3;
a:array[1..size] of integer;
b:array[1..size] of integer;
max_a,max_b,buf:integer;
i:integer;
implementation
uses tmain;
{ TForm3 }
procedureTForm3.FormShow(Sender: TObject);
begin
withStringGrid1 do
for i:=1 tosize do
begin
Cells[i-1,0]:='';
Cells[i-1,1]:='';
end;
withStringGrid2 do
for i:=1 tosize do
begin
Cells[i-1,0]:='';
Cells[i-1,1]:='';
end;
for i := 1 tosize do
begin
a[i] := 1 + Random(99); //заполняем массив случайными числами
b[i] := 1 + Random(99); //заполняем массив случайными числами
end;
Label7.Visible:=False;
Label8.Visible:=False;
end;
procedure TForm3.Button1Click(Sender:TObject);
begin
withStringGrid1 do
for i:=1 tosize do
begin
Cells[i-1,0]:=IntToStr(a[i]);
Cells[i-1,1]:=IntToStr(b[i]);
end;
max_a :=1;
max_b :=1;
for i:=2 tosize do
begin
if a[i] >a[max_a] then max_a := i;
if b[i] >b[max_b] then max_b := i;
end;
Label7.Visible:=True;
Label7.Caption:='Максимальный элементмассива А :'+IntToStr(a[max_a])
+#13+'Номер элемента в массиве А :'+IntToStr(max_a)
+#13+'Максимальныйэлемент массива В :'+IntToStr(b[max_b])
+#13+'Номер элемента вмассиве В :'+ IntToStr(max_b);
buf:= a[max_a];
a[max_a]:=b[max_b];
b[max_b]:=buf;
withStringGrid2 do
for i:=1 tosize do
begin
Cells[i-1,0]:=IntToStr(a[i]);
Cells[i-1,1]:=IntToStr(b[i]);
end;
max_a :=1;
max_b :=1;
for i:=2 tosize do
begin
if a[i] >a[max_a] then max_a := i;
if b[i] >b[max_b] then max_b := i;
end;
Label8.Visible:=True;
Label8.Caption:='Максимальный элементмассива А :'+IntToStr(a[max_a])
+#13+'Номер элемента в массиве А :'+IntToStr(max_a)
+#13+'Максимальныйэлемент массива В :'+IntToStr(b[max_b])
+#13+'Номер элемента вмассиве В :'+ IntToStr(max_b);
end;
procedureTForm3.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
Form1.Show;
end;
initialization
{$Iparray.lrs}
end.
unitcolorshape;
{$modeobjfpc}{$H+}
interface
uses
Classes,SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls,ExtCtrls;
type
{ TForm4 }
TForm4 =class(TForm)
Button1:TButton;
Button2:TButton;
ColorDialog1:TColorDialog;
Label1:TLabel;
Panel1:TPanel;
Shape1:TShape;
procedureButton1Click(Sender: TObject);
procedureButton2Click(Sender: TObject);
procedureFormClose(Sender: TObject; var CloseAction: TCloseAction);
private
{ private declarations}
public
{ publicdeclarations }
end;
var
Form4:TForm4;
implementation
uses tmain;
{ TForm4 }
procedureTForm4.Button1Click(Sender: TObject);
begin
ifColorDialog1.Execute then // вызываем окно диолого выборы цвета
Shape1.Brush.Color:=ColorDialog1.Color;// меняем цвет фигуры
end;
procedureTForm4.Button2Click(Sender: TObject);
begin
ifColorDialog1.Execute then // вызываем окно диолого выборы цвета
Form4.Color:=ColorDialog1.Color; // меняем цвет формы
end;
procedureTForm4.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
Form1.Show;
end;
initialization
{$Icolorshape.lrs}
end.
Приложение В
Результаты работыпрограмм:
1. Работа программы tmain.
/>
2. Работа программы Tugol
/>
/>
3. Работа программы parray
/>
/>
4. Работа программы colorshape.
/>
/>
ВЫВОДЫ
Данная курсовая работа была выполнена в полном соответствиипоставленному заданию и отлажена в среде Лазарус. В ходе выполнения курсовойработы была разработана программа на модальных окнах.
В ходе выполнения курсового проекта были проведены — анализтехнического задания и постановка задачи проектирования.
Были выделены функции, которыми должна обладатьразрабатываемая программа.
Был разработан алгоритм программы, предназначенной длявыполнения сформированных функций.
Согласно разработанному алгоритму была составлена и отлаженапрограмма алгоритмическом языке программирования Delphi. В ходе разработки программы проводилось еетестирование и отладка на тестовых наборах.
Результаты работы оформлены в виде пояснительной записки.
В ходе разработки программы были закреплены навыки работы:
— командами ввода-вывода как на экран, так и в текстовыефайлы,
— использования процедур,
— команды обработки массивов,
— команды для реализации циклов с заданным числом повторений;
В результате выполнения данной курсовой работы, мы убедились в широких возможностяхязыка программирования Delphi, закрепили практические навыки программирования в cреде Лазарус.
Список ИспользованнойЛитературы:
1. Е.А. Жоголев. Введение в технологию программирования (конспект лекций).- М.: «ДИАЛОГ-МГУ», 1994.
2. М. Зелковец, А. Шоу, Дж. Гэннон. Принципы разработки программногообеспечения. — М.: Мир, 1982. — С. 11.
3. К. Зиглер. Методы проектирования программных систем. — М.: Мир, 1985. — С. 15-23.
4. Дж. Фокс. Программное обеспечение и его разработка. — М.: Мир, 1985. — С. 53-67, 125-130.
5. И. Ю. Баженова Delphi 7 самоучитель программистаМосква 2003.