Разработка алгоритмов и их реализация

 

Содержание


Введение

. Назначение и область применения

. Постановка задачи

. Используемые методы

. Алгоритм программы

Заключение

Список литературы

Приложение


Введение


Целью курсовой работы является углубление знаний и расширение навыков по разработке алгоритмов и их реализации на персональном компьютере. Курсовая работа выполняется в среде Турбо Паскаль и предполагает работу с текстами, файловыми структурами, обработку записей.

файловый алгоритмизация паскаль программирование

1. Назначение и область применения


Программа представляет собой мини комплекс по учету выданных мобильных карт, областью применения могут быть Автомобильные Заправочные Станции.


. Постановка задачи


Написать программу, которая будет работать с базой выданных мобильных карт. При этом программа должна уметь добавлять, изменять, удалять, искать записи и создавать БД (База Данных) в случае если таковая отсутствует. Для упрощения работы с программой разработать интуитивно понятный интерфейс.


. Используемые методы


БД создается под именем CardsMK.dat в той же директории, где находится сама программа. Доступ к данным происходит напрямую из процедур или функции. При поиске или изменении записи создается временный файл с именем FTmp.dat, в него записываются результат поиска из файла CardsMK.dat, используемые в дальнейшем для определенных целей: вывод на экран, визуального контроля редактируемой или удаляемой записи. Для удаления так же создается временный файл temp.dat, для хранения отредактированной БД, затем файл CardsMK.dat удаляется, а файл temp.dat переименовывается в CardsMK.dat.

В программе использован метод объектно-ориентированного программирования. Программа разбита на процедуры и функции, выполняющие определенные действия.


4. Алгоритм программы


Создадим новый тип записи TCards. Именно он будет определять формат нашей БД, в нашем случае состоящей из одной таблицы с полями:

·Client - поле строкового типа длинной не более 34 символов, предназначено для хранения Ф.И.О. владельца;

·CardNo - поле строкового тип длинной 6 символов, может хранить в себе номера карт начинающиеся с № 100000 и до №999999;

·GoodType - поле строкового типа длинной 7 символов. Содержит в себе тип топлива используемого картой. Может принимать только 4 значения: "АИ-80", "АИ-92", "АИ-95" и "Дт";

·ClientType - поле строкового типа длинной 10 символов. Содержит в себе тип клиента используемого картой. Может принимать только 2 значения: "Юр.лицо" и "Физ.лицо";

·Passwd - поле строкового типа длинной 4 символа. Содержит в себе пароль из 4-х цифр, принимает значения от 0000 до 9999.

Создадим две константы строкового типа хранящие в себе названия выходных файлов:

·FileName = CardsMK.dat (файл БД);

·FileFTmp = FTmp.dat (временный файл);

Процедура PMenu - представляет собой окно Главного меню. Используя цикл Repeat и оператора выбора Case (в основе всех меню пользователя используются похожая связка цикла и оператора) программа запрашивает у пользователя следующие варианты для действия по нажатию клавиш

·<1> Список карт. - вызывает процедуру ShowFile (FileName);

·<Esc> Выход из программы..

Для определения кода нажатой кнопки используем оператор ord(a : переменная типа char), возвращающий код нажатой клавиши типа integer.

{Процедура - Окно главного меню}

procedure PMenu; {объявление процедуры}

var{объявление переменных}

a: char; {необходимо для оператора Ord(а)}

b: integer; {для оператора Case}

begin {Начало процедуры}

repeat {оператор цикла}

begin {начало оператора цикла}; {очистка экрана, встроенная процедура}(' "Справочник выданных Мобильных карт" - Главное меню ');; {оператор вывода текста на экран с переводом курсора на следующую строку}('<1> Список карт.');;('<Esc> Выйти из программы.');

a:=ReadKey; {присваиваем значение ReadKey - встроенная функция считывания кода нажатой клавиши типа Char}

b:=ord(a); {присваиваем переменной значение, возвращенное оператором ord-преобразует переменную типа Char в целочисленную - Integer}

case b of {начало оператора выборки по значению переменной b}

