На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Обратите внимание:
1. Прежде чем начать новую тему или отправить сообщение, убедитесь, что вы не нарушаете правил форума!
2. Обязательно воспользуйтесь поиском. Возможно, Ваш вопрос уже обсуждали. Полезные ссылки приведены ниже.
3. Темы с просьбой выполнить какую-либо работу за автора в этом разделе не обсуждаются.
4. Используйте теги [ code=cpp ] ...текст программы... [ /code ] для выделения текста программы подсветкой.
5. Помните, здесь телепатов нет. Старайтесь формулировать свой вопрос максимально грамотно и чётко: Как правильно задавать вопросы
6. Запрещено отвечать в темы месячной и более давности без веских на то причин.

Полезные ссылки:
user posted image FAQ Сайта (C++) user posted image FAQ Форума user posted image Наши Исходники user posted image Поиск по Разделу user posted image MSDN Library Online (Windows Driver Kit) user posted image Google

Ваше мнение о модераторах: user posted image B.V.
Модераторы: B.V.
Закрыто B.V. 01-03-2011: Конкурс не удался

Страницы: (10) [1] 2 3 ...  9 10 все  ( Перейти к последнему сообщению )  
> Конкурс по программированию на C/C++ , конкурсная тема
    Конкурс по программированию на C/C++ (Windows/Cross-platform)

    user posted image


    Цели:

    Конкурс призван выявить наиболее талантливых C/C++ программистов в области программирования прикладных и системных приложений, как под Windows, так и кроссплатформенных. Так же некоторые конкурсные работы могут послужить хорошими примерами для реализации часто нужной функциональности, и получить свое развитие в качестве самостоятельных открытых проектов


    Сроки проведения:

    Дата старта конкурса: 15.11.2010
    Дата завершения конкурса: 28.02.11[обновлено]
    Длительность проверки работ: 2-3 недели


    Жюри:

    B.V.
    ElcnU
    Flex Ferrum


    Участники:


    Важно: теперь любой желающий может присоединиться к конкурсу!


    Задания:

    Задание №1, "Поисковая система": Конкурс по программированию на C/C++ (сообщение #2753398)
    Задание №2, "html-рендерер": Конкурс по программированию на C/C++ (сообщение #2753399)
    Задание №3, "Редактор реестра": Конкурс по программированию на C/C++ (сообщение #2753400)
    Задание №4, "Планировщик автозапуска": Конкурс по программированию на C/C++ (сообщение #2753401)

    Задание №5 (дополнительное), "Неубиваемый процесс": Конкурс по программированию на C/C++ (сообщение #2753402)


    Общие требования к работам по заданиям:

    1. Все работы должны быть написаны на C или C++, с соблюдением стандартов, не ниже ISO/IEC 9899:1990 (C90) и ISO/IEC 14882:2003 соответственно. IDE и компилятор любые. В работах должно быть указано, какой или какие компиляторы использовались[обновлено]
    2. Все работы обязаны корректно выполняться на Windows x86, начиная с Windows XP SP3, и заканчивая Windows 7 SP1 (RC) под учетной записью администратора (Windows Vista+: со включенным UAC)
    3. В работах запрещено использовать закрытые компоненты, не входящие в состав хотя бы одной из разрешенных ОС Windows
    4. Работы должны комплектоваться всеми зависимостями, которые могут отсутствовать на одной из разрешенных ОС (и платформ, в случае поддержи кросс-платформенности)
    5. Вариант под x64-платформу будет поощряться дополнительными балами, как указано ниже, в зависимости от сложности адаптации
    6. Поддержка Unix/Linux будет так же поощряться дополнительными балами, в зависимости от сложности адаптации

    Плагиат строго запрещен, и уличение в плагиате будет наказываться исключением из конкурса!


    Общие критерии оценки работ:

    - соответствие заданию: 1-50 баллов
    - качество комментирования: 1-15 баллов
    - соотношение "собственный код/сторонний": 1-10 балов
    - стиль именования переменных/функций/констант: 1-10 баллов
    - форматирование кода, читабельность: 1-10 баллов
    - модульность, логическое деление кода: 1-10 баллов
    - поддержка 64-разрядной платформы: 1-5 балов
    - поддержка ОС Unix/Linux: 1-10 балов


    Все работы оцениваются по общим критериям, приведенным выше, плюс локальные критерии каждого конкретного задания (не выше +20 балов)
    Важно: за выполнение необязательных возможностей начисляются дополнительные балы!


    Правила сдачи работ:

    По завершении выполнения одного или нескольких заданий участник должен прикрепить свои работы в этой теме, в виде запароленного архива с исходниками и исполняемыми файлами (а так же, компонентами, если таковые требуются, согласно п. 4 "общих требований"). Пароль от архива участник должен выслать хотя бы одному члену жюри в PM или на e-mail.
    Разрешается выкладывать работы постепенно, а не все сразу. Так же, разрешается выкладывать доработанные решения (в этом случае, жюри будет оценивать последнее выложенное в теме решение).
    Временной бонус:
    Первые сданные работы по каждому заданию получат автоматически +5 баллов. Вторые сданные работы получат +3 балла. Третьи -- +1 балл. При выкладывании доработанного решения, бонусные баллы аннулируются!


    Призы:

    1-е место:
    DVD-R 4,7GB x8, cake 100pcs, Digitex + Блокнот и Ручка тёмно-зеленая с логотипом Касперского (+ 3 DGM)
    Прикреплённая картинка
    Прикреплённая картинка
    +
    Прикреплённая картинка
    Прикреплённая картинка
    +
    Прикреплённая картинка
    Прикреплённая картинка

    2-е место:
    Labtec Wireless Laser Mouse (+ 2 DGM)
    Прикреплённая картинка
    Прикреплённая картинка

    3-е место:
    USB Флэш-накопитель "Дятел" 4GB (+ 1 DGM)
    Прикреплённая картинка
    Прикреплённая картинка
    Сообщение отредактировано: B.V. -
      Задание №1, поисковая система (Windows x86-64, Cross-platform)

      Написать поисковую систему (аналог Windows Search в Windows или GNOME Search Tool и подобных в Linux DE), со следующими минимальными возможностями:

      1. Поиск файлов и папок на локальных дисках и сменных носителях: FDD/HDD/CD/DVD/BR/USB Flash
      2. Предоставление пользователю возможности манипулировать результатами как реальными файлами: доступ к контекстному меню, просмотр свойств, возможность вырезания/копирования/удаления, Drag&Drop
      3. Критерии поиска должны быть следующими:
      - По целому имени файла/папки или части
      - Поиск по части содержимого текстового или бинарного файла
      - По маске, с использованием стандартных wildcard characters (* и ?)
      - По дате создания/изменения, с возможностью выбора интервала
      - По размеру, с возможностью выбора интервала от <= 100 КБ до > 4 ГБ и конкретного размера, в байтах или килобайтах
      - Поиск по EXIF данным изображения


      Дополнительные, необязательные к выполнению возможности:

      1. Поиск по сетевым папкам в локальной сети, а так же по папкам на FTP-серверах (1-8 балов)
      2. Поддержка сложных регулярных выражений для поиска файлов и их содержимого (1-5 балов)


      Критерии оценки задания: (+20)

      Скорость поиска (1-8 балов)
      Оригинальность алгоритма поиска (1-5 балов)
      Реализация интерфейса (1-7 балов)
        Задание №2, html-рендерер (Windows x86-64, Cross-platform)

        Написать рендерер HTML-кода (и демонстрационное приложение к нему) со следующими минимальными возможностями:

        1. Отображение текста с возможностью определения:
        - имени шрифта
        - кегля
        - начертания (обычный/курсив)
        - насыщенности (обычный, жирный)
        - ширины (обычный, моноширинный)
        - параграф, перенос строки
        - позиции (минимум: CSS level 1, text-align)
        - цвета
        2. Отображение гиперссылок с тремя состояниями: неактивная, активная и посещенная
        3. Отображение изображений JPEG, GIF, Bitmap (BMP) и PNG с учетом выравнивания, масштабирования и использования в качестве гиперссылки
        4. Отображение заголовка страницы из тега <title>

        Рендерер должен быть оформлен в виде самостоятельного компонента, готового ко включению в проект на C/C++. Вариант исполнения компонента на выбор: набор классов, ActiveX DLL, набор функций


        Дополнительные, необязательные к выполнению возможности:

        1. Поддержка тега <table> (1-5 балов)
        2. Поддержка CSS level 1 (1-15 балов)

        Запрещается использование сторонних движков, таких, как Trident (IE) и Gecko (Mozilla), а так же кода из открытых движков.


        Критерии оценки задания: (+20)

        Скорость рендера (1-12 балов)
        Удобство использования как компонента (1-8 балов)
          Задание №3, Редактор реестра Windows (Windows x86-64)

          Написать редактор реестра, в альтернативу стандартному Regedit.exe, со следующими обязательными возможностями:

          1. Просмотр, создание и редактирование всех ключей реестра, включая и скрытые
          2. Поддержка всех типов значений, DWORD/QWORD/BINARY/SZ/EXPAND_SZ/MULTI_SZ
          3. Удобный поиск, со следующими возможностями:
          - вывод результатов одним списком
          - переход из списка к конкретным ключам
          - управление ключами непосредственно из списка
          4. Возможность пакетного создания и удаления ключей и значений
          5. Возможность отмены/повтора, как минимум, одного действия над ключом (со всеми подключами) и значением, включая и удаление
          6. Возможность импорта и экспорта ключей в файл *.reg или файл аналогичного собственного формата


          Дополнительные, необязательные к выполнению возможности:

          1. Возможность удаления группы ключей (или значений) из реестра по маске названия или содержимого (для значений) (1-5 балов)
          2. Возможность выставления прав у ключей реестра (Access Rights and Access Masks/Authorization Functions) (1-8 балов)
          3. Возможность работы с копией реестра (в виде файла БД со снимком реестра или файлом собственного формата). Снимок может делаться автоматически или по желанию пользователя. Такой файл предоставляет следующие преимущества
          - огораживает пользователя от случайных ошибок при работе непосредственно с системной БД
          - ускоряет загрузку программы и поиск по реестру
          (1-10 балов)


          Критерии оценки задания: (+20)

          Удобство интерфейса (1-7 балов)
          Скорость поиска (1-8 балов)
          Защита от ошибок пользователя (1-5 балов)
            Задание №4, Планировщик автозапуска (Windows x86-x64)

            Написать планировщик для автозапуска в Windows
            Речь идет об автозапуске, без учета драйверов, сервисов, KnownDLLs и Shell Extensions. Однако, учет дополнительных программ, например, сервисов, только приветствуется

            В задачи планировщика входит автоматически распределить по времени загрузку процессов или дать возможность пользователю самому установить порядок и условия загрузки процессов из списка автозагрузки, для оптимизации процесса автозагрузки
            Возможные варианты условий запуска следующего процесса из автозагрузки
            1. Загрузка ЦП текущим процессом пошла вниз и перестала быть высокой достаточное время
            2. Процесс завершился (подходит только для особых программ, которые сразу же завершаются)
            3. Снимок списка модулей процесса достиг определённого состояния (для этого делается образцовый снимок)
            4. Закончилось заранее заданное время ожидания (фиксированный таймаут)
            5. Программа добавила свою иконку в трей

            В планировщике должна быть предусмотрена возможность комбинировать в виде очереди эти условия для каждого процесса. Пример: "по истечению некоторого таймаута, если процесс не грузит ЦП и добавил иконку в трей, разрешается перейти к следующему процессу"

            Планировщик должен позволять задавать приоритеты выполнения (Priority Class) каждой программе в списке автозагрузки


            Дополнительные, необязательные к выполнению возможности:

            1. Возможность аналогичным образом контролировать порядок загрузки сервисов (посредством подмены Service Control Manager) (1-10 балов)
            2. Возможность контролировать порядок загрузки драйверов (посредством подмены NTLDR/winload) (1-15 балов)


            Критерии оценки задания: (+20)

            Удобство интерфейса (1-6 балов)
            Набор условий для процессов (1-6 балов)
            Эффективность (1-8 балов)
              Задание №5 (дополнительное), "теория низкоуровневого перехвата" Неубиваемый процесс (Windows x86-x64)

              Создать "неубиваемую" программу, состоящую из одного основного окна с любой анимацией, дающей понять, что процесс работает, и с произвольным количеством дополнительных потоков. Программа должна быть способна выдержать следующие методы закрытия:
              1. Обычное закрытие окна (завершение задачи)
              2. Закрытие процесса посредством TerminateProcess
              3. Закрытие процесса посредством внедрения, с последующим вызовом ExitProcess
              4. Закрытие процесса посредством использования ntdll-api

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

              Критерии оценки задания: (+20)

              1. Стойкость к завершению: 1-12 балов
              2. Оригинальность метода защиты: 1-8 бала
                M
                Просьба в этой теме выкладывать работы и задавать только очень важные вопросы по конкурсу. Для остального обсуждения открыта тема Устроим конкурс?
                  Цитата B.V. @
                  1. Все работы должны быть написаны на языке C/C++, с соблюдением стандарта, не ниже ISO/IEC 14882:2003. IDE и компилятор любые

                  Если я использую MSVC 2010 со всеми microsoft-specific расширениями, документированными в MSDN - это "с соблюдением стандарта" ?
                    Расширения выходят за пределы стандарта. Их можно использовать на свое усмотрение. Но при этом надо помнить, что происходит привязка к конкретному компилятору
                      M
                      Хорошая новость для тех, кто не успел подать заявку на участие: было принято решение сделать конкурс полностью открытым! Теперь любой желающий может принять участие в конкурсе, даже после его начала
                        B.V.
                        можно сначало сдать дополнительное задание "Неубиваемый процесс" а потом остальные ?
                          Цитата XshStasX @
                          B.V.
                          можно сначало сдать дополнительное задание "Неубиваемый процесс" а потом остальные ?

                          Конечно

                          Добавлено
                          Кстати, я поясню один момент, который, наверно, не всем понятен:
                          Дополнительным задание названо не оттого, что он дополняет "обязательные задания", а оттого, что его можно выполнить в нагрузку к одному или нескольким заданиям выше. Проще говоря, достаточно выполнения одного единственного задания! Сможете больше, получите больше балов
                            Цитата B.V. @
                            Проще говоря, достаточно выполнения одного единственного задания!

                            Достаточно для чего? Для победы в конкурсе? Если баллы по всем заданиям суммируются, то очевидно победит тот кто потратит больше времени и хоть как-то сделает все задания, а не тот кто сделает 1 задание лучше всех.
                              Цитата Abyx @
                              Достаточно для чего?

                              Для того, что бы попасть в итоговую табличку. А место, конечно, зависит от уделенного времени
                                Я хотел спросить про Задание №2, html-рендерер (Windows x86-64, Cross-platform)
                                Можно использовать компонент CppWebrowser? Или надо создать свой обозреватель, а потом редактор? Просто я даже не представляю как это будет долго.
                                  Цитата doocee @
                                  Можно использовать компонент CppWebrowser?

                                  Цитата B.V. @
                                  Запрещается использование сторонних движков, таких, как Trident (IE) и Gecko (Mozilla), а так же кода из открытых движков.

                                  TWebBrowser является оберткой над Trident
                                  Цитата doocee @
                                  Или надо создать свой обозреватель, а потом редактор?

                                  Обозреватель писать не надо, только демонстрационную программу. А по поводу редактора я не понял
                                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                  0 пользователей:
                                  Страницы: (10) [1] 2 3 ...  9 10 все
                                  Закрыто B.V. 01-03-2011: Конкурс не удался



                                  Рейтинг@Mail.ru
                                  [ Script execution time: 0,2354 ]   [ 22 queries used ]   [ Generated: 28.04.24, 05:39 GMT ]