0 / 0 / 0
Регистрация: 24.06.2010
Сообщений: 101
|
|
1 | |
Система управления расписаниями14.12.2016, 11:45. Показов 1217. Ответов 3
Метки нет (Все метки)
Доброго времени суток! Помогите, пожалуйста, написать программу.
Очень большое описание Создайте систему управления расписаниями сотрудников, которая будет хранить периоды времени, в течение которых сотрудник занят, и предлагать время совещания группы людей, когда все они свободны. Определите тип Time, который бы хранил запись о времени, определите для него методы show и read, для преобразования к виду, например, 08:15. Время можно хранить как целое число минут, прошедших с 8:00 текущего дня или в любой другой удобной форме. Временной интервал будем хранить в виде type Period = (Time, Time). Время окончания должно быть строго больше времени начала. При создании периода необходимо проверять это свойство. Определите функцию before :: Period -> Period -> Bool, которая определяет, находится ли первый период строго раньше второго. Определите функцию overlap :: Period -> Period -> Bool, которая определяет, пересекаются ли периоды. Список периодов, в течение которых человек занят, можно хранить в виде type Diary = [Period], при этом каждый период в списке должен быть строго до следующих за ним. Определите функции добавления нового периода на нужное место в список и удаления периода из списка. Определите функцию findTime :: Int -> Time -> Diary -> Period, которая возвращает по списку Diary самый ранний свободный период длиной Int минут начиная со времени Time, который не пересекается с другими периодами из списка. Например: findTime 5 0 [(0, 10), (15, 20), (30, 40)] == (21, 25). Два пересекающихся периода могут быть объединены в один более длинный. Определите функцию combine :: Period -> Period -> Period. Если список Василия: [(10, 20), (40, 50)], а список Татьяны: [(20, 30), (60, 70)], то можно создать общий список периодов, когда один из них занят: [(10, 30), (40, 50), (60, 70)]. Определите функцию combineDiaries :: Diary -> Diary -> Diary, которая это делает. Определите функцию meeting :: Int -> Time -> [Person] -> DB -> Period, которая возвращает по списку людей [Person] из базы DB самый ранний свободный период длиной Int минут начиная со времени Time, когда никто из людей не занят. Например: meeting 5 10 ["Василий", "Татьяна"] db == (31, 35). Заранее спасибо.
0
|
14.12.2016, 11:45 | |
Ответы с готовыми решениями:
3
Файловая система и система управления вводом-выводом в ОС Linux система управления Система управления версиями Система управления сообщениями |
0 / 0 / 0
Регистрация: 24.06.2010
Сообщений: 101
|
|
19.12.2016, 07:40 [ТС] | 3 |
да, знаю, но привела полную формулировку задания
0
|
Модератор
|
|
19.12.2016, 10:21 | 4 |
Maria64, за 5 дней вы бы успели сделать хотя бы то что знаете. А дальше бы вам помогли, если где непонятно.
1
|
19.12.2016, 10:21 | |
19.12.2016, 10:21 | |
Помогаю со студенческими работами здесь
4
Система управления светофорами Система управления версиями Система управления файлами Система голосового управления Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |