https://github.com/dimaamega/laba-1.-bitpole.
это лаба про битовые поля и множества
https://github.com/dimaamega/laba-1.-bitpole.
Last synced: 2 months ago
JSON representation
это лаба про битовые поля и множества
- Host: GitHub
- URL: https://github.com/dimaamega/laba-1.-bitpole.
- Owner: DimaAmega
- Created: 2017-10-10T19:49:36.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2017-10-10T22:17:25.000Z (almost 9 years ago)
- Last Synced: 2025-01-12T22:31:51.946Z (over 1 year ago)
- Language: C++
- Size: 86.3 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Методы программирования 2: Множества на основе битовых полей
[][travis]
## Цели и задачи
__Цель данной работы__ — разработка структуры данных для хранения множеств с
использованием битовых полей, а также освоение таких инструментов разработки
программного обеспечения, как система контроля версий [Git][git] и фрэймворк для
разработки автоматических тестов [Google Test][gtest].
Предполагается, что перед выполнением работы студенты получают данный
проект-шаблон, содержащий следующее:
- Интерфейсы классов битового поля и множества (h-файлы)
- Готовый набор тестов для каждого из указанных классов
- Пример использования класса битового поля и множества для решения задачи
поиска простых чисел с помощью алгоритма ["Решето Эратосфена"][sieve]
Выполнение работы предполагает решение следующих задач:
1. Реализация класса битового поля `TBitField` согласно заданному интерфейсу.
1. Реализация класса множества `TSet` согласно заданному интерфейсу.
1. Обеспечение работоспособности тестов и примера использования.
## Используемые инструменты
- Система контроля версий [Git][git]. Рекомендуется использовать один из
следующих клиентов на выбор студента:
- [Git](https://git-scm.com/downloads)
- [GitHub Desktop](https://desktop.github.com)
- Фреймворк для написания автоматических тестов [Google Test][gtest]. Не
требует установки, идет вместе с проектом-шаблоном.
- Среда разработки Microsoft Visual Studio (2008 или старше).
- Опционально. Утилита [CMake](http://www.cmake.org) для генерации проектов по
сборке исходных кодов. Она может быть использована для генерации решения для
среды разработки, отличной от Microsoft Visual Studio 2008 или 2010, предоставленных в данном проекте-шаблоне.
## Общая структура проекта
Структура проекта:
- `docs` — инструкции по выполнению лабораторной работы, полезные документы.
- `gtest` — библиотека Google Test.
- `include` — директория для размещения заголовочных файлов.
- `samples` — директория для размещения демо-приложений.
- `sln` — директория с файлами решений и проектов для VS 2008 и VS 2010,
вложенные директории `vc9` и `vc10` соответственно.
- `src` — директория с исходными кодами (cpp-файлы).
- `test` — директория с модульными тестами и основным приложением,
инициализирующим запуск тестов.
- `README.md` — информация о проекте, которую вы сейчас читаете.
- Служебные файлы
- `.gitignore` — перечень расширений файлов, игнорируемых Git при добавлении
файлов в репозиторий.
- `CMakeLists.txt` — корневой файл для сборки проекта с помощью CMake. Может
быть использован для генерации проекта в среде разработки, отличной от
Microsoft Visual Studio.
- `.travis.yml` — конфигурационный файл для системы автоматического
тестирования Travis-CI. Тесты, входящие в состав шаблонного проекта,
регулярно запускаются на удаленной [инфраструктуре][travis].
В решении содержатся следующие модули:
- Модуль `tbitfield`, содержащий реализацию класса битового поля (файлы
`./include/tbitfield.h`, `./src/tbitfield.cpp`). Предполагается, что в ходе
выполнения работы реализуются методы класса в файле `./src/tbitfield.cpp`,
при этом заголовочный файл `./include/tbitfield.h` с объявлениями должен
оставаться неизменным.
- Модуль `tset`, содержащий реализацию класса множества (файлы
`./include/tset.h`, `./src/tset.cpp`). При выполнении работы так же, как и в
случае класса битового поля, разрабатывается только реализация методов
класса.
- Тесты для классов битовое поле и множество (файлы
`./test/test_tbitfield.cpp`, `./test/test_tset.cpp`).
- Пример использования класса битового поля и множества для поиска простых
чисел с использованием алгоритма, называемого ["Решетом Эратосфена"][sieve]
(файл `./samples/sample_prime_numbers.cpp`).
## Инструкция по выполнению работы
Выполнение лабораторной работы предполагается в несколько шагов:
1. Освоение общих принципов работы с Git и GitHub. Последовательность
действий, которую необходимо выполнить перед началом работы с
проектом, описана в документе, посвященному [Git][git-guide].
1. Освоение общих принципов работы с Google Test. Инструкции приведены в
разделе, посвященному [Google Test][gtest-guide].
1. Создание полноценных реализаций классов `TBitField` и `TSet`, проходящих
все автоматические тесты.
[git]: https://git-scm.com/book/ru/v2
[gtest]: https://github.com/google/googletest
[sieve]: http://habrahabr.ru/post/91112
[travis]: https://travis-ci.org/UNN-VMK-Software/mp2-lab1-set
[git-guide]: https://github.com/UNN-VMK-Software/mp2-lab1-set/blob/master/docs/part1-git.md
[gtest-guide]: https://github.com/UNN-VMK-Software/mp2-lab1-set/blob/master/docs/part2-google-test.md