ТОП 10:

Процедура вывода информационной заставки.



Если файл с базой данных открылся (создался) успешно, тогда выводится графическая заставка. Если была нажата какая-либо клавиша, происходит выход в главное меню программы. Если файл не был открыт успешно, то в центре рабочего окна выводится сообщение «Error while creating new file program will be terminated». Вывод графической заставки осуществляется с помощью символов псевдографики, а так же некоторыми функциями и процедурами текстового режима, устанавливаем такие атрибуты текста, как цвет, мерцание.

Процедура вывода на экран меню и организации работы с ним.

При вызове подпрограммы вверху экрана в рамке выводятся следующие пункты меню: Новая, Поиск, Сортировка, Архив, Автор, Выход. При выборе курсором любого из этих пунктов меню в нижнем левом углу, благодаря возможностям текстового режима, мы можем выводить небольшую справочную информацию по каждому, что намного проще, чем, если бы обращаться к отдельному пункту меню «Справка». Подсказки необходимы для того, чтобы помочь пользователю легче усвоить интерфейс программы. Помощь содержит краткую информацию о каждом пункте меню и некоторые замечания. Данные считываются из заранее созданных строковых констант. Так же процедура предусматривает тот момент, что если достигнут последний пункт меню (самый правый) и нажата правая стрелка курсора, происходит перемещение к первому пункту меню (самому левому), т.е Новая.

Добавление новой информации.

Позволяет производить добавление записей при просмотре списка и при формировании нового списка. С помощью процедуры ввода записи выводим схематичное окно-запрос «Пожалуйста, введите информацию», содержащее все поля записей. Вводим с клавиатуры значения. Если пользователь ошибся при вводе, то он сможет удалить ненужные символы при помощи клавиши Backspace. Не обязательно заполнять все поля записи, достаточно будет заполнить одно из полей. Пока не был произведен выход из системы, связываем файловую переменную f с именем файла filename. Открываем этот файл для чтения и записи. Переводим указатель в конец файла. Добавляем туда записи, учитывая, что количество компонент файла увеличилось. Закрываем файл. Открываем измененный файл для чтения и записи. С помощью процедуры вывода на экран таблицы с записями в сформированную область выводим измененные данные. Затем пользователю выдается запрос на создание ещё одной новой записи. Если пользователь не подтверждает запрос, происходит выход в главное меню.

 

Просмотр записей.

Позволяет отображать полный список в окне таблицы. Очищается часть экрана, выводится шапка таблицы (некоторые названия полей записей), переменной, хранящей номер выводимой записи присваивается значение 1, на экран по порядку выводятся все записи с полями хранящиеся в файле, при этом значение переменной хранящей номер записи увеличивается на 1, значения полей выводимых записей отделены друг от друга. Выделяем подсветкой первую запись.

Если нажата клавиша управления курсором вверх, то номера perv и last уменьшаем на 1. Если значение perv<0, то присваиваем переменным perv=0 last=2, избегая тем самым ситуации, когда компьютер пытается прочесть несуществующую запись. Далее выводим на экран записи из файла с perv по last с полями хранящиеся в файле.

Если нажата клавиша управления курсором вниз, то номера perv и last увеличиваются на 1. Если значение last больше чем количество записей в файле, то переменным присваиваем last количество записей в файле, perv—уменьшаем на 1, избегая тем самым ситуации, когда компьютер пытается прочесть несуществующую запись. Далее выводим на экран записи из файла с perv по last с полями хранящиеся в файле. Если клавиша ESC была нажата, то на экране появляется главное меню. По окончании процедуры выводимый файл закрывается.

 

Редактирование записей.

Изменить запись можно будет только тогда, когда существует хоть одна запись, иначе программа выведет сообщение о том, что файл не содержит записей. Подпрограмма редактирования записей позволяет вносить изменения в какие-либо записи полного списка, изменяя при этом всю строку. Выбираем курсором изменяемую запись, нажимаем ENTER.

Формируем область, в которой будут вводиться новые данные. Если не был произведен выход из системы, запрашиваем подтверждение на изменение данных с помощью процедуры подтверждения. Если изменение было утверждено, редактируем исходную запись, с помощью ранее описанной процедуры. Если пользователь ошибся при вводе (случайно нажал не тот символ), то он сможет удалить ненужные символы при помощи клавиши Backspace. Связываем файловую переменную f с именем файла filename и открываем его для чтения и записи. Переводим указатель в конец файла и записываем туда измененные данные. Закрываем файл. Формируем область для вывода измененных данных и выводим их.

Удаление записи.

