Библиотека String  1.0
Own String library. Лабораторная работа ФБИТ ИТМО
cli.cpp
См. документацию.
1 /*!
2  * @file
3  * @brief Консольный (CLI) пример
4  * @example CLI cli.cpp
5  * Демонстрация возможностей библиотеки в консоли
6  */
7 #include <iostream>
8 
9 #include <own/string.h>
10 #include <own/identstr.h>
11 #include <own/binstr.h>
12 
13 /**
14  * Вывод информационного сообщения
15  * @param message Текст сообщения
16  */
17 void printInfo(std::string);
18 
19 /**
20  * Диалоговой ввод числа
21  * @param message Текст сообщения
22  * @return Введённое число
23  */
24 int inputDialog(std::string message);
25 
26 /**
27  * Главная функция
28  *
29  * @param argc Число аргуметов
30  * @param argv Список аргументов
31  *
32  * @return Статус исполнения программы
33  */
34 int main(int argc, char** argv)
35 {
36  int N = inputDialog("Введите число объектов (max: 6)");
37 
38  printInfo("Выделение памяти на " + std::to_string(N) + " объектов базового класса String");
39  own::String **mass = new own::String*[N];
40 
41  for (int i = 0; i < N; i++) {
42  printInfo("Ввод (строка)");
43  char *in = new char[1024]; // Инициализация Си-строки
44  std::cin >> in;
45 
46  if (inputDialog("IdentStr(0) / BinStr (1)") == 0) {
47  mass[i] = new own::IdentStr(in);
48  printInfo(".show()");
49  mass[i]->show();
50  printInfo(".getDigitsNum()");
51  std::cout << static_cast<own::IdentStr*>(mass[i])->getDigitsNum() << std::endl;
52 
53  } else {
54  mass[i] = new own::BinStr(in);
55  printInfo(".show()");
56  mass[i]->show();
57  printInfo(".getSign()");
58  if (static_cast<own::BinStr*>(mass[i])->getSign() == own::BinStr::POSITIVE) {
59  std::cout << "Positive" << std::endl;
60  } else {
61  std::cout << "Negative" << std::endl;
62  }
63  }
64  }
65  delete[] mass;
66 
67  return 0;
68 }
69 
70 void printInfo(std::string message) {
71  std::cout << std::endl;
72  std::cout << "> " << message << ":" << std::endl;
73 }
74 
75 int inputDialog(std::string message) {
76  std::cout << std::endl;
77  std::cout << "? " << message << ": ";
78  int answer;
79  std::cin >> answer;
80  return answer;
81 }
own::IdentStr
Производный от "Строка" класс "Строка-идентификатор".
Definition: identstr.h:24
binstr.h
Заголовочный файл с описанием класса "Битовая строка".
own::String
Базовый класс "Строка".
Definition: string.h:17
string.h
Заголовочный файл с описанием класса "Строка".
own::BinStr::POSITIVE
@ POSITIVE
Положительное число
Definition: binstr.h:52
own::String::show
void show() const
Definition: string.cpp:46
main
int main(int argc, char **argv)
Definition: cli.cpp:34
own::BinStr
Производный от "Строка" класс "Битовая строка".
Definition: binstr.h:25
inputDialog
int inputDialog(std::string message)
Definition: cli.cpp:75
identstr.h
Заголовочный файл с описанием класса "Строка-идентификатор".
printInfo
void printInfo(std::string)
Definition: cli.cpp:70