Гнучка система інформаційної підтримки підвищення кваліфікації персоналу ДП № 9

Створення гнучкої клієнт-серверної системи інформаційної підтримки підвищення кваліфікації персоналу ДП № 9 з застосуванням мови програмування PHP, системи керування базами даних MySQL. Розробка алгоритмів, програмна реалізація основних процедур системи.

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

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

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

Значним фізичним фактором є мікроклімат робочої зони, особливо температура й вологість повітря. Людина постійно перебуває в процесі теплової взаємодії з навколишнім середовищем. Дослідження показують, що висока температура в сполученні з високою вологістю повітря дуже впливає на працездатність користувача. Збільшується час реакції оператора ЕОМ, порушується координація рухів, різко збільшується число помилкових дій. Висока температура на робочому місці оператора негативно впливає на психологічні функції: знижується увага, зменшується обсяг оперативної пам'яті, знижується здатність до асоціацій.

У конторських приміщеннях найчастіше буває знижена вологість повітря. Взимку через системи центрального опалення, а влітку - через застосування кондиціонерів і вентиляторів. Знижена вологість повітря негативно позначається на стані шкірного покриву людини: шкіра втрачає вологу, стає сухою і шорсткою, особисті захворювання шкіри. При зниженій вологості відчувається сухість у роті, з'являється спрага.

Температура, відносна вологість і швидкість руху повітря впливають на теплообмін і необхідно враховувати їхній комплексний вплив. Порушення теплообміну викликає теплову гіпертермію, або перегрів. Температура тіла у важких випадках досягає вище 40-41 С, наступає сильне потовиділення, значно частішає пульс, подих, з'являється шум у вухах.

На робочому місці в приміщенні ОЦ не підтримується оптимальна температура. У зимовий час температура повітря 18-19 С, а в літню пору часто перевищує 25 С. Рідко проводиться належне прибирання. Тому підвищено рівень запиленості. Приміщення нерегулярно провітрюється.

Оптимальні норми температури, відносній вологості й швидкості руху повітря в робочій зоні виробничого приміщення відповідно до ДЕРЖСТАНДАРТ 12.1.005-88 наведені в таблиці 7.1.

Таблиця 7.1

Оптимальні норми температури, відносній вологості й швидкості руху повітря.

Період

року

Категорія праці

Температура, С

Відносна вологість повітря, %

Швидкість руху повітря, не більше м/с

Холодний і перехідний

легка

20-23

60-40

0,2

Теплий

легка

22-25

60-40

0,2

Наше приміщення є І категорії (виконуються легкі фізичні роботи), тому повинні дотримуватися наступні вимоги:

оптимальна температура повітря - 22°С (припустима - 20-25°С), оптимальна відносна вологість - 40 - 60% (припустима - не більше 75%), швидкість руху повітря не більше 0.2м/с.

Для створення й автоматичної підтримки в приміщені незалежно від зовнішніх умов оптимальних значень температури, вологості, чистоти й швидкості руху повітря, у холодну пору року використається водяне опалення, у теплу пору року застосовується кондиціювання повітря. Кондиціонер являє собою вентиляційну установку, що за допомогою приладів автоматичного регулювання підтримує в приміщенні задані параметри повітряного середовища.

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

При організації освітлення необхідно мати на увазі, що збільшення рівня освітленості приводить до зменшення контрастності зображення на дисплеї. У таких випадках вибирають джерела загального освітлення по їхній яскравості й спектральному складі випромінювання.

Загальна чутливість зорової системи збільшується зі збільшенням рівня освітленості в приміщенні, але лише доти, поки збільшення освітленості не приводить до значного зменшення контрасту.

Для визначення прийнятного рівня освітленості в приміщенні необхідно:

· визначити необхідний для операторів рівень освітленості лицьових панелей дисплеїв зовнішніми джерелами світла;

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

Рекомендовані співвідношення яскравості у полі зору наступні:

· між екраном і документом 1: 5 - 1: 10;

· між екраном і поверхнею робочого стола 1: 5;

· між екраном і клавіатурою, а також між клавіатурою й документом - не більше 1: 3;

· між екраном і навколишніми поверхнями 1: 3 - 1: 10.

Місцеве освітлення на робочому місці оператора забезпечується світильником, установлюваним безпосередньо на робочому столі. Він має непросвічуючий відбивач і розташовуватися нижче лінії зору оператора, щоб не викликати осліплення.

Робоче місце перебуває поруч із вікном, тому екран монітора розташовується під прямим кутом до нього (виключаються відблиски на екрані).

Щоб уникнути відбиттів, які можуть знизити чіткість сприйняття, розташовуємо робоче місце не прямо під джерелом верхнього світла, а небагато осторонь.

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

У таблиці 7.2 наведені норми проектування природного й штучного освітлення для третього розряду зорової роботи з СНіП ІІ-4-79.

Таблиця 7.2

Норми природного й штучного висвітлення.

Характеристика зорової

роботи

Максимальний обсяг

розрізнення

Штучне

Освітлення, лк

Природне освітлення, КЕО %

Комбіноване

загальне

верхнє

бокове

дуже високої точності

0,15-0,3

1000

300

7

2,5

Незадовільне освітлення стомлює не тільки зір, але й викликає стомлення всього організму в цілому. Неправильне висвітлення часто є причиною травматизму (погано освітлені небезпечні зони, що зліплять лампи й відблиски від них). Різкі тіні погіршують або викликають повну втрату орієнтації працюючих, а також викликають втрату чутливості очних нервів, що приводить до різкого погіршення зору.

Крім освітленості, великий вплив на діяльність оператора робить колір фарбування приміщення й спектральних характеристик використовуваного світла. Рекомендується, щоб потовк відбивав 80-90%, стіни - 50-60%, підлога - 15-30% падаючого на них світла. Тому приміщення оператора пофарбоване в синій колір, що ставиться до квітів "холодного" тону (синій, зелений, фіолетовий), що створює враження спокою й викликає в людини відчуття прохолоді.

