Skip to content

panzer2344/mp2-lab2-matrix

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Методы программирования 2: Верхнетреугольные матрицы на шаблонах

Build Status

Цели и задачи

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

  • сложение/вычитание;
  • копирование;
  • сравнение.

В процессе выполнения лабораторной работы требуется использовать систему контроля версий Git и фрэймворк для разработки автоматических тестов Google Test.

Перед выполнением работы студенты получают данный проект-шаблон, содержащий следующее:

  • Интерфейсы классов Вектор и Матрица (h-файл)
  • Начальный набор готовых тестов для каждого из указанных классов.
  • Набор заготовок тестов для каждого из указанных классов.
  • Тестовый пример использования класса Матрица

Выполнение работы предполагает решение следующих задач:

  1. Реализация методов шаблонного класса TVector согласно заданному интерфейсу.
  2. Реализация методов шаблонного класса TMatrix согласно заданному интерфейсу.
  3. Обеспечение работоспособности тестов и примера использования.
  4. Реализация заготовок тестов, покрывающих все методы классов TVector и TMatrix.
  5. Модификация примера использования в тестовое приложение, позволяющее задавать матрицы и осуществлять основные операции над ними.

Используемые инструменты

  • Система контроля версий Git. Рекомендуется использовать один из следующих клиентов на выбор студента:
  • Фреймворк для написания автоматических тестов Google Test. Не требует установки, идет вместе с проектом-шаблоном.
  • Среда разработки Microsoft Visual Studio (2008 или старше).
  • Опционально. Утилита CMake для генерации проектов по сборке исходных кодов. Может быть использована для генерации решения для среды разработки, отличной от 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. Тесты, входящие в состав шаблонного проекта, регулярно запускаются на удаленной инфраструктуре.

В решении содержатся следующие модули:

  • Модуль utmatirx, содержащий реализацию классов Вектор и Матрица (файл ./include/utmatrix.h). Поскольку оба класса шаблонные, реализацию методов необходимо выполнять непосредственно в заголовочном файле. При этом интерфейсы классов должны оставаться неизменными.
  • Тесты для классов Вектор и Матрица (файлы ./test/test_tvector.cpp, ./test/test_tmatrix.cpp).
  • Пример использования класса Матрица (файл ./samples/sample_matrix.cpp).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 100.0%