Технология разработки проектов с использованием интерфейса MS Visual Studio 2010

Построение системы управления ИТ-инфраструктурой предприятия. Разработка высокопроизводительного программного обеспечения средствами объектно-ориентированного программирования. Методика применения пользовательского интерфейса MS Visual C++ 2010.

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

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

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

Размещено на http://www.allbest.ru/

Технология разработки проектов с использованием интерфейса MS Visual Studio 2010

Введение

объектно ориентированное программирование интерфейс

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

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

Для решения задач управления ИТ-инфраструктурой предприятия Microsoft предлагает набор инструментов, моделей, методик и рекомендаций, которые призваны обеспечить построение управляемых ИС высокой надежности, доступности и защищенности. Системы управления информационными технологиями (ИТ) предприятий и организаций являются достаточно сложными, поскольку требуется учета интересов множества участников, вовлеченных в создание и использование ИТ-проектов (спонсоров создания информационной системы, конечных пользователей и разработчиков).

Понятие «информационные технологии» является общеупотребительным, в то же время отсутствует общепризнанное определение этого понятия. Мы будем придерживаться определения, данного в энциклопедии Wikipedia: «Информационные технологии (ИТ), или информационные и коммуникационные технологии (ИКТ), -- это технологии, применяемые для обработки информации. В частности, они используют компьютеры и программное обеспечение для преобразования, хранения, защиты, передачи и извлечения информации в любом месте и в любое время» [1]. С учетом этого определения ИТ-проекты охватывает управление всеми программнымы, компьютерными и коммуникационными ресурсами предприятия. Его основная задача состоит в создании и поддержании в работоспособном состоянии приложений и инфраструктуры, на которой они исполняются. Подобный менеджмент можно разделить на три уровня: операционный, тактический и стратегический. На стратегическом уровне обеспечивается установление соответствия между информационными функциями системы и ее контентом, что сводится к атрибуции задач на поле информационной политики, определению содержания информационных функций и ИТ-поддержке. На операционном и тактическом уровнях ИТ-менеджмента должны обеспечиваться заданные уровни работоспособности и надежности эксплуатации приложений информационной системы(ИС) на продолжении всего жизненного цикла системы.

Создание системы управления ИТ, как и любой другой системы управления, предполагает определение управляемых объектов и управляющих воздействий. Объекты информационного менеджмента являются:

? инфраструктура;

? приложения;

? организационная структура службы ИС;

? ИТ-проекты.

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

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

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

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

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

Из установленного протворечия логически вытекает проблема исследования: каковы методические возможности исследования технологию разработки пректов с использованием инерфейса MS Visual Studio 2010.

Целью данной дипломной работы является - изучение разработки проектов с использованием инерфейса MS Visual Studio 2010.

Задачи и функции, поставленные для реализации данной цели:

?провести обзор предметной области;

?создать задачи для бизнес-процесса;

?спроектировать процесс обучающей системы;

?разработать программный продукт.

Объект исследования: технология разработки проектов с использованием инерфейса MS Visual Studio 2010.

Предмет исследования: методика разработки проектов с использованием инерфейса MS Visual Studio 2010.

Гипотеза исследования: если определить структуру и содержание технологию разработки проектов с использованием инерфейса MS Visual Studio 2010, то это будеть способствовать повышению эффективности усвоение основ программированию, развитию навыков в области создания программного обеспечения.

Методы исследования: изучение и анализ учебно-методической, технической литературы по теме исследования; сравнительный анализ технологию программирования; обобщение имеющейся практику разработки проектов и собственный опыть разработки проектов с использованием компонентов пользовательского интерфейса MS Visual C++ 2010.

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

Научная новизна исследования: исследовано и изучена технология и методика разработки проектов с использованием инерфейса MS Visual Studio С++ 2010.

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

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

1 Теоретичекие обоснование разработки проектов с использованием инерфейса MS Visual Studio 2010

1.1. Теоретические аспекты разработки высокопроизводитель-ного программного обеспечения

Модель информационных процессов включает семь групп процессов по числу факторов, влияющих на успех любого ИТ-проекта:

? улучшение взаимодействия с клиентами;

? обеспечение управленческих систем корпоративной информацией;

? управление ИТ-инфраструктурой с точки зрения потребностей бизнеса;

? реализация и развертывание решений;

