Описание алгоритма программ
Структура алгоритма задачи для процедуры 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-печать верхней рамки меню Блок3-проверка значения p=1 Блок4-(да)цвет фона строки изменяется на чёрный Блок5-(нет)печать 1-ого пункта меню Блок6-возврат к прежнему фону Блок7-проверка значения p=2 Блок8-(да)цвет фона строки изменяется на чёрный Блок9-(нет)печать 2-ого пункта меню Блок10-возврат к прежнему фону Блок11-проверка значения p=3 Блок12-(да)цвет фона строки изменяется на чёрный Блок13-(нет)печать 3-ого пункта меню Блок14-возврат к прежнему фону Блок15-проверка значения p=4 Блок16-(да)цвет фона строки изменяется на чёрный Блок17-(нет)печать 4-ого пункта меню Блок18-возврат к прежнему фону Блок19-проверка значения p=5 Блок20-(да)цвет фона строки изменяется на чёрный Блок21-(нет)печать 5-ого пункта меню Блок22-возврат к прежнему фону Блок23-проверка значения p=6 Блок24-(да)цвет фона строки изменяется на чёрный Блок25-(нет)печать 6-ого пункта меню Блок26-возврат к прежнему фону Блок27-проверка значения p=7 Блок28-(да)цвет фона строки изменяется на чёрный Блок29-(нет)печать 7-ого пункта меню Блок30-возврат к прежнему фону Блок31-проверка значения p=8 Блок32-(да)цвет фона строки изменяется на чёрный Блок33-(нет)печать 8-ого пункта меню Блок34-возврат к прежнему фону Блок35-печать нижней рамки меню Блок36- возврат к прежнему фону Блок37-конец. Рис 2.6.3.процедура okno-печать меню. Рис 2.6.3.-продолжение Рисунок 2.6.3-продолжение
Структура алгоритма задачи процедуры poisk(x:ukaz;imya:string) ищет необходимого студента в таблице.(Рис.2.6.4) . Блок1-обнуление переменных числа выводимых на экран строк(n), числа элементов с требуемым именем(i) и ррисвоение указателю значения первого. Блок2-цикл пока не конец списка Блок3-подсчёт числа э-тов всписке с данным именем Блок4-первод указателя на следующий эл-т Блок5-проверка равно ли число студентов с аким именм 0 Блок6-(да)вывод на экран сообщения о том , что такого э-та нет Блок7-(нет)изменение указателя на переданный Блок8-выход из процедуры Блок9-печать шапки таблицы Блок10-цикл пока число n<>0 (число выводимых строк) Блок11-подсчёт числа таких эл-тов Блок12-проверка тот ли это эл-т по фамилии Блок13-(не тот)не выделять Блок14-(тот)выделить Блок15-печать эл-та Блок16-возвращение к прежнему цвету Блок17изменение указателя на следующий Блок18-печать нижней границы таблицы Блок19-конец. Рис.2.6.4-процедура поиска нужного студента. Рис.2.6.4-продолжение.
Структура алгоритма задачи для структурных схем , выполненных на чертеже формата А1. Для основной программы: Блок1-присваивает значению номера строки еденицу Блок2-организовывает печать меню с выделенной первой строкой Блок3-организует бесконечный цикл Блок4-организует считывание клавиш Блок5-сравнивает код клавиш с кодом enter Блок6-сравнивает код клавиши с 0 Блок7-роганизовывает вызов процедур по номеру строки Блок8-чтение клавиши Блок9-сравнивает код клавиши с кодом стрелки вниз Блок10-привыполнении условия в блоке 9 увеличивает номер текущей строки на 1 Блок11-сравнивает номер строки с его максимальным значением Блок12-сравнивает код клавиши с кодом стрелки вверх Блок13-при выполнении условия в блоке 12 уменьшает значение текущей строки на 1 Блок14- сравнивает номер строки с его минимальным значением Блок15-в случае выполнения условия блока 14 присваивают номеру строки максимальное значение Блоки16,17,18-организуют вызов процедуры печати меню Блоки19-25- организуют вызов процедур, соответствующих номеру строки Блок26-выход из программы. Блок27- при выполнении условия в блоке 11 присваивает значению номера текущей строки минимальное Блок28-вызывает процедуру печати меню. Для процедуры obrabotka: Блок1-присвамивает указателю начальное значение и обнуляет промежуточную величину x. Блок2-создает цикл обхода списка. Блок3 –находит значения поля неоправданных пропусков для каждого эл-та. Блок4-прверяет не равно ли число пропусков 0.Тогда: Блок5-если не равен находит процент пропусков без уважительной причины. Блок6- присваивает значение 0 полю процента пропусков без уважительной причины. Блок7-нахождение промежуточной величины x для дальнейшего нахождения значения поля суммы общих прогулов без уважительной причины. Блок8-нахождение значения суммы общих пропусков без уважительной причины. и перевод указателя на следующий эл-т. Блок9-выводит на экран информацию о том , что обработка данных завершилась. Описание процедур. procedure org;-организует ввод данных из файла, создание двунаправленного сриска упорядоченного по фамилиям студентов по алфавиту. procedure okno(t:integer);-выводит на экран меню программы. procedure dob;-добавляет нового студента в таблицу ,не нарушая упорядоченности. procedure udal;-удаление элемента. procedure poisk;-поиск студента по фамилии. procedure obrabotka;-обработка данных по заданию. procedure zapis_v_fail;-сохранение текущей таблицы данных в файл, который укажет пользователь. procedure klavishi(nom:integer);-считывает коды клавишь и позволяет просматривать всю таблицу в процедурах поиска и просмотра. procedure prosmotr_2(x:ukaz);-выводит на экран текущую таблицу со всеми изменениями. Выбор языка программирования. Язык Turbo Pascal и компилятор выбраны из-за его гибкости, широкого распространения (субъективный фактор), малого объема исполняемого файла и достаточно высокой скорости выполнения. Компилятор Borland Pascal 7.0 . к тому же включает в себя опциональную возможность оптимизации кода программы как по скорости, так и по размеру. Основным фактором выбора языка Pascal была его более простая работа со строками. А в данном курсовом пректе это очень важно так как чтение исходных данных производится из текстового файла , данные в котором хранятся в виде таблицы. Этот язык программирования относительно прост, он гибкий и развитый в отношнии типов языка .Язык Си более сложный при написании , поэтому в данном проекте задача была реализована на я зыке Turbo Pascal , хотя не отрицается возможнсть успешной реализации задачи на языке Си.
Популярное: Почему стероиды повышают давление?: Основных причин три... Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас... Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ... Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней... ![]() ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (251)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |