Курсовой проект по предмету программирование





Скачать 192.65 Kb.
НазваниеКурсовой проект по предмету программирование
Дата публикации26.04.2015
Размер192.65 Kb.
ТипКурсовой проект
100-bal.ru > Информатика > Курсовой проект
Курсовой проект по предмету

программирование:

“Работа с JavaScript”

Выполнил: Александров С.Д. _________

Принял: Панченко А.Ю. _________

2013

Оглавление

1.Вступление………….………………………………………………………………….2

2.Возможности языка……………………………………………………………………2

3.Структура языка ………………………………………………………………………2

4.Встраивание в веб-страницы………………………………………………………….3

5.Пользовательские скрипты в браузере……………………………………………….3

6.Виджеты………………………………………………………………………………..3

7.Версии…………………………………………………………………………………..4

8.Библиотеки JavaScript………………………………………………………………….5

9.Средства тестирования………………………………………………………………...5

10.WebGL…………………………………………………………………………………6

11.Принципы WebGL……………………………………………………………………7

12.Реализации WebGL……………………………………………………………………7

13.Библиотеки WebGL……………………………………………………………………7

14.Пример создания и анимации объекта……………………………………………….7

15.Пример программы на JavaScript……………………………………………………..9

16.Вывод…………………………………………………………………………………...13

17.Список литературы……………………………………………………………………14

Вступление


В современном мире интернет стал играть очень важную роль в жизни людей. Кто-то просто просматривает новости и видео, а для кого-то интернет это заработок. Так или иначе мы сталкиваемся с различными flash-приложениями или написанными на JavaScript(JS). Хотя раньше программирование на JS казалось ведомо только избранным, а сейчас же столь мощный пакет стал более доступным для обычных пользователей. Так же относительно недавно проводили сравнение вычислительных возможностей flash и JS,и оказалось, что JS значительно обгоняет в данном параметре своего конкурента. Поэтому автор считает, что наступает век JavaScript. Также автор надеется, что после прочтение ниже приведенной работы вы поддержите его мнение.

Возможности языка


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

Несмотря на схожий с Си синтаксис, JavaScript по сравнению с языком Си имеет коренные отличия:

В языке отсутствуют такие полезные вещи, как:

Структура языка


Структурно JavaScript можно представить в виде объединения трёх чётко различимых друг от друга частей:

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

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

Встраивание в веб-страницы


Для добавления JavaScript-кода на страницу, можно использовать теги , которые рекомендуется, но не обязательно, помещать внутри контейнера . Контейнеров

Пользовательские скрипты в браузере


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

Для управления пользовательскими скриптами в Mozilla Firefox используется расширение Greasemonkey; Opera и Google Chrome предоставляют средства поддержки пользовательских скриптов и возможности для выполнения ряда скриптов Greasemonkey.

Виджеты


Виджет — вспомогательная мини-программа, графический модуль которой размещается в рабочем пространстве соответствующей родительской программы (англ.), служащая для украшения рабочего пространства, развлечения, решения отдельных рабочих задач или быстрого получения информации из интернета без помощи веб-браузера. JavaScript используется как для реализации виджетов, так и для реализации движков виджетов. В частности, при помощи JavaScript реализованы Apple Dashboard, Microsoft Gadgets (англ.), Yahoo!_Widgets (англ.), Google Gadgets, Klipfolio Dashboard (англ.).

Версии


JavaScript

Соответствующая версия JScript

Существенные изменения

1.0 (Netscape 2.0, март 1996)

1.0 (ранние версии IE 3.0, август 1996)

Оригинальная версия языка JavaScript.

1.1 (Netscape 3.0, август 1996)

2.0 (поздние версии IE 3.0, январь 1997)

В данной версии был реализован объект Array и устранены наиболее серьёзные ошибки.

1.2 (Netscape 4.0, июнь 1997)




Реализован переключатель switch, регулярные выражения. Практически приведён в соответствии с первой редакцией спецификации ECMA-262.

1.3 (Netscape 4.5, октябрь 1998)

3.0 (IE 4.0, октябрь 1997)

Совместим с первой редакцией ECMA-262.

1.4 (только Netscape Server)

4.0 (Visual Studio 6, нет версии IE)

Применяется только в серверных продуктах Netscape.




5.0 (IE 5.0, март 1999)







5.1 (IE 5.01)




1.5 (Netscape 6.0, ноябрь 2000; также
поздние версии Netscape и Mozilla)

5.5 (IE 5.5, июль 2000)

Редакция 3 (декабрь 1999). Совместим с третьей редакцией спецификации ECMA-262.




5.6 (IE 6.0, октябрь 2001)




1.6 (Gecko 1.8, Firefox 1.5, ноябрь 2005)