? обеспечение ИТ-сервисами;

? поддержка ИТ-сервисов и решений;

? управление ИТ-ресурсами и ИТ-инфраструктурой.

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

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

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

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

Обеспечение услугами бизнес-пользователей является одним из основных направлений реализации модели ITPM. ИТ-сервисы могут требовать для своей поддержки разных ресурсов и дисциплин работы, выполняться с разными приоритетами. Необходим мониторинг процесса доставки ИТ-сервисов для выявления потенциальных нарушений и предотвращения сбоев критически важных функций. Благодаря интеграции этот процесс может выполняться автоматически или вручную через администратора. Задача ИТ-службы предложить структуру доставки ИТ-сервисов и план, в котором должно быть указано место и время их предоставления, а также перечень необходимых ресурсов. Для составления такого плана ИТ-служба через единую точку входа осуществляют взаимодействие с клиентом, получают все запросы на ИТ-услуги, выполняют их анализ и интеграцию для выделения ресурсов. Предоставление ИТ-сервисов должно сопровождаться управлением изменениями в запросах пользователей:

? требуется идентифицировать факторы, важные для бизнеса и способные его улучшить;

? понять, что в первую очередь требуется для бизнес-клиентов;

? определить адекватные метрики оценки степени удовлетворенности пользователя;

? наметить и реализовать план мероприятий по улучшению обслуживания.

Для поддержки ИТ-сервисов и решений задачу ИТ-служба должна проводить ежедневный мониторинг процесса доставки услуг:

? слежение за доступностью системы;

? разрешение проблем;

? измерение производительности;

? ведение базы данных по конфигурации системы;

? выполнение резервного копирования;

? оценка необходимости своевременного масштабирования системы.

Управление ИТ-ресурсами и ИТ-инфраструктурой предполагает мониторинг всех критически важных ресурсов, включая технологии и квалификацию персонала, необходимую для сопровождения текущей конфигурации, а также управление финансами, выделенными на развитие ИТ-инфраструктуры предприятия. Управление ИТ-инфраструктурой подразумевает работы по инвентаризации:

? лицензии на программное обеспечение и информационные ресурсы;

? замеры времени, необходимого для выполнения того или иного процесса;

? соблюдение политики безопасности.

Если есть язык, определяющий существо современного программирования, то это язык С++. Он превосходно удовлетворяет требованиям разработки высокопроизводительного программного обеспечения. Его синтаксис стал стандартом для профессиональных языков программирования, а используемые в нем стратегические принципы проектирования проходят красной нитью через всю вычислительную технику. С++ послужил также основой для разработки таких языков, как Java и С#. Можно сказать, что С++ открыл путь ко всему современному программированию.

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

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

Язык С был изобретен и впервые реализован Деннисом Ритчи в 1970-х гг. Этот язык был спроектирован, реализован и развит работающими программистами-практиками, и в нем нашли отражение их подходы к разработке программ. Средства этого языка были отточены, протестированы, продуманы и переработаны людьми, которые реально использовали язык в своей работе. В результате С сразу привлек массу сторонников и быстро стал любимым языком программистов всего мира.

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

Хотя в то время были и другие структурные языки, в частности, Pascal, язык С оказался первым языком, в котором успешно сочетались мощь, элегантность и выразительность. Его лаконичный, но в то же время легко осваиваемый синтаксис вместе со стратегией, утверждающей главенство программиста (а не языка), быстро завоевал симпатии программистов. Сегодня это уже трудно представить, но С стал, можно сказать, той струей свежего воздуха, которую так долго ждали программисты. В результате С быстро превратился в наиболее широко используемый язык структурного программирования 1980-х гг.

Если С оказался успешным языком компьютерного программирования, то почему возникла необходимость в чем-то другом? Ответ заключается в тенденции к усложнению. На протяжении всей истории программирования нарастающая сложность программ служила стимулом для разработки лучших способов справляться с нею. С++ появился как выражение этого процесса. Чтобы лучше понять связь возрастающей сложности программ с развитием компьютерных языков, придется немного углубиться в историю вычислительной техники.

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

