Требования к экзаменационной (зачетной) программе по курсу ООП

Версия 1.02 от 14.05.07

Общие требования

  1. Программа должна быть написана на языке C++.
  2. Текст программы должен быть снабжен множеством комментариев, в т.ч. и заголовочным (т.н. "шапкой").
  3. Должны быть соблюдены правила отступа (2 пробела на каждый уровень).
  4. Файлы должны быть структурированы и распределены по каталогам.

Функциональные ООП-требования к программе

Программа должна содержать такие конструкции, как:
  1. Функции с неопределенным количеством аргументов (эллипс)
  2. Константы. В том числе:
  3. Параметры по умолчанию
  4. Перегрузка операций (overload)
  5. Классы с использованием всех модификаторов доступа к членам (public, private, protected)
  6. Наследование
  7. Дружественные функции и дружественные классы
  8. Виртуальные методы (в т.ч. - абстрактные методы)
  9. Абстрактные классы (множественное наследование)
  10. Статические члены класса
  11. Переопределение операторов
  12. Шаблоны классов
  13. Шаблоны функций

Структура каталогов

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

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

В зависимости от выбранного компилятора, файл clr.bat может выглядеть так:

Для системы Borland C++ Builder:

del *.bak
del *.obj
del *.il?
del *.tds
del *.~*

if exist ..\bin\*.* move *.exe ..\bin

Для системы MS Visual C++:

del *.pch
del *.plg
del *.pdb
del *.ncb
del *.opt

if exist ..\bin\*.* move *.exe ..\bin

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

Аналогичным образом полезно иметь файл для запуска компилятора. Предположим, что в состав проекта входят файлы: main.cpp, file1.cpp и ..\lib\mylib.cpp с соответствующими заголовочными файлами.

Тогда  для Borland C++ Builder компилирующий командный файл makeMyProg.bat может выглядеть так:

bcc32 -w -I..\lib main.cpp file1.cpp ..\lib\mylib.cpp

Для MS Visual C++:

cl /c main.cpp /EHsc
cl /c file1.cpp /EHsc
cl /c ..\lib\mylib.cpp /EHsc
cl main.obj file1.obj mylib.obj

Имейте в виду, что речь идет не о настоящем make-файле, а всего лишь о запуске компилятора из командной строки. Если речь идет не о простом консольном приложении, а о компиляции сложной оконной программы, то иногда можно пойти и на создание следующего командного файла (для Builder'а):

bpr2mak MyProject.bpr
make -f MyProject.mak

О комментариях

В начале каждого файла должен быть заголовочный комментарий - т.н.  "шапка". Этот комментарий должен содержать: наименование проекта, наименование и назначение модуля, ФИО автора, номер версии, дату создания, дату последней модификации и, при необходимости, дополнительные комментарии.

Пример:

/*********************************************
Проект : Адаптант 2006. Основная программа
Автор: Иванов А.А., гр. Ы-2007
Версия : 1.0.7
Дата : 21.03.2006
Дата последней модификации : 18.04.2007

Программа для контроллера макета 13x19

Chip type : ATmega162
Program type : Application
Clock frequency : 7,372800 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 128
*********************************************/

Обязательному комментированию подлежат:

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