Материал: Автоматизация учета ежемесячных сведений о количестве уволившихся работников

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

Автоматизация учета ежемесячных сведений о количестве уволившихся работников

Белорусский республиканский союз потребительских обществ

Учреждение образования "Белорусский торгово-экономический университет потребительской кооперации"

Кафедра информационно-вычислительных систем









Курсовая работа

Автоматизация учета ежемесячных сведений о количестве уволившихся работников


Подготовил:

студент группы С-21

Левченко Богдан Сергеевич

Проверил:

доцент Мовшович С.М.



Гомель 2015

Содержание

1. Постановка задачи. Тест

. Функционально-модульная структура проекта

. Интерфейс проекта

4. Описания алгоритмов и тексты процедур

4.1 Модуль Unit1

.2 Модуль Unit2

.3 Модуль Unit3

.4 Модуль Unit4

.5 Модуль Unit5

. Результат выполнения проекта

. Направления развития проекта

. Инструкция пользователя

.1 Назначение программы

.2 Условия выполнения программы

.3 Выполнение программы

.4 Сообщения пользователю

Список используемых источников

1. Постановка задачи. Тест

работник уволившийся программа электронный

В текстовом файле находится таблица, содержащая сведения о количестве уволившихся работников и состоящая из пяти граф: Подразделение предприятия; Месяц; Год; Категория работников, Число уволившихся. Рассматривается четыре категории работников: рабочие, руководители, специалисты и технические исполнители.

Разработайте алгоритм и программу вычисления общего числа уволившихся работников каждой категории за весь период учета. Результаты расчета запишите в новый текстовый файл, содержащий таблицу из двух граф: Категория работников, Общее число уволившихся.

На рисунке 1 приведена электронная таблица с подготовленными исходными данными.

Рисунок 1 - Электронная таблица с исходными данными

По команде Сохранить как сохраним исходные данные в новый файл Количество уволившихся, в качестве типа которого укажем Текстовые файлы (с разделителями табуляции). Текстовый файл сохраним в той папке, в которой будет находиться разрабатываемый проект.

Обратите внимание, что в исходных данных категории работников находятся в разных подразделениях предприятия.

Текстовый файл с исходными данными проекта приведен на рисунке 2. Отметим, что элементы данных в одной строке разделяются табуляцией.

Рисунок 2 - Текстовый файл Количество уволившихся.txt

В электронной книге Excel создадим копию листа с исходными данными. Выполним сортировку по полю Категория работников и вставим строки с промежуточными итогами для вычисления общего количества уволенных по каждой категории. Таким образом, подготовлен тест для нашего проекта (рисунок 3), который сохраним под именем Тест.xls в той папке, в которой будет находиться разрабатываемый проект.

Рисунок 3 - Тест, подготовленный в MS Excel

2. Функционально-модульная структура проекта

Будем разрабатывать многомодульный проект с главным меню в окне первой формы. Меню будет включать следующие команды: Ввод исходных данных, Сортировка, Обработка, Об авторе, Выход.

Модуль Unit1, соответствующий первой форме Form1. должен обеспечивать вызов остальных модулей и отображение соответствующих форм. Кроме того, перед началом работы (до выбора пользователем одной из команд меню) в Unit1 надо уничтожить старую версию выходного файла и установить признаки того, что ни одна из команд меню еще не выполнялась.

Реакция на выбор пользователем команды Выход, реализуемая в этом же модуле Unit1, включает контроль записи результатов в новый файл. Если запись не была выполнена, то выход из программы не осуществляется.

По команде Ввод исходных данных открывается окно второй формы Form2, при активации которой будут вводиться данные из текстового файла, записываться в массивы и отображаться в таблице строк. Здесь же устанавливается признак успешной обработки исходного файла. Всего на форме находится одна кнопка. Кнопка обеспечивает возврат к первой форме. Все перечисленные действия реализовываются в модуле Unit2.