Первым широко используемым компьютерным языком был, конечно, FORTRAN. Хотя FORTRAN был весьма впечатляющим первым шагом, вряд ли его можно считать языком, способствующим написанию ясных, легко понимаемых программ. В 1960-х гг. родилось структурное программирование, новый метод, использование которого было естественно при работе на языках вроде С. С появлением структурного программирования впервые стало возможным написание относительно сложных программ без большой затраты труда и времени. Однако при достижении программным проектом определенного размера даже с использованием методов структурного программирования сложность проекта могла превысить возможности программиста. К концу 1970-х гг. многие проекты стали приближаться к этой границе.

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

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

С++ был изобретен Бьярном Страуструпом в 1979 г. Сначала Страуструп назвал новый язык "С с классами". Однако в 1983 г. язык получил название С++.

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

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

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

Хотя первоначально С++ создавался в качестве средства разработки очень больших программ, его использование отнюдь не ограничивается этой сферой. В действительности объектно-ориентированные средства С++ могут эффективно применяться для решения практически любых задач программирования. Легко найти примеры разработки на С++ таких программных проектов, как текстовые или графические редакторы, базы данных, персональные файловые системы, сетевые утилиты и коммуникационные программы. В силу того, что С++ воспринял эффективность С, его часто используют для разработки высокопроизводительного системного программного обеспечения. Он также широко используется и для программирования в системе Windows.

Эволюция С++.С момента своего появления С++ претерпел три серьезных модификации, каждая из которых расширяла и изменяла язык. Первая модификация была предложена в 1985 г., вторая - в 1990 г. Третья модификация появилась в процессе стандартизации С++. Несколько лет назад началась разработка стандарта для С++. С этой целью организациями ANSI (Американский национальный институт стандартов) и ISO (Международная организация по стандартизации) был создан объединенный комитет по стандартизации. Первый вариант предлагаемого стандарта был выпушен 25 января 1994 г. В этот вариант комитет ANSI/ISO по С++ включил средства, определенные Страуструпом, с добавлением некоторых новых. В целом первый вариант стандарта отражал состояние С++ на тот момент времени.

Вскоре после завершения работы над первым вариантом стандарта С++ произошло событие, которое заставило серьезно расширить стандарт: создание Александром Степановым стандартной библиотеки шаблонов (Standard Template Library, STL). STL представляет собой набор обобщенных процедур, с помощью которых можно обрабатывать данные. Эта библиотека сочетает в себе могущество и элегантность. Но она также весьма велика. Выпустив первый вариант стандарта С++, комитет проголосовал за включение STL в спецификацию С++. Добавление STL расширило возможности С++ далеко за пределы его первоначального определения. С другой стороны, включение STL, хотя и вполне оправданное, замедлило процесс стандартизации С++.

Уместно заметить, что стандартизация С++ заняла значительно больше времени, чем это можно было предполагать. В процессе стандартизации к языку было добавлено много новых средств, а также внесено большое количество мелких изменений. В результате вариант С++, определенный комитетом ANSI/ISO, оказался значительно объемнее и сложнее первоначального замысла Страуструпа. Окончательный набросок стандарта был выпущен комитетом 14 ноября 1997 г., и весь стандарт стал действовать в 1998 г. Эту спецификацию С++ обычно называют стандартным С++.

Настоящий курс базируется как раз на стандартном С++. Это вариант С++, поддерживаемый всеми основными компиляторами языка С++, включая Visual С++ фирмы Microsoft и С++ Builder фирмы Borland.

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

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

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

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

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

Если говорить о самых общих принципах проектирования пользовательских интерфейсов, то можно назвать три основных положения:

?интерфейс ИС должен помогать выполнить задачу, а не становиться этой задачей.

?при работе с ИС пользователь не должен ощущать себя глупым.

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

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

Второй принцип часто нарушают те авторы, которые слишком недооценивают умственные способности пользователей. Это обусловлено разными причинами.

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

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

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

И, наконец, третья причина во многом обусловлена поведением самих пользователей. Часто при возникновении малейших затруднений при работе с программой пользователь тут же обращается в службу технической поддержки, не удосужившись даже взглянуть на справочную систему продукта, посмотреть секцию "Ответы на частые вопросы" на Web-сайте. Отчасти тут вина самих авторов программ. Как говорят опытные разработчики пользовательских интерфейсов, если уже на этапе знакомства с программой пользователь вынужден обращаться к справочной системе, над интерфейсом нужно серьезно работать.

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

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

