Загрузка данных
Copy of Отчет о практике в Администрации.
5,290 tokens
Model 1:16 PM
ThinkingThoughts
Expand to view model thoughts
chevron_right
ОТЧЕТ О ВЫПОЛНЕНИИ ПРОИЗВОДСТВЕННОГО ЗАДАНИЯ
Выполнил: Кононенко Николай Сергеевич
Место практики: Администрация города
Направление деятельности: Учет персонала и документооборот
ЗАДАНИЕ 1
Название: Создание программного кода для вывода текстовых сообщений, используемых на предприятии, на языке C++.
Описание: Разработка программы, которая выводит на экран основные информационные и предупреждающие сообщения, характерные для документооборота и внутренней связи в Администрации города.
Программный код (C++):
code
C++
#include <iostream>
#include <string>
int main() {
std::cout << "=== СИСТЕМА УВЕДОМЛЕНИЙ АДМИНИСТРАЦИИ ГОРОДА ===" << std::endl;
std::cout << "[ИНФО] Система запущена в штатном режиме." << std::endl;
std::cout << "[ДОКУМЕНТ] Поступило новое обращение граждан на рассмотрение." << std::endl;
std::cout << "[ОТДЕЛ КАДРОВ] Необходимо актуализировать штатное расписание." << std::endl;
std::cout << "[ВНИМАНИЕ] Срок исполнения поручения по документу No 405 истекает через 24 часа." << std::endl;
std::cout << "=================================================" << std::endl;
return 0;
}
Скриншоты выполнения программы:
[Вставьте здесь скриншот консоли с результатом работы программы 1]
ЗАДАНИЕ 2
Название: Создание консольного приложения для ввода и вывода данных предприятия (учет и подсчет персонала).
Описание: Разработка консольного приложения, которое позволяет вводить данные по отделам администрации (название отдела, текущее количество сотрудников, лимит по штатному расписанию) и рассчитывать общую численность персонала, а также определять дефицит или избыток кадров.
Программный код (C++):
code
C++
#include <iostream>
#include <string>
#include <vector>
struct Department {
std::string name;
int currentStaff;
int maxStaff;
};
int main() {
int numDepartments;
std::cout << "Введите количество отделов администрации: ";
std::cin >> numDepartments;
std::vector<Department> departments(numDepartments);
int totalStaff = 0;
for (int i = 0; i < numDepartments; ++i) {
std::cout << "\nОтдел " << i + 1 << ":" << std::endl;
std::cout << "Название отдела: ";
std::cin.ignore();
std::getline(std::cin, departments[i].name);
std::cout << "Текущее количество сотрудников: ";
std::cin >> departments[i].currentStaff;
std::cout << "Максимальное количество по штату: ";
std::cin >> departments[i].maxStaff;
totalStaff += departments[i].currentStaff;
}
std::cout << "\n=== ИТОГОВЫЙ ОТЧЕТ ПО ШТАТУ АДМИНИСТРАЦИИ ===" << std::endl;
std::cout << "Общая численность сотрудников во введенных отделах: " << totalStaff << std::endl;
for (const auto& dept : departments) {
int vacancy = dept.maxStaff - dept.currentStaff;
std::cout << "\nОтдел: " << dept.name << std::endl;
std::cout << "Текущий штат: " << dept.currentStaff << " из " << dept.maxStaff << std::endl;
if (vacancy > 0) {
std::cout << "Статус: Есть вакансии (доступно мест: " << vacancy << ")" << std::endl;
} else if (vacancy < 0) {
std::cout << "Статус: Превышение лимита штата на " << -vacancy << " чел." << std::endl;
} else {
std::cout << "Статус: Штат полностью укомплектован." << std::endl;
}
}
return 0;
}
Скриншоты выполнения программы:
[Вставьте здесь скриншот консоли с результатом работы программы 2]
ЗАДАНИЕ 3
Название: Отладка программного кода.
Описание: Выполнение отладки разработанного кода в среде программирования (IDE) и составление перечня типовых ошибок, возникших и устраненных в процессе работы.
Перечень ошибок, выявленных при отладке:
Ошибка очистки буфера ввода (std::cin.ignore()): При переходе от ввода числа (количество отделов) к вводу строки (название отдела) происходил пропуск считывания имени первого отдела из-за оставшегося символа новой строки в буфере. Ошибка исправлена добавлением метода cin.ignore().
Выход за пределы массива: Первоначально индекс итератора в цикле вывода превышал размерность вектора на единицу. Ошибка обнаружена с помощью встроенного отладчика (Watch/Локальные переменные) и исправлена заменой условия цикла.
Ошибки приведения типов/деления на ноль (в потенциальных расчетах среднего): Добавлены проверки на равенство нулю вводимых значений количества отделов, чтобы избежать критической ошибки выполнения (Runtime Error).
Скриншоты процесса отладки (точки останова, отслеживание переменных):
[Вставьте здесь скриншот процесса отладки в вашей IDE]
ЗАДАНИЕ 4
Название: Тестирование программного кода с разными наборами данных.
Описание: Проведение тестирования приложения (из Задания 2) с использованием различных входных данных (нормальные условия, граничные значения, ошибочные данные).
Тестовые варианты и наборы данных:
№ теста Описание случая Входные данные Ожидаемый результат Фактический результат
1 Стандартный расчет (Нормальные значения) Кол-во отделов: 2<br>1) Отдел кадров, штат: 5, макс: 5<br>2) Общий отдел, штат: 10, макс: 12 Общий штат: 15.<br>Кадры: укомплектован.<br>Общий: 2 вакансии. Соответствует ожидаемому
2 Граничное значение (Штат равен нулю) Кол-во отделов: 1<br>1) Архив, штат: 0, макс: 3 Общий штат: 0.<br>Архив: Есть вакансии (3 места). Соответствует ожидаемому
3 Ошибочный ввод (Превышение лимита штата) Кол-во отделов: 1<br>1) Юротдел, штат: 8, макс: 5 Общий штат: 8.<br>Юротдел: Превышение лимита на 3 чел. Соответствует ожидаемому
Скриншоты тестирования программы:
[Вставьте здесь скриншоты консоли для каждого из проведенных тестов]
ЗАДАНИЕ 5
Название: Подготовка программных модулей к интеграции.
Описание: Анализ применения разработанных модулей для их последующего объединения и использования в крупных муниципальных информационных системах.
Анализ интеграции программных модулей:
Модуль вывода сообщений (Задание 1): Может быть преобразован в отдельный класс-логгер (Logger), отвечающий за запись системных событий, ошибок и предупреждений в текстовый файл или отправку их по внутренней сети администратору.
Модуль учета персонала (Задание 2): Логика хранения данных о сотрудниках и отделах (структура Department и динамический список std::vector) готова к интеграции с базой данных (например, PostgreSQL или SQLite) посредством SQL-запросов вместо ручного консольного ввода.
Перспективы интеграции: Объединенная система представляет собой микромодуль для внутренней ERP-системы Администрации города (подсистема "Кадры" и "Уведомления").
ЗАДАНИЕ 6
Название: Практические задачи для применения программных кодов.
Описание: Примеры конкретных административных и организационных задач в Администрации города, где могут использоваться данные алгоритмы.
Для кода вывода сообщений (Задание 1):
Автоматическое информирование сотрудников отделов о скором дедлайне исполнения поручений мэра.
Вывод системных сообщений при регистрации входящих писем от граждан в электронном журнале.
Для кода расчета персонала (Задание 2):
Ежемесячный мониторинг вакантных должностей в департаментах администрации для формирования отчетов в вышестоящие органы.
Расчет фонда оплаты труда на основе реального количества сотрудников в каждом комитете.
Оптимизация штатной структуры при реорганизации комитетов администрации.
ЗАДАНИЕ 7
Название: Разработка интерфейса для предприятия.
Описание: Разработка прототипа пользовательского интерфейса для автоматизации работы отдела кадров Администрации города, описание его работы, возможных ошибок и способов их решения.
Прототип интерфейса (макет):
Интерфейс представляет собой оконное приложение (GUI), выполненное в лаконичном стиле административного ПО.
[Вставьте здесь графический макет/скриншот прототипа окна (можно сделать в графическом редакторе, Figma или конструкторе форм IDE)]
Принцип работы и тип интерфейса:
Тип интерфейса: Графический интерфейс пользователя (GUI), оконный.
Принцип работы: Пользователь запускает форму, где отображается список отделов. С помощью кнопок "Добавить отдел", "Удалить" или "Редактировать" вносит изменения. В правой части окна выводятся суммарные показатели по штату администрации и график укомплектованности отделов.
Возможные ошибки пользователя и пути их исправления:
Ошибка пользователя Сообщение системы об ошибке Путь исправления
Ввод букв в числовое поле количества сотрудников. "Ошибка ввода: Поле 'Текущий штат' должно содержать только цифры." Блокировка ввода любых символов, кроме цифр, на уровне самого текстового поля (обработчик событий ввода).
Оставление названия отдела пустым. "Внимание: Название отдела не может быть пустым." Проверка поля перед отправкой формы. Кнопка "Сохранить" становится активной только при заполненных ключевых полях.
Попытка ввести отрицательное число сотрудников. "Ошибка: Количество сотрудников не может быть отрицательным." Ограничение диапазона вводимых чисел в интерфейсе от 0 до 9999.