: ShowFile(FileName); {если b=49 (клавиша "1"), то запускаем ShowFile(FileName)}

end; {конец оператора выборки}

end; {конец оператора цикла}

until b=27; {условие повторного запуска цикла: пока переменная не будет равна 27 (клавиша "Esc")}

end; {конец процедуры}


Процедура ShowFile (AFileName:string{переменная строкового типа должна содержать имя файла БД}) - Проверяет существование файла БД посредством вызова функции FileExists(AFileName:string). Если таковой отсутствует, то процедура создает его. Далее вызывается функция вывода на экран файла БД - FshowFile(AFileName:string). Ниже прорисованной таблицы БД появляется меню пользователя:

·<1>-"Поиск…" вызывает процедуру меню поиска: MPoisk;

·<2>-"Выдать карту…" вызывает функцию : FAddCards (AFileName:string);

·<3>-"Удалить карту…" вызывает функцию : FDelCardsNo (AFileName:string; AFTmp:string);

·<4>-"Редактировать карту…" вызывает функцию: FEdit (AFileName:string; AFTmp:string);

·<5>-"Сортировать список…" вызывает процедуру MSort;

·<Esc>-"ВЫХОД - Главное меню" конец работы текущей процедуры;

Процедура MPoisk - процедура представляющая собой не что иное, как меню пользователя где предлагается для выбора три условия поиска нужной (ых) записи: по клиенту, по номеру карты и по типу топлива (соответственно по клавишам <1>,<2>,<3> для выхода <Esc>). Процедуры SelectCardsClient, SelectCardsNo, SelectCardsGoodType похожи по своей структуре и алгоритму работы и необходимым для работы входным параметрам (FileName{файл для поиска},FileFTmp{файл для вывода найденных данных}). Алгоритм сводится к открытию окна с возможностью ввода(выбора) данных для поиска(выборки) из БД и вывода результата на экран, по окончании процедура возвращает пользователя в меню поиска.

Функция FAddCards (AFileName:string) - Предназначена для добавления записи в БД. Перед началом процедуры ведется проверка по наличию самого файла БД, в случае его отсутсвия программа сама создает его. Далее пользователю предлагается поэтапно ввести данные для одной записи, причем обязательным условием является заполнение всех полей!!! Алгоритм следующий:

А) Вводим №карты - программа проверяет на наличие данной карты в БД, в положительном случае выдаст сообщение о том что данная карта зарегистрирована и имеет своего владельца. Также ведется проверка на обязательные условия ввода №карты - 6 цифр. Проверка проводится функцией FIntTrue (ATCardid:string,ADlina:integer):boolean. Последняя функция использует встроенный оператор val(a,b,c), которая преобразовывает строковую переменную a в целочисленную переменную b, при этом возвращает код c=0 при положительном варианте. Далее вычисляется длинна строки посредством встроенного оператора length(a) возвращающий числовое значение равное числу символов в строке. FIntTrue - логическая функция и потому возвращает лишь два значения True (в случае соответствия условиям) или False (несоответствия условию).

FDelCardsNo (AFileName:string; AFTmp:string) - для поиска карты необходимой для удаления используем выше описанную функцию SelectCardsNo. В случае существования данной карты данная запись запишется во временный файл. Далее программа проверяет размер данного временного файла, и если оно равно нулю то выдается сообщение: "Внимание! Нет данных для удаления!!!" и завершает свою работу. Если данные все же найдены, то программа потребует повторного подтверждения для удаления найденных записей. Далее создается еще один временный файл Temp.dat, и туда переписываются все данные из файла БД кроме тех, что содержаться в FTmp.dat. После чего файл с БД удаляется, а Temp.dat переименовывается в файл БД - CardsMK.dat.

FEdit (AFileName:string; AFTmp:string) - функция редактирования данных. По номеру карты находим запись для редактирования (функция SelectCardsNo). Выводим на экран меню редактирования, выбор поля для редактирования определяется цифрой на клавиатуре:

<1> - Изменить владельца карты.

<2> - Изменить тип топлива.

<3> - Изменить тип владельца карты.