Юзабилити-исследование. “Usability” можно перевести с английского языка как «практичность, удобство и простота использования». Определение юзабилити (по стандарту ISO DIS 9241-11) звучит как «степень успешности, эффективности и удовлетворения, с которыми продукт может быть использован определенными пользователями в определенном контексте использования для достижения определенных целей».

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

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

?в зависимости от задач, выполняемых пользователем;

?в зависимости от частоты и длительности использования системы;

??в зависимости от уровня знания персонального компьютера (ПК).

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

Для повышения качества выполнения задач и скорости работы, к интерфейсу системы выдвинули следующие требования:

??интерфейс должен быть простым и интуитивно понятным, чтобы на освоение работы с системой уходило как можно меньше времени;

??необходимо чтобы программа обеспечила надежную работу;

??система должна позволять вести базу данных;

?должен быть разработан единый стиль пользовательского интерфейса.

Как С++ соотносится с языками Java и С#

Как известно, относительно недавно появилось два новых языка: Java и С#. Язык Java был разработан фирмой Sun Microsystems; С# создан фирмой Microsoft.

С++ является родительским языком по отношению к языкам Java и С#. Хотя и в Java, и в С# добавлены, удалены или модифицированы некоторые свойства, в целом синтаксис всех этих трех языков практически одинаков. Более того, объектная модель, используемая в С++, аналогична тем, что используются языками Java и С#. Наконец, общее ощущение программиста при работе на этих языках оказывается весьма схожим. Это значит, что если вы знаете С++, вы с легкостью изучите Java или С#. Справедливо также и обратное

Основное отличие Java и С# от С++ заключается в том, что они предназначены для разных вычислительных сред. С++ разрабатывался с целью обеспечения создания высокопроизводительных программ для конкретного типа процессора и определенной операционной системы. Например, если вы хотите написать программу, которая будет выполняться на процессоре Pentium фирмы Intel под управлением операционной системы Windows, то лучше С++ вы ничего не найдете.

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

Первым языком, решающим эту задачу, стал Java. Используя этот язык, можно писать программы, работающие в самых различных вычислительных средах. Java-программа может свободно перемещаться в сети Интернет. Однако, ценой, которую вы платите за переносимость, является эффективность; Java-программы выполняются медленнее программ, написанных на С++. То же справедливо и по отношению к С#. Вывод таков: если вы разрабатываете высокопроизводительное программное обеспечение, используйте С++. Если вам нужны высокомобильные, переносимые программы, используйте Java или С#.

Спросим у эксперта

Вопрос: Каким образом Java и С# создают межплатформенные, переносимые программы, и почему С++ не обладает этой возможностью?

Ответ: Java и С#, в отличие от С++, могут создавать межплатформенные, переносимые программы благодаря формату объектного модуля, формируемого компилятором. В случае С++ компилятор формирует машинный код, который затем может непосредственно выполняться центральным процессором. Таким образом, объектный модуль привязан к конкретному процессору и определенной операционной системе. Если вы захотите выполнить С++-программу в другой системе, вам придется перекомпилировать исходный текст программы в машинный код, предназначенный для выбранной вами среды. Для того, чтобы иметь возможность выполнять С++-программу в различных средах, необходимо создать для нее несколько различных вариантов выполнимых модулей.

Переносимость программ, написанных на Java или С#, объясняется тем, что эти программы компилируются не в машинный, а в псевдокод, представляющий собой некоторый промежуточный язык. В случае Java этот промежуточный язык носит название байт-кода. В случае С# он называется промежуточным языком Microsoft (Microsoft Intermediate Language, MS1L). В обоих случаях псевдокод выполняется специальной исполняющей системой. Java-программы используют виртуальную машину Java (Java Virtual Machine, JVM). Для С#-программ соответствующая система носит название Common Language Runtime (CLR). В результате Java-программа может выполняться в любой среде, для которой имеется виртуальная машина Java; С#-программа может выполняться в любой среде, если для нее имеется реализация CLR.

Поскольку исполняющие системы Java и С# располагаются в логическом плане между программой и центральным процессором, при выполнении Java- и С#-программ возникают издержки, которые отсутствуют у С++-программ. Поэтому С++-программы выполняются как правило быстрее, чем эквивалентные им программы, написанные на Java или С#.

1.2 Объектно-ориентированное программирование как новый способ организации программы