Команда Сортировка вызывает третью форму Form3, при активации которой будет выполняться сортировка исходных массивов по полю Категория работников и результат сортировки отображается в таблице строк. Сортировка выполняется только при наличии признака успешного ввода исходных данных. После выполнения сортировки программа устанавливает соответствующий признак. На форме находятся одна кнопка, обеспечивающие возврат к первой форме. Все перечисленные действия реализовываются в модуле Unit3.

По команде Обработка вызывается четвертая форма Form4 при активации которой происходит обработка массивов. Обработка массивов производится только при наличии признаков успешного ввода исходных данных и выполнения сортировки. На форме находятся две командные кнопки. Одна из них вызывает процедуру записи результата обработки массивов в новый текстовый файл, вторая - обеспечивает возврат к первой форме. После успешного создания выходного файла программа должна установить соответствующий признак. Все перечисленные действия реализовываются в модуле Unit4.

Команда Об авторе должна вызывать окно пятой формы Form5, в которой отображаются сведения об авторе.

Таким образом, проект содержит пять форм и соответственно пять модулей.

Описанная функциональная структура проекта приведена на рисунке 4.

Рисунок 4 - Функционально модульная схема проекта

3. Интерфейс проекта

Вид формы Form1 приведен на рисунке 5.

Рисунок 5 - Окно Form1

На форму помещено шесть визуальных компонентов:

. Компонент MainMenu1 с пятью командами:- Ввод исходных данных;- Сортировка;- Обработка;- Об авторе;- Выход.

. Компонент Memo1, содержащий строки с условием задачи.

. Компонент Image1, содержащий фоновый рисунок.

. Компонент Label1, отображающийся в виде часов.

. Компонент Timer1.

. Компонент MonthCalendar1, отображающий текущую дату.

Вид формы Form2 приведен на рисунке 6.

Рисунок 6 - Окно Form2

. Компонент Image1, содержащий фоновый рисунок.

. Таблица строк StringGrid1 со следующими значениями свойств:

·        ColCount - 5;

·        RowCount - 30;

·        FixedCols - 0;

·        FixedRows - 1;

·        goEditing - True.

. Командная кнопка Button1, свойство Caption которой имеет значение В главное меню.

. Компонент OpenDilog позволяющий открыть файл и поместить его в StringGrid1.

Вид формы Form3 приведен на рисунке 7.

Рисунок 7 - Окно Form3

На форме Form3 помещено три визуальных компонента:

. Компонент Image1, содержащий фоновый рисунок.

. Таблица строк StringGrid1 со следующими значениями свойств:

·        ColCount - 5;

·        RowCount - 30;

·        FixedCols - 0;

·        FixedRows - 1;

·        goEditing - False.

. Командная кнопка Button1, свойство Caption которой имеет значение В главное меню.

Вид формы Form4 приведен на рисунке 8.

Рисунок 8 - Окно Form4

На форм Form4 помещено пять визуальных компонентов:

. Компонент Image1, содержащий фоновый рисунок.

. Таблица строк StringGrid1 со следующими значениями свойств:

·        ColCount - 5;

·        RowCount - 30;

·        FixedCols - 0;

·        FixedRows - 1;

·        goEditing - False.

. Командная кнопка Button1, свойство Caption которой имеет значение В главное меню.

. Командная кнопка Button2, свойство Caption которой имеет значение Запись результатов в файл.

. Компонент MonthCalendar1, отображающий текущую дату.

Вид формы Form5 приведен на рисунке 9.

На форме Form4 помещено пять визуальных компонентов:

. Компонент Image1, содержащий фоновый рисунок.

. Таблица строк StringGrid1 со следующими значениями свойств:

·        ColCount - 2;

·        RowCount - 30;

·        FixedCols - 0;

·        FixedRows - 1;

·        goEditing - False.

. Командная кнопка Button1, свойство Caption которой имеет значение Запись результатов в файл.

