50011 (Разработка программы обработки экономической информации)
Описание файла
Документ из архива "Разработка программы обработки экономической информации", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.
Онлайн просмотр документа "50011"
Текст из документа "50011"
Министерство образования и науки Украины
Севастопольский государственный технический университет
Кафедра Информационных систем
Пояснительная записка
к курсовому проекту
Разработка программы обработки экономической информации
по курсу Основы программирования и алгоритмические языки
Выполнил:
ст. гр. И-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-открытие его в режиме записи
Блок4-присвение первого значения указателю
Блок5-запись шапки таблицы в файл
Блок6-цикл пока не конец списка -
Блок7-(конец) запись в файл нижней границы таблицы
Блок8-очистка экрана
Блок9-вывод на экран информации о том, что файл был записан
Блок10-закрытие файла
Блок11-конец
Блок12запись данных в файл
Блок13-первод указателя на следующий элемент
Рисунок 2.6.2-процедура записи данных в файл.
Рисунок 2.6.2-продолжение
Структура алгоритма задачи процедуры okno(t:integer) .Печать меню и выделение строки под номером t. (Рис.2.6.3);
Блок1-присваение значения номера строки переменной p
Блок2-печать верхней рамки меню