Центральным свойством С++ является поддержка объектно-ориентированного программирования (ООП). Объектно-ориентированное программирование вобрало в себя лучшие идеи структурного программирования и скомбинировало их с некоторыми новыми концепциями. В результате возник новый и лучший способ организации программы. Вообще программу можно организовать двумя способами, положив во главу угла либо коды (описывающие, что происходит), либо данные (над которыми выполняются действия). Если программа использует только методы структурного программирования, то обычно в основе ее организации лежат коды. При таком подходе можно сказать, что "коды воздействуют на данные".

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

С целью поддержки принципов объектно-ориентированного программирования все объектно-ориентированные языки, включая С++, обеспечивают три характерных принципа: инкапсуляцию, полиморфизм и наследование.

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

В С++ базовой единицей инкапсуляции является класс. Класс определяет содержание объекта. Класс описывает как данные, так и коды, предназначенные для операций над этими данными. С++ использует спецификацию класса при конструировании объектов. Объекты являются экземплярами класса. Таким образом, класс в сущности представляет собой набор чертежей, по которым строится объект.

Код и данные, составляющие класс, называются членами класса. Конкретно, члены-переменные, называемые также переменными экземпляра, -- это данные, определенные в классе. Члены-функции, или просто функции -- то коды, предназначенные для операций над данными. Функция -- это термин С++, обозначающий подпрограмму.

Вопрос к эксперту

Вопрос: Я сталкивался с обозначением подпрограммы термином метод. Метод и функция - это одно и то же?

Ответ: В общем случае, да. Термин метод получил распространение вместе с языком Java. То, что программисты на С++ называют функцией, Java-программисты обозначают словом метод. Этот термин стал так широко использоваться, что его часто применяют и по отношению к функциям С+ + .

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

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

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

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

Спросим у эксперта

Вопрос: Вы утверждаете, что объектно-ориентированное программирование (ООП) является эффективным способом работы с большими программами. Однако представляется, что использование ООП может привести к существенным издержкам при работе с небольшими программами. Справедливо ли это применительно к языку С++?

Ответ: Нет. Ключевым свойством языка С++ является то. что он позволяет писать объектно-ориентированные программы, но не требует, чтобы вы использовали ООП. В этом заключается одно из важных отличий С++ от языков Java/C#, которые строго базируются на объектной модели, требующей, чтобы любая программа была хотя бы в минимальной степени объектно-ориентированной. В противоположность этому С++ предоставляет вам право выбора. Кроме того, большая часть объектно-ориентированных средств С

++ прозрачны во время выполнения программы, поэтому издержки оказываются незначительными или даже вовсе отсутствуют.

Наконец наступило время заняться программированием. Начнем с компиляции и запуска приведенной ниже короткой С++-программы.

/*

Это простая С++-программа.

Назовите этот файл Sample.срр.

*/

#include <iostream>

using namespace std;

//С++-программа начинает свое выполнение с функции main ().

int main ()

{

cout << “C++ является мощным программным средством.”;

return 0;

}

Вы должны выполнить следующие три шага:

1. Ввести текст программы.

2. Откомпилировать программу.

3. Запустить программу.

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

Выполняясь, программа выведет на экран следующую строку:

С++- является мощным программным средством.

Первый программный пример строка за строкой

Программа Sample.cpp, несмотря на свою краткость, включает несколько ключевых средств, общих для всех С++-программ. Рассмотрим внимательно каждую часть этой программы. Программа начинается со строк

/*

Это простая С++-программа.

Назовите этот файл Sample.cpp.

*/

Эти строки представляют собой комментарий. Как и большинство языков программирования, С++ допускает включать в исходный код программы замечания программиста. Содержимое комментариев игнорируется компилятором. Цель комментариев - описать или объяснить выполняемые программой операции любому, кто будет читать ее текст. В нашем примере комментарий идентифицирует программу. В более сложных программах вы будете использовать комментарии для того, чтобы объяснить, для чего введена в программу каждая ее деталь, и каким образом она выполняет свои функции. Другими словами, с помощью комментариев вы даете описание того, что делает ваша программа, как бы "с места события".

В С++ используются комментарии двух видов. Один, который вы только что видели, называется многострочным комментарием. Этот вид комментария начинается со знаков /* (знак деления, за которым стоит звездочка). Такой комментарий заканчивается только когда в программе встретится комбинация */. Весь текст, располагаемый между этими двумя знаками комментария, полностью игнорируется компилятором. Многострочные комментарии могут содержать одну или несколько строк. Второй вид комментариев (однострочных) также демонстрируется в нашей программе; мы рассмотрим его чуть позже.