<4> - Изменить пароль.

<Esc> - Выйти…

Первые четыре строки соответствуют вызову функций FEditClient с параметрами: AFileName - файл БД, AFTmpFile - файл с результатом поиска, PoleId - номер поля для редактирования. В зависимости от выбора поля для редактирования предлагается выбрать новый тип или ввести новое значение данного поля (обязательно с проверкой условий ввода). Выполненные изменения записываются во вновь созданный файл Temp.dat, и туда переписываются все данные из файла БД кроме тех, что содержаться в FTmp.dat. После чего файл с БД удаляется, а Temp.dat переименовывается в файл БД - CardsMK.dat.

MSort - открывает меню пользователя "Сортировать". Так же с помощью цифр определяемся с выбором поля по которому будет выполняться сортировка таблицы БД:

<1> - По клиенту.

<2> - По номеру карты.

<3> - По типу топлива.

<4> - По типу владельца.

<Esc> - Выйти…

Типы сортировки разбиты на свои функции: FSortByClient(FileName), FSortByCardNo(FileName), FSortByGoodType(FileName), FSortByClientType(FileName). По своему алгоритму они ничем не отличаются, разница лишь в поле сортировки.


Заключение

файловый алгоритмизация паскаль программирование

Данная программа представляет собой работоспособный модуль по работе с мобильными картами АЗС. Имеет интуитивно понятный интерфейс и не должна вызывать затруднений в работе конечного пользователя. В программе использованы разные методы алгоритмизации похожих процессов (сортировки и редактирования).


Список литературы


. "Основы алгоритмизации и программирование", Е. Н. Сафьянова, учебное пособие, Томск, 2000 г.


Приложение 1


Листинг программы

Crt;TCards = record {Создание нового типа определенного формата }

Client : string [34];{Поле Клиент}: string[6]; {Поле №карты}: string [7]; {Поле Тип топлива}: string [10];{Поле Тип Клиент}: string[4]; {Поле Пароль};FileName : string = 'CardsMK.dat';{Файл БД}FileFTmp : string = 'FTmp.dat'; {Временный файл}

{Функция определяет существует ли файл с данным именем}

function FileExists(AFileName : String): boolean;t: File of TCards;:= False;(t, AFileName);

{$I-} Reset (t); {$I+} {отключаем контроль ошибки доступа}

If IOResult = 0 then begin(t);

FileExists:=True;;

{Функция выода на экран содержимого файла в виде таблицы}

Function FShowFile (AFileName:string):boolean;, FTmp: File of TCards;: TCards;:integer;:=True;NOT FileExists(AFileName) then begin:=False;;;(t,AfileName);(t);:=1;('| № | Владелец карты | Карта | Топливо | Юр. / Физ. |Пароль|');('|---|-----------------------------------|--------|---------|------------|------|');NOT EOF(t) do begin(t,Cards);('|',n:3,'|',Cards.Client:34,' | ', Cards.CardNo:6,' | ', Cards.GoodType:7,' | ', Cards.ClientType:10,' | ',.Passwd:4,' |');:=n+1;;('--------------------------------------------------------------------------------');(t);

WriteLn('Количество записей: ',n-1);;

{Функция контроля: ввод числа с определенной длинной символов}

Function FIntTrue (ATCardid:string; ADlina:integer):boolean;,chislo,dlina: integer;:=True;(ATCardid,chislo,code);:=length(ATCardid);code<>0 then begin:=False;begindlina<>ADlina then FIntTrue:=False;

end;;

{Функция поиска FSelect(файл БД, файл вывода результата, поле поиска(0-клиент,1-№карты,2-тип топлива)) }

Function FSelect(AFileName:string; AFileFTmp:string; iskomoe:string; PoleId:integer):boolean;, t : file of TCards;:TCards;: Longint;,n:integer;:string;:=False;(t,AFileName);(t);(FTmp,AFileFTmp);(FTmp);:=0;:=1;NOT EOF(t) do begin(t,kursor);(t,Cards);PoleId of

: Pole:=Cards.Client;

