Содержание
Введение3
1 Аналитическая часть5
1.1 Технико-экономическая характеристика предметной области5
1.1.1 Характеристика предприятия5
1.1.2 Организационная структура управления предприятием7
1.1.3 Программная и техническая архитектура ИС предприятия9
1.2 Характеристика комплекса задач, задачи и обоснование необходимости автоматизации15
1.2.1 Выбор комплекса задач автоматизации и характеристика существующих бизнес-процессов15
1.2.3 Обоснование необходимости и цели использования вычислительной техники для решения задач17
1.3 Анализ существующих разработок, выбор и обоснование стратегии автоматизации и способа приобретения ИС. Обоснование выбора технологии проектирования22
1.3.1 Анализ существующих разработок для автоматизации комплекса задач22
1.3.2 Выбор и обоснование стратегии автоматизации задачи23
1.3.3 Выбор и обоснование способа приобретения ИС для автоматизации комплекса задач27
1.4 Обоснование проектных решений по видам обеспечения29
2 Проектная часть37
2.1 Информационное обеспечение задачи (комплекса задач, АМР)37
2.1.1 Назначение и цель разработки37
2.1.2 Характеристика базы данных38
2.2 Разработка алгоритмов функционирования56
2.3 Эксплуатационные требования64
2.3.1 Требования к процессу взаимодействия клиентской части и ERP-системы64
2.3.2 Инвентаризация на ТСД64
2.3.3 Установка ПО на терминалах сбора данных (ТСД)65
3 Обоснование экономической эффективности проекта68
Заключение78
Список используемой литературы79
Приложение 181
Приложение 282
Выдержка из текста работы
- Введение
- 1. Постановка задачи
- 2. Решение задачи
- 2.1 Структура данных
- 2.2 Алгоритм решения
- 3. Описание программного обеспечения
- 3.1 Входные данные
- 3.2 Выходные данные
- 3.3 Требования к надежности
- 3.4 Структурная диаграмма
- 3.5 Описание функций
- 4. Описание работы программного продукта
- 4.1 Руководство пользователя
- 4.2 Тестирование
- Заключение
- Приложение
В данном курсовом проекте представлено программное обеспечение для организации курсовых работ и практик. Благодаря структурированному выводу информации и удобному поиску эта программа может облегчить работу преподавателю и студенту.
В первом разделе рассмотрена постановка задачи.
Во втором разделе рассмотрено структура данных и алгоритм решения.
В третьем разделе рассмотрено проектирование программного модуля, также описана схема модуля, определение входных и выходных данных программы.
В четвертом разделе рассмотрено тест программного модуля и руководство пользователя.
1. Постановка задачи
Цель работы: освоение функций работы со структурами данных и файлами.
Постановка задачи: необходимо разработать программное обеспечение для создания и обработки сведений о сотрудниках учреждения.
Функции программы:
А) Создание файла;
Б) Добавление записей в файл;
В) Вывод файла на экран;
Г) Корректировка файла ;
Д) Очистка файла;
Е) Распечатка файла;
Главное меню должно содержать основные пункты для работы с файлом .
Данная программа должна выводить на экран содержимое файла и список всех сотрудников, у которых есть несовершеннолетние дети, а также сформировывать файл сотрудников, у которых совершеннолетние дети и распечатывать его.
Корректировка файла включает в себя изменение № отдела по ФИО сотрудника.
Удаление записей осуществляется по ФИО.
файл программный обеспечение пользователь
2. Решение задачи
2.1 Структура данных
При разработке программного обеспечения большую роль играет проектирование хранилища данных и представление всех данных в виде множества связанных структур данных.
В данной программе было использовано одна структура данных:
struct sotrud
int n;
char fio[40];
int kol;
int v;
Объявлена структура, которая хранит сведения о сотрудниках: номер отдела, ФИО сотрудника, количество детей, возраст ребенка.
2.2 Алгоритм решения
При запуске программы осуществляется вход в меню, которое дает возможность пользователю выбрать дальнейшие действия программы:
1) Создание и заполнение файла ( выбор осуществляется клавишей 1);
2) Вывод файла на экран ( выбор осуществляется клавишей 2);
3) Вывод сотрудников с несовершеннолетними детьми ( выбор осуществляется клавишей 3);
4) Создание файла сотрудники с совершеннолетними детьми ( выбор осуществляется клавишей 4);
5) Распечатать сформированный файл ( выбор осуществляется клавишей 5);
6) Удаление записей по ФИО ( выбор осуществляется клавишей 6);
7) Очистка файла ( выбор осуществляется клавишей 7);
8) Корректировка файла ( выбор осуществляется клавишей 8);
9) Выход ( выбор осуществляется клавишей 9).
При выборе пункта 1 в меню на экране появляется возможность создания и заполнения файла. Необходимо ввести количество записей, номер отдела, ФИО сотрудника, количество детей(<=10), возраст каждого ребенка( полное число лет).
При выборе пункта 2 в меню на экран выводится содержимое файла.
При выборе пункта 3 в меню на экран выводится список всех сотрудников, у которых есть несовершеннолетние дети.
При выборе пункта 4 в меню осуществляется создание файла сотрудники с совершеннолетними детьми.
При выборе пункта 5 в меню сформированный ранее файл идет на печать.
При выборе пункта 6 в меню происходит удаление записей по ФИО. Необходимо ввести ФИО сотрудника, по которому в дальнейшем можно будет удалить записи.
При выборе пункта 7 в меню файл будет полностью очищен.
При выборе пункта 8 в меню запустится корректировка файла. Необходимо будет вести ФИО сотрудника по которому можно будет изменить его номер отдела.
При выборе пункта 9 в меню осуществляется выход из программы.
3. Описание программного обеспечения
3.1 Входные данные
Входные данные представлены в таблице 1.1
Таблица 1.1 — Описание входных данных
Название |
Обозначение |
Диапазон значений |
|
Меню выбора метода решения системы |
d |
1-9 |
|
Номер отдела |
n |
Целое число |
|
ФИО сотрудника |
fio |
Строка |
|
Количество детей |
kol |
Целое число |
|
Возраст ребенка |
v |
Целое число |
Управление меню осуществляется с помощью цифр 1, 2, 3, 4, 5, 6, 7, 8, 9. Выбор конкретного пункта осуществляется нажатием клавиши с соответствующим номером меню. Осуществляется проверка входных данных на соответствие: входные данные от пользователя проверяются, неподходящие данные не рассматриваются.
3.2 Выходные данные
Результатом работы программы являются файлы “Дети сотрудников.txt ”, “ num.txt ”,“ Вспомогательный.txt”,“ Отчет о совершеннолетних.txt ” в которых хранятся все значения, которые были введены во время работы программы.
Выходные данные представлены в таблице 1.2
Таблица 1.2 — Описание выходных данных
Название |
Вид представления |
Вывод |
|
Статическая структура, которая содержит данные файла «Дети сотрудников.txt» |
struct sotrud |
Вывод на экран |
3.3 Требования к надежности
Описание ошибок представлены в таблице 1.3
Таблица 1.3 — Описание возможных ошибок со стороны пользователя и методы их диагностики
Причина появления ошибки |
Реакция программы |
Метод её исправления |
|
Исходные данные не соответствуют требуемому типу. |
Повторяется запрос. |
Заново ввести данные |
|
Ввод несуществующего пункта меню. |
3.4 Структурная диаграмма
При разработке программного модуля была использована технология нисходящего структурного программирования. В соответствии с этой технологией программный комплекс разбивался на программные модули, и разрабатывались алгоритмы для каждого модуля. Была разработана схема взаимодействия программных модулей (структурная диаграмма).
Структурная диаграмма включает три уровня. Первый уровень — функция main. Второй уровень — функции menu.Третий уровень состоит из 8 функций.
Рисунок 1 — Структурная диаграмма взаимодействия модулей
int main() — основное тело программы, вызов остальных модулей;
int z1() — в этой функции осуществляется создание и добавление записей;
int z2() — в этой функции осуществляется вывод файла на экран;
int z3() — в этой функции осуществляется вывод списков всех сотрудников, у которых есть несовершеннолетние дети;
int z4() — в этой функции осуществляется создание текстового файла со списком совершеннолетних детьми;
int z5() — в этой функции осуществляется отправка файла на печать;
int z6() — в этой функции осуществляется корректировка файла;
int z7() — в этой функции осуществляется удаление сотрудника из файла;
int z8() — в этой функции осуществляется очистка файла.
3.5 Описание функций
Z1() — функция для создания списка сотрудников и добавления записи в этот список. Не имеет параметров. Имеет формальные параметры: *f, *f1 типа FILE, i и i1(используются в качестве счетчика), kz(количество записей), l(количество записей записываемые в файл num.txt), j все эти параметры типа int. Параметр p[100] типа struct sotrud. Открываем файлы: Дети сотрудника.txt для добавления записи в конец(в файле содержится список всех сотрудников), num.txt для чтения(в файле содержится количество записей). Далее считываем из файла num.txt переменную l. Закрываем этот файл. С помощью функции if проверяем, существует ли данный файл. Если он не существует выдается сообщение об ошибке и производится выход из функции. С клавиатуры вводится количество записей которое надо добавить. Используя цикл for, вводим с клавиатуры все данные структуры и с помощью этого же цикла записываем их в файл Дети сотрудника.txt . Ввод данных и запись в файл происходит до тех пор, пока количество записей не будет равно j. Закрытие файла Дети сотрудника.txt. Далее в переменную l записываем количество записей, которое мы добавили и записываем их в файл num.txt, который предварительно открываем для записи. Закрываем этот файл.
Z2() — функция для вывода содержимого файла Дети сотрудника.txt на экран. Не имеет параметров. Имеет формальные параметры: *f, *f1 типа FILE, i и i1(используются в качестве счетчика), j(количество записей записываемые в файл num.txt), все эти параметры типа int. Параметр p[100] типа struct sotrud. Открываем файлы: Дети сотрудника.txt для чтения(в файле содержится список всех сотрудников), num.txt для чтения(в файле содержится количество записей). Далее считываем из файла num.txt переменную j. С помощью функции if проверяем, существует ли данный файл. Если он не существует выдается сообщение об ошибке и производится выход из функции. Используя функцию for, считываем данные из файла функцией fread и выводим на экран с помощью функции printf. Делаем это до тех пор, пока i меньше j. Закрываем все файлы.
Z3() — функция для вывода на экран сотрудников с несовершеннолетними детьми. Не имеет параметров. Имеет формальные параметры: *f, *f1 типа FILE, i и i1(используются в качестве счетчика), j(количество записей записываемые в файл num.txt), k=0(количество несовершеннолетних детей у сотрудника) все эти параметры типа int. Также задан массив a[100] типа int для того, чтобы записывать в него возраст каждого совершеннолетнего ребенка. Параметр p[100] типа struct sotrud. Открываем файлы: Дети сотрудника.txt для чтения(в файле содержится список всех сотрудников), num.txt для чтения(в файле содержится количество записей). помощью функции if проверяем, существует ли данный файл. Если он не существует выдается сообщение об ошибке и производится выход из функции. Используя функцию for, считываем данные из файла функцией fread. Используя функцию if проверяем меньше ли 18 возраст ребенка. Если да, то к k прибавляем 1. Используя функцию if проверяем, если k больше 0, то выводим с помощью функции printf имя сотрудника и количество несовершеннолетних детей. Переходим к работе со следующим сотрудником. И делаем это до тех пор, пока i меньше j. Закрываем все файлы.
Z4() — функция для создания файла с сотрудниками, имеющих совершеннолетних детей. Не имеет параметров. Имеет формальные параметры: *f,* f,*f2 типа FILE, i,i2 и i1(используются в качестве счетчика), j(количество записей записываемые в файл num.txt), k=0(количество совершеннолетних детей у сотрудника) все эти параметры типа int. Параметр p[100] типа struct sotrud. Открываем файлы: Дети сотрудника.txt для чтения(в файле содержится список всех сотрудников), num.txt для чтения(в файле содержится количество записей), отчет о совершеннолетних.txt для записи. Используя функцию for, считываем данные из файла функцией fread. K=0 при чтении каждого сотрудника. Используя функцию if проверяем больше или равен ли 18 возраст ребенка. Если да, то a[k]=возрасту ребенка и к k прибавляем 1. Используя функцию if проверяем, если k не равно 0, то записываем с помощью функции fprintf имя сотрудника, количество совершеннолетних детей и возраст каждого ребенка в файл. Переходим к работе со следующим сотрудником. И делаем это до тех пор, пока i меньше j. Закрываем все файлы.
Z5() — функция для распечатки файла с совершеннолетними сотрудниками. Не имеет параметров. С помощью функции system распечатываем файл.
Z6() — функция для корректировки номера отдела по ФИО сотрудника. . Не имеет параметров. Имеет формальные параметры: *f, *f1 типа FILE, i и i1(используются в качестве счетчика), j(количество записей записываемые в файл num.txt), l, nomer(номер который надо записать новым), k(количество записей, которые остаются неизменны) все эти параметры типа int. Параметр p[100] типа struct sotrud. Параметр str[40] типа char(ФИО, которое нужно откорректировать). Открываем файлы: Дети сотрудника.txt для чтения(в файле содержится список всех сотрудников), num.txt для чтения(в файле содержится количество записей), Вспомогательный.txt для записи. Далее считываем из файла num.txt переменную j. Вводим с клавиатуры ФИО, которое нужно откорректировать и новый номер отдела. С помощью функции if проверяем, существует ли данный файл. Если он не существует выдается сообщение об ошибке и производится выход из функции. Используя функцию for, считываем данные из файла функцией fread. С помощью функции if, проверяем, совпадает ли ФИО сотрудника с ФИО, которое надо откорректировать. Если да, то номеру отдела этого сотрудника присваивается ранее введенный параметр nomer . И вся информации о сотруднике записывается в файл Вспомогательный.txt. Закрываются файлы Дети сотрудника.txt и Вспомогательный.txt, и открываются для записи и чтения соответственно. Используя цикл for, с помощью функций fread и fwrite читаем данные из файла Вспомогательный.txt и записываем в файл Дети сотрудника.txt. Делаем это до тех пор, пока i меньше j. Закрытие всех файлов.
Z7() — функция для корректировки номера отдела по ФИО сотрудника. . Не имеет параметров. Имеет формальные параметры: *f, *f1 типа FILE, i и i1(используются в качестве счетчика), j(количество записей записываемые в файл num.txt), l, nomer(номер который надо записать новым), k=0(количество записей, которые остаются неизменны) все эти параметры типа int. Параметр p[100] типа struct sotrud. Параметр str[40] типа char(ФИО, которое нужно откорректировать). Открываем файлы: Дети сотрудника.txt для чтения(в файле содержится список всех сотрудников), num.txt для чтения(в файле содержится количество записей), Вспомогательный.txt для записи. Далее считываем из файла num.txt переменную j. Вводим с клавиатуры ФИО, которое нужно удалить. Используя функцию for, считываем данные из файла функцией fread. С помощью функции if, проверяем, совпадает ли ФИО сотрудника с ФИО, которое надо удалить. Если нет, то записываем всю информацию о сотруднике в файл Вспомогательный.txt. и увеличиваем k на 1. Если да, то информацию в файл не пишем. Закрываются файлы Дети сотрудника.txt и Вспомогательный.txt, и открываются для записи и чтения соответственно. Используя цикл for, с помощью функций fread и fwrite читаем данные из файла Вспомогательный.txt и записываем в файл Дети сотрудника.txt. Делаем это до тех пор, пока i меньше j. Закрываем файл num.txt. Записываем в файл num.txt новое количество записей k, предварительно открыв его для записи. Закрытие всех файлов.
Z9() — функция для полной очистки файла Дети сотрудника.txt. Не имеет параметров. Есть формальные параметры: *f,*f2 типа FILE и параметр k=0 типа int. Открытие файлов Дети сотрудника.txt и num.txt для записи. Запись k в файл num.txt. Закрытие всех файлов.
Main() — функция главного меню. Не имеет параметров. Имеет формальный параметр d типа int. Используя бесконечный цикл while выводим на экран меню и вводим с клавиатуры d(пункт меню). Используя функцию switch проверяем, если d равно константе описанной функции, то выполняется список операторов присвоенных этой константе. Если же не равно, то выдается сообщение об ошибке.
4. Описание работы программного продукта
4.1 Руководство пользователя
При запуске программы на выполнение появляется главное меню, которое позволяет выбрать действие, которое необходимо выполнить. Пример разработанного меню приведен на рисунке 2.
Рисунок 2 — Пример пользовательского меню
В случае ввода не существующего пункта меню повторяется запрос на ввод (рисунок 3).
Рисунок 3 — Пример ввода ошибочных данных
При выборе пункта 1, появляется возможность создать или добавить Запись (рисунок 4).
Рисунок 4 — Пример добавления записей
При выборе пункта 2, содержимое файла выводится на экран (рисунок 5).
Рисунок 5 — Пример вывода файла на экран
При выборе пункта 3, выводится на экран список всех сотрудников с несовершеннолетними детьми (рисунок 6).
Рисунок 6 — Пример вывода на экран списка сотрудников с несовершеннолетними детьми.
При выборе пункта 4, создается текстовый файл сотрудников с совершеннолетними детьми (рисунок 7)
Рисунок 7 — Пример создания файла
При выборе пункта 5, файл отправляется на распечатку (рисунок 8)
Рисунок 8 — Пример отправки файла на печать
При выборе пункта 6, есть возможность для удаления (рисунок 9)
Рисунок 9 — Пример удаления сотрудника
Рисунок 10 — Пример после удаления
При выборе 7 пункта, есть возможность изменить номер отдела по ФИО (рисунок 11)
Рисунок 11 — Пример до корректировки
Рисунок 12 — Пример после корректировки
При выборе пункта 8, будет произведена очистка файла (рисунок 13)
Рисунок 13 — Очистка файла
Далее просмотрим текстовый файл “Отчет о совершеннолетних” (рисунок 14)
Рисунок 14 — Отчет о совершеннолетних
4.2 Тестирование
Тестирование программного модуля на корректность работы представлено в подразделе 4.1.
В случае ввода не существующего пункта меню повторяется запрос на ввод.
Рисунок 15 — Пример ввода ошибочных данных