PI-Popovichenko / ПІ_ПЗС-1244_Поповіченко_Лаб№2
.doc
МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ
Черкаський державний технологічний університет
Кафедра програмного забезпечення автоматизованих систем
ЗВІТ
з лабораторної роботи № 2
з дисципліни «Програмування інтернет»
на тему: «Основи програмного забезпечення Web–клієнта на прикладі використання сценаріїв JavaScript»
Перевірив: |
Виконав: |
асистент кафедри ПЗАС Металап В.В. __________________________ |
студент групи ПЗС-1244 Поповіченко Антон __________________________ |
Черкаси 2013
Тема: Основи програмного забезпечення Web–клієнта на прикладі використання сценаріїв JavaScript.
Мета роботи: розглянути можливості роботи з датою в JavaScript, використання масивів та циклів в JavaScript, перевірки значень в коді скрипта. Навчитися створювати і використовувати об’єкти користувача в JavaScript.
Виконати поставлену задачу, використовуючи один масив, елементами якого виступатимуть об’єкти користувача. Всі перевірки та виведення повідомлень реалізувати через методи описаного об’єкта. В заголовку описати функцію для порівняння вказаної дати з сьогоднішньою датою (вказаного часу з поточним часом). Назначити цю функцію як метод свого обєкта. Реалізувати перевірку значень, використовуючи масиви та цикли. Індивідуальне завдання згідно номеру варіанту в таблиці.
Варіант |
Завдання |
№1 |
Створити масиви значень: − імя друга; − дата народження; − номер телефону (допускаються пусті значення). За 3 дні потрібно відправити вітальну листівку, а в день народження поздоровити іменинника особисто по телефону. Вивести повідомлення про необхідність відправлення листівки чи телефонного дзвінка. Вивести додаткове повідомлення, якщо телефон відсутній. |
Теоритичні відомості
Робота з датою в JavaScript
Об’єкт Data дозволяє використовувати в сценаріях JavaScript дати та числа. Конструктор об’єкту має такий формат: <змінна_дати> = new Date ({Рік}, {Місяць}, {Число} [, {Години} [, {Хвилини} [, {Секунди} [, {Мілісекунди}]]]]), де new – ключове слово, яке використовується для ініціалізації об’єкту вказаного типу. Якщо не вказаний жоден параметр, конструктор ініціалізує об’єкт поточною датою. Дати в JavaScript зберігаються в мілісекундах, починаючи з 00:00:00 1 січня 1970 року. Дати до цього моменту в скриптах використовувати не рекомендується. Це пов’язано з тим, що в сценаріях значно частіше приходиться мати справу з теперішнім і майбутнім часом, ніж з минулим.
Масиви
Тип "Array" введений у JavaScript 1.1 для можливості маніпулювання самими різними об'єктами, що відображаються браузером. Користувач може створити власний масив, використовуючи конструктор Array(). Приклад використання конструктора масиву:
− new_array = new Array();
− new_array5 = new Array(5);
− colors = new Array ("red","white","blue");
Розмірність масиву може динамічно змінюватися. Можна спочатку визначити масив, а потім присвоїти одному з його елементів значення.
Об’єкти користувача в JavaScript
Хоча змінні і масиви JavaScript надають досить великі можливості збереження даних, іноді потрібно використовувати складніші структури. При використанні звичних об’ємів змінних програма стане громіздкою і складною в управлінні. Масиви полегшують задачу. При їх використанні працювати з даними буде легше, однак незручно. За допомогою об'єктів можна всі змінні, пов’язані між собою, зберігати у вигляді одного елементу (подібно одній картці в картотеці). B об'єкт також можна додати спеціальні методи, що дозволять обробляти і відображати на екрані необхідну інформацію.
Лістинг програми
<script language="javascript">
function group(name, count, genre){ // Конструктор обєкту група
this.name=name;
this.count=count;
this.genre=genre;
this.getName = function(){
alert(this.name);
}
}
function concert(venue, dateOf, group){ // Конструктор обєкту концерт
this.venue=venue;
this.dateOf=dateOf;
this.group=group;
this.address_concert = function (){
if ((this.venue=="") || (this.venue==undefined)) alert("Невідома адреса концерту гр. "+this.group.name);
}
this.date_concert = function(){
var newDate = new Date();
if ((newDate.getMonth()==this.dateOf.getMonth()) && (newDate.getDate()==(this.dateOf.getDate()-5))){
alert("Сьогодні останій день покупки квитка на концерт гр. "+this.group.name+" що відбудеться у м. "+this.venue);
return "Останній день покупки квитка";
}
if ((newDate.getMonth()==this.dateOf.getMonth()) && (newDate.getDate()==this.dateOf.getDate())){
alert("Сьогодні відбудеться концерт гр. "+this.group.name+" в м. "+this.venue);
return "Сьогодні концерт";
}
if ((newDate.getMonth()>=this.dateOf.getMonth()) && (newDate.getDate()>this.dateOf.getDate())){
alert("Концертна гр. "+this.group.name+" уже відбувся");
return "відбувся";
}
if ((newDate.getMonth()<this.dateOf.getMonth())){
alert("Ще є час до покупки квитка на концерт гр. "+this.group.name);
return "Є час для покупки квитка";
}
if ((newDate.getMonth()==this.dateOf.getMonth()) && (newDate.getDate()<this.dateOf.getDate()-5)){
var day = (this.dateOf.getDate()-5)-newDate.getDate();
alert("Для покупки квитка на концерт гр. "+this.group.name+" залишилось "+day+" дні(в)");
return day+" дні(в) для покупки квитка";
}
if ((newDate.getMonth()==this.dateOf.getMonth()) && (newDate.getDate()>this.dateOf.getDate()-5) && (newDate.getDate()<this.dateOf.getDate())){
var day = (this.dateOf.getDate())-newDate.getDate();
alert("До концерту гр. "+this.group.name+" залишилось "+day+" дні(в)");
return day+" дні(в) до концерту";
}
}
}
var Groups = new Array(); //
Groups[0] = new group("Hi-fi", 3, "Pop");
Groups[1] = new group("Брати Грим", 2, "Pop");
Groups[2] = new group("Смоки Мо", 1, "Rep");
Groups[3] = new group("Птаха", 1, "Pop");
Groups[4] = new group("One Love", 2, "Hip");
var Concerts = new Array();
Concerts[0] = new concert("Черкаси", new Date(2013,3,18), Groups[0]);
Concerts[1] = new concert("Київ", new Date(2013,3,22), Groups[0]);
Concerts[2] = new concert("Чернігів", new Date(2013,3,16), Groups[1]);
Concerts[3] = new concert("Тальне", new Date(2013,3,20), Groups[2]);
Concerts[4] = new concert("Львів", new Date(2013,3,28), Groups[3]);
Concerts[5] = new concert("Черкаси", new Date(2013,3,10), Groups[4]);
document.write("<table border=1>");
document.write("<caption>Концерти</caption>");
document.write("<tr><td>Місто</td><td>Група</td><td>Дата</td><td>Статус</td></tr>");
Concerts[0].address_concert();
for (var i=0; i<Concerts.length; i++){
document.write("<tr><td>"+Concerts[i].venue+"</td><td>"+Concerts[i].group.name+"</td><td>"+Concerts[i].dateOf.getFullYear()+"."+0+Concerts[i].dateOf.getMonth()+"."+Concerts[i].dateOf.getDate()+"</td><td>"+Concerts[i].date_concert()+"</td></tr>");
}
document.write("</table>");
</script>
Результати виконання js-скрипта у вікні браузера
Висновок
При виконанні даної лабораторної роботи було опрацьовано теоретичні відомості, на основі отриманої інформації по вказаному варіанті розроблений скрипт який працює із створеними масивами обєктів, а також з порівнянням дати.