Министерство образования и науки Украины
Севастопольский государственный технический университет
Кафедра Информационных систем
Пояснительная записка
к курсовому проекту
Разработка программы обработки экономической информации
по курсу Основы программирования и алгоритмические языки
Выполнил:
ст. гр. И-21д
Климашевский С.В.
Проверил:
Руководитель проекта
Крицкий А.В.
Севастополь
2003
В данном документе описывается программа, написанная в соответствии с постановкой задачи на курсовое проектирование по теме "Обработка экономической информации" по дисциплине "Основы программирования и алгоритмические языки". Данная программа предназначена для удобной обработки информации, содержащей сведения о студентах, код группы, фамилия студента, количество пропущенных занятий и число оправданных пропусков, составления и вывода на экран и(или) в файл отчётных таблиц. Входными данными является таблица, записью которой являются код группы, фамилия студента, количество пропущенных занятий, количество оправданных пропусков, количество не оправданных пропусков, сумма не оправданных пропусков и процентное соотношение пропусков. Для проверки работы программы разработан тестовый пример. Результаты тестирования доказывают, что программа правильно выполняет все операции по обработке входных данных и формирования выходных данных.
Содержание
Введение
1. Назначение и область применения
2. Технические характеристики
2.1 Постановка задачи
2.2 Описание основных типов данных
2.3 Входные данные
2.4 Выходные данные
2.5 Внутреннее представление данных
2.6 Описание алгоритма программ
3. Технико-экономические показатели
4. Тестовый пример
Заключение
Библиографический список
Приложение
По окончанию курса “Основы программирования и алгоритмические языки” стоит задача в закреплении навыков программирования на ЭВМ. Она состоит в написании программы на языке высокого уровня PASCAL или Си знакомстве с организацией и принципами действия операционных систем, изучение правил оформление программной документации.
В современном мире обработки информации очень удобно использование диалогового режима работы. Программа была разработана в среде TurboPASCAL 6.0 .
1.Назначение и область применения
Данная программа предназначена для удобной обработки информации, содержащей сведения о студентах, код группы, фамилия студента, количество пропущенных занятий и число оправданных пропусков, составления и вывода на экран и в файл отчётных таблиц, задаваемый пользователем.
Область применения программы – различные учебные учреждения, где ведется учет пропусков занятий студентами .
Требованием к аппаратному и программному обеспечению является наличие любого IBM-совместимого компьютера с наличием накопителя на гибких и (или) жестких магнитных дисках, видеоадаптера класса VGAи наличием достаточного количества оперативной памяти . На компьютере должна быть установлена операционная система MS-DOSv2.1(или выше) или любая другая, совместимая с ней. Применяться может любым пользователем, который хочет проверитьпосещаемость для какой-либо группы лиц.
2. Технические характеристики
2.1 Постановка задачи
Требуется написать программу обработки экономической информации, осуществляющую ввод исходной информации, обработку в соответствии с вариантом задания №8 методических указаний, а также печать содержимого исходных файлов и файлов расчетов. Выводимую информацию оформить в виде таблицы со всеми необходимыми полями записей и результатов расчетов.
Даны сведения за месяц о пропуске занятий студентами групп. Структура записи: шифр группы (6 символов), фамилия (15 символов), пропущено часов, оправдано часов. Подсчитать количество неоправданных часов по каждому студенту, суммарные показатели по каждому виду, а также процент неоправданных пропусков в целом.
Работу программы организовать в форме меню:
1). Загрузка информации из исходного файла
2). Обработка данных таблицы
3). Удаление данных о каком-либо студенте.
4). Добавление данных о каком-либо новом студенте.
5). Поиск элемента в таблице
6). Просмотр данных
7). Запись данных в новый файл
8). Выход.
Программа реализована на языке программирования высокого уровня Pascal. В основе программы лежит двунаправленный список с пятью информационными полями.
Мною был выбран двунаправленный список, потому что он прост в управлении, доступ к элементам списка осуществляется путем указания имени структуры и соответствующего информационного поля, содержимую информацию,в двунвправленном списке, можно вывести так, что после вывода будет осуществлять просмотр данных с использованием некоторы клавиш: -вверх- и -вниз-. Использование двунаправленных списков позволяет работать с динамической памятью, что позволяет экономнее использовать память и ресурсы компьютера. Программа сохраняет выходные данные в файле на жестком диске.Выходнй файл имеет такой формат, который позволяет загружать (при новом запуске программы ) из него.
Просмотр осуществляется дважды: 1-ый раз – при загрузке данных из исходного файла , 2-ой раз - при просмотре обработанных данных (именно они будут записаны в выходной файл).
2.2 Описание основных типов данных
Для внутреннего хранения входных данных о слогах используется комбинированный тип данных:
type
zap=record
fio:string[15];
nomergrupp:string[4];
propusk:integer;
opravdan:integer;
neopravdan:integer;
summa:integer;
procent:real;
end;
Информация,содержащаяся в полях:
fio: массив для хранения фамилии студента;
nomergrupp: шифр группы;
propusk:число пропусков занятий студентом;
opravdan:число пропусков занатий по уважительной причине;
neopravdan: число пропусков занатий без уважительной причины;
summa:общая сумма пропусков по всем студентам;
procent:процент пропусков без уважительной причины;
Для того чтобы возможно было обрабатывать большое число записей из исходной ведомости, необходимо организовать их структуру данных. Для удобной работы с записями в качестве структуры данных была выбрана линейная структура - двунаправленный список
. При использовании двунаправленного списка, возможно организовать просмотр записей всего списка: от начала в конец (прямое направление) и из конца в начало (обратное), что используется в процедуре просмотра при перемещении от одной записи к другой.
Входные данные передаются в программу следующим способом:
Чтение входных данных из предварительно подготовленного файла, определенного формата.
Предполагается, что входные данные содержатся в текстовом файле правильного формата, имя которого dano.txt, а местонахождение - текущий каталог.
Пример входных данных текстовый файл приведен на рисунке 2.1
Рисунок 2.3.1 – Пример файл входных данных
2.4 Выходные данные
В процессе ввода входных данных из файла, формируется динамическая структура – двунаправленный список. Информационным полем элемента списка является запись таблицы входных данных. Для просмотра данных используются функции обхода двунаправленного списка.
В результате обработки данных составляется ведомость, котораяпри выборе меню watchandwriteoutputfileотображается на экране и записывается в новый файл с выполненными по заданию расчетами в виде таблицы:
Рисунок 2.4.1 – Пример файла выходных данных
2.5 Внутреннее представление данных
Программа написана на языке высокого уровня TurboPascal и скомпилирована компилятором BorlandPascal7.0 .
Файл, может включать в себя неизвестное заранее количество строк, но должен иметь определённый формат, поэтому для хранения входной информации статические переменные неприемлемы. Наиболее подходящим оказывается двунаправленный список , так как в нем возможны: перестановка порядка следования элементов без копирования самой структуры; поиск как в прямом, так и обратном направлении; удаление элементов наиболее оптимальным образом. В тоже время не требуется поддержка сложных структур данных и методов работы, как в деревьях.Но тем не менее скорость работы двунаправленного списка ниже , чем у нелинейных структур, например, деревьев.
2.6 Описание алгоритма программ
Структура алгоритма задачи для процедуры org;- считывание из файла и создание двунаправленного списка с упорядоченной структурой по полю fio (фамилия студента) по алфавиту. (рис. 2.6.1.) .
Блок1-обнуляет число элементов.
Блок2-чтение имени файла.
Блок3-проверка введено ли имя.
Блок4-Вывод окна сообщений о том , что имя не введено.
Блок5- присвоение булевой переменной определяющей есть ли данный файл значения false.
Блок6-выход из процедуры.
Блок7-открытие файла.
Блок8-проверка на наличие файла.
Блок9-вывод на экран сообщения о том . что файла такого нет.
Блок10-булевой переменной определяющей есть ли данный файл значения true.Обнуление числа строк
Блок11- присвоение булевой переменной определяющей есть ли данный файл значения false.