Подпрограмма удаления записей позволяет производить удаление каких-либо записей из списка таблицы. Удалить запись можно будет только в том случае, когда в файле содержатся записи, иначе программа выведет сообщение о том, что файл пуст. Проверяем, существуют ли записи в данной таблице, если да, то выдаем запрос на подтверждение «Вы точно хотите удалить?», используя соответствующую процедуру. При утвердительном ответе, связываем файл filename с файловой переменной f. Открываем этот файл для чтения и записи. Связываем другой файл index.sss с другой файловой переменной index. Открываем его для чтения и записи. В нем переводим указатель на первую компоненту. Считываем записи и закрываем данный файл. Связываем файл newfile.dat с файловой переменной f2. Открываем его для записи. Указатель ставим в начало файла и, пока не конец файла f, считываем запись в переменную, откуда потом заносим данные в файл f2, исключая запись выделенную запись. Закрываем файл f2 и файл f. Удаляем файл f. Переименовываем f2 в filename, связываем файл filename с файловой переменной f. Формируем прямоугольную область и открываем файл f. С помощью процедуры вывода таблицы формируем таблицу с записями из файла f. Закрываем файл. Выводим на экран полученные записи. Все изменения сохранятся в файле, и после чего программа автоматически выйдет в главное меню.

 

Процедура поиска записей по ключу пользователя.

Открывается файл базы данных, если файл базы данных пуст, то выводим сообщение об ошибке. Иначе, на диске создается вспомогательный файл и связывается с файловой переменной fh. Выводится запрос о вводе пользователем критерия поиска. Запрос аналогичен, как и при создании новой записи – со всеми полями. Нам необходимо ввести ключевые поля поиска. Выведутся те значения записей, которые найдутся в результате поиска. Отобранные данные будут выведены на экран в ранее сформированную область. Открываем файл filename для записи. Переводим указатель в начало файла. Пока не достигнут конец файла, считываем записи в переменную и, если поле идентично введенной записи, записываем эту запись в файл f1. Если количество записей больше одного, то с помощью клавиш управления курсором можно пролистать вверх/вниз выведенные записи. После нажатия клавиши ESC произойдет выход в главное меню. Если ни одно поле не введено, то на экран выведутся из файла все существующие записи. Если ввести такое значение, которое не существует в базе данных, на экране появится сообщение: «Ничего не найдено!».

 

Автор.

Выводится краткая информация об авторе. В нижнем левом углу (где ранее выводилась небольшая справочная информация).


РАЗРАБОТКА ТЕСТОВЫХ ПРИМЕРОВ

 

Если файл «C:\Program Files\tp7\base.imm», который содержит базу данных, открылся или создан,

(если он не существовал ранее) - появится графическая информационная заставка.

Если этот файл не открылся или не создан, если он не существовал ранее, то в центре рабочего окна выводится сообщение «Error while creating new file program will be terminated». При успешной работе появится горизонтальное меню и список с некоторыми полями записей.

В нижнем левом углу будут выводиться небольшие подсказки о принципе работы с пунктами меню и непосредственно с самими записями.

Перемещение по пунктам меню будет осуществляться с помощью клавиш управления курсором. Активный - первый пункт меню Новая. Если пытаться нажать клавишу управления курсором влево, то активным станет последний пункт меню Выход, если пытаться нажать клавишу управления курсором вправо, то активным станет первый пункт меню Новая.

Клавишей ENTER выберем первый пункт меню Новая – в результате на экране появится запрос с названиями полей добавляемой записи:

- шифр студента;

- фамилия;

- специальность;

- имя;

- отчество;

- год поступления.

Вводя с клавиатуры значение, количество символов которого превышает цифру, стоящую после названия поля в скобках, заметим, что при достижении этого количества символов в строке, курсор не сдвигается с места, пока не будет нажата клавиша ENTER. Затем автоматически переходит к введению следующего поля записи. Если же будет осуществляться попытка ввода строки меньшего размера, то операция подтверждается клавишей ENTER. Такая ситуация произойдет с вводом значений всех полей записи. Что касается типа полей, то они все текстовые.

Введем, к примеру, запись следующего содержания:

Шифр
Фамилия Петровский
Специальность АСОИ
Имя Евгений
Отчество Иванович
Год поступления

После введения значения последнего поля записи на экране появляется запрос на добавление: ”Продолжать вводить записи?”. Он содержит клавиши «ДА» и «НЕТ». Выбор одной из них осуществляется с помощью клавиш курсора <=,=>

Если нажать «ДА», то на экране появится запрос на добавление: ”Продолжать вводить записи?”. После нажатия клавиши ESC произойдет выход в главное меню.

