Електронний журнал вчителя
Зміст
Вступ
. Опис предметної області
. Мови програмування, на яких написана програма
. Опис логічної структури
. Створення проекту і опис коду
. Тестування проекту
Висновок
Список використаної літератури
Додаток А
Додаток В
Додаток С
Додаток D
Вступ
Курсовий проект (робота) - це самостійно виконана і
відповідно оформлена творча робота студента з вирішення конкретного практичного
завдання з однієї або декількох загальнотехнічних чи спеціальних дисциплін на
основі набутих теоретичних знань та умінь.
Курсовий проект виконується протягом навчального семестру у
відповідності з навчальним планом спеціальності
Основною метою курсового проектування є:
– навчання та набуття навиків
практичного застосування теоретичних знань для вирішення конкретних практичних
задач;
– розвиток творчого мислення, виявлення
та формування професійних навиків студентів;
– набуття навиків конструювання
виробів, виконання розрахунків, письмового викладу технічних рішень та аналізу
одержаних результатів;
– закріплення, поглиблення та систематизація
отриманих студентами в процесі навчання теоретичних знань з різних дисциплін;
– набуття навиків узагальнення та
аналізу результатів, отриманих іншими розробниками та дослідниками;
– навчання та набуття студентами
досвіду користування довідковою літературою і нормативними документами.
1. Опис предметної області
«Електронний журнал» призначений для спрощення контролю та
обліку навчальних досягнень і відвідування учнів класу.
«Електронний журнал» може використовуватися в школі
заступником директора і класним керівником.
«Електронний журнал» складається з електронних таблиць бази
даних розробленої в MySQL, які мають наступні назви і поля:
учні
ім'я
прізвище
предмети
назва
уроки
Зв'язок з предметом
дата
тема
оцінки
Зв'язок з уроком
Зв'язок з учнем
Оцінка (значення)
Кожен вчитель та класний керівник заповнюють свій листок так
як і в звичайному шкільному журналі.
Програма може показати оцінки і відвідування за вибраний
місяць для одного учня або всього класу.
. Мови програмування, на яких написана програма
Наш проект електронного журналу вчителя буде написаний на
наступних мовах програмування.- це особлива мова програмування, який базується
на об’єктному представленні браузера. Він потрібен для того, щоб надати сайту
більше інтерактивності в порівнянні зі звичайним статичним HTML-документом.
Наприклад, в інтерфейсі можна буде реалізувати мінливі малюнки, рухомий рядок з
тексту та багато іншого. Відмінність JavaScript полягає в тому, що текст
програми вбудовується в документ HTML і аналізується самим браузером.
JavaScript - це мова програмування сценаріїв на веб-сторінках.
Для чого потрібен JavaScript
За допомогою JavaScript створюються динамічні
документи HTML. Статичний вигляд сторінок HTML пішов у минуле!
JavaScript пов’язує воєдино всі будівельні блоки
програми, це як би засіб побудови фундаменту.
JavaScript здійснює перевірку полів форм HTML до
того, як вони передалися на сервер.
Управління програмою на даній мові програмування йде
через локальний введення інформації.
Користувач має можливість бачити в окремих вікнах
повідомлення-застереження, які виводяться за допомогою JavaScript.
Що таке JavaScript error і як включити JavaScript
JavaScript (JS) - динамічна, об'єктно-орієнтованa
<https://uk.wikipedia.org/wiki/%D0%9E%D0%B1%27%D1%94%D0%BA%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D1%96%D1%94%D0%BD%D1%82%D0%BE%D0%B2%D0%B0%D0%BD%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F>
мова програмування
<https://uk.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B2%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F>.
Реалізація стандарту ECMAScript
<https://uk.wikipedia.org/wiki/ECMAScript>. Найчастіше використовується
як частина браузера <https://uk.wikipedia.org/wiki/%D0%91%D1%80%D0%B0%D1%83%D0%B7%D0%B5%D1%80>,
що надає можливість коду на стороні клієнта
<https://uk.wikipedia.org/wiki/%D0%9A%D0%BB%D1%96%D1%94%D0%BD%D1%82-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BD%D0%B0_%D0%B0%D1%80%D1%85%D1%96%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0>(такому,
що виконується на пристрої кінцевого користувача) взаємодіяти з користувачем,
керувати браузером, асинхронно <https://uk.wikipedia.org/wiki/AJAX>
обмінюватися даними з сервером
<https://uk.wikipedia.org/wiki/%D0%9A%D0%BB%D1%96%D1%94%D0%BD%D1%82-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BD%D0%B0_%D0%B0%D1%80%D1%85%D1%96%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0>,
змінювати структуру
<https://uk.wikipedia.org/wiki/%D0%9E%D0%B1%27%D1%94%D0%BA%D1%82%D0%BD%D0%B0_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C_%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0>
та зовнішній вигляд
<https://uk.wikipedia.org/wiki/%D0%92%D0%B5%D0%B1-%D0%B4%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD>
веб-сторінки
<https://uk.wikipedia.org/wiki/%D0%92%D0%B5%D0%B1-%D1%81%D1%82%D0%BE%D1%80%D1%96%D0%BD%D0%BA%D0%B0>.
Мова JavaScript також використовується для програмування
<https://uk.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F>
на стороні сервера (подібно до таких мов програмування, як Java
<https://uk.wikipedia.org/wiki/Java> і C#
<https://uk.wikipedia.org/wiki/C_Sharp>), розробки ігор
<https://uk.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BC%D0%BF%27%D1%8E%D1%82%D0%B5%D1%80%D0%BD%D1%96_%D1%96%D0%B3%D1%80%D0%B8>,
стаціонарних та мобільних додатків, сценаріїв в прикладному ПЗ
<https://uk.wikipedia.org/wiki/%D0%9F%D0%97> (наприклад, в програмах зі
складу Adobe Creative Suite
<https://uk.wikipedia.org/wiki/Adobe_Creative_Suite>), всередині PDF
<https://uk.wikipedia.org/wiki/PDF>-документів тощо.класифікують як
прототипну <https://uk.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D1%82%D0%BE%D1%82%D0%B8%D0%BF%D0%BD%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F>
(підмножина об'єктно-орієнтованої
<https://uk.wikipedia.org/wiki/%D0%9E%D0%B1%27%D1%94%D0%BA%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D1%96%D1%94%D0%BD%D1%82%D0%BE%D0%B2%D0%B0%D0%BD%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F>),
скриптову мову
<https://uk.wikipedia.org/wiki/%D0%A1%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B2%D0%B0_%D0%BC%D0%BE%D0%B2%D0%B0>
програмування з динамічною типізацією. Окрім прототипної, JavaScript також
частково підтримує інші парадигми програмування (імперативну
<https://uk.wikipedia.org/wiki/%D0%86%D0%BC%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F>
та частково функціональну
<https://uk.wikipedia.org/wiki/%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D1%96%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F>)
і деякі відповідні архітектурні властивості, зокрема: динамічна
<https://uk.wikipedia.org/wiki/%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D1%96%D1%87%D0%BD%D0%B0_%D1%82%D0%B8%D0%BF%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%8F>
та слабка
<https://uk.wikipedia.org/w/index.php?title=%D0%A1%D0%BB%D0%B0%D0%B1%D0%BA%D0%B0_%D1%82%D0%B8%D0%BF%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%8F&action=edit&redlink=1>
типізація <https://uk.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%82%D0%B8%D0%BF%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%97>,
автоматичне керування пам'яттю, прототипне наслідування
<https://uk.wikipedia.org/wiki/%D0%9D%D0%B0%D1%81%D0%BB%D1%96%D0%B4%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)>,
функції
<https://uk.wikipedia.org/wiki/%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D1%96%D1%8F_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)>як
об'єкти першого класу <https://uk.wikipedia.org/wiki/%D0%9E%D0%B1%27%D1%94%D0%BA%D1%82_%D0%BF%D0%B5%D1%80%D1%88%D0%BE%D0%B3%D0%BE_%D0%BA%D0%BB%D0%B0%D1%81%D1%83>.
Незважаючи на схожість назв, мови Java
<https://uk.wikipedia.org/wiki/Java> та JavaScript є двома різними
мовами, що мають відмінну семантику
<https://uk.wikipedia.org/wiki/%D0%A1%D0%B5%D0%BC%D0%B0%D0%BD%D1%82%D0%B8%D0%BA%D0%B0_%D0%BC%D0%BE%D0%B2_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F>,
хоча й мають схожі риси в стандартних бібліотеках <https://uk.wikipedia.org/w/index.php?title=%D0%A1%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D0%BD%D0%B0_%D0%B1%D1%96%D0%B1%D0%BB%D1%96%D0%BE%D1%82%D0%B5%D0%BA%D0%B0&action=edit&redlink=1>
та правилах іменування. Синтаксис <https://uk.wikipedia.org/wiki/%D0%A1%D0%B8%D0%BD%D1%82%D0%B0%D0%BA%D1%81%D0%B8%D1%81_%D0%BC%D0%BE%D0%B2%D0%B8_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F>
обох мов отриманний «у спадок» від мови
<https://uk.wikipedia.org/wiki/C_(%D0%BC%D0%BE%D0%B2%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)>,
але семантика та дизайн JavaScript є результатом впливу мов Self
<https://uk.wikipedia.org/w/index.php?title=Self_(%D0%BC%D0%BE%D0%B2%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)&action=edit&redlink=1>
та Scheme <https://uk.wikipedia.org/wiki/Scheme>.(англ.
<https://uk.wikipedia.org/wiki/%D0%90%D0%BD%D0%B3%D0%BB%D1%96%D0%B9%D1%81%D1%8C%D0%BA%D0%B0_%D0%BC%D0%BE%D0%B2%D0%B0>
PHP: Hypertext Preprocessor - PHP: гіпертекстовий
<https://uk.wikipedia.org/wiki/%D0%93%D1%96%D0%BF%D0%B5%D1%80%D1%82%D0%B5%D0%BA%D1%81%D1%82>
препроцесор
<https://uk.wikipedia.org/wiki/%D0%9F%D1%80%D0%B5%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D0%BE%D1%80>),
попередня назва: Personal Home Page Tools - скриптова
<https://uk.wikipedia.org/wiki/%D0%A1%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B2%D0%B0_%D0%BC%D0%BE%D0%B2%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F>
мова програмування <https://uk.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B2%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F>,
була створена для генерації HTML
<https://uk.wikipedia.org/wiki/HTML>-сторінок на стороні веб-сервера
<https://uk.wikipedia.org/wiki/%D0%92%D0%B5%D0%B1-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80>.
PHP є однією з найпоширеніших мов, що використовуються у сфері веб-розробок
(разом із Java <https://uk.wikipedia.org/wiki/Java>, .NET
<https://uk.wikipedia.org/wiki/.NET>, Perl <https://uk.wikipedia.org/wiki/Perl>,
Python <https://uk.wikipedia.org/wiki/Python>, Ruby
<https://uk.wikipedia.org/wiki/Ruby>). PHP підтримується переважною
більшістю хостинг
<https://uk.wikipedia.org/wiki/%D0%A5%D0%BE%D1%81%D1%82%D0%B8%D0%BD%D0%B3>-провайдерів
<https://uk.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%B2%D0%B0%D0%B9%D0%B4%D0%B5%D1%80>.
PHP - проект відкритого програмного забезпечення
<https://uk.wikipedia.org/wiki/%D0%92%D1%96%D0%B4%D0%BA%D1%80%D0%B8%D1%82%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BD%D0%B5_%D0%B7%D0%B0%D0%B1%D0%B5%D0%B7%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%BD%D1%8F>.інтерпретується
веб-сервером у HTML-код, який передається на сторону клієнта. На відміну від
скриптової мови JavaScript <https://uk.wikipedia.org/wiki/JavaScript>,
користувач не бачить PHP-коду, бо браузер отримує готовий html-код. Це є
перевага з точки зору безпеки, але погіршує інтерактивність сторінок. Але ніщо
не забороняє використовувати PHP для генерування і JavaScript
<https://uk.wikipedia.org/wiki/JavaScript>-кодів які виконуються вже на
стороні клієнта.- мова, код якої можна вбудовувати безпосередньо в html-код
сторінок, які, у свою чергу, будуть коректно оброблені PHP-інтерпретатором.
Обробник РНР просто починає виконувати код після відкриваючого тегу (<?php)
і продовжує виконання до того моменту, поки не зустріне закриваючий тег
(?>).
Велика різноманітність функцій PHP дає можливість уникати написання
багаторядкових функцій, призначених для користувача, як це відбувається в C або
Pascal.
· Наявність інтерфейсів до багатьох баз даних
<https://uk.wikipedia.org/wiki/%D0%91%D0%B0%D0%B7%D0%B0_%D0%B4%D0%B0%D0%BD%D0%B8%D1%85>
· в PHP вбудовані бібліотеки для роботи з MySQL
<https://uk.wikipedia.org/wiki/MySQL>, PostgreSQL
<https://uk.wikipedia.org/wiki/PostgreSQL>, mSQL <https://uk.wikipedia.org/w/index.php?title=MSQL&action=edit&redlink=1>,
Oracle <https://uk.wikipedia.org/wiki/Oracle_Database>, dbm
<https://uk.wikipedia.org/w/index.php?title=Dbm&action=edit&redlink=1>,
Hyperware <https://uk.wikipedia.org/w/index.php?title=Hyperware&action=edit&redlink=1>,
Informix <https://uk.wikipedia.org/wiki/Informix>, InterBase
<https://uk.wikipedia.org/wiki/InterBase>, Sybase
<https://uk.wikipedia.org/wiki/Sybase>.
· через стандарт відкритого інтерфейсу зв'язку з базами
даних (Open Database Connectivity Standard - ODBC
<https://uk.wikipedia.org/wiki/ODBC>) можна підключатися до всіх баз
даних, до яких існує драйвер.
· Традиційність
Мова PHP здаватиметься знайомою програмістам, що працюють в різних
областях. Багато конструкцій мови запозичені з С, Perl. Код РНР дуже схожий на
той, який зустрічається в типових програмах на С або Pascal. Це помітно знижує
початкові зусилля при вивченні PHP. PHP - мова, що поєднує переваги Perl і С і
спеціально спрямована на роботу в Інтернеті, мова з універсальним і зрозумілим
синтаксисом. І хоча PHP є досить молодою мовою, вона здобула таку популярність
серед web-програмістів, що в наш час є мало не найпопулярнішою мовою для
створення веб-застосунків
<https://uk.wikipedia.org/wiki/%D0%92%D0%B5%D0%B1-%D0%B7%D0%B0%D1%81%D1%82%D0%BE%D1%81%D1%83%D0%BD%D0%BE%D0%BA>
(скриптів).
· Наявність сирцевого коду та
безкоштовність
Стратегія Open Source, і розповсюдження початкових текстів програм в
масах, безсумнівно справили благотворний вплив на багато проектів, в першу
чергу - Linux <https://uk.wikipedia.org/wiki/Linux> хоч і успіх проекту
Apache <https://uk.wikipedia.org/wiki/Apache> сильно підкріпив позиції
прихильників Open Source <https://uk.wikipedia.org/wiki/Open_Source>.
Сказане відноситься і до історії створення PHP, оскільки підтримка користувачів
зі всього світу виявилася дуже важливим чинником в розвитку проекту PHP.
Ухвалення стратегії Open Source і безплатне розповсюдження початкових
текстів PHP надало неоціненну послугу користувачам. Окрім цього, користувачі
PHP в усьому світі є свого роду колективною службою підтримки, і в популярних
електронних конференціях можна знайти відповіді навіть на найскладніші питання.
· Ефективність
Ефективність є дуже важливим чинником у програмуванні для середовищ
розрахованих на багато користувачів, до яких належить і web
<https://uk.wikipedia.org/wiki/Web>. Важливою перевагою PHP є те, що ця
мова належить до інтерпретованих. Це дозволяє обробляти сценарії з достатньо
високою швидкістю. За деякими оцінками, більшість PHP-сценаріїв (особливо не
дуже великих розмірів) обробляються швидше за аналогічні їм програми, написані
на Perl <https://uk.wikipedia.org/wiki/Perl>. Проте хоч би що робили
розробники PHP, виконавчі файли, отримані за допомогою компіляції,
працюватимуть значно швидше - в десятки, а іноді і в сотні разів. Але
продуктивність PHP достатня для створення цілком серйозних веб-застосунків
<https://uk.wikipedia.org/wiki/%D0%92%D0%B5%D0%B1-%D0%B7%D0%B0%D1%81%D1%82%D0%BE%D1%81%D1%83%D0%BD%D0%BE%D0%BA>.
HTML (HyperText Markup Language) - це мова розмітки
гіпертексту - це не мова програмування. Це форма збереження даних. Глобально -
мова програмування програмує дещо на виконання деяких дій, а мова розмітки
готує певним чином деякий документ для того, щоб абияка програма могла його
використовувати.
Таким чином, створивши HTML-документ, ви передаєте його
програмі (здебільше, HTML-документи використовуються для створення веб-сайтів,
отже, зазвичай, програма для обробки HTML-документа є браузер (browser -
переглядач з англійської)), що обробляє його згідно правил, що в неї
запрограмовані. Отже, коли браузер “читає” HTML-документ, то він малює на
екрані його вміст, керуючись правилами, що в нього закладені для показу файлів,
що розмічені мовою HTML.- це популярна система управління базами даних, яка
дозволяє отримувати, додавати та обробляти дані. Користувачі MySQL не можуть
існувати окремо від бази даних MySQL. Тому слід притримуватися такої
послідовності:
1. Створити базу даних.
2. Додати користувачів MySQL для кожної створеної бази
даних.
При цьому в різних базах даних MySQL можуть бути одні й ті ж
самі користувачі.
MySQL був розроблений компанією «ТсХ» для підвищення швидкодії обробки
великих баз даних. Ця система керування базами даних (СКБД
<https://uk.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%B5%D1%80%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F_%D0%B1%D0%B0%D0%B7%D0%B0%D0%BC%D0%B8_%D0%B4%D0%B0%D0%BD%D0%B8%D1%85>)
з відкритим кодом була створена як альтернатива комерційним системам. MySQL з
самого початку була дуже схожою на mSQL
<https://uk.wikipedia.org/w/index.php?title=MSQL&action=edit&redlink=1>,
проте з часом вона все розширювалася і зараз MySQL - одна з найпоширеніших
систем керування базами даних. Вона використовується, в першу чергу, для
створення динамічних веб-сторінок
<https://uk.wikipedia.org/wiki/%D0%92%D0%B5%D0%B1-%D1%81%D1%82%D0%BE%D1%80%D1%96%D0%BD%D0%BA%D0%B0>,
оскільки має чудову підтримку з боку різноманітних мов програмування
<https://uk.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B2%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F>.
. Опис логічної структури
Для комп'ютерних програм
<https://uk.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BC%D0%BF%27%D1%8E%D1%82%D0%B5%D1%80%D0%BD%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%B0>
алгоритм є списком деталізованих інструкцій, що реалізують процес обчислення,
який, починаючи з початкового стану, відбувається через послідовність логічних
станів, яка завершується кінцевим станом. Перехід з попереднього до наступного
стану не обов'язково детермінований - деякі алгоритми можуть містити елементи
випадковості.
Наша програма повинна мати чіткий, сформований алгоритм, який
дозволить швидко працювати програмі і безперебійно оброблювати вхідні і вихідні
дані.
Алгоритм нашої програми виглядає наступним чином:
1. Початок роботи програми. Запуск головної сторінки в
браузері.
. Ініціалізація об’єктів програми.
. Вибір функції
. Введення даних
. Виведення даних
. Завершення алгоритму
. Створення проекту і опис коду
Для розробки нашого проекту для початку необхідно створити
головну сторінку електронного журналу за допомогою гіпертекстової розмітки. Для
цього скористуємось html тегами і побудуємо каркас сторінки:
<html>
<head>
</head>
<body>
<div>
<center><table id="bodys">
<tr><td id="menu1"
valign="top">
<div>
<ul>
<li><a href="#"
onclick="showUser(this.value)">Переглянути журнал</a>
<li>Дадати записи
<ol>
<li><a href="учні.html">в таблицю
учні</a>
<li><a href="предмети.html">в таблицю
предмети</a>
<li><a href="уроки.html">в таблицю
уроки</a>
<li><a href="оцінки.html">в таблицю
оцінки</a>
</ol>
</ul>
</div>
</td><td id="main1" valign="top">
<div>
</div>
</td></tr>
</table>
</center>
</body>
</html>
В вище наведеному коді ми створили головну сторінку, яка
містить заголовок проекту, меню для управління і область для відображення.
Наступним кроком ми створюємо безпосередньо БД для роботи нашого журналу. Для
створення БД ми скористаємось електронним додатком phpmyadmin. Для початку
створимо саму БД і задамо її імя ticher. На рис 4.1 показано процес створення
бази.
Рис.4.1. Створення БД
Далі нам необхідно спроектувати і створити таблиці. На рис.
4.2 показано діаграму спроектованих таблиць і зв'язків між ними.
Рис.4.2. Діаграма таблиць
Після того як ми створили БД і спроектували таблиці нам необхідно
розробити форму для їх заповнення. Тут ми знову скористаємось мовою
гіпертекстової розмітки. Нижче наведено код форми для заповнення таблиці Учні:
<html>
<head>
</head>
<body>
<div>
<form method="GET"
action="enteruch.php">
<table>
<tr><td>Введіть код
учня:</td><td><input type="text"
name="coduch"></td></tr>
<tr><td>Введіть імя
учня:</td><td><input type="text"
name="iuch"></td></tr>
<tr><td>Введіть прізвище
учня:</td><td><input type="text"
name="puch"></td></tr>
</table>
<input type="submit"
value="Додати">
</div>
</body>
</html>
Для того щоб дані з форми відправити в БД нам необхідно
створити скрипт на мові php. Розглянемо наступний код:
<?php
$dblocation = "localhost";
$dbname = "ticher";
$dbuser = "root";
$dbpasswd = "";
$dbcnx =
@mysql_connect($dblocation,$dbuser,$dbpasswd);(!$dbcnx)
{( "<P>На даний момент БД
недоступна</P>" );();
}(!@mysql_select_db($dbname, $dbcnx))
{( "<P>На даний момент БД
недоступна</P>" );();
}
$ath = mysql_query("INSERT INTO `учні`(`Імя`, `Прізвище`,
`Код`) VALUES
('".$_GET["iuch"]."','".$_GET["puch"]."','".$GET["coduch"]."')");($ath)
// Відправляєм відповідь"Дані вдало добавлені в
таблицю";
}
{"<p><b>Помилка:
".mysql_error()."</b><p>";();
}
?>
Для роботи з БД нам необхідно встановити з нею зв’язок. Для
цього ми використовуємо наступний код:
$dblocation = "localhost";
$dbname = "ticher";
$dbuser = "root";
$dbpasswd = "";
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
Після встановлення зв’язку ми можемо відправляти до нашої баз
SQL-запити:
$ath = mysql_query("INSERT INTO `учні`(`Імя`,
`Прізвище`, `Код`) VALUES
('".$_GET["iuch"]."','".$_GET["puch"]."','".$GET["coduch"]."')");
Аналогічним чином ми створюємо форми для інших таблиць.
Лістинги скриптів наведені в додатках.
5. Тестування проекту
Тестування програмного забезпечення (англ.
<https://uk.wikipedia.org/wiki/%D0%90%D0%BD%D0%B3%D0%BB%D1%96%D0%B9%D1%81%D1%8C%D0%BA%D0%B0_%D0%BC%D0%BE%D0%B2%D0%B0>
Software Testing) - це процес технічного дослідження, призначений для виявлення
інформації про якість продукту відносно контексту, в якому він має
використовуватись. Техніка тестування також включає як процес пошуку помилок
<https://uk.wikipedia.org/wiki/%D0%91%D0%B0%D2%91> або інших дефектів,
так і випробування програмних складових з метою оцінки. Може оцінюватись:
· відповідність вимогам, якими
керувалися проектувальники та розробники
· правильна відповідь для усіх можливих
вхідних даних
· виконання функцій за прийнятний час
· практичність
· сумісність з програмним забезпеченням
та операційними системами
· відповідність задачам замовника.
Оскільки число можливих тестів навіть для нескладних програмних
компонент практично нескінченне, тому стратегія тестування полягає в тому, щоб
провести всі можливі тести з урахуванням наявного часу та ресурсів. Як
результат програмне забезпечення (ПЗ) тестується стандартним виконанням
програми з метою виявлення баґів
<https://uk.wikipedia.org/wiki/%D0%91%D0%B0%D2%91> (помилок або інших
дефектів).
Тестування ПЗ може надавати об'єктивну, незалежну інформацію про якість
ПЗ, ризики відмови, як для користувачів так і для замовників.
Тестування може проводитись, як тільки створено виконуваний код (навіть
частково завершено). Процес розробки
<https://uk.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%BB%D0%BE%D0%B3%D1%96%D1%8F_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F>
зазвичай передбачає коли та як буде відбуватися тестування. Наприклад, при
поетапному процесі, більшість тестів відбувається після визначення системних
вимог і тоді вони реалізуються в тестових програмах. На противагу цьому,
відповідно до вимог гнучкої розробки ПЗ
<https://uk.wikipedia.org/wiki/%D0%93%D0%BD%D1%83%D1%87%D0%BA%D0%B0_%D1%80%D0%BE%D0%B7%D1%80%D0%BE%D0%B1%D0%BA%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B7%D0%B0%D0%B1%D0%B5%D0%B7%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%BD%D1%8F>,
програмування і тестування часто відбувається одночасно.
Тестування - це одна з технік контролю якості, що включає в себе
· Планування робіт (Test Management)
· Проектування тестів (Test Design)
· Виконання тестування (Test Execution)
· Аналіз отриманих результатів (Test
Analysis).
Верифікація (Verification)
<https://uk.wikipedia.org/wiki/%D0%92%D0%B5%D1%80%D0%B8%D1%84%D1%96%D0%BA%D0%B0%D1%86%D1%96%D1%8F_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B7%D0%B0%D0%B1%D0%B5%D0%B7%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%BD%D1%8F>
- це процес оцінки системи або її компонентів з метою визначити чи
задовольняють результати поточного етапу розробки умовам, сформованим на
початку цього етапу. Тобто чи виконуються цілі, терміни, завдання з розробки
проекту, визначені на початку поточної фази. Валідація (Validation)
<https://uk.wikipedia.org/wiki/%D0%92%D0%B0%D0%BB%D1%96%D0%B4%D0%B0%D1%86%D1%96%D1%8F_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B7%D0%B0%D0%B1%D0%B5%D0%B7%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%BD%D1%8F>
- це визначення відповідності розроблюваного програмного забезпечення між
очікуваннями і потребами користувача, вимогам до системи.
План Тестування (Test Plan) - це документ, що описує весь обсяг робіт з
тестування, починаючи з опису об'єкта, стратегії, розкладу, критеріїв початку і
закінчення тестування, до необхідного в процесі роботи обладнання, спеціальних
знань, а також оцінки ризиків з варіантами їх вирішення.
Тест дизайн (Test Design) - це етап процесу тестування програмного
забезпечення, на якому проектуються і створюються тестові випадки (тест кейси),
відповідно до визначених раніше критеріями якості та цілями тестування.
Тестовий випадок (Test Case) - це документ, що описує сукупність
кроків, конкретних умов і параметрів, необхідних для перевірки реалізації
тестованої функції або її частини.
Баг/Дефект Репорт (Bug Report) - це документ, що описує ситуацію або
послідовність дій (Steps), що призвела до некоректної роботи об'єкта тестування
(Misbehavior), із зазначенням причин та очікуваного результату (Expected
Result).
Тестове Покриття (Test Coverage) - це одна з метрик оцінки якості
тестування, що представляє із себе щільність покриття тестами вимог або коду,
що виконується.
Деталізація Тест Кейсів (Test Case Specification) - це рівень
деталізації опису тестових кроків і необхідного результату, при якому
забезпечується розумне співвідношення часу проходження до тестового покриття.
Час Проходження Тест Кейса (Test Case Pass Time) - це час від початку
проходження кроків тест кейса до отримання результату тесту.
Отже перейдемо до безпосередньої перевірки нашого проекту на
працездатність.
Отже запускаємо нашу головну сторінку і розпоченаємо тестування.
Головна сторінка має наступний вигляд (див рис 5.1)
Рис.
5.1. Головна сторінка проекту
Як видно з зображення вище, ми можемо виконати наступні дії:
· Переглянути журнал
· Додати запис в таблиці
Виберемо пункт додати запис в таблицю учні і протестуємо
процес вводу даних (див. рис. 5.2)
Рис. 5.2. Введення даних
Після введення даних натискаємо кнопку Додати (див рис 5.3)
Рис. 5.3. Результат добавлення
Аналогічним чином здійснення внесення даних і в інші таблиці.
Після введення даних можна переглянути їх натиснувши на Переглянути журнал в
меню проекту (див рис 5.4)
Рис. 5.4. Перегляд журналу
Провівши тестування створеної програми можна зробити
висновок, що проект працює без помилок і забезпечує повноцінну роботу при
будь-яких вхідних даних. А також здійснює обробку даних без збоїв.
Висновок
В ході виконання завдання курсової роботи мною було
розроблено проект електронного журналу вчителя, що містить наступні дані про
навчальний процес учнів
учні
ім'я
прізвище
предмети
назва
уроки
Зв'язок з предметом
дата
тема
оцінки
Зв'язок з уроком
Зв'язок з учнем
Оцінка (значення)
Список використаної літератури
1. JavaScript: Подробное руководство (Definitive Guide)
. Ajax и PHP: Разработка динамических веб-приложений
. JavaScript. Библия пользователя
Додаток А
Код головної сторінки
<html>
<head>
<link rel="stylesheet" type="text/css"
href="style.css">
<script type="text/javascript"
src="jquery.js"></script>
<script type="text/javascript"
src="js.js"></script>
<script>showUser(str) {(str == "") {.getElementById("main").innerHTML
= "";;
} else { (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari= new
XMLHttpRequest();
} else {
// code for IE6, IE5= new
ActiveXObject("Microsoft.XMLHTTP");
}.onreadystatechange = function() {(xmlhttp.readyState == 4
&& xmlhttp.status == 200) {.getElementById("main").innerHTML
= xmlhttp.responseText;
}
};.open("GET","show.php",true);.send();
}
}
</script>
</head>
<body>
<div>
<center><table id="bodys">
<tr><td id="menu1"
valign="top">
<div>
<ul>
<li><a href="#"
onclick="showUser(this.value)">Переглянути журнал</a>
<li>Дадати записи
<ol>
<li><a href="учні.html">в таблицю
учні</a>
<li><a href="предмети.html">в таблицю
предмети</a>
<li><a href="уроки.html">в таблицю
уроки</a>
<li><a href="оцінки.html">в таблицю
оцінки</a>
</ol>
</ul>
</div>
</td><td id="main1"
valign="top">
<div>
</div>
</td></tr>
</table>
</center>
</body>
</html>
Додаток В
Код Форм
Форма учні
<html>
<head>
</head>
<body>
<div>
<form method="GET"
action="enteruch.php">
<table>
<tr><td>Введіть код
учня:</td><td><input type="text"
name="coduch"></td></tr>
<tr><td>Введіть імя учня:</td><td><input
type="text" name="iuch"></td></tr>
<tr><td>Введіть прізвище
учня:</td><td><input type="text"
name="puch"></td></tr>
</table>
<input type="submit"
value="Додати">
</div>
</body>
</html>
Форма уроки
<html>
<head>
</head>
<body>
<div>
<form method="GET"
action="enterur.php">
<table>
<tr><td>Введіть дату
урока:</td><td><input type="text"
name="dateur"></td></tr>
<tr><td>Введіть тему урока:</td><td><input
type="text" name="themeur"></td></tr>
<tr><td>Введіть код
предмета:</td><td><input type="text"
name="codpr"></td></tr>
</table>
<input type="submit"
value="Додати">
</div>
</body>
</html>
Форма предмети
<html>
<head>
</head>
<body>
<div>
<form method="GET"
action="enterpr.php">
<table>
<tr><td>Введіть код
предмета:</td><td><input type="text"
name="codpr"></td></tr>
<tr><td>Введіть назву
предмета:</td><td><input type="text"
name="namepr"></td></tr>
</table>
<input type="submit"
value="Додати">
</div>
</body>
</html>
Форма оцінки
<html>
<head>
</head>
<body>
<div>
<form method="GET"
action="enteroc.php">
<table>
<tr><td>Введіть код
урока:</td><td><input type="text"
name="codur"></td></tr>
<tr><td>Введіть код
учня:</td><td><input type="text"
name="coduch"></td></tr>
<tr><td>Введіть
оцінку:</td><td><input type="text"
name="ocin"></td></tr>
</table>
<input type="submit"
value="Додати">
</div>
</body>
</html>
Додаток С
Коди оброблювачів
Оброблювач форми учні
<?php
$dblocation = "localhost";
$dbname = "ticher";
$dbuser = "root";
$dbpasswd = "";
$dbcnx =
@mysql_connect($dblocation,$dbuser,$dbpasswd);(!$dbcnx)
{( "<P>На даний момент БД
недоступна</P>" );();
}(!@mysql_select_db($dbname, $dbcnx))
{( "<P>На даний момент БД
недоступна</P>" );();
}
$ath = mysql_query("INSERT INTO `учні`(`Імя`,
`Прізвище`, `Код`) VALUES
('".$_GET["iuch"]."','".$_GET["puch"]."','".$GET["coduch"]."')");($ath)
{
// Відправляєм відповідь"Дані вдало добавлені в
таблицю";
}
{"<p><b>Помилка:
".mysql_error()."</b><p>";();
}
?>
Обрблювач форми уроки
<?php
$dblocation = "localhost";
$dbname = "ticher";
$dbuser = "root";
$dbpasswd = "";
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);(!$dbcnx)
{( "<P>На даний момент БД
недоступна</P>" );();
}(!@mysql_select_db($dbname, $dbcnx))
{( "<P>На даний момент БД
недоступна</P>" );();
}
$ath = mysql_query("INSERT INTO `уроки`(`код`, `дата`,
`тема`, `код_предмета`) VALUES
('".$_GET["codur"]."','".$_GET["dateur"]."','".$GET["themeur"]."','".$GET["codpr"]."')");($ath)
// Відправляєм відповідь"Дані вдало добавлені в
таблицю";
}
{"<p><b>Помилка:
".mysql_error()."</b><p>";();
}
?>
Оброблювач форми предмети
<?php
$dblocation = "localhost";
$dbname = "ticher";
$dbuser = "root";
$dbpasswd = "";
$dbcnx =
@mysql_connect($dblocation,$dbuser,$dbpasswd);(!$dbcnx)
{( "<P>На даний момент БД
недоступна</P>" );();
}(!@mysql_select_db($dbname, $dbcnx))
{( "<P>На даний момент БД
недоступна</P>" );();
}
$ath = mysql_query("INSERT INTO `предмети`(`код`,
`Предмет`) VALUES
('".$_GET["codpr"]."','".$GET["namepr"]."')");($ath)
{
// Відправляєм відповідь"Дані вдало добавлені в
таблицю";
}
{"<p><b>Помилка:
".mysql_error()."</b><p>";();
}
?>
Оброблювач форми оцінки
<?php
$dblocation = "localhost";
$dbname = "ticher";
$dbuser = "root";
$dbpasswd = "";
$dbcnx =
@mysql_connect($dblocation,$dbuser,$dbpasswd);(!$dbcnx)
{( "<P>На даний момент БД
недоступна</P>" );();
}(!@mysql_select_db($dbname, $dbcnx))
{( "<P>На даний момент БД
недоступна</P>" );();
}
$ath = mysql_query("INSERT INTO `оцінки`(`код_учня`,
`код_урока`, `оцінка`) VALUES
('".$_GET["coduch"]."','".$_GET["codur"]."','".$GET["ocin"]."')");($ath)
{
// Відправляєм відповідь"Дані вдало добавлені в
таблицю";
}
{"<p><b>Помилка:
".mysql_error()."</b><p>";();
}
?>
Додаток D
Код для взаємодії між сторінками
$(document).ready(function() {hash =
window.location.hash.substr(1);href = $('#menu li a').each(function(){href =
$(this).attr('href');(hash==href.substr(0,href.length-5)){toLoad = hash+'.html
#main';
$('#main').load(toLoad)
}
});
$('#menu li a').click(function(){toLoad =
$(this).attr('href')+' #main';
$('#main').hide('fast',loadContent);
$('#load').remove();
$('#wrapper').append('<span
id="load">LOADING...</span>');
$('#load').fadeIn('normal');.location.hash =
$(this).attr('href').substr(0,$(this).attr('href').length-5);loadContent() {
$('#main').load(toLoad,'',showNewContent())
}showNewContent() {
$('#main').show('normal',hideLoader());
}hideLoader() {
$('#load').fadeOut('normal');
}false;
});
});
електронний гіпертекстовий програмування
Додаток F
Код БД
-- phpMyAdmin SQL Dump
- version 3.5.1
- http://www.phpmyadmin.net
-
- Хост: 127.0.0.1
- Время создания: Фев 11 2016 г., 19:27
- Версия сервера: 5.5.25
- Версия PHP:
5.3.13SQL_MODE="NO_AUTO_VALUE_ON_ZERO";time_zone =
"+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT
*/;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION
*/;
/*!40101 SET NAMES utf8 */;
-
- База данных: `ticher`
-
- --------------------------------------------------------
-
- Структура таблицы `оцінки`
-TABLE IF NOT EXISTS `оцінки` (
`код_учня` int(11) NOT NULL,
`код_урока` int(11) NOT NULL,
`оцінка` int(11) NOT NULL,`код_учня`
(`код_учня`,`код_урока`),`код_урока` (`код_урока`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
- Дамп данных таблицы `оцінки`
-INTO `оцінки` (`код_учня`, `код_урока`, `оцінка`) VALUES
(1, 1, 12),
(2, 2, 10);
- --------------------------------------------------------
-
- Структура таблицы `предмети`
-TABLE IF NOT EXISTS `предмети` (
`код` int(11) NOT NULL,
`Предмет` varchar(15) NOT NULL,KEY (`код`),KEY `Предмет`
(`Предмет`),KEY `Предмет_3` (`Предмет`),KEY `Предмет_4` (`Предмет`),`Предмет_2`
(`Предмет`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
- Дамп данных таблицы `предмети`
-INTO `предмети` (`код`, `Предмет`) VALUES
(3, ''),
(2, 'Алгебра'),
(1, 'Математика');
- --------------------------------------------------------
-
- Структура таблицы `уроки`
-TABLE IF NOT EXISTS `уроки` (
`код` int(11) NOT NULL,
`дата` date NOT NULL,
`тема` longtext CHARACTER SET cp1251,
`код_предмета` int(11) NOT NULL,KEY (`код`),`код_предмета`
(`код_предмета`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
- Дамп данных таблицы `уроки`
-INTO `уроки` (`код`, `дата`, `тема`, `код_предмета`) VALUES
(1, '2016-02-08', 'Рекурсії', 1),
(2, '2016-02-10', 'Матриці', 2);
- --------------------------------------------------------
-
- Структура таблицы `учні`
-TABLE IF NOT EXISTS `учні` (
`Імя` varchar(10) NOT NULL,
`Прізвище` varchar(15) NOT NULL,
`Код` int(11) NOT NULL,KEY (`Код`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
- Дамп данных таблицы `учні`
-INTO `учні` (`Імя`, `Прізвище`, `Код`) VALUES
('Андрій', 'Степанюк', 0),
('Андрій', 'Степанюк', 1),
('Степан', 'Гаврилюк', 2);
-
- Ограничения внешнего ключа сохраненных таблиц
-
-
- Ограничения внешнего ключа таблицы `оцінки`
-TABLE `оцінки`CONSTRAINT `@u0@i1@y1@t0@q0@o0_ibfk_1` FOREIGN
KEY (`код_учня`) REFERENCES `учні` (`Код`) ON DELETE CASCADE ON UPDATE
CASCADE,CONSTRAINT `@u0@i1@y1@t0@q0@o0_ibfk_2` FOREIGN KEY (`код_урока`)
REFERENCES `уроки` (`код`) ON DELETE CASCADE ON UPDATE CASCADE;
-
- Ограничения внешнего ключа таблицы `уроки`
-TABLE `уроки`CONSTRAINT `@z0@w0@u0@q0@o0_ibfk_1` FOREIGN KEY
(`код_предмета`) REFERENCES `предмети` (`код`) ON DELETE CASCADE ON UPDATE
CASCADE;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT
*/;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS
*/;