Материал: ИКПИ. Пример отчета по практике

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

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