Редакция 3 с некоторыми совместимыми улучшениями: E4X, дополнения к Array (например, Array.prototype.forEach), упрощения для Array и String

1.7 (Gecko 1.8.1, Firefox 2.0, осень 2006), расширение JavaScript 1.6




Редакция 3, с добавлением всех улучшений из JavaScript 1.6, генераторов и списочных выражений (list comprehensions, [a*a for (a in iter)]) из Python, блоковых областей с использованием let и деструктурирующего присваивания (var [a, b] = [1, 2]).




JScript .NET (ASP.NET; нет версии IE)

(Считается, что JScript .NET разработан при участии других членов ECMA)

1.8 (Gecko 1.9, Firefox 3.0, осень 2008), расширение JavaScript 1.7




Новая форма записи для функций, сходная с типичными лямбда-выражениями, генераторы (англ.), новые методы итеративной обработки массивов reduce() и reduceRight().

1.8.1 (Gecko 1.9.1, Firefox 3.5)




Встроенная поддержка JSON, метод getPrototypeOf() у Object, методы trim(), trimLeft(), trimRight() у String

2.0




Редакция 4 (разработка не закончена, название зарезервировано ECMA, но не было использовано для публикации)







Редакция 5 (ранее известная под названием ECMAScript 3.1. Финальная версия принята 3 декабря 2009 года.)


Библиотеки JavaScript


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

Среди известных JavaScript библиотек можно отметить Adobe life, Dojo Toolkit, Extjs, jQuery, Mootools, Prototype, Qooxdoo (англ.), Underscore.

1)jQuery — библиотека JavaScript, фокусирующаяся на взаимодействии JavaScript и HTML. Библиотека jQuery помогает легко получать доступ к любому элементу DOM, обращаться к атрибутам и содержимому элементов DOM, манипулировать ими. Также библиотека jQuery предоставляет удобный API по работе с AJAX.

Возможности:

  • Движок кроссбраузерных CSS-селекторов Sizzle, выделившийся в отдельный проект;

  • Переход по дереву DOM, включая поддержку XPath как плагина;

  • События;

  • Визуальные эффекты;

  • AJAX-дополнения;

  • JavaScript-плагины.

2) Ext JS — библиотека JavaScript для разработки веб-приложений и пользовательских интерфейсов, изначально задуманная как расширенная версия Yahoo! UI Library, однако преобразовавшаяся затем в отдельный фреймворк. До версии 4.0 использовала адаптеры для доступа к библиотекам Yahoo! UI Library, jQuery или Prototype/script.aculo.us, начиная с 4-ой версии адаптеры отсутствуют. Поддерживает технологию AJAX, анимацию, работу с DOM, реализацию таблиц, вкладок, обработку событий и все остальные новшества Web 2.0.

Средства тестирования


Большинство фреймворков автоматизированного тестирования (англ.) JavaScript-кода предполагают запуск тестов в браузере. Это осуществляется при помощи HTML-страницы, являющейся контекстом тестирования (англ.), которая, в свою очередь загружает всё необходимое для осуществления тестирования. Первыми такими фреймворками были JsUnit (англ.) (создан в 2001 году), Selenium (создан в 2004 году). Альтернатива — запуск тестов из командной строки. В этом случае используются окружения, отличные от браузера, например, Rhino. Одним из первых инструментов такого рода является Crosscheck, позволяющий тестировать код, эмулируя поведение Internet Explorer 6 и Firefox версий 1.0 и 1.5. Другой пример фреймворка автоматизированного тестирования JavaScript-кода, не использующего браузер для запуска тестов — библиотека env.js, созданная Джоном Резигом. Она использует Rhino и при этом содержит эмуляцию окружения браузера и DOM.

Blue Ridge, плагин к фреймворку веб-приложений Ruby on Rails, позволяет осуществлять модульное тестирование JavaScript-кода как в браузере, так и вне его. Это достигается за счёт использования фреймворка автоматизированного тестирования Screw.Unit и Rhino с env.js[101].

Главная проблема систем тестирования, не использующих браузеры, в том, что они используют эмуляции, а не реальные окружения, в которых выполняется код. Это приводит к тому, что успешное прохождение тестов не гарантирует того, что код корректно отработает в браузере. Проблемой систем тестирования, использующих браузер, является сложность работы с ними, необходимость осуществления рутинных неавтоматизированных действий. Для решения этого JsTestDriver, фреймворк автоматизированного тестирования, разрабатываемый Google, использует сервер, взаимодействующий с браузерами для осуществления тестирования. Сходным образом ведёт себя Selenium Remote Control, входящий во фреймворк автоматизированного тестирования Selenium: он включает в себя сервер, запускающий и завершающий браузеры и действующий как HTTP-прокси для запросов к ним. Кроме того, в Selenium содержится Selenium Grid, позволяющий осуществлять одновременное тестирование JavaScript-кода на разных компьютерах с разными окружениями, уменьшая время выполнения тестов. Testswarm, имеющее поддержку фреймворков автоматизированного тестирования JavaScript-кода QUnit (библиотека jQuery), UnitTestJS (библиотека Prototype), JSSpec (библиотека MooTools), JsUnit, Selenium и Dojo Objective Harness, представляет собой распределённое средство поддержки непрерывной интеграции[108].