: Pole:=Cards.CardNo;

: Pole:=Cards.GoodType;;pos(iskomoe,Pole)=1 then begin(FTmp,Cards);:=True;:=n+1;;(kursor);;(FTmp);(t);

end;

{Окно поиска по клиенту}

Function SelectCardsClient(AFileName:string; AFileFTmp:string):boolean;: file of TCards;: file of TCards;, ftmps : Tcards;: string;:=False;

{Проверка на существование файла БД}

ClrScr;(t,AFileName);(t);(FTmp,FileFTmp);(FTmp);

{Запрашиваем данные для поиска данных}('Введите полные или начальные параметры для поиска: ');

Readln(iskomoe);(FTmp);(t);

{Выполним поиск и запишем результат в файл FTmp.dat}(AFileName, AFileFTmp, iskomoe, 0);

{Выводим на экран полученный результат};(AFileFTmp);('Для выхода нажмите любую клавишу...');;;

{Окно поиска по № карты}

Function SelectCardsNo(AFileName:string; AFileFTmp:string):boolean;, t : file of TCards;, ftmps : Tcards;: string;: boolean;:=False;

{Проверка на существование файлов}Not FileExists(AFileName) then Exit;;(t,AFileName);(t);(FTmp,FileFTmp);(FTmp);

{Запрашиваем №карты для ее поиска с обязательной проверкой верности введенных данных}('Введите точный номер карты (6 цифр): ');

Readln(iskomoe);:= FIntTrue (iskomoe,6);v=True;(FTmp);

Close(t);

{Выполним поиск и запишем результат в файл FTmp.dat}(AFileName, AFileFTmp, iskomoe, 1);

{Выводим на экран полученный результат};(AFileFTmp);('Нажмите любую клавишу...');;;

{Окно поиска данных по типу топлива}

Function SelectCardsGoodType(AFileName:string; AFileFTmp:string):boolean;: file of TCards;: file of TCards;, ftmps : Tcards;, f_size: Longint;:char;,n:integer;: string;: boolean;:=False;

{Проверка на существование файлов}Not FileExists(AFileName) then Exit;;(t,AFileName);(t);(FTmp,FileFTmp);(FTmp);

{Предлогаем выбрать тип топлива};(' Пожалуйста выберите тип топлива:');

WriteLn;('<1> "АИ-80"');;('<2> "АИ-92"');;('<3> "АИ-95"');;('<4> "Дт"');;;('<Esc> Выход.');:=ReadKey;:=ord(a);b of

: iskomoe:='"АИ-80"';

: iskomoe:='"АИ-92"';

: iskomoe:='"АИ-95"';

: iskomoe:='"ДТ"';

: Exit;;;(b=49) or (b=50) or (b=51) or (b=52) or (b=27);

Close(FTmp);(t);

{Выполним поиск и запишем результат в файл FTmp.dat}(AFileName, AFileFTmp, iskomoe, 2);

{Выводим на экран полученный результат};(AFileFTmp);('Для выхода нажмите любую клавишу...');;;

{Функция удаления карты из БД}

Function FDelCardsNo(AFileName:string; AFTmp : string):boolean;,FTmp,temp: File of TCards;: TCards;, n : integer;,iskomoe2 : string;: char;:=False;(AFileName, AFTmp);(FTmp,FileFTmp);(FTmp);FileSize(FTmp)=0 then begin('Внимание! Нет данных для удаления!!!');

Close(FTmp);;;begin

repeat('Вы действительно хотите их удалить? <0>-ДА, <1>-НЕТ : ');(otvet);

if ord(otvet)=49 then EXIT;ord(otvet)=48;;(t,AFileName);(t);(temp,'Temp.dat');(temp);:=0;(FTmp,Cards);:=Cards.CardNo;NOT EOF(t) do begin(t,kursor);(t,Cards);:=Cards.CardNo;iskomoe2<>iskomoe1 then begin(temp,Cards);;(kursor);;FileSize(temp)<>0 then FDelCardsNo:=True;(t);(FTmp);(temp);(t);(temp, AFileName);

WriteLn;('Запись успешно удалена');;('Нажмите любую клавишу...');;;

{Функция добавления записи в файл БД, если его нет, то программа создаст его}

Function FAddCards (AFilename:string):boolean;: File of TCards;: TCards;_fuel, t_client, kursor, n: integer;:string;,s:boolean;

Begin:=False;

{Проверка на существование файла}

if NOT FileExists(AFilename) then begin(t,AFilename);(t);

Close (t);;;

{Запрос данных для записи}

Assign(t,AFilename);(t);not Eof(t) do Read(t, Cards);

seek(t,0);;('Внимание все поля обязательны к заполнению!');

WriteLn ('Выдать карту: ');;:=0;

n:=1;

{Запрашиваем и проверяем формат ввода новой карты}('Введите номер карты (6 цифр): ');

Readln(chislo);:= FIntTrue (chislo,6);v=True then beginNOT EOF(t) do begin(t,kursor);(t,Cards);chislo=Cards.CardNo then begin:=n+1;;(kursor);;

If n<>1 then begin('Данная карта уже имеет владельца!!! Введите другую карту');;begin:=0;.CardNo:=chislo;;

end;n=0;

{Запрашиваем и проверяем формат владельца карты}

repeat('Введите Ф.И.О Клиента: ');(Cards.Client);:=True;length(Cards.Client)=0 then s:=False;pos(' ',Cards.Client)=1 then s:=False;;s=True;

{Запрашиваем тип топлива}('Выберите тип топлива: 1-"АИ-80", 2-"АИ-92", 3-"АИ-95", 4-"ДТ" : ');(t_fuel);t_fuel of

: Cards.GoodType:='"АИ-80"';

: Cards.GoodType:='"АИ-92"';

: Cards.GoodType:='"АИ-95"';

: Cards.GoodType:='"ДТ"';;(t_fuel=1) Or (t_fuel=2) Or (t_fuel=3) Or (t_fuel=4);

{Запрашиваем тип владельца карты}('Выберите тип клиента: 1 - "Физ.лицо", 2 - "Юр.лицо : ');

ReadLn (t_client);t_client of

: Cards.ClientType:='"Физ.лицо"';

: Cards.ClientType:='"Юр.лицо"';;(t_client=1) Or (t_client=2);

{Запрашиваем и проверяем формат пароля карты}('Введите пароль (4 цифры): ');

Readln(Chislo);:= FIntTrue (chislo,4);v=True;.Passwd:=chislo;(t, Cards);(t);

FAddCards:=True;('!!! Запись успешно добавлена в БД !!!');;('Нажмите любую клавишу...');;;

{Функция редактирования данных с номером карты}

Function FEditClient (AFileName:string;AFTmpFile:string; PoleId:integer):boolean;, t, temp: File of TCards;:TCards;,kursor,t_fuel,t_client:integer;, NewName, chislo:string;,v:boolean;:=False;(t,AFileName);(t);(FTmp,AFTmpFile);(FTmp);(temp,'temp.dat');(temp);(FTmp,0);(FTmp,Cards);

{Запрашиваем и проверяем формат владельца карты}

If PoleId=0 then begin

Write('Введите нового клиента: ');

ReadLn(Cards.Client);:=True;length(Cards.Client)=0 then s:=False;pos(' ',Cards.Client)=1 then s:=False;;s=True;;

{Запрашиваем тип топлива}PoleId=1 then begin('Выберите тип топлива: 1-"АИ-80", 2-"АИ-92", 3-"АИ-95", 4-"ДТ" : ');(t_fuel);t_fuel of

: Cards.GoodType:='"АИ-80"';

: Cards.GoodType:='"АИ-92"';

: Cards.GoodType:='"АИ-95"';

: Cards.GoodType:='"ДТ"';;(t_fuel=1) Or (t_fuel=2) Or (t_fuel=3) Or (t_fuel=4);

end;

{Запрашиваем новый тип владельца карты}

If PoleId=2 then begin

repeat('Выберите тип клиента: 1 - "Физ.лицо", 2 - "Юр.лицо : ');

