программа Deadliner на C

Тема в разделе "Общие вопросы по С и С++", создана пользователем Tennessee Mud, 6 авг 2007.

Статус темы:
Закрыта.
  1. Tennessee Mud

    Tennessee Mud Гость

    Здравствуйте,

    Срочно требуется помощь - мне дали задание написать код на С (я использую Dev-C++ 4.9.9.2). Программа называется Deadliner (возможно, это даже некий стандартный, сто раз написанный всеми кому не лень код, типа генератора случайных чисел, но искала - не нашла).


    Суть в следующем:


    Нужно написать программу, которая бы говорила юзеру, сколько дней осталось до того или иного дедлайна. Информация о дедлайнах должна сохраняться в файл "deadlines.txt". При запуске программы она должна отображать, сколько времени осталось до дедлайна, используя следующие правила:

    1. Если дедлайн обозначен тем же днем, что текущая дата, то программа должна писать "сегодня"

    2. Если дедлайн обозначен днем позже, чем текущая дата, то программа должна писать "завтра"

    3. Если дедлайн пропущен - соответственно, должно высвечиваться "пропущен"

    Юзер также должен иметь возможность добавлять и удалять дедлайны.


    Программа:


    Программа должна "понимать" командную строку - аргументы в короткой и длинной форме - в следующем порядке:


    [-v]

    [

    ( -a -d DESC -t DATE)|

    (-r ID)

    (-m ID -t DATE)|

    (-h)|

    ]


    Порядок этих опций не строго обязателен. Можно и по-другому сделать - лишь бы работало.


    Аргументы:


    -h Вывод на печать хелп-текста с именем скрипта, его целью, инструкциями по использованию командмой строки, какие/как использовать аргументы.

    -v Вывод на печать вспомогательных слов при дебаге, типа "Parameters ok!", "Filename exist!" и т.п.

    -a Добавление дедлайна с описанием DESC, определенного с помощью -d (переключение на дату DATE) и -t (переключение на файл)

    -r ID удаление дедлайна с индексом ID

    -m ID -t DATE задает дату дедлайна с индексом ID на время DATE, определенное переключением -t

    -d DESC задает описание DESC

    -t DATE задает дату DATE

    Любые другие аргументы командной строки должны выдавать сообщение об ошибке и инструкции по использованию командной строки.

    При добавлении нового дедлайна в файл генерируемый индекс ID этого нового дедлайна должен быть уникальным.


    Формат:


    Как уже упоминалось, программа должна сохранять задания в текстовый файл. Информация о дедлайнах должна сохраняться в следующем формате:

    deadlinefile = 0*1000 deadline

    deadline = index ";" timestamp ";" description (LF / CRLF)

    index = 3*DIGIT

    timestamp = year "-" month "-" day

    year = 4*DIGIT

    month = "01" / "02" / "03" / "04" / "05" / "06" / "07" / "08" / "09" / "10" / "11" / "12"

    day = ( ("1"/"2") DIGIT) / ("0"("1" / "2" / "3" / "4" / "5" / "6" / "7" / "8" / "9" )) / ("3" ("0"/"1"))

    description = 1*95("%d16-58" / "%d60-127")


    Один файл содержит 0...1000 строк.

    Каждая строка должна содержать полную информацию об одном лишь дедлайне.

    Длина строки варьируется от 22 до 128 символов.

    Описание задания не должно содержать символа ";".

    Подробнее об этом формате (называется ABNF), а также примерах, можно посмотреть тут: http://www.ietf.org/rfc/rfc2234.txt

    Пример задания:


    id (индекс задания): 002

    дата создания: 2006 04 10

    описание: "убраться в комнате"

    -- все это должно трансформироваться в:

    002;2006-10-04;убраться в комнате

    Когда программа считывает задания из файла, на должна проверять, правильно ли задан формат задания. Если задание записано в неверном формате, программа должна выдавать ошибку (при этом сообщение об ошибке должно содержать номер строки, в которую записано задание неверного формата, и текст этой строки) и возвращать 1. В противном случае, программа должна работать как положено. Программа не должна "ломать" формат ни при каких обстоятельствах.

    Заранее огромное спасибо всем, кто сможет помочь. Надеюсь, описание более или менее понятно :D
     
  2. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Спасибо за описание! Нормальное тестовое задание, было очень интересно почитать :) От форумчан то чего требуется? Написать за тебя тестовое задание, а потом и работать за тебя? А зарплату как делить будем?
     
  3. mms

    mms Гость

    <!--QuoteBegin-European+6:08:2007, 10:09 -->
    <span class="vbquote">(European @ 6:08:2007, 10:09 )</span><!--QuoteEBegin-->От форумчан то чего требуется? Написать за тебя тестовое задание, а потом и работать за тебя?
    [snapback]74515" rel="nofollow" target="_blank[/snapback]​
    [/quote]

    Да :)
     
  4. Tennessee Mud

    Tennessee Mud Гость

    Это не работа, это задание - задали в университете, хвост с летней сессии. Я пока только учусь и, в общем, да - надеялась на помощь. Но если это такую реакцию вызывает, - хорошо, я поняла. В любом случае, спасибо, что ответили.
     
  5. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей