• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы Tennessee Mud
  • Дата начала
Статус
Закрыто для дальнейших ответов.
T

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), а также примерах, можно посмотреть тут:

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


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

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

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

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

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

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

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

European

Спасибо за описание! Нормальное тестовое задание, было очень интересно почитать :) От форумчан то чего требуется? Написать за тебя тестовое задание, а потом и работать за тебя? А зарплату как делить будем?
 
M

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]

Да :)
 
T

Tennessee Mud

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!