ReadLn (t_client);t_client of

: Cards.ClientType:='"Физ.лицо"';

: Cards.ClientType:='"Юр.лицо"';;(t_client=1) Or (t_client=2);

end;

{Запрашиваем и проверяем формат пароля карты}

If PoleId=3 then begin('Введите пароль (4 цифры): ');(Chislo);:= FIntTrue (chislo,4);v=True;.Passwd:=chislo;;(temp,cards);(FTmp);

Write(FTmp,cards);

{Переписываем оставшиеся записи}

seek(FTmp,0);(FTmp,Cards);:=Cards.CardNo;:=0;NOT EOF(t) do begin(t,kursor);(t,Cards);iskomoe<>Cards.CardNo then begin(temp,Cards);;(kursor);;(t);(temp);(FTmp);(t);(temp,AFileName);:=True;;

{Функция меню редактирования}FEdit (AFileName:string;AFTmpFile:string):boolean;:integer;:char;

Begin:=False;

{По номеру карты находим запись для редактирования}(AFileName, AFTmpFile);

{Выводим на Экран Окно редактирования}

Repeat;(AFTmpFile);

WriteLn('<1>-Изменить владельца карты.');('<2>-Изменить тип топлива.');('<3>-Изменить тип владельца карты.');('<4>-Изменить пароль.');

WriteLn('<Esc>-Выйти...');:=ReadKey;:=ord(a);b of

: FEditClient(AFileName, AFTmpFile,0);

: FEditClient(AFileName, AFTmpFile,1);

: FEditClient(AFileName, AFTmpFile,2);

: FEditClient(AFileName, AFTmpFile,3);

: Exit;;

end;b=27;;

{Процедура - Сортировки по имени}FSortByClient (AFileName:string);: File of TCards;,Cards2: TCards;,kursor2, f_size: Longint;NOT FileExists(AFileName) then Exit;(t,AfileName);(t);:=0;_size:=FileSize(t)-1;kursor1 < f_size do begin(t,kursor1);(t,Cards1);:=kursor1+1;kursor2 <= f_size do begin(t,kursor2);(t,Cards2);Cards1.Client>Cards2.Client then begin(t,kursor1);(t,Cards2);(t,kursor2);(t,Cards1);:=Cards2;;(kursor2);;(kursor1);;(t);

end;

{Процедура - Сортировки по номеру карты}

Procedure FSortByCardNo (AFileName:string);: File of TCards;,Cards2: TCards;,kursor2, f_size: Longint;NOT FileExists(AFileName) then Exit;(t,AfileName);(t);:=0;_size:=FileSize(t)-1;kursor1 < f_size do begin(t,kursor1);(t,Cards1);:=kursor1+1;kursor2 <= f_size do begin(t,kursor2);(t,Cards2);Cards1.CardNo>Cards2.CardNo then begin(t,kursor1);(t,Cards2);(t,kursor2);(t,Cards1);:=Cards2;;(kursor2);;(kursor1);;(t);

end;

{Процедура - Сортировки по Типу топлива}

Procedure FSortByGoodType (AFileName:string);: File of TCards;,Cards2: TCards;,kursor2, f_size: Longint;NOT FileExists(AFileName) then Exit;(t,AfileName);(t);:=0;_size:=FileSize(t)-1;kursor1 < f_size do begin(t,kursor1);(t,Cards1);:=kursor1+1;kursor2 <= f_size do begin(t,kursor2);(t,Cards2);Cards1.GoodType>Cards2.GoodType then begin(t,kursor1);(t,Cards2);(t,kursor2);(t,Cards1);:=Cards2;;(kursor2);;(kursor1);;(t);

end;

{Процедура - Сортировки по Типу клиента}

Procedure FSortByClientType (AFileName:string);: File of TCards;,Cards2: TCards;,kursor2, f_size: Longint;NOT FileExists(AFileName) then Exit;(t,AfileName);(t);:=0;_size:=FileSize(t)-1;kursor1 < f_size do begin(t,kursor1);(t,Cards1);:=kursor1+1;kursor2 <= f_size do begin(t,kursor2);(t,Cards2);Cards1.ClientType>Cards2.ClientType then begin(t,kursor1);(t,Cards2);(t,kursor2);(t,Cards1);:=Cards2;;(kursor2);;(kursor1);;(t);;

