Отчет о летней практике по теме «Разработка ПО в среде MS Visual C++»

Автор: Пользователь скрыл имя, 28 Октября 2013 в 21:56, отчет по практике

Краткое описание

В последние годы основные усилия Корпорации были сосредоточены на двух направлениях: модернизация самолетов четвертого поколения и разработка истребителей поколения «4+» и «4++».
В начале 2000 г. разработаны новые варианты модернизации истребителя МиГ-29: МиГ-29СД, МиГ-29СМ и МиГ-29СМТ. Наиболее совершенный из них – МиГ-29 СМТ – это многофункциональный истребитель с открытой архитектурой авионики и современной бортовой РЛС.

Оглавление

Оглавление
РСК «МиГ» сегодня 3
Специальная часть. 4
Постановка задачи. 4
Введение 4
Microsoft Visual C++ и MFC 5
Классы графического интерфейса 6
Графические объекты 6
Текст программы 7
Результат 10
Список литературы. 11

Файлы: 1 файл

Otchet_po_praktike.docx

— 227.53 Кб (Скачать)

 

Московский Авиационный  Институт

Кафедра прикладной информитики

 

 

 

 

 

 

 

Отчет

о летней практике по теме

«Разработка ПО в среде MS Visual C++»

 

 

 

 

 

Преподаватель: Ампилов В.И.

Выполнил: Дуравин О.В.

Группа: 06-421.

 

 

 

 

 

 

 

Москва

2013

Оглавление

РСК «МиГ» сегодня 3

Специальная часть. 4

Постановка задачи. 4

Введение 4

Microsoft Visual C++ и MFC 5

Классы графического интерфейса 6

Графические объекты 6

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

Результат 10

Список литературы. 11

 

 

РСК «МиГ» сегодня

 

В последние годы основные усилия Корпорации были сосредоточены на двух направлениях: модернизация самолетов  четвертого поколения и разработка истребителей поколения «4+» и  «4++».

В начале 2000 г. разработаны новые  варианты модернизации истребителя  МиГ-29: МиГ-29СД, МиГ-29СМ и МиГ-29СМТ. Наиболее совершенный из них – МиГ-29 СМТ  – это многофункциональный истребитель  с открытой архитектурой авионики и современной бортовой РЛС. Одновременно был проведен большой комплекс работ по улучшению эксплуатационных качеств самолетов МиГ-29. Удалось существенно увеличить летный ресурс и срок службы самолетов, а также разработать и внедрить у ряда заказчиков эксплуатацию по техническому состоянию.

В 2000-е годы в Корпорации разработан и начал выпускаться комплекс технических средств обучения для  основных модификаций самолетов  МиГ-29. Комплекс включает процедурные  и комплексные тренажеры (в том  числе с системой подвижности), а  также интерактивную автоматизированную систему обучения.

В январе 2007 г. совершил первый полет  опытный экземпляр корабельного истребителя МиГ-29КУБ (9-47). 18 марта 2008 г. в небо поднялся первый серийный истребитель МиГ-29КУБ. По своим возможностям новые самолеты МиГ-29К/КУБ существенно  превзошли опытный МиГ-29К (9-31), проходивший  испытания в конце 1980-х годов. В сентябре 2009 г. самолеты МиГ-29К/КУБ  выполнили полеты с тяжелого авианесущего крейсера «Адмирал флота Советского Союза Н.Г. Кузнецов».

На базе МиГ-29К/КУБ создаются  и испытываются истребители сухопутного  базирования, в том числе МиГ-35/МиГ-35Д. В марте 2008 г., в соответствии с  Указом президента России, ФГУП «РСК «МиГ»  было преобразовано в ОАО «РСК «МиГ» с сохранением 100% акций  в собственности государства.

В октябре 2009 г. 100% акций ОАО «РСК «МиГ» переданы ОАО «Объединенная  авиастроительная корпорация» («ОАК»).

С момента основания в ОКБ  им. А.И. Микояна было разработано  более 400 типов и модификаций самолетов  и летательных аппаратов. Общий  объем выпуска самолетов «МиГ»  серийными авиационными заводами превысил 55 тыс. экз. На самолетах «МиГ» установлено  свыше 100 мировых рекорда скорости, высоты и скороподъемности. За заслуги  в создании, производстве и испытаниях новой авиационной техники ОКБ  было награждено тремя орденами: орденом  Ленина (12 июля 1957 г.), орденом Октябрьской  Революции (3 апреля 1975 г.) и орденом  Трудового Красного Знамени (2 февраля 1982 г.).