Следующая строка кода выглядит таким образом:

#include <iostream>

Язык С++ определяет несколько заголовков, которые содержат информацию либо необходимую, либо полезную для вашей программы. Рассматриваемая программа требует подключения заголовка <iostream>, который поддерживает систему ввода-вывода С++. Этот заголовок поставляется вместе с компилятором. Заголовки включаются в программу с помощью директивы #include.

Далее в программе стоит такая строка:

using namespace std;

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

Следующая строка программы представляет собой комментарий:

//C++-программа начинает свое выполнение с функции main().

В этой строке демонстрируется второй вид комментариев, допустимых в С++: однострочный комментарий. Этот вид комментария начинается со знаков // и заканчивается в конце строки. Обычно программисты используют многострочные комментарии для включения в программу длинных детальных пояснений, а однострочные - когда требуется лишь краткое замечание. Разумеется, выбор вида комментария и стиля его использования -- это вопрос вкуса программиста.

Следующая строка, как это поясняется в предшествующем комментарии, представляет собой начало программы:

int main ( )

Все С++-программы состоят из одной или нескольких функций. Как уже отмечалось ранее, функция - это подпрограмма. Любая функция С++ должна иметь имя. При этом единственная функция, которая должна включаться в каждую С++-программу, называется main(). Функция main() - это то место в программе, где начинается и где (чаще всего) заканчивается ее выполнение. Открывающая фигурная скобка, которая стоит в следующей строке, отмечает начало кода функции main( ). Слово int, предшествующее main( ), задает тип данного, возвращаемого функцией main(). Как вы узнаете позже, С++ поддерживает несколько встроенных типов данных, и int является одним из них. Это обозначение происходит от слова integer (целое).

Далее в программу включена строка:

сout << "С++ является мощным программным средством.";

Это предложение консольного вывода. Оно приводит к выводу на экран сообщения С++ является мощным программным средством. Вывод на экран осуществляется с помощью оператора вывода <<. Оператор << действует так, что выражение (каким бы оно ни было), стоящее справа от него, выводится на устройство, указанное слева, cout представляет собой предопределенный идентификатор, обозначающий консольный вывод, который, как правило, закреплен за экраном. Таким образом, рассматриваемое предложение выводит на экран сообщение. Заметьте, что это предложение заканчивается знаком точки с запятой. Так заканчиваются все предложения С ++.

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