{Процедура - Меню "Сортировать"}

Procedure MSort ;

var:char;:integer;;

WriteLn(' "Справочник выданных Мобильных карт" - Меню "Сортировть"');;('<1> По клиенту');;('<2> По номеру карты');;('<3> По типу топлива');;('<4> По типу владельца');

WriteLn;('<Esc> Выход.');:=ReadKey;:=ord(a);b of

: FSortByClient(FileName);

: FSortByCardNo(FileName);

: FSortByGoodType(FileName);

: FSortByClientType(FileName);;;(b=27) or (b=49) or (b=50) or (b=51) or (b=52);;

{Процедура - Меню поиска}MPoisk ;:char;:integer;

begin;(' "Справочник выданных Мобильных карт" - Меню поиска');;('<1> Поиск по клиенту');;('<2> Поиск по номеру карты');;('<3> Выборка по типу топлива');

WriteLn;('<Esc> Выход.');:=ReadKey;:=ord(a);b of

: SelectCardsClient(FileName, FileFTmp);

: SelectCardsNo(FileName, FileFTmp);

: SelectCardsGoodType(FileName, FileFTmp);;;b=27;;

{Процедура вывода на экран БД}

Procedure ShowFile (AfileName:string);: File of TCards;:integer;:char;Not FileExists(AFileName) then begin(FTmp,AFileName);(FTmp);(FTmp);(AFileName);;;(AFilename);;('<1>-"Поиск..." ');('<2>-"Выдать карту..." ');('<3>-"Удалить карту..." ');('<4>-"Редактировать карту..." ');('<5>-"Сортировать список..."');('----------------------------');('<Esc>-"ВЫХОД - Главное меню"');

a:=ReadKey;:=ord(a);b of

:MPoisk;

: FAddCards(FileName);

: FDelCardsNo (FileName, FileFTmp);

: FEdit (FileName, FileFTmp);

: MSort;;b=27;

{Удаляем FTmp.dat-файл}FileExists(FileFTmp) then begin(FTmp, FileFTmp);(FTmp);(FTmp);(FTmp);;;

{Процедура - Окно главного меню}

procedure PMenu;

var: char;: integer;

ClrScr;(' "Справочник выданных Мобильных карт" - Главное меню ');;('<1> Список карт.');;('<Esc> Выйти из программы.');

a:=ReadKey;:=ord(a);b of

: ShowFile(FileName);;;b=27;;

{Тело программы};;

end.


Приложение 2


Результат работы

Результат работы приведен в картинках:


Начало работы программы:


"<1>-Список карт"


"<1>-Список карт" -> "<1>-Поиск…"


"<1>-Список карт" -> "<1>-Поиск…" -> "<1>-Поиск по клиенту"


"<1>-Список карт" -> "<1>-Поиск…" -> "<2>-Поиск по номеру карты"

"<1>-Список карт" -> "<1>-Поиск…" -> "<3>-Выборка по типу топлива"


Результат поиска:


"<1>-Список карт" -> "<2>-Выдать карту…"

Результат добавление записи:


"<1>-Список карт" -> "<3>-Удалить карту…"





"<1>-Список карт" -> "<4>-Редактировать карту…"



"<1>-Список карт" -> "<5>-Сортировать список…"


"<1>-Список карт" -> "<5>-Сортировать список…" -> "<1>-По клиенту"


"<1>-Список карт" -> "<5>-Сортировать список…" -> "<2>-По номеру карты"

"<1>-Список карт" -> "<5>-Сортировать список…" -> "<3>-По типу топлива"


"<1>-Список карт" -> "<5>-Сортировать список…" -> "<3>-По типу владельца"


При нажатии <Esc> программа завершит свою работу:


Содержание Введение . Назначение и область применения . Постановка задачи . Используемые методы . Алгоритм программы Заключение Список

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