. Командная кнопка Button2, свойство Caption которой имеет значение В главное меню.

. Компонент MonthCalendar1, отображающий текущую дату.

Вид формы Form5 приведен на рисунке 9.

Рисунок 9 - Окно Form5

На форме Form5 помещено три визуальных компонента:

.        Компонент Image1, содержащий фоновый рисунок.

.        Компонент label1, содержащий информацию об авторе.

.        Командная кнопка Button1, свойство Caption которой имеет значение В главное меню.

4. Описания алгоритмов и тексты процедур

.1 Модуль Unit1

Фрагмент интерфейсной части модуля Unit1 и описание связи с другими модулями приведено на рисунке 11.

Рисунок 11 - Фрагмент интерфейсной части модуля Unit1

Как видно из рисунка 11, в качестве глобальных используются пять массивов. Три из них (pod, mec, kat,) имеют строковый тип и предназначены для хранения наименований подразделений, наименований месяцев и наименований категорий, вводимых из заданного текстового файла. Года и количество уволенных работников будет храниться в вещественном массиве (god, yvol). Элементы всех массивов получают значения в модуле Unit2 и используются в модулях Unit3 и Unit4.

Кроме указанных массивов глобальными объявлены следующие переменные:

целая переменная n - (число строк в исходном файле (без учета первой строки с заголовками граф) - получает значение в модуле Unit2 и используется в модулях Unit3 и Unit4;

логическая переменная w1 - в модуле Unit1 получает начальное значение False, в модуле Unit2 получает значение True после успешного выполнения команды Ввод исходных данных, используется в модулях Unit3 и Unit4;

логическая переменная c1 - в модуле Unit1 получает начальное значение False, в модуле Unit3 получает значение True после успешного выполнения команды Сортировка, используется в модуле Unit4;

логическая переменная z1 - в модуле Unit1 получает начальное значение False, в модуле Unit4 получает значение True после успешного выполнения команды Запись результатов в файл, используется в модуле Unit1;

файловая переменная fv2 получает значение в модуле Unit1 и используется в модулях Unit1 и Unit4.

Модуль Unit1 содержит инициализирующую часть, которая приведена на рисунке 12.

Рисунок 12 - Инициализирующая часть модуля Unit1

В инициализирующей части логические переменные w1, c1 и z1 получают начальные значения False как признаки того, что еще не выполнялись команды меню. Кроме того, в рассматриваемой части модуля уничтожается старая версия файла Количество уволившихся.txt, если она существовала.


Рисунок 13 - Исполняемая часть модуля Unit1

Первые четыре процедуры содержат по одному оператору, который вызывает соответствующую форму.

Пятая процедура выполняется при выборе пользователем команды Выход. Эта процедура осуществляет окончание работы проекта только, если пользователь ранее (при работе с окном приложения Form4) записал в файл результаты расчета.

Также в модуле содержаться дополнительная процедура.

Она предназначена для отображения времени в окне программы с помощью компонента Label.

Эта процедура приведенa на рисунке 14.

Рисунок 14 - Процедура отображения времени в компоненте Label1

.2 Модуль Unit2

Модуль Unit2 содержит две процедуры.

На рисунке 15 приведена схема алгоритма процедуры TForm2.FormActivate, вызываемой при активации Form2.

Рисунок 15 - Укрупненная схема алгоритма активации Form2

На схеме рисунка 15 детализации требует только блок AB. Соответствующая схема алгоритма приведена на рисунке 16.

Отмечу, что при выделении элементов данных из строки файла проверяется наличие всех элементов. При отсутствии любого из них выдается сообщение об ошибке с указанием номера строки файла, в котором обнаружена ошибка.

Для поиска в строке позиции табуляции использовалась функция Chr($09), которая преобразует шестнадцатеричный код табуляции в литеру.

Источник: https://www.bibliofond.ru/view.aspx?id=871373