Если выбрать «НЕТ», то произойдет выход в главное меню. В этом пункте меню мы можем редактировать записи, удалять, просматривать полную информацию о них, переносить в архив.

Сделаем активным пункт меню Поиск. После нажатия клавиши ENTER на экране появится запрос, как и при создании новой записи – со всеми полями, нам необходимо ввести ключевые поля поиска. Выведутся те значения записей, которые найдутся в результате поиска. Если количество записей больше одного, то с помощью клавиш управления курсором можно пролистать вверх/вниз выведенные записи. После нажатия клавиши ESC произойдет выход в главное меню. Если ничего не будет введено, программа выведет все записи. Если ввести такое значение, которое не существует в базе данных, на экране появится сообщение: «Ничего не найдено!».

Сделаем активным пункт меню Сортировка. После нажатия клавиши ENTER на экране появится запрос и схематичный курсор, управляя которым мы можем выбрать сортируемое поле из всех существующих. После нажатия клавиши ESC произойдет выход в главное меню.

Сделаем активным пункт меню Архив. После нажатия клавиши ENTER на экране появится список записей, которые содержатся в архиве (если архив не содержал никаких записей – ничего и не выведется). Так же если архив содержит более одной записи, можно просматривать их, пролистывая вверх/вниз с помощью клавиш курсора. После нажатия клавиши ESC произойдет выход в главное меню.

Сделаем активным пункт меню Автор. После нажатия клавиши ENTER в левом нижнем углу (где ранее выводилась справочная информация о, выведется следующая информация Сачевичик Алексей, АС-563 январь 2013 г.) и после нажатия клавиши ESC произойдет выход в главное меню.

Сделаем активным пункт меню Выход. После нажатия клавиши ENTER произойдет выход в среду TP.


РАЗРАБОТКА ПРОГРАММЫ

 

Для лучшей структурированности программа разбита на функции и процедуры.

В ходе разработки понадобилось использование такого стандартного модуля как Crt, а также некоторых процедур и функций пользователя.

Модуль CRT содержит ряд подпрограмм, которые предоставляют возможность программам, работающим под DOS, эффективно управлять такими характеристиками персонального компьютера, как режимы экрана, расширенные коды клавиатуры, цвета, звука и окна. Одним из основных преимуществ использования модуля CRT является повышение скорости и гибкости при выполнении операций работы с экраном.

Процедуры и функции модуля CRT:

Clrscr - очистка экрана (заполнение пробелами текущего цвета);

Gotoxy(x,y) – перемещает курсор в т. (x,y) относительно начала координат текущего открытого окна;

WhereX и WhereY – определяет положение курсора на экране: его горизонтальную и вертикальную координаты относительно начала координат текущего открытого окна;

TextColor(i) – устанавливает цвет текста равным i;

TextBackGround(i) – устанавливает цвет фона равным i;

Readkey – функция, считывает символ с клавиатуры и возвращает значение типа char;

Window(X1,Y1,X2,Y2) – открывает текстовое окно с координатами левого верхнего угла (X1,Y1) и нижнего правого (X2,Y2);

Keypressed – возвращает булевское значение True, если была нажата какая-либо клавиша, и false в противном случае.

Так же мной были использованы записи. Запись представляет собой структурированный тип данных, который содержит определенное число элементов (полей), причем различные поля записи могут иметь разный тип. Для описания переменных типа запись используется зарезервированное слово record.

В процессе работы программы используются файлы типа запись (где хранятся базы данных)

Так же в программе использовались типизированные файлы (линейная последовательность элементов одинакового типа), данные в которых хранятся во внутреннем представлении.

Основные процедуры и функции, используемые мной в программе:

Assign(файловая переменная, <путь к файлу>) – связывает файловую переменную с именем файла;

Reset (файловая переменная)– открывает файл для чтения и записи, связанный с файловой переменной;

Seek(файловая переменная, номер компоненты) – смещает указатель файла, связанного с файловой переменной, к требуемому компоненту файла. Нумеруются компоненты с нуля.

FileSize(файловая переменная) – возвращает значение типа longint, которое содержит количество компонентов (записей) файла.

Из процедур и функций пользователя мною использовались процедура вывода графической заставки на экран; процедуры добавления записи в базу; редактирования записи, выбранной курсором из базы; удаления записи из файла, выбранной курсором из базы; процедура вывода записей из файла на экран; а также процедура поиска записей в файле по значению поля, заданному пользователем.







Последнее изменение этой страницы: 2016-09-05; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.209.10.183 (0.008 с.)