Мегаобучалка Главная | О нас | Обратная связь


Описание алгоритма программ



2019-07-03 238 Обсуждений (0)
Описание алгоритма программ 0.00 из 5.00 0 оценок




 

Структура алгоритма задачи для процедуры 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 , хотя не отрицается возможнсть успешной реализации задачи на языке Си.




2019-07-03 238 Обсуждений (0)
Описание алгоритма программ 0.00 из 5.00 0 оценок









Обсуждение в статье: Описание алгоритма программ

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние...
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...
Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной...
Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (238)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.009 сек.)