Разработка программы обработки экономической информации
3 Министерство образования и науки Украины Севастопольский государственный технический университет Кафедра Информационных систем Пояснительная записка к курсовому проекту Разработка программы обработки экономической информации по курсу Основы программирования и алгоритмические языки Выполнил: ст. гр. И-21д Климашевский С.В. Проверил: Руководитель проекта Крицкий А.В. Севастополь 2003 Аннотация В данном документе описывается программа, написанная в соответствии с постановкой задачи на курсовое проектирование по теме "Обработка экономической информации" по дисциплине "Основы программирования и алгоритмические языки". Данная программа предназначена для удобной обработки информации, содержащей сведения о студентах, код группы, фамилия студента, количество пропущенных занятий и число оправданных пропусков, составления и вывода на экран и(или) в файл отчётных таблиц. Входными данными является таблица, записью которой являются код группы, фамилия студента, количество пропущенных занятий, количество оправданных пропусков, количество не оправданных пропусков, сумма не оправданных пропусков и процентное соотношение пропусков. Для проверки работы программы разработан тестовый пример. Результаты тестирования доказывают, что программа правильно выполняет все операции по обработке входных данных и формирования выходных данных. Содержание Введение 1. Назначение и область применения 2. Технические характеристики 2.1 Постановка задачи 2.2 Описание основных типов данных 2.3 Входные данные 2.4 Выходные данные 2.5 Внутреннее представление данных 2.6 Описание алгоритма программ 3. Технико-экономические показатели 4. Тестовый пример Заключение Библиографический список Приложение Введение
По окончанию курса “Основы программирования и алгоритмические языки” стоит задача в закреплении навыков программирования на ЭВМ. Она состоит в написании программы на языке высокого уровня PASCAL или Си знакомстве с организацией и принципами действия операционных систем, изучение правил оформление программной документации. В современном мире обработки информации очень удобно использование диалогового режима работы. Программа была разработана в среде Turbo PASCAL 6.0 . 1. Назначение и область применения Данная программа предназначена для удобной обработки информации, содержащей сведения о студентах, код группы, фамилия студента, количество пропущенных занятий и число оправданных пропусков, составления и вывода на экран и в файл отчётных таблиц, задаваемый пользователем. Область применения программы - различные учебные учреждения, где ведется учет пропусков занятий студентами . Требованием к аппаратному и программному обеспечению является наличие любого IBM-совместимого компьютера с наличием накопителя на гибких и (или) жестких магнитных дисках, видеоадаптера класса VGA и наличием достаточного количества оперативной памяти . На компьютере должна быть установлена операционная система MS-DOS v2.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:процент пропусков без уважительной причины; Для того чтобы возможно было обрабатывать большое число записей из исходной ведомости, необходимо организовать их структуру данных. Для удобной работы с записями в качестве структуры данных была выбрана линейная структура - двунаправленный список . При использовании двунаправленного списка, возможно организовать просмотр записей всего списка: от начала в конец (прямое направление) и из конца в начало (обратное), что используется в процедуре просмотра при перемещении от одной записи к другой. 2.3 Входные данные Входные данные передаются в программу следующим способом: Чтение входных данных из предварительно подготовленного файла, определенного формата. Предполагается, что входные данные содержатся в текстовом файле правильного формата, имя которого dano.txt, а местонахождение - текущий каталог. Пример входных данных текстовый файл приведен на рисунке 2.1 Рисунок 2.3.1 - Пример файл входных данных 2.4 Выходные данные В процессе ввода входных данных из файла, формируется динамическая структура - двунаправленный список. Информационным полем элемента списка является запись таблицы входных данных. Для просмотра данных используются функции обхода двунаправленного списка. В результате обработки данных составляется ведомость, которая при выборе меню watch and write output file отображается на экране и записывается в новый файл с выполненными по заданию расчетами в виде таблицы: Рисунок 2.4.1 - Пример файла выходных данных 2.5 Внутреннее представление данных Программа написана на языке высокого уровня Turbo Pascal и скомпилирована компилятором Borland Pascal 7.0 . Файл, может включать в себя неизвестное заранее количество строк, но должен иметь определённый формат, поэтому для хранения входной информации статические переменные неприемлемы. Наиболее подходящим оказывается двунаправленный список , так как в нем возможны: перестановка порядка следования элементов без копирования самой структуры; поиск как в прямом, так и обратном направлении; удаление элементов наиболее оптимальным образом. В тоже время не требуется поддержка сложных структур данных и методов работы, как в деревьях.Но тем не менее скорость работы двунаправленного списка ниже , чем у нелинейных структур, например, деревьев. 2.6 Описание алгоритма программ Структура алгоритма задачи для процедуры org;- считывание из файла и создание двунаправленного списка с упорядоченной структурой по полю fio (фамилия студента) по алфавиту. (рис. 2.6.1.) . Блок1-обнуляет число элементов. Блок2-чтение имени файла. Блок3-проверка введено ли имя. Блок4-Вывод окна сообщений о том , что имя не введено. Блок5- присвоение булевой переменной определяющей есть ли данный файл значения false. Блок6-выход из процедуры. Блок7-открытие файла. Блок8-проверка на наличие файла. Блок9-вывод на экран сообщения о том . что файла такого нет. Блок10-булевой переменной определяющей есть ли данный файл значения true.Обнуление числа строк Блок11- присвоение булевой переменной определяющей есть ли данный файл значения false. Блок12-цикл пока не конец файла Блок13-цикл пока не почитал 4 строки Блок15-подсчёт строк Блок16-чтение строки Блок17-считывание частей строк в промежуточные переменные. Блок18-проверка двузначное ли число пропусков Блок19-(да)копируем из строки 1 эл-т Блок20-(нет)-2 эл-та Блок21-перевод строки в целое число Блок22-проверка двузначное ли число пргопусков по ув. причине Блок23-(да)копируем из строки 1 эл-т Блок24-(нет)-2 эл-та Блок25-перевод строки в целое число Блок26-выделние памяти и присвоение всех указателей для первого элемента. Блок27-цикл пока не конец файла Блок28-чтение строки Блок29-считывание частей строк в промежуточные переменные. Блок30-проверка двузначное ли число пропусков Блок31-(да)копируем из строки 1 эл-т Блок32-(нет)-2 эл-та Блок33-перевод строки в целое число Блок34-проверка двузначное ли число пргопусков по ув. причине Блок35-(да)копируем из строки 1 эл-т Блок36-(нет)-2 эл-та Блок37-перевод строки в целое число Блок38-присвоение указателю значение первого Блок39-цикл пока не конец списка Блок40-сравнение считанной переменной с фамилиями списка Блок41-(больше)-перевод указателя на следующий эл-т Блок42-выход из цикла Блок43-выделение памяти новому эл-ту Блок44-прверка, если указатель на последний эл-т Блок45-(да)добавление эл-та в конец Блок46-(нет)проверка указатель на первый или нет Блок47-(да)добавление эл-та в начало Блок48-добавление в любле другое место Блок49-указателю конца приваем значение nil Блок50-закрытие файла Блок51-конец. Рисунок 2.6.1-процедура чтения информации из файла и организация списка. Рисунок 2.6.1 - продолжение Рисунок 2.6.1- продолжение Рисунок 2.6.1 -продолжение. Рисунок 2.6.1 - продолжение. Структура алгоритма задачи для процедуры zapis_v_fail; - сохранение результата в файл (рис. 2.6.2) Блок1-чтение имени файла Блок2-установка связи с файлом Блок3-открытие его в режиме записи
Страницы: 1, 2, 3, 4, 5
|