Звания Героя Социалистического  Труда дважды были удостоены А.И. Микоян и Р.А. Беляков. Звания Героя  Социалистического Труда – конструкторы М.И. Гуревич, А.Г. Брунов, Н.З. Матюк, Г.Е. Лозино-Лозинский, К.К. Васильченко, М.Р. Вальденберг.

Звания Героя Советского Союза  присвоены летчикам-испытателям  Т.О. Аубакирову, И.Т. Иващенко, К.К. Коккинаки, В.Е. Меницкому, Г.К. Мосолову, В.А. Нефедову, Б.А. Орлову, П.М. Остапенко, Г.А. Седову, А.Г. Фастовцу и А.В. Федотову. Звания Героев Российской Федерации удостоены М.Р. Алыков, О.В. Антонович, П.Н. Власов, А.Ю. Гарнаев, В.М. Горбунов, А.Н. Квочур, Л.С. Попов и Р.П. Таскаев.

Ленинская премия присуждена 19 сотрудникам  ОКБ, Государственная премия – 61 сотруднику ОКБ. Многие участники создания авиационной  техники награждены орденами и медалями.

Специальная часть.

Постановка задачи.

  1. Ознакомиться с деятельностью ОКБ «МиГ».
  2. Ознакомиться с историей становления предприятия.
  3. Ознакомиться с деятельностью отдела, в котором проходит практика.
  4. Получив задание, ознакомиться c возможностями среды программирования MS Visio.
  5. Написать программу вывода функции на динамически изменяющиеся размеры окна.

Пункты 1 и 2 изложены выше. 
3). Отдел занимается разработкой вывода на ЖК мониторы бортовые показатели самолета, введение в самолет АС управления и подсказок пилоту, также считывание и вывод на экран значения различных датчиков расположенных на борту самолета и на земле.

4). MS Visual C++

Введение

C++ - это попытка решения разработчиками языка С задач объектно-ориентированного программирования (Object Oriented Programming, OOP). Построенный на твердом фундаменте С, С++ помимо ООР поддерживает множество других полезных инструментов, не жертвуя при этом ни мощью, ни элегантностью, ни гибкостью С. С++ уже стал универсальным языком для программистов всего мира.

С++ был разработан сотрудником  научно-исследовательского центра AT&T Bell Laboratories (Нью-Джерси, США) Бьярном Страуструпом в 1979 году. Первоначальное название «С с классами» было изменено на С++ в 1983 году. Начиная с 1980 года С++ претерпел две существенные модернизации: в 1985 и 1990 годах. Последняя третья модель связана с процессом стандартизации С++. Несколько лет назад началась работа по созданию единого международного стандарта по С++. Для этой цели был сформирован объединенный комитет по стандартизации ANSI (American National Standards Institute, Американский национальный институт стандартов) и ISO (International Standards Organization, Международная организация по стандартам) для языка С++. Первый рабочий проект указанного стандарта был предложен 25 января1994 года. Комитет ANSI/ISO по С++ фактически сохранил все основные черты языка, заложенные туда еще Страуструпом и добавил несколько новых инструментов.

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

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

Microsoft Visual C++ и MFC

MFC расшифровывается как Microsoft Foundations Classes. Это библиотека, которая используется для программирования под Windows на Visual C++. Сам язык C/C++ хотя и позволяет программировать под Windows, но с большими трудностями. Так, для создания простейшего приложения (окно, которое можно двигать по экрану, минимизировать и максимизировать) надо написать несколько десятков строчек кода. С помощью MFC вы это сделаете существено быстрее. MFC инкапсулирует в себя многие рутинные операции, с которыми сталкивается программист при создании программ по Windows.

Наряду с MFC существуют и другие библиотеки для Windows-програмирования. Например VCL (Visual Component Library) от Borland. Она используется в продуктах Borland'а - C++ Builder и Delphi (несомнемный плюс всего этого - изучив VCL, вы сможете работать и в Delphi, и в C++ Builder).

