lib/mobile_numbers_data.cpp
}
}
MobileNumbersRange MobileNumbersData::find_with_check(std::string mobile_number) const
{
std::smatch sm;
if (!std::regex_match(mobile_number, sm, MobileNumberDefines::mobile_number_regex))
{
throw std::out_of_range("Invalid mobile number.");
}
return m_data.find(sm.str(2) + sm.str(3) + sm.str(4) + sm.str(5));
}
MobileNumbersRange MobileNumbersData::find_without_check(std::string mobile_number) const
{
return m_data.find(mobile_number);
}
std::string MobileNumbersData::generate() const
{
MobileNumbersRange range = m_data.get_random(); std::string operator_code = range.operator_code(); std::string caller_code =
std::to_string(RandomGen::get_random_int_number(range.caller_code_from_i(), range.caller_code_to_i())); return std::string(MobileNumberDefines::OPERATOR_CODE_DIGITS - operator_code.size(), '0') +
operator_code +
std::string(MobileNumberDefines::CALLER_CODE_DIGITS - caller_code.size(), '0') + caller_code;
}
bool MobileNumbersData::is_mobile_number(const std::string &arg)
{
return std::regex_match(arg, MobileNumberDefines::mobile_number_regex);
}
Таблица 30. Сборочный файл lib/Makefile lib/Makefile
.PHONY : all clean CXX=g++
CXXFLAGS=-std=c++17 -O4 -Werror -pedantic-errors -Wredundant-decls \ -Wall -Wextra -Wpedantic -Wcast-align -Wcast-qual \ -Wconversion -Wctor-dtor-privacy -Wduplicated-branches \ -Wduplicated-cond -Wextra-semi -Wfloat-equal -Wlogical-op \
-Wnon-virtual-dtor -Woverloaded-virtual -Wsign-conversion -Wsign-promo
all: $(patsubst %.cpp, %.o, $(wildcard *.cpp))
%.o: %.cpp %.h Makefile
$(CXX) $(CXXFLAGS) -c -o $@ $<
clean:
rm -f *.o
Таблица 31. Сборочный файл Makefile Makefile
.PHONY : all clean CXX=g++
CXXFLAGS=-std=c++17 -O4 -Werror -pedantic-errors -Wredundant-decls \ -Wall -Wextra -Wpedantic -Wcast-align -Wcast-qual \ -Wconversion -Wctor-dtor-privacy -Wduplicated-branches \ -Wduplicated-cond -Wextra-semi -Wfloat-equal -Wlogical-op \
-Wnon-virtual-dtor -Woverloaded-virtual -Wsign-conversion -Wsign-promo LIB_HEADERS=$(wildcard lib/*.h)
LIB_SOURCES=$(wildcard lib/*.cpp) LIB_OBJECTS=$(patsubst %.cpp, %.o, $(LIB_SOURCES))
all: main test
36
Makefile
main: $(LIB_OBJECTS) main.o
$(CXX) $(CXXFLAGS) -o main $(LIB_OBJECTS) main.o
test: $(LIB_OBJECTS) test.o
$(CXX) $(CXXFLAGS) -o test $(LIB_OBJECTS) test.o
$(LIB_OBJECTS): $(LIB_SOURCES) $(LIB_HEADERS) @cd lib && $(MAKE) && cd ../
%.o: %.cpp Makefile
$(CXX) $(CXXFLAGS) -c -o $@ $<
clean:
rm -f *.o
37
ДНЕВНИК ПРОИЗВОДСТВЕННОЙ ПРАКТИКИ
Даты |
Рабочее |
Содержание выполненных |
Подпись |
|
начала и |
||||
место |
работ |
руководителя |
||
окончания |
||||
|
|
|
||
|
ООО «НТЦ |
Получение первого задания на |
|
|
28.06.21 |
практику, связанного с освоением |
|
||
Севентест» |
|
|||
|
основных возможностей CORBA |
|
||
|
|
|
||
|
|
|
|
|
29.06.21 |
ООО «НТЦ |
Поиск и чтение информации о |
|
|
Севентест» |
CORBA. |
|
||
|
|
|||
|
|
|
|
|
|
ООО «НТЦ |
Чтение документации omniORB, |
|
|
30.06.21 |
реализующего спецификацию |
|
||
Севентест» |
|
|||
|
CORBA 2.1. |
|
||
|
|
|
||
|
|
|
|
|
|
ООО «НТЦ |
Создание клиент-серверного |
|
|
01.06.21 |
приложения с помощью omniORB |
|
||
Севентест» |
|
|||
|
4.2.4. |
|
||
|
|
|
||
|
|
|
|
|
|
ООО «НТЦ |
Попытка использования omniORB |
|
|
02.06.21 |
для взаимодействия программ, |
|
||
Севентест» |
|
|||
|
работающих в двух разных сетях. |
|
||
|
|
|
||
|
|
|
|
|
|
ООО «НТЦ |
Поиск и чтение информации о |
|
|
05.06.21 |
CORBA, чтение документации |
|
||
Севентест» |
|
|||
|
omniORB. |
|
||
|
|
|
||
|
|
|
|
|
06.06.21 |
ООО «НТЦ |
Сдача первого задания. |
|
|
Севентест» |
|
|||
|
|
|
||
|
|
|
|
|
|
|
Получение второго задания на |
|
|
07.06.21 |
ООО «НТЦ |
практику, связанного с созданием |
|
|
Севентест» |
библиотеки для парсинга файлов |
|
||
|
|
|||
|
|
выписки плана нумерации ФАС. |
|
|
|
ООО «НТЦ |
Создание программы для поиска |
|
|
08.06.21 |
запрашиваемого номера в CSV |
|
||
Севентест» |
|
|||
|
файлах текущей директории. |
|
||
|
|
|
||
|
|
|
|
|
|
|
Создание программы для загрузки |
|
|
|
|
данных ФАС из CSV файлов текущей |
|
|
09.06.21 |
ООО «НТЦ |
директории в память и поиска |
|
|
Севентест» |
запрашиваемого номера. |
|
||
|
|
|||
|
|
Использование двусторонней |
|
|
|
|
очереди с бинарным поиском. |
|
|
|
ООО «НТЦ |
Использование хэш-таблицы с |
|
|
12.06.21 |
упорядоченным множеством. Оценка |
|
||
Севентест» |
|
|||
|
производительности решения. |
|
||
|
|
|
||
|
|
|
|
|
|
|
Использование хэш-таблицы без |
|
|
13.06.21 |
ООО «НТЦ |
уникальных ключей с |
|
|
Севентест» |
упорядоченным множеством. Оценка |
|
||
|
|
|||
|
|
производительности решения. |
|
|
|
|
38 |
|
Даты |
Рабочее |
Содержание выполненных |
Подпись |
|
начала и |
||||
место |
работ |
руководителя |
||
окончания |
||||
|
|
|
||
|
|
Использование хэш-таблицы с |
|
|
14.06.21 |
ООО «НТЦ |
минимальными масками диапазонов. |
|
|
Севентест» |
Оценка производительности |
|
||
|
|
|||
|
|
решения. |
|
|
|
|
Использование дерева цифр с |
|
|
15.06.21 |
ООО «НТЦ |
минимальным масками диапазонов. |
|
|
Севентест» |
Оценка производительности |
|
||
|
|
|||
|
|
решения. |
|
ЗАКЛЮЧЕНИЕ
В результате прохождения производственной практики в ООО «НТЦ Севентест» мои профессиональные навыки, необходимые выпускнику направления «программная инженерия», были значительно расширены. В
ходе практики мной были приобретены и усвоены навыки по работе с языком программирования C++.
СПИСОК ЛИТЕРАТУРЫ
Герберт Шилдт. C++. Руководство для начинающих. 2005.
39