...

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

  • Создание программы с использованием принципов объектно-ориентированного программирования на языке высокого уровня С# средствами Microsoft Visual Studio 2010. Построение алгоритма реализации. Определение математического аппарата, применение его в задаче.

    курсовая работа [500,4 K], добавлен 13.01.2015

  • Разработка программы с использованием принципов объектно-ориентированного программирования на языке высокого уровня С средствами Microsoft Visual Studio 2010. Построение алгоритма реализации. Класс программы, инструкция по использованию программы.

    курсовая работа [1,0 M], добавлен 26.12.2013

  • Разработка игры "Угадай персонажа", ее суть и содержание. Запоминание новых персонажей и вопросов, коррекция базы данных. Использование языка программирования С++ и среды разработки Microsoft Visual Studio 2010. Алгоритмы и методы, структура программы.

    курсовая работа [571,9 K], добавлен 14.07.2012

  • Объектно-ориентированная технология создания программ. Среда разработки Visual Studio.NET. Особенности среды Microsoft Visual Studio 2010. Приложения C# для расчетов по формулам, консольный ввод-вывод. Форматирование значений данных. Программы с циклами.

    методичка [2,1 M], добавлен 11.09.2014

  • Проектирование игры "Жизнь" и ее реализация в среде разработки Visual Studio 2010, версия .Net Framework 4.0. Особенности языка программирования C#, основных принципов ООП на языке C#. Проектирование пользовательского интерфейса. Описание алгоритмов.

    курсовая работа [990,0 K], добавлен 18.04.2013

  • Требования к MS Office 2007. Набор средств разработки Visual Studio Tools for Office как альтернатива VBA. Разработка СУБД на базе MS Access. Разработка надстройки "Электронные компоненты" для PowerPoint на языке C# в среде MS Visual Studio 2010.

    дипломная работа [5,2 M], добавлен 03.05.2013

  • Элементы объектно-ориентированного программирования. Среда Visual Studio: улучшения интегрированной среды разработки и увеличение ее производительности. Проектирование архитектуры программы и ее интерфейса. Использование двухуровневой системы приложения.

    курсовая работа [516,8 K], добавлен 09.08.2015

  • Выявление требований к информационной системе. Диаграмма вариантов использования. Проектирование информационного обеспечения с использованием семантических моделей. Проектирование пользовательского интерфейса. Реализация программы на Visual Studio.

    дипломная работа [590,2 K], добавлен 28.08.2012

  • Общая характеристика сетевой игры с несколькими клиентами в программной среде MS Visual Studio 2010 на языке программирования C++ с использованием функций работы с сокетами. Реализация системного сервиса, разработки интерфейса, алгоритм его тестирования.

    курсовая работа [495,3 K], добавлен 06.01.2013

  • Описание программного продукта Visual Studio. Возможности, преимущества и недостатки бесплатной среды программирования Sharp Develop для проектов на платформе MS.NET. Получение информации из справочной системы .NET SDK. Запуск визуального отладчика CLR.

    реферат [393,4 K], добавлен 05.04.2017

  • Проблемы, связанные с отсутствием информационной системы. Проектирование логической схемы данных для выбранной предметной области на основе методологии IDEF1X. Разработка информационной системы с использованием MS SQL Server 2008 и MS Visual Studio 2010.

    курсовая работа [3,0 M], добавлен 07.08.2013

  • Введение в Microsoft Visual Studio. Диалоговое окно "Восстановленные файлы" интегрированной среды разработки. Веб-обозреватель интегрированной среды разработки. Диалоговое окно "Проверка подлинности прокси-сервера". Сохранение и восстановление файлов.

    реферат [22,0 K], добавлен 29.05.2013

  • Исследование алгоритма взаимодействия пользователя с сервером, на котором находится база данных. Реализация безопасности информационной системы с помощью возможностей программного комплекса Visual Studio. Анализ особенностей интерфейса веб-приложения.

    курсовая работа [1,3 M], добавлен 17.06.2017

  • Понятие объектно-ориентированного программирования, общая характеристика языков высокого уровня. Разработка программного обеспечения для реализации компьютерной игры "пинбол" с помощью императивного программирования в среде Microsoft Visual Basic.

    курсовая работа [428,9 K], добавлен 19.09.2012

  • Техника создания графики при помощи API функций, экспортируемых библиотекой GDI32.DLL. Разработка на языке программирования С++ в среде программирования Microsoft Visual C++ программы для отображения часов реального времени в цифровом и аналоговом виде.

    курсовая работа [2,8 M], добавлен 27.01.2010

  • Общие сведения о работе программы в среде программирования Microsoft Visual Studio 2008, на языке программирования C++. Ее функциональное назначение. Инсталляция и выполнение программы. Разработанные меню и интерфейсы. Алгоритм программного обеспечения.

    курсовая работа [585,5 K], добавлен 24.03.2009

  • Характеристики и свойства языков программирования. Исследование эволюции объектно-ориентированных языков программирования. Построение эволюционной карты механизмов ООП. Разработка концептуальной модели функционирования пользовательского интерфейса.

    курсовая работа [2,6 M], добавлен 17.11.2014

  • Создание БД "Экзамен". Характеристика методов класса. Необходимость использования стандартных подключаемых модулей (заголовочных файлов) Visual Studio для реализации пользовательского интерфейса и работы с вводом-выводом в поток консоли или в файл.

    курсовая работа [1,7 M], добавлен 28.05.2013

  • Разработка программного продукта с помощью языка программирования Visual Basic. Описание интерфейса пользователя и возможностей программы. Исходный код основных модулей. Программа, демонстрирующая основные возможности диаграмм и среды Visual Basic.

    контрольная работа [989,9 K], добавлен 29.03.2011

  • Разработка интерфейса и программного обеспечения виртуальной библиотеки. Проектирование структуры экранов и навигационной системы. Построение прототипа пользовательского интерфейса. Тестирование и модификация прототипа. Экспертная оценка разработки.

    курсовая работа [41,2 K], добавлен 19.12.2010

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