Негативное свойство, которым может обладать фреймворк автоматизированного тестирования JavaScript-кода — наличие зависимостей. Это создаёт риск отказа в работе тестируемого кода, успешно проходящего тесты, в среде с отсутствием этих зависимостей. Например, исходная версия JsUnitTest, фреймворка, созданного и использовавшегося для тестирования библиотеки Prototype, зависела от самой Prototype, изменяющего свойства объектов в глобальной области видимости. Включение в библиотеку JavaScript инструмента тестирования — распространённая практика. Так YUI Test 3 является частью Yahoo! UI Library и может быть безопасно использован для тестирования произвольного JavaScript-кода. QUnit — фреймворк автоматизированного тестирования, созданный разработчиками jQuery.

WebGL


WebGL (Web-based Graphics Library) — программная библиотека для языка программирования JavaScript, позволяющая создавать на JavaScript интерактивную 3D-графику, функционирующую в широком спектре совместимых с ней веб-браузерах. За счёт использования низкоуровневых средств поддержки OpenGL, часть кода на WebGL может выполняться непосредственно на видеокартах. Проект по созданию библиотеки управляется некоммерческой организацией Khronos Group.

Принципы WebGL


Библиотека построена на основе OpenGL ES 2.0 и обеспечивает API для 3D-графики., использует HTML5-элемент canvas, также оперирует с DOM. Автоматическое управление памятью предоставляется языком JavaScript.

Реализация WebGL


  • Mozilla Firefox — WebGL был включён во все платформы, у которых есть нужная графическая карта с актуальными драйверами, начиная с версии 4.0.

  • Google Chrome — WebGL включён по умолчанию во все версии начиная с 9.

  • Safari — поддерживает WebGL, но поддержка отключена по умолчанию.

  • Opera — WebGL реализован в версии Opera 12.00, но отключена по умолчанию.

  • Internet Explorer — Microsoft не заявляла об официальной поддержке WebGL, независимыми разработчиками выпущены плагины Chrome Frame и IEWebGL, предусматриваюющие опции, необходимые для поддержки WebGL в Internet Explorer. По-видимому, поддержка WebGL появится в IE 11.

Библиотеки WebGL


  • Для разработки WebGL используется несколько библиотек. Первой общедоступной стала библиотека WebGLU. Среди других библиотек для WebGL - GLGE, C3DL, Copperlicht, SpiderGL, gwt-g3d (обёртка для GWT), SceneJS, X3DOM, Processing.js, Three.js, Turbulenz, OSGJS, XB PointStream и CubicVR.js.

  • ANGLE (Almost Native Graphics Layer Engine) — программа, выпущенная под лицензией BSD, которая позволяет переводить содержимое WebGL в OpenGL ES 2.0, вызывать API DirectX 9, которые взаимодействуют с платформами Microsoft Windows без необходимости в дополнительных драйверах OpenGL.

Пример создания и анимации объекта.


Подключаем библиотеку Three.js и RequestAnimationFrame.js





Теперь можно приступить к написанию кода. Вначале нам нужно создать объект WebGLRenderer с режимом сглаживания.

  1. var renderer = new THREE.WebGLRenderer({antialias: true});

  2. renderer.setSize(document.body.clientWidth, document.body.clientHeight);

Далее применяем его BODY

  1. document.body.appendChild(renderer.domElement);

ставим цвет для очистки рендера и очищаем его

  1. renderer.setClearColorHex(0xEEEEEE, 1.0);

  2. renderer.clear();

Теперь станем определять необходимые нам переменные:

  1. var fov = 45; // угол обзора камеры

  2. var width = renderer.domElement.width; // ширина сцены

  3. var height = renderer.domElement.height; // высота сцены

  4. var aspect = width / height; // соотношение сторон экрана

  5. var near = 1; // минимальная видимость

  6. var far = 10000; // максимальная видимость

Далее создаем объект камеры и отдаляем ее назад на 300 поинтов

  1. var camera = new THREE.PerspectiveCamera( fov, aspect, near, far );

  2. camera.position.z = 300;

