Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Складання розкладу занять



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

Після того, як користувач заповнив поля форми, указавши дату почала і кінця занять групи і день тижня для проведення занять по деякій дисципліні, визначається дата першого заняття. Передбачимо, група починає роботу 23 березня 2004 року (вівторок), а заняття по заданій дисципліні повинні проводитися по неділях. Тоді дата першого заняття - 28 березня.

Далі формується дата наступного заняття t і зіставляється з датою закінчення роботи курсів w. Спочатку порівнюються роки. Продовжувати роботу потрібно лише у разі, коли рік передбачуваного поточного заняття передує або рівний року закінчення занять. Якщо роки співпадають, то порівнюються місяці, якщо й місяці співпадають, то порівнюються дати. Іншими словами, якщо поточна дата передує даті закінчення, то вона добавляється в розклад, формується дата наступного передбачуваного заняття і т. і.

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

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

Приклад 6.7.

<HTML>

<HEAD>

<TITLE>Расписание занятий</TITLE>

<script language="JavaScript">

function ident(mont) {

var s

switch (mont) {

case 0: s="январь"; break;

case 1: s="февраль"; break;

case 2: s="март"; break;

case 3: s="апрель"; break;

case 4: s="май"; break;

case 5: s="июнь"; break;

case 6: s="июль"; break;

case 7: s="август"; break;

case 8: s="сентябрь"; break;

case 9: s="октябрь"; break;

case 10: s="ноябрь"; break;

case 11: s="декабрь"; break;

}

return s

}

function rasp(obj)

{ // дата почала роботи групи

var d=new Date(obj.begy.value, obj.begm.value, obj.begd.value)

// дата закінчення роботи групи

var w=new Date(obj.endy.value, obj.endm.value, obj.endd.value)

// дата поточного заняття

var t=new Date(obj.begy.value, obj.begm.value, obj.begd.value)

var s=""

// вибраний користувачем день роботи

var n=obj.dt.value

// сформована дата дня першого заняття

var k=d.getDate()+Number(n)-Number(d.getDay())

if (n< d.getDay())

k+= 7

t.setDate(k)

var s1="Дни занять: "+"\n"

// scur - дата передбачуваного поточного заняття

var scur

var s=s1

// пошук дат занять

while (t.getYear()<=w.getYear()) {

// формування дати чергового заняття

scur=+t.getDate()+" "+ident(Number(t.getMonth()))+

" "+t.getYear()+"\n"

if (t.getYear()<w.getYear()) {

s+= scur

}

else

{if (t.getMonth()< w.getMonth()) {

s +=scur

}

else

{if (t.getMonth()==w.getMonth()) {

if (t.getDate()<w.getDate())

{s +=scur}

else

{ if (t.getDate()==w.getDate())

{s+= scur; break }

}

}

}

}

k=t.getDate()+7

t.setDate(k)

}

if (s==s1)

alert ("Проверьте дату начала и конца занятий")

else

obj.res.value=s

}

</script>

</HEAD>

<BODY bgcolor="#FFFFCC">

<h4 align=center>Формирование расписания занятий</h4>

<FORM name="form1">

<TABLE border=3 align=center>

<tr><th>Начало курсов<th>Конец курсов

<th>Расписание

<tr><td>

<pre>

число <input type="text" name="begd" size=10)>

месяць <select name="begm" size=1>

<option value=0>январь

<option value=1>февpaль

<option value=2>март

<option value=3>апрель

<option value=4>май

<option value=5>июнь

<option value=6>июль

<option value=7>август

<option value=8>сентябрь

<option value=9>октябрь

<option value=10>ноябрь

<option value=11>декабрь

</select>

год <input type="text" name="begy" size=10 value=2004>

</pre></TD>

<TD><pre>

число <input type="text" name="endd" size=10>

месяць <select name="endm" size=l>

<option value=0>январь

<option value=1>февpaль

<option value=2>март

<option value=3>апрель

<option value=4>май

<option value=5>июнь

<option value=6>июль

<option value=7>август

<option value=8>сентябрь

<option value=9>октябрь

<option value=10>ноябрь

<option value=11>декабрь

</select>

год <input type="text" name="endy" size=8 value=2004>

</pre>

<td rowspan=2>

<textarea cols=20 rows=8 name=res></textarea><br>

<tr><td colspan=2 align=right>

Выберите день занятий:

<select name=dt size=1>

<option value=0 >воскресенье

<option value=1>понедельник

<option value=2>вторник

<option value=3>среда

<option value=4>четверг

<option value=5>пятница

<option value=6>суббота

</select>

<tr><td colspan=2 align=left>

<input type="button" value=Сформировать

onClick="rasp(form1)"><br>

<td align=right><input type="reset" value=Отменить>

</TABLE><br>

</FORM>

</BODY>

</HTML>





Дата публикования: 2015-04-10; Прочитано: 259 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.013 с)...