Но сейчас стандарт это всё-таки MFC. И даже в C++ Builder вы можете использовать MFC.

 

Процесс разработки Windows-программы  в Visual C++ начинается с создания нового проекта и подготовки набора исходных файлов. Раньше их приходилось делать вручную, теперь всю работу берет на себя "мастер" AppWizard.

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

Классы графического интерфейса

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

 Для реализации такого подхода в Windows предусмотрен специальный объект, называемый контекстом устройства. Именно он хранит необходимую информацию как об устройстве вывода, так и о параметрах соответственно рисования. Физически весь вывод происходит, естественно, на конкретное устройство, представленное в системе контекстом, описываемым, в свою очередь, дескриптором. Последний используют (в качестве параметра) все функции графического вывода Win32 API, т.е. при этом задействуется объект «контекст устройства», до чего MFC-приложению нет никакого дела – оно работает с объектами классов библиотеки MFC, что существенно удобнее и надежнее.

CDC – базовый класс для всех классов, инкапсулирующих контексты устройств Windows. Объекты этого класса используются для работы со всем экраном дисплея или с таким устройством, как принтер.

CClientDC – объекты этого класса обеспечивают доступ к клиентской части окна. Используется для графического вывода в любой функции. При создании объекта класса CClientDC в конструкторе вызывается функция Win32 API GetDC, а при разрушении, в деструкторе – ReleaseDC, также из Win32 API, обеспечивая необходимые операции для подготовки и завершения процесса графического вывода именно и только в клиентскую часть окна. За создание объекта класса CClientDC отвечает разработчик приложения.

Графические объекты

Настройка параметров графического вывода проводится двумя путями. Одни параметры  настраиваются при помощи вызова функций Win32 API или функций-членов класса CDC и производных от него, другие – путем замены так называемых графических объектов. Библиотека MFC обеспечивает разработчиков всеми необходимыми классами, которые инкапсулируют соответствующие графические объекты Windows. Кроме того, библиотека имеет в своем составе дополнительные классы, значительно облегчающие решение ряда задач (к примеру классы CPoint и CRect).

CPen – инкапсулирует объект Windows «карандаш», который может быть выбран (назначен) в контекст устройства и использоваться для определения типа и цвета линий и границ фигур.

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

Создать объекты CPen и CBrush можно двумя способами:

1. Конструктор используется как  для создания собственно объекта,  так и для его инициализации.

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

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

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

 

 

#include "stdafx.h"

#define _USE_MATH_DEFINES

#include <math.h>

// SHARED_HANDLERS can be defined in an ATL project implementing preview, thumbnail

// and search filter handlers and allows sharing of document code with that project.

#ifndef SHARED_HANDLERS

#include "222.h"

#endif

 

#include "222Doc.h"

#include "222View.h"

 

#ifdef _DEBUG

#define new DEBUG_NEW

#endif

 

 

// CMy222View

 

IMPLEMENT_DYNCREATE(CMy222View, CView)

 

BEGIN_MESSAGE_MAP(CMy222View, CView)

// Standard printing commands

ON_COMMAND(ID_FILE_PRINT, &CView::OnFilePrint)

ON_COMMAND(ID_FILE_PRINT_DIRECT, &CView::OnFilePrint)

ON_COMMAND(ID_FILE_PRINT_PREVIEW, &CMy222View::OnFilePrintPreview)

ON_WM_CONTEXTMENU()

ON_WM_RBUTTONUP()

END_MESSAGE_MAP()

 

// CMy222View construction/destruction

 

CMy222View::CMy222View()

{

// TODO: add construction code here

 

}

 

CMy222View::~CMy222View()

{

}

 

BOOL CMy222View::PreCreateWindow(CREATESTRUCT& cs)

{

// TODO: Modify the Window class or styles here by modifying

//  the CREATESTRUCT cs

 

return CView::PreCreateWindow(cs);

}

 

 

// CMy222View drawing

/*void CMy222View::OnPrepareDC(CDC*pDC, CPrintInfo*pInfo)

{

pDC-> SetMapMode(MM_LOMETRIC);

CView::OnPrepareDC(pDC,pInfo);

}*/

 

void CMy222View::OnDraw(CDC* pDC)

{

Информация о работе Отчет о летней практике по теме «Разработка ПО в среде MS Visual C++»