Перейти к основному содержимому

Режимы выполнения программы

О режимах

С режимами выполнения программы вы сталкиваться при выполнении лабораторной работы из предыдущей дисциплины. Для этой же дисциплины все лабораторные работы необходимо делать в таком виде.

Программа должна иметь два режима запуска: демонстрационный и интерактивный:

  • В демонстрационном режиме необходимо продемонстрировать в консоли все доступные функции работы со словарем с комментариями к отображаемым данным.

    осторожно

    В данном режиме не должно быть никакого пользовательского ввода. Для демонстрации вместо ввода из консоли исполнитель самостоятельно определяет и присваивает значения аргументам демонстрируемым функциям.

    Исполнитель задания самостоятельно определяет какие параметры передаются в качестве аргументов в функции работы со словарем. Конечный вид данного режима определяет исполнитель задания.

  • В интерактивном режиме обеспечить интерактивное взаимодействие с пользователем, например, приглашение к вводу данных с клавиатуры или нажатие определенных клавиш.

предупреждение

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

Реализация режима запуска

Для того, чтобы запускать программу в интерактивном режиме, мы будем передавать в качестве аргумента символом i. Тогда запуск программы в интерактивном режиме будет выглядеть в оболочке Bash:

lab1 i

Подпрограмму, отвечающую за интерактивный режим, выделим в функцию interactive(), а для демонстрационного режима - demo(). Тогда прототип программы, определяющий режим запуска, будет выглядеть следующим образом:

#include <iostream>
#include <string.h>

int interactive();

int demo();

int main(int argc, char *argv[]) {
bool isInteractive = false; // по умолчанию демо-режим.

// Если i передается в качестве аргумента, то программу
// необходимо запустить в интерактивном режиме
if ((argc == 2) && strcmp(argv[1], "i") == 0) {
isInteractive = true;
}

if (isInteractive) {
return interactive();

} else {
return demo();
}
}