Теперь создаем сцену, меш (трехмерный объект, в который добавляется другая геометрия), создаем простой куб с вершинами в 50 поинтов, и задаем черный цвет. После чего добавляем созданный нами меш в сцену, и рендерим сцену через камеру.

  1. var scene = new THREE.Scene();

  2. var cube = new THREE.Mesh(

  3. new THREE.CubeGeometry(50,50,50),

  4. new THREE.MeshBasicMaterial({color: 0x000000, opacity: 1})

  5. );

  6. scene.add(cube);

  7. renderer.render(scene, camera);

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

  1. function animate(t) {

  2. // задаем круговое движение камеры

  3. camera.position.set(

  4. Math.sin(t/1000)*300, 150, Math.cos(t/1000)*300);

  5. // очищаем рендер и обновляем lookAt каждый фрейм

  6. renderer.clear();

  7. camera.lookAt(scene.position);

  8. renderer.render(scene, camera);

  9. window.requestAnimationFrame(animate, renderer.domElement);

  10. animate(new Date().getTime());

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

Добавив источник света.

  1. var light = new THREE.SpotLight();

  2. light.position.set( 170, 330, -160 );

  3. scene.add(light);

И поверх уже созданного нами куба, добавим еще один.

  1. var litCube = new THREE.Mesh(

  2. new THREE.CubeGeometry(50, 50, 50),

  3. new THREE.MeshLambertMaterial({color: 0xffffff}));

  4. litCube.position.y = 50;

  5. scene.add(litCube);

Пример программы на JavaScript

Файл №1 “index.html” (его мы и будем запускать)





Three.js - dice




libs -->

///здесь мы подключаем вспомогательные файлы и библиотеки















Добавить документ в свой блог или на сайт

Похожие:

Курсовой проект по предмету программирование iconКурсовой проект на тему: Проект производственно-технической базы...
Курсовой проект содержит три листа графической части и пояснительную записку на 70 стр., 13 таблиц, 10 использованных источников
Курсовой проект по предмету программирование iconРеферат Курсовой проект выполнен на тему «Оборудование станции «Е»
Курсовой проект выполнен на тему «Оборудование станции «Е» устройствами блочной маршрутно-релейной централизации
Курсовой проект по предмету программирование iconРеферат Курсовой проект выполнен на тему «Оборудование станции «Е»
Курсовой проект выполнен на тему «Оборудование станции «Е» устройствами блочной маршрутно-релейной централизацией
Курсовой проект по предмету программирование iconКурсовой проект по химическим средствам защиты растений Тема: «Химическая...
Курсовой проект «Химическая защита клевера от вредных организмов» изложен на страницах машинописного текста, содержит таблиц, приложения....
Курсовой проект по предмету программирование iconРекомендации по написанию курсовой работы При подготовке курсовой...
Затем студент приступает к сбору информации. Первоначальное представление о теме и структуре работы можно составить по учебникам,...
Курсовой проект по предмету программирование iconПояснительная записка к курсовой работе по дисциплине «Разработка...
Курсовой проект содержит: страниц –20, источников – 5, рисунков – 6, таблиц – 2
Курсовой проект по предмету программирование iconПояснительная записка к курсовой работе по дисциплине «Разработка...
Курсовой проект содержит: страниц –22, источников – 5, рисунков – 6, таблиц – 2
Курсовой проект по предмету программирование iconОтчетной работы) Курсовой проект (вид работы) По дисциплине «Теория антикризисного управления»
Титульный лист курсовой работы (проекта), контрольной работы, домашнего задания, реферата, отчета о практике
Курсовой проект по предмету программирование iconКраткое содержание проекта Проект подготовлен для учащихся основной...
Проект подготовлен для учащихся основной школы по предмету «Технология». Данный проект предусматривает поисковую работу, выполнение...
Курсовой проект по предмету программирование iconКурсовая работа по теме: программирование с использованием записей и файлов
...
Курсовой проект по предмету программирование iconКурсовая работа по теме: программирование с использованием записей и файлов
...
Курсовой проект по предмету программирование icon«программирование»
Рабочая программа дисциплины «Программирование» /сост. Хатаева Р. С.– Грозный: чгпи, 2011г
Курсовой проект по предмету программирование iconРазработка программного обеспечения решения нелинейных уравнений
Задание на курсовой проект
Курсовой проект по предмету программирование iconМетодические указания по выполнению и оформлению научно-исследовательской...
К студенческим работам, выполняемым в процессе обучения относятся реферат, доклад, отчет о научной работе, курсовая работа или курсовой...
Курсовой проект по предмету программирование iconКурсовой проект по дисциплине
Частотомер с передачей данных по последовательному порту и динамической индикацией ”
Курсовой проект по предмету программирование icon12 Достижения компьютерной техники 15 Программирование
Программирование 3


Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
100-bal.ru
Поиск