З фізіологічної точки зору шумом є всякий небажаний, неприємний для сприйняття людини шум. Шум погіршує умови праці, впливаючи на організм людини. При тривалому впливі шуму на організм людини відбуваються небажані явища:

· знижується гострота зору, слуху;

· підвищується кров'яний тиск;

· знижується увага.

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

Характеристикою постійного шуму на робочих місцях є рівні звукового тиску в Дб в октавних смугах зі середньо геометричними частотами 31.5, 63, 125, 250, 500, 1000, 2000, 4000, 8000 Гц. Припустимим рівнем звукового тиску в октавних смугах частот, рівні звуку й еквівалентні рівні звуку на робочому місці варто приймати дані з таблиці 7.3.

Таблиця 7.3

Припустимі рівні звукового тиску.

Робоче місце

Рівні звукового тиску в дБ, в октавних смугах із середньо геометричними

частотами в Гц

Рівні звуку в еквівалентних рівнях звуку в дБА

63

125

250

500

1000

2000

4000

8000

операторів, програмістів

71

61

54

49

45

42

41

38

50

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

· роду й величини напруги й струму;

· частоти електричного струму;

· шляхи проходження струму через тіло людини;

· тривалості впливу на організм людини;

· умов зовнішнього середовища.

Норми на припустимі струми й напруги дотику в електроустановках повинні встановлюватися відповідно до гранично припустимих рівнів впливу на людину струмів і напруг дотику й затверджуватися у встановленому порядку за ДСТ 12.1.038-82 відповідно до таблиці 7.4.

Таблиця 7.4

Гранично припустимі рівні впливу струмів і напруг.

Рід струму

Напруга U, В

Струм I, мА

не більше

Змінний струм, 50 Гц

2

0,3

Напруга дотику й струми наведені при тривалості впливу не більше 10 хв. у добу й установлені, виходячи з реакції відчуття.

Дія електричного струму на живу тканину на відміну від інших матеріальних факторів носить своєрідний і різнобічний характер. Проходячи через організм, електричний струм робить наступні дії:

· термічне;

· електролітичне;

· біологічне.

Перше проявляється в нагріванні тканин, аж до опіків окремих ділянок тіла, перегріву кровоносних посудин і крові, що викликає в них серйозні функціональні порушення.

Друге викликає розкладання крові й плазми, значні порушення їхніх фізико-хімічних складів і тканин у цілому.

Третє виражається в роздратуванні й порушенні живих тканин організму, що може супроводжуватися мимовільними судорожними скороченнями м'язів, у тому числі м'язів серця й легенів. При цьому можуть виникнути різні порушення в організмі, включаючи порушення й навіть повне припинення діяльності серця й легенів, а також механічних ушкоджень тканин.

Кожне із цих дій струму може привести до електротравми. Електротравми діляться на два види: місцеві та електроудари.

Електромагнітним випромінюванням називається випромінювання, прямо або побічно зухвалу іонізацію середовища. Контакт із електромагнітними випромінюваннями становить серйозну небезпеку для людини.

Спектр випромінювання комп'ютерного монітора містить у собі рентгенівські, ультрафіолетову й інфрачервону області, а також широкий діапазон електромагнітних хвиль інших частот. У ряді експериментів було виявлено, що електромагнітні поля із частотою 60 Гц (що виникають навколо ліній електропередач, відео дисплеїв і навіть внутрішньої електропроводки) можуть ініціювати біологічні зрушення (аж до порушення синтезу ДНК) у клітках тварин. На відміну від рентгенівських променів електромагнітні хвилі мають незвичайну властивість: небезпека їхнього впливу зовсім не обов'язково зменшується при зниженні інтенсивності опромінення, певні електромагнітні поля діють на клітки лише при малих інтенсивністях випромінювання або на конкретних частотах - в "вікнах прозорості". Джерело високої напруги комп'ютера - рядковий трансформатор - міститься в задній або бічній частині термінала, рівень випромінювання з боку задньої панелі дисплея вище, причому стінки корпуса не екранують випромінювання. Тому користувач повинен перебувати не ближче чим на 1.2 м від задніх або бічних поверхонь сусідніх терміналів.

За результатами виміру електромагнітних випромінювань установлено, що максимальна напруженість електромагнітного поля на кожусі відео термінала становить 3.6 В/м, однак у місці знаходження оператора її величина відповідає фоновому рівню (0.2-0.5 В/м); градієнт електростатичного поля на відстані 0.5м менш 300 В/см є в межах припустимого.

На відстані 5 див від екрана інтенсивність електромагнітного випромінювання становить 28-64 В/м залежно від типу приладу. Ці значення знижуються до 0.3-2.4 В/м на відстані 30 см від екрана (мінімальна відстань очей оператора до площини екрана).

Електризація - це комплекс фізичних і хімічних процесів, що приводять до поділу в просторі зарядів протилежних знаків або до нагромадження зарядів одного знака. ЕОМ може бути джерелом статичної електрики. Електризується поверхня дисплея, при дотику до якого може виникнути електрична іскра. Шкідливий вплив статичної електричної електрики позначається не тільки при безпосередньому контакті із зарядом, але й за рахунок дії електричного поля, що виникає навколо зарядженої поверхні.

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

При статичній електризації напруга щодо землі досягає десятків, а іноді й сотень тисяч вольт. Значення струмів при цих явищах становлять, як правило, частки мікроампера (0.0001-1мА). Людина починає відчувати струм величиною 0.6-1.5мА. За ДСТ 12.1.038-82 напруга електричного струму не повинне перевищувати 42В у приміщеннях без підвищеної небезпеки, якими є приміщення ОЦ.

7.2 Заходи щодо нормалізації небезпечних і шкідливих факторів

При захисті від зовнішнього випромінювання основні зусилля повинні бути спрямовані на попередження переопромінення персоналу шляхом збільшення відстані між оператором і джерелом, скорочення тривалості роботи в поле випромінювання, екранування джерела випромінювання.

При вивченні операторської діяльності особлива увага приділяється виявленню й вивченню факторів, що впливають на її ефективність. До таких факторів ставляться психофізіологічні фактори.

Психофізіологічні фактори діляться на наступні групи:

· фізичні перевантаження (статичні й динамічні);

· нервово-психічні перевантаження (розумова перенапруга, монотонність праці, перенапруга аналізаторів, емоційні перевантаження).

При розумовій роботі змінюються обмінні процеси, не вище 10-15%. При розумовій роботі потрібно значна нервово-емоційна напруга, при цьому можливі значні зміни кров'яного тиску, пульсу, підвищення рівня цукру в крові. Такий характер змін показовий для працівників різних пультів керування.

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

Зниження працездатності в результаті стомлення. Розрізняють швидке стомлення й повільне. Швидке стомлення наступає в результаті великої фізичної роботи й напруги. Повільне стомлення характеризується зниженням працездатності в результаті надмірно тривалої й монотонної роботи.

Хронічна перевтома визначається наступними ознаками:

· відчуття перевтоми до початку роботи;

· підвищеною дратівливістю;

· зниженням інтересу до роботи;

· зниженням апетиту;

· втратою ваги;

· порушенням сну;

· кошмарними снами.

При хронічній стомлюваності можливі:

· нудота;

· тремор витягнутих рук;

· знижений артеріальний тиск.

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

У зв'язку з тим, що природне освітлення слабке, на робочому місці застосовується також штучне освітлення. Далі буде зроблений розрахунок нормального штучного освітлення.

Розміщення світильників визначається наступними розмірами:

Н=3 м. - висота приміщення

hc=0,25 м. - відстань світильників від перекриття

hп=H - hc =3 - 0,25=2,75 м. - висота світильників над підлогою

hp=висота розрахункової поверхні=0,7 м (для приміщень, пов'язаних з роботою ПЕОМ)

h=hп - hp =2,75 - 0,7=2,05 - розрахункова висота.

Світильника типу ЛДР (2х40 Вт). Довжина 1,24 м, ширина 0,27 м, висота 0,10 м.

L - відстань між сусідніми світильниками (рядами люмінесцентних світильників), Lа (по довжині приміщення) =1,76 м, Lв (по ширині приміщення) =3 м.

l - відстань від крайніх світильників або рядів світильників до стіни, l=0,3 - 0,5L.

lа=0,5La, lв=0,3Lв

la=0,88 м., lв=0,73 м.

Світильники з люмінесцентними лампами в приміщеннях для роботи рекомендують установлювати рядами.

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

Ф=Е *r *S *z / N *h,

де Е - задана мінімальна освітленість=300 лк., тому що розряд зорових робіт=3, r - коефіцієнт запасу=1,3 (для приміщень, пов'язаних з роботою ПЕОМ), S - освітлювана площа=30 м2. z - характеризує нерівномірне освітлення, z=Еср / Еmіn - залежить від відношення l=L/h, la=La/h=0,6, lв=Lв/h=1,5. Т.к. l перевищують допустимі значення, то z=1,1 (для люмінесцентних ламп).

N - число світильників, намічуване до розрахунку. Спочатку намічується число рядів n, що підставляється замість N. Тоді Ф - потік ламп одного ряду.

N=Ф/Ф1,

де Ф1 - потік ламп у кожному світильнику.

h - коефіцієнт використання. Для його знаходження вибирають індекс приміщення і і приблизно оцінюються коефіцієнти відбиття поверхонь приміщення rпот. (стелі) =70%, rст. (стіни) =50%, rр. (підлоги) =30%.

Ф=300 *1,3 *25 *1,1/2 *0,3=21450 лм.

7.3 Пожежна безпека

Відповідно до ОНТП 24-86 будинок, де встановлені комп'ютери за вибухопожежною та пожежною небезпекою відноситься до категорії В, за правилами улаштування електроустановок (ПУЕ) - клас П1, оскільки тут присутні горючі (книги, документи, меблі, оргтехніка й т.д.) і тяжкосгоряючі речовини (сейфи, різне встаткування й т.д.), які при взаємодії з вогнем можуть горіти без вибуху.

По конструктивних характеристиках будинок можна віднести до будинків з несучими конструкціями, що обгороджують, із природних або штучних кам'яних матеріалів, бетону або залізобетону, де для перекриттів допускається використання дерев'яних конструкцій, захищених штукатуркою або тяжкосгоряючі листовими, а також плитними матеріалами. Отже, ступінь вогнестійкості будинку можна визначити як третю (ІІІ).

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

Причинами виникнення пожежі можуть бути:

несправності електропроводки, розеток і вимикачів які можуть привести до короткого замикання або пробою ізоляції;

використання ушкоджених (несправних) електроприладів;

використання в приміщенні електронагрівальних приладів з відкритими нагрівальними елементами;

виникнення пожежі внаслідок влучення блискавки в будинок;

загоряння будинку внаслідок зовнішніх впливів;

неакуратний обіг з вогнем і недотримання заходів пожежної безпеки.

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

Для профілактики пожежі надзвичайно важлива правильна оцінка пожежонебезпеки будинку, визначення небезпечних факторів і обґрунтування способів і засобів пожежопопередження й захисту.

Одне з умов забезпечення пожежної безпеки - ліквідація можливих джерел запалення. У приміщені джерелами запалення можуть бути:

несправне електроустаткування, несправності в електропроводці, електричних розетках і вимикачах. Для виключення виникнення пожежі із цих причин необхідно вчасно виявляти й усувати несправності, проводити плановий огляд і вчасно усувати всі несправності;

несправні електроприлади. Необхідні міри для виключення пожежі містять у собі своєчасний ремонт електроприладів, якісне виправлення поломок, не використання несправних електроприладів;

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

коротке замикання в електропроводці. З метою зменшення ймовірності виникнення пожежі внаслідок короткого замикання необхідно, щоб електропроводка була схованою. Щоб не було перевантаження електричної мережі, яке може призвести до також короткого замикання, не слід використовувати трійники не розраховані на одиницю потужності однієї розетки (наприклад, одна розетка розрахована на звичайний трійник у три розетки). Підключення комп'ютерів до мережі необхідно робити через розподільні щити, що дозволяють використати автоматичне відключення навантаження при аварії.

влучення в будинок блискавки. У літній період під час грози можливе влучення блискавки внаслідок чого можливий пожежа. Щоб уникнути цього я рекомендую встановити на даху будинку блискавковідвід;

недотримання мір пожежної безпеки й паління в приміщенні також може спричинити пожежу. Для усунення загоряння в результаті паління в приміщенні пропоную категорично заборонити паління, а дозволити тільки в строго відведеному для цього місці.

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

У випадку виникнення пожежі необхідно відключити електроживлення, викликати по телефону пожежну команду, евакуювати людей із приміщення відповідно до плану евакуації, і приступитися до ліквідації пожежі вогнегасниками. При наявності невеликого вогнища, полум'я можна скористатися підручними засобами з метою припинення доступу повітря до об'єкта загоряння.

У випадку загоряннях електропристроїв можуть перебувати під напругою, то використати воду й піну для гасіння пожежі неприпустимо, оскільки це може привести до електричних травм. Іншою причиною, по якій небажане використання води, є те, що на деякі елементи ЕОМ неприпустиме влучення вологи. Тому для гасіння пожеж у розглянутому приміщенні можна використати або порошкові склади, або установки вуглекислотного гасіння. Але оскільки останні призначені тільки для гасіння невеликих вогнищ загоряння, то область їхнього застосування обмежена. Тому для гасіння пожеж у цьому випадку застосовуються порошкові склади, тому що вони мають наступні властивості: діелектрики, практично не токсичні, не роблять корозійного впливу на метали, не руйнують діелектричні лаки.

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

Автоматична установка й установка з механічним включенням відрізняється тільки засобами відкриття запірного крана. В автоматичних установках використаються різні датчики виявлення пожежі (по диму, тепловому й світловому випромінюванню), а в механічних спеціальні тросові системи з легкоплавкими замками. У цей час освоєні модульні порошкові установки ОПА-50, ОПА-100, УАПП.

У розглянутому приміщенні застосуємо сповіщувачі типу ИП 104, які спрацьовують при перевищенні температури в приміщенні +60 0С. І сповіщувачі типу ИП 212, які спрацьовують при скупченні диму в приміщенні.

Для профілактики пожежної безпеки організуємо навчання виробничого персоналу (обов'язковий інструктаж із правил пожежної безпеки не рідше одного разу в рік), видання необхідних інструкцій з доведенням їх до кожного працівника установи, випуск і вивіска плакатів із правилами пожежної безпеки й правилами поведінки при пожежі. Також необхідна наявність плакатів, що інформують людей про розташування аварійних виходів з будинку у випадку виникнення пожежі, плану евакуації людей в аварійних ситуаціях.

Висновки

У процесі виконання дипломної роботи було розроблено клієнт-серверну систему інформаційної підтримки підвищення кваліфікації персоналу ДП№9. Розроблена система дозволяє:

· покращити ефективність роботи;

· підвищити оперативність обробки інформації;

· зменшити обсяг паперових носіїв;

· підвищити оперативність та точність роботи.

Щоб реалізувати поставлену задачу потрібно було обрати оптимальну архітектуру та мови програмування. Для вирішення цієї задачі найбільш підходить PHP. Ця мова програмування має великі можливості щодо створення програмного забезпечення та дозволяє створювати різноманітні програмні продукти. Дана програма була створена за допомогою саме цієї мови програмування, що дозволило зробити зручний інтерфейс і автоматизувати виконання дій.

Архітектура клієнт-сервер є унікальною системою, в якій кожний елемент може бути заміненим під час розробки, або на більш пізніх етапах, це створює додаткові умови для більш гнучкої розробки.

Для візуалізації використовувалась мова HTML та доповнення до неї CSS, що дало можливість надати розробці більш сучасного вигляду і функціоналу. А для більшої інтерактивності клієнтської частини було використано мову програмування Java-Script.

Список літератури

1. Бадд Э., Молл К., Коллизон С. Мастерская CSS: профессиональное применение Web-стандартов - М.: Вильямс, 2007 г.

2. Вагнер Р., Вайк А. JavaScript. Энциклопедия пользователя - ДиаСофт, 2001 г.

3. Веллингтон Б., Томпсон С. Разработка web-приложений с помощью php и MySQL - Вильямс", 2005 г.

4. Гудман Дж. JavaScript и DHTML. Сборник рецептов - Питер 2004 г.

5. Дари Х., Бринзаре К. AJAX и PHP. Разработка динамических приложений - Символ, 2006 г.

6. Дунаев В. Самоучитель JavaScript.2-е издание - ДиаСофт, 2001 г.

7. Коггзолл Дж. PHP 5. Полное руководство - Диалектика, 2006 г.

8. Котеров Д.В., Костарев А.Ф., PHP 5 В Подлиннике - БХВ-Петербург, 2006 г.

9. Кузнецов А.В., Симдянов К.С., Голышев П.А. PHP5. Практика создания web-сайтов - БХВ-Петербург, 2005 р.

10. Кухарчик А.Р. PHP: обучение на примерах - Новое знание, 2004г.

11. Мадрел Тео. Разработка пользовательского интерфейса/ Пер. с англ. - М.: ДМК, 2001.

12. Мэрдок К. JavaScript. Наглядный курс создания динамических Web-страниц - СПб: Питер, 2001 г.

13. Ратшиллер Т., Геркен Т. PHP4: разработка Web-приложений. - СПб: Питер, 2001 г.

14. Світличний О.О., Плотницький С.В. Основи геоінформатики. Технології "клієнт-сервер" і Internet-технології в ГІС. Розподілені бази даних - М.: АСТ-ПРЕСС Кнрга, 2001 р.

15. Соколов С. А.html и CSS в примерах, типовых решениях и задачах. Профессиональная работа. - М.: Вильямс, 2007 г.

16. Спейнауэр С., Куэрсиа В. Справочник Web-мастера. - К: BHV, 1997 г.

17. Титтел Э., Бурмейстер М.html 4 для "чайников" - 5-е изд. - М.: Диалектика, 2006 г.

18. Томсон Л., Веллинг Л. Разработка Web-приложений на PHP и MySQL. - К.: ДиаСофт, 2001 г.

19. Уикли.Р. Освой самостоятельно CSS.10 минут на урок - М.: Вильямс, 2006 г.

20. Харрис Э. PHP/MySQL для начинающих - Кудиц-образ 2005 г.

21. Хилайер С., Мизик Д. Программирование Active Server Pages. - М: Русская редакция, 1999 г.

22. Холзнер С. Perl: специальный справочник. - СПб: "Питер". 2000г.

23. Шмитт. K. CSS. Рецепты программирования - СПб.: БХВ-Петербург, 2007 г.

24. Эрик А. Мейер. CSS-каскадные таблицы стилей: подробное руководство - М.: Символ, 2006 г.

25. Яргер Р., Риз Дж., Кинг Т. MySQL и mSQL. Базы данных для небольших предприятий и Интернета. - СПб: Символ-Плюс, 2000 г.

26. j@alba.ua - адрес автора

27. dev. w3.org/html5/spec/Overview.html // Новая спецификация языка HTML

28. www.cross-browser.com // Документы по особенностям Java-Script

29. www.javascript.ru // Справочник по Java-script

30. www.nsc.ru/docs/html/html-primer.html // Документация по HTML

31. www.php.org // Справочник по PHP

32. www.rsdn.ru // Документация и справочные руководства

33. www.w3.org/TR/REC-html40-971218/ // Оригинальная документация

Додатки

Додаток А

Вихідний код системи

users. php

<? php

session_start ();

if (! $_SESSION ['user_id']) {

header ("Location: login. php");

exit ();

}

if ($_SESSION ['user_id']! = 1) {

header ("Location: index. php");

exit ();

}

mysql_connect ("localhost","root","");

mysql_query ("SET character_set_client = cp1251");

mysql_query ("SET character_set_connection = cp1251");

mysql_query ("SET character_set_results = cp1251");

mysql_select_db ("tests");

if ($_REQUEST ['do'] == "add_user") {

if ($_REQUEST ['name'] && $_REQUEST ['tabnum']) {

mysql_query ("INSERT into users set name='$_REQUEST [name] ', tabnum='$_REQUEST [tabnum] ', date=NOW ()");

header ("Location: users. php");

exit ();

}

}

if ($_REQUEST ['gen']) {

$chars="qazxswedcvfrtgbnhyujmkiolp1234567890QAZXSWEDCVFRTGBNHYUJMKIOLP";

$loginmax=6;

$passmax=12;

$size=StrLen ($chars) - 1;

$setlogin = null;

$setpass = null;

while ($loginmax--) $setlogin. =$chars [rand (0,$size)];

while ($passmax--) $setpass. =$chars [rand (0,$size)];

mysql_query ("UPDATE users set login='$setlogin', pass='$setpass', testid='$_REQUEST [testid] ' where id='$_REQUEST [gen] '");

header ("Location: users. php");

exit ();

}

? >

<! DOCTYPE html PUBLIC "- // W3C // DTD XHTML 1.0 Transitional // EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional. dtd">

<html>

<head>

<title>.: users:. </title>

<script type="text/javascript">

function switch_view (mynode) {

if (mynode. nextSibling. style. display == "" || mynode. nextSibling. style. display == "none") {

mynode. nextSibling. style. display = "block";

} else {

mynode. nextSibling. style. display = "none";

}

}

</script>

</head>

<body style="margin: 0px 0px; padding: 0px 0px; ">

<div style="margin: 0px auto; width: 980px; padding: 0px 0px; ">

<div style="padding: 20px 20px; margin: 0px 0px; background-color: #cccccc; color: #333333; font-size: 32px; text-align: center; ">

Гибкая система информационной поддержки повышения квалификации персонала ДП-9

</div>

<div style="padding: 10px 10px; margin: 0px 0px; background-color: #333333; color: #cccccc; font-size: 12px; text-align: left; ">

Вы вошли как пользователь <b><? php echo $_SESSION ['user_name'];? ></b> [<span style="cursor: pointer; " onclick="javascript: window. location = 'logout. php'; ">выход</span>] <span style="width: 300px; float: right; cursor: pointer; text-align: right; " onclick="javascript: window. location = 'generator. php'; ">{ Создание тестов }</span></div>

<div style="padding: 10px 10px; margin: 0px 0px; background-color: #eeeeee; color: #333333; text-align: left; ">

<? php

$result = mysql_query ("SELECT u. *, (SELECT testname FROM tests WHERE id=`u`. `testid`) as teeee from users as u where id! =1 order by id");

echo "<ol>";

while ($users = mysql_fetch_array ($result, MYSQL_NUM)) {

$testsdone = mysql_query ("SELECT ts. *, t. testname from testsessions as ts,tests as t where ts. testid=t. id AND ts. userid=$users [0] ");

echo "<li><span style=\"cursor: pointer; \">$users [3] </span> &#151; $users [4] [$users [5]] ";

if ($users [1] == "" && $users [2] == "") {

? >

<form action="?" method="POST" style="display: inline; ">

<input type="hidden" name="gen" value="<? php echo $users [0];? >">

<select name="testid">

<? php

$result1 = mysql_query ("SELECT * from tests order by id");

while ($tests = mysql_fetch_array ($result1, MYSQL_NUM)) {

echo "<option value=\"$tests [0] \">$tests [1] </option>";

}

? >

</select>

<input type="submit" value="GENERATE" />

</form>

<? php

} else {

echo " {<tt>". $users [1]. "&#151;". $users [2]. "</tt>} &gt; &gt; &gt; $users [7] ";

}

while ($qqq = mysql_fetch_array ($testsdone)) {

if ($qqq [4]) {$tempstring = "Тест пройден"; } else {$tempstring = "Тест провален"; }

echo "<p>$qqq [3] $qqq [5] $tempstring</p></li>";

}

}

? >

<li><span style="cursor: pointer; " onclick="switch_view (this)"> [+] </span><div style="display: none; ">

<form action="?" method="POST">

<input type="hidden" name="do" value="add_user">

<label>ФИО <input type="text" name="name"></label>

<label>Табельный номер <input type="text" name="tabnum"></label>

<input type="submit" value="Добавить пользователя">

</form></div>

</li>

<? php

echo "</ol>";

? >

</div>

</div>

</body>

</html>

logout. php

<? php

session_start ();

session_destroy ();

header ("location: index. php");

exit ();

? >

login. php

<? php

session_start ();

if ($_SESSION ['user_id']) {

header ("Location: index. php");

exit;

}

if ($_POST ['login'] && $_POST ['pass']) {

mysql_connect ("localhost","root","");

mysql_query ("SET character_set_client = cp1251");

mysql_query ("SET character_set_connection = cp1251");

mysql_query ("SET character_set_results = cp1251");

mysql_select_db ("tests");

@$result = mysql_query ("SELECT id,name,testid from users where login='". $_POST ['login']. "' and pass='". $_POST ['pass']. "'");

@$user_id = mysql_result ($result,0,"id");

@$user_name = mysql_result ($result,0,"name");

@$testid = mysql_result ($result, 0, "testid");

if ($user_id) {

$_SESSION ['user_id'] = $user_id;

$_SESSION ['user_name'] = $user_name;

$_SESSION ['testid'] = $testid;

header ("Location: index. php");

exit;

}else{

$msg="Логин или пароль заданы неверно!";

}

}

? >

<! DOCTYPE html PUBLIC "- // W3C // DTD XHTML 1.0 Transitional // EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional. dtd">

<html>

<head>

<title>.: login:. </title>

</head>

<body style="margin: 0px 0px; padding: 0px 0px; ">

<div style="margin: 0px auto; width: 550px; background-color: #cccccc; padding: 5px; text-align: center; ">

<form action="?" method="POST" style="margin: 0px 0px; padding: 0px 0px; ">

<label style="margin: 0px 10px; ">Login: <input type="text" name="login" value="<? php echo $_POST ['login'];? >"></label><label style="margin: 0px 10px; ">Password: <input type="password" name="pass"></label><input type="submit" value="enter">

</form>

<font color="red" size="-1"><? php echo $msg;? ></font>

</div>

</body>

</html>

index. php

<? php

session_start ();

if (! $_SESSION ['user_id']) {

header ("Location: login. php");

exit ();

}

mysql_connect ("localhost","root","");

mysql_query ("SET character_set_client = cp1251");

mysql_query ("SET character_set_connection = cp1251");

mysql_query ("SET character_set_results = cp1251");

mysql_select_db ("tests");

if ($_REQUEST ['do'] == "thissubmit") {

mysql_query ("INSERT into testsessions set userid=$_SESSION [user_id],testid=$_SESSION [testid],date=NOW ()");

$test_session_id = mysql_insert_id ();

$_SESSION ['test_session_id'] = $test_session_id;

if (! $_REQUEST [que]) {$_REQUEST [que] = "0"; }

$result = mysql_query ("SELECT * from questions where testid=$_SESSION [testid] and id in ($_REQUEST [que])");

while ($row = mysql_fetch_array ($result)) {

$answ = $_REQUEST [$row [0]];

if (! $answ) {$answ = 0; }

mysql_query ("INSERT into testanswers set testsessionid=$test_session_id,qwid=$row [0],ansid=$answ");

}

header ("Location: index. php");

exit ();

}

if ($_SESSION ['user_id'] == 1) {

header ("location: users. php");

exit ();

} else {

if ($_SESSION ['test_session_id']) {

$r = mysql_query ("SELECT t. done from testsessions as ts,tests as t where ts. testid=t. id and ts. id=$_SESSION [test_session_id] ");

$mustdone=mysql_result ($r,0,'done');

$result = mysql_query ("SELECT * from testanswers where testsessionid=$_SESSION [test_session_id] ");

while ($row = mysql_fetch_array ($result)) {

$user_answer [$row [2]] =$row [3];

if ($mycontent! = "") {

$mycontent. = ",". $row [2];

} else {

$mycontent = $row [2];

}

}

$result = mysql_query ("SELECT * from questions where id in ($mycontent) order by id");

$mycontent = "";

$mycontent. = "<ol>";

$mydone = 0;

while ($row = mysql_fetch_array ($result)) {

$mycontent. = "<li><span>$row [2] </span><ol>";

$allres. = ",$row [0] ";

$result1 = mysql_query ("SELECT * from answers where qwid=$row [0] ");

while ($ans = mysql_fetch_array ($result1)) {

if ($ans [3] && $user_answer [$ans [1]] == $ans [0]) {

$mycontent. = "<li><span style=\"color: #339933; \"><b>$ans [2] </b></span></li>";

$mydone++;

} elseif ($user_answer [$ans [1]]! = $ans [0] && $ans [3]) {

$mycontent. = "<li><span style=\"color: #cc9900; \">$ans [2] </span></li>";

} elseif ($user_answer [$ans [1]] == $ans [0] &&! $ans [3]) {

$mycontent. = "<li><span style=\"color: #ff3333; \">$ans [2] </span></li>";

} else {

$mycontent. = "<li><span>$ans [2] </span></li>";

}

}

$mycontent. = "</ol></li>";

}

$mycontent. = "</ol>";

$somedone = 0;

if ($mydone >= $mustdone) {

$mycontent. = "<center><b style=\"color: #339933; \">Тест пройден успешно</b></center>";

$somedone = 1;

} else {

$mycontent. = "<center><b style=\"color: #ff3333; \">Тест провален</b></center>";

}

mysql_query ("UPDATE users set login='',pass='',testid='' where id=$_SESSION [user_id] ");

mysql_query ("UPDATE testsessions set done=$somedone where id=$_SESSION [test_session_id] ");

session_destroy ();

} else {

$result=mysql_query ("select id FROM questions WHERE testid=$_SESSION [testid] ");

#echo "$_SESSION [testid] ";

$all_questions = array (); #массив вопросов

while ($row = mysql_fetch_array ($result)) {

$all_questions [] = $row [0];

}

$result=mysql_query ("select cnt FROM tests WHERE id=$_SESSION [testid] ");

while ($row = mysql_fetch_array ($result)) {

$noq=$row [0];

}

$touser = array_rand ($all_questions, $noq);

for ($i = 0; $i<$noq; $i++) {

if ($mycontent! = "") {

$mycontent. = ",". $all_questions [$touser [$i]];

} else {

$mycontent. = $all_questions [$touser [$i]];

}

}

$result = mysql_query ("SELECT * from questions where id in ($mycontent) order by id");

$mycontent = "<form action=\"? \" method=\"POST\"><input type=\"hidden\" name=\"do\" value=\"thissubmit\">";

$mycontent. = "<ol>";

while ($row = mysql_fetch_array ($result)) {

$mycontent. = "<li><span>$row [2] </span><ol>";

$allres. = ",$row [0] ";

$result1 = mysql_query ("SELECT * from answers where qwid=$row [0] ");

while ($ans = mysql_fetch_array ($result1)) {

$mycontent. = "<li><label><input type=\"radio\" name=\"$row [0] \" value=\"$ans [0] \"><span>$ans [2] </span></label></li>";

}

$mycontent. = "</ol></li>";

}

$allres = "0". $allres;

$mycontent. = "<input type=\"hidden\" name=\"que\" value=\"$allres\">";

$mycontent. = "</ol><input type=\"submit\" value=\"Отправить результат\"></form>";

}

}

? >

<! DOCTYPE html PUBLIC "- // W3C // DTD XHTML 1.0 Transitional // EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional. dtd">

<html>

<head>

<title>.: index:. </title>

</head>

<body style="margin: 0px 0px; padding: 0px 0px; ">

<div style="margin: 0px auto; width: 980px; padding: 0px 0px; ">

<div style="padding: 20px 20px; margin: 0px 0px; background-color: #cccccc; color: #333333; font-size: 32px; text-align: center; ">

Гибкая система информационной поддержки повышения квалификации персонала ДП-9

</div>

<div style="padding: 10px 10px; margin: 0px 0px; background-color: #333333; color: #cccccc; font-size: 12px; text-align: left; ">

Вы вошли как пользователь <b><? php echo $_SESSION ['user_name'];? ></b> [<span style="cursor: pointer; " onclick="javascript: window. location = 'logout. php'; ">выход</span>] </div>

<div style="padding: 10px 10px; margin: 0px 0px; background-color: #eeeeee; color: #333333; text-align: left; ">

<? php echo $mycontent;? >

</div>

</div>

</body>

</html>

generator. php

<? php

session_start ();

if (! $_SESSION ['user_id']) {

header ("Location: login. php");

exit;

}

if ($_SESSION ['user_id']! = 1) {

header ("Location: index. php");

exit;

}

mysql_connect ("localhost","root","");

mysql_query ("SET character_set_client = cp1251");

mysql_query ("SET character_set_connection = cp1251");

mysql_query ("SET character_set_results = cp1251");

mysql_select_db ("tests");

if ($_REQUEST ['right']) {

$result = mysql_query ("SELECT qwid from answers where id=$_REQUEST [right] ");

$qwid = mysql_result ($result, 0, "qwid");

mysql_query ("UPDATE answers set `right`=0 where qwid=$qwid");

mysql_query ("UPDATE answers set `right`=1 where id=$_REQUEST [right] ");

$_SESSION ['view_last_quest'] = $_REQUEST ['last_quest'];

$_SESSION ['view_last_test'] = $_REQUEST ['last_test'];

header ("location: generator. php");

exit ();

}

if ($_REQUEST ['do'] == 'add_test') {

if ($_REQUEST ['testname']) {

mysql_query ("INSERT INTO tests SET testname='". $_REQUEST ['testname']. "', cnt='". $_REQUEST ['cnt']. "', done='". $_REQUEST ['done']. "'");

$test_id = mysql_insert_id ();

if ($test_id) {

#тест добавлен

header ("location: generator. php");

exit ();

}else{

#тест не добавлен

}

}else{

}

}elseif ($_REQUEST ['do'] == 'add_quest') {

if ($_REQUEST ['testid'] && $_REQUEST ['quest']) {

mysql_query ("INSERT INTO questions SET testid='". $_REQUEST ['testid']. "', quest='". $_REQUEST ['quest']. "'");

$qwid = mysql_insert_id ();

if ($qwid) {

#вопрос добавлен

$_SESSION ['view_last_test'] = $_REQUEST ['testid'];

header ("location: generator. php");

exit ();

}else{

#вопрос не добавлен

}

}else{

#не задан тест айди или имя вопроса

}

}elseif ($_REQUEST ['do'] == 'add_ans') {

if ($_REQUEST ['qwid'] && $_REQUEST ['ans']) {

mysql_query ("INSERT INTO answers SET qwid='". $_REQUEST ['qwid']. "', `right`=0, ans='". $_REQUEST ['ans']. "'");

$ansid = mysql_insert_id ();

#ответ добавлен

$_SESSION ['view_last_quest'] = $_REQUEST ['qwid'];

$_SESSION ['view_last_test'] = $_REQUEST ['last_test'];

header ("location: generator. php");

exit ();

}else{

#не задан вопрос айди или имя ответа

}

}

? >

<! DOCTYPE html PUBLIC "- // W3C // DTD XHTML 1.0 Transitional // EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional. dtd">

<html>

<head>

<title>.: generator:. </title>

<style type="text/css">

ol ol {display: none; }

ol ol ol {display: none; }

</style>

<script type="text/javascript">

function switch_view (mynode) {

if (mynode. nextSibling. style. display == "" || mynode. nextSibling. style. display == "none") {

mynode. nextSibling. style. display = "block";

} else {

mynode. nextSibling. style. display = "none";

}

}

</script>

</head>

<body style="margin: 0px 0px; padding: 0px 0px; ">

<div style="margin: 0px auto; width: 980px; padding: 0px 0px; ">

<div style="padding: 20px 20px; margin: 0px 0px; background-color: #cccccc; color: #333333; font-size: 32px; text-align: center; ">

Гибкая система информационной поддержки повышения квалификации персонала ДП-9

</div>

<div style="padding: 10px 10px; margin: 0px 0px; background-color: #333333; color: #cccccc; font-size: 12px; text-align: left; ">

Вы вошли как пользователь <b><? php echo $_SESSION ['user_name'];? ></b> [<span style="cursor: pointer; " onclick="javascript: window. location = 'logout. php'; ">выход</span>] <span style="width: 300px; float: right; cursor: pointer; text-align: right; " onclick="javascript: window. location = 'users. php'; ">{ Работа с пользователями }</span></div>

<div style="padding: 10px 10px; margin: 0px 0px; background-color: #eeeeee; color: #333333; text-align: left; ">

<? php

$result = mysql_query ("SELECT * from tests order by id");

echo "<ol>";

while ($tests = mysql_fetch_array ($result, MYSQL_NUM)) {

echo "<li><span style=\"cursor: pointer; \" onclick=\"switch_view (this) \">$tests [1] </span>";

$result1 = mysql_query ("SELECT * from questions where testid='". $tests [0]. "' order by id");

if ($_SESSION ['view_last_test'] == $tests [0]) {

echo "<ol style=\"display: block; background-color: #dddddd; \">";

} else {

echo "<ol>";

}

while ($questions = mysql_fetch_array ($result1, MYSQL_NUM)) {

echo "<li><span style=\"cursor: pointer; \" onclick=\"switch_view (this) \">$questions [2] </span>";

if ($_SESSION ['view_last_quest'] == $questions [0]) {

echo "<ol style=\"display: block; background-color: #cccccc; \">";

} else {

echo "<ol>";

}

$result2 = mysql_query ("SELECT * from answers where qwid='". $questions [0]. "' order by id");

? >

<form action="?" method="POST">

<input type="hidden" name="last_test" value="<? php echo $tests [0];? >"/>

<input type="hidden" name="last_quest" value="<? php echo $questions [0];? >"/>

<? php

while ($answers = mysql_fetch_array ($result2, MYSQL_NUM)) {

if ($answers [3]) {

echo "<li><label><input type=\"radio\" checked name=\"right\" value=\"$answers [0] \"/>$answers [2] </label></li>";

} else {

echo "<li><label><input type=\"radio\" name=\"right\" value=\"$answers [0] \"/>$answers [2] </label></li>";

}

}

? >

<input type="submit" value="выбрать правильный">

</form>

<li>

<form action="?" method="POST">

<input type="hidden" name="do" value="add_ans">

<input type="hidden" name="last_test" value="<? php echo $tests [0];? >"/>

<input type="hidden" name="qwid" value="<? php echo $questions [0]? >">

<textarea name="ans">Введите ответ здесь</textarea><br>

<input type="submit" value="Добавить">

</form>

</li></ol>

<? php

}

? >

<li>

<form action="?" method="POST">

<input type="hidden" name="do" value="add_quest">

<input type="hidden" name="testid" value="<? php echo $tests [0]? >">

<textarea name="quest">Введите вопрос здесь</textarea><br>

<input type="submit" value="далее">

</form>

</li></ol>

<? php

}

? >

<li>

<form action="?" method="POST">

<input type="hidden" name="do" value="add_test"/>

<label>Название теста: <input type="text" name="testname" value=""></label>

<label>Кол-во вопросов: <input type="text" name="cnt" value="" size="3"></label>

<label>Кол-во ответов: <input type="text" name="done" value="" size="3"></label>

<input type="submit" value="Далее"/>

</form>

</li></ol>

</div>

</div>

</body>

</html>

Размещено на Allbest.ru


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

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