Разработка алгоритмов и их реализация - Программирование, компьютеры и кибернетика курсовая работа

Разработка алгоритмов и их реализация - Программирование, компьютеры и кибернетика курсовая работа




































Главная

Программирование, компьютеры и кибернетика
Разработка алгоритмов и их реализация

Создание работоспособного модуля по работе с мобильными картами АЗС. Разработка базы данных в среде программирования Турбо Паскаль для работы с текстами и файловыми структурами. Описание методов алгоритмизации процессов сортировки и редактирования.


посмотреть текст работы


скачать работу можно здесь


полная информация о работе


весь список подобных работ


Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

procedure PMenu; {объявление процедуры}
a: char; {необходимо для оператора Ord(а)}
ClrScr; {очистка экрана, встроенная процедура}
WriteLn(' "Справочник выданных Мобильных карт" - Главное меню ');
WriteLn; {оператор вывода текста на экран с переводом курсора на следующую строку}
WriteLn (' Выйти из программы.');
a:=ReadKey; {присваиваем значение ReadKey - встроенная функция считывания кода нажатой клавиши типа Char}
b:=ord(a); {присваиваем переменной значение, возвращенное оператором ord-преобразует переменную типа Char в целочисленную - Integer}
case b of {начало оператора выборки по значению переменной b}
49 : ShowFile(FileName); {если b=49 (клавиша "1"), то запускаем ShowFile(FileName)}
until b=27; {условие повторного запуска цикла: пока переменная не будет равна 27 (клавиша "Esc")}
Процедура 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;
· -"ВЫХОД - Главное меню" конец работы текущей процедуры;
Процедура MPoisk - процедура представляющая собой не что иное, как меню пользователя где предлагается для выбора три условия поиска нужной (ых) записи: по клиенту, по номеру карты и по типу топлива (соответственно по клавишам <1>,<2>,<3> для выхода ). Процедуры 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). Выводим на экран меню редактирования, выбор поля для редактирования определяется цифрой на клавиатуре:
<3> - Изменить тип владельца карты.
Первые четыре строки соответствуют вызову функций FEditClient с параметрами: AFileName - файл БД, AFTmpFile - файл с результатом поиска, PoleId - номер поля для редактирования. В зависимости от выбора поля для редактирования предлагается выбрать новый тип или ввести новое значение данного поля (обязательно с проверкой условий ввода). Выполненные изменения записываются во вновь созданный файл Temp.dat, и туда переписываются все данные из файла БД кроме тех, что содержаться в FTmp.dat. После чего файл с БД удаляется, а Temp.dat переименовывается в файл БД - CardsMK.dat.
MSort - открывает меню пользователя "Сортировать". Так же с помощью цифр определяемся с выбором поля по которому будет выполняться сортировка таблицы БД:
Типы сортировки разбиты на свои функции: FSortByClient(FileName), FSortByCardNo(FileName), FSortByGoodType(FileName), FSortByClientType(FileName). По своему алгоритму они ничем не отличаются, разница лишь в поле сортировки.
type TCards = record {Создание нового типа определенного формата }
GoodType : string [7]; {Поле Тип топлива}
ClientType : string [10];{Поле Тип Клиент}
CONST FileName : string = 'CardsMK.dat';{Файл БД}
CONST FileFTmp : string = 'FTmp.dat'; {Временный файл}
{Функция определяет существует ли файл с данным именем}
function FileExists(AFileName : String): boolean;
{$I-} Reset (t); {$I+} {отключаем контроль ошибки доступа}
{Функция выода на экран содержимого файла в виде таблицы}
Function FShowFile (AFileName:string):boolean;
If NOT FileExists(AFileName) then begin
WriteLn('| № | Владелец карты | Карта | Топливо | Юр. / Физ. |Пароль|');
WriteLn('|---|-----------------------------------|--------|---------|------------|------|');
Writeln('|',n:3,'|',Cards.Client:34,' | ', Cards.CardNo:6,' | ', Cards.GoodType:7,' | ', Cards.ClientType:10,' | ',
WriteLn('--------------------------------------------------------------------------------');
WriteLn('Количество записей: ',n-1);
{Функция контроля: ввод числа с определенной длинной символов}
Function FIntTrue (ATCardid:string; ADlina:integer):boolean;
If dlina<>ADlina then FIntTrue:=False;
{Функция поиска FSelect(файл БД, файл вывода результата, поле поиска(0-клиент,1-№карты,2-тип топлива)) }
Function FSelect(AFileName:string; AFileFTmp:string; iskomoe:string; PoleId:integer):boolean;
Function SelectCardsClient(AFileName:string; AFileFTmp:string):boolean;
{Проверка на существование файла БД}
{Запрашиваем данные для поиска данных}
Write('Введите полные или начальные параметры для поиска: ');
{Выполним поиск и запишем результат в файл FTmp.dat}
FSelect(AFileName, AFileFTmp, iskomoe, 0);
{Выводим на экран полученный результат}
WriteLn('Для выхода нажмите любую клавишу...');
Function SelectCardsNo(AFileName:string; AFileFTmp:string):boolean;
If Not FileExists(AFileName) then Exit;
{Запрашиваем №карты для ее поиска с обязательной проверкой верности введенных данных}
Write('Введите точный номер карты (6 цифр): ');
{Выполним поиск и запишем результат в файл FTmp.dat}
FSelect(AFileName, AFileFTmp, iskomoe, 1);
{Выводим на экран полученный результат}
WriteLn('Нажмите любую клавишу...');
{Окно поиска данных по типу топлива}
Function SelectCardsGoodType(AFileName:string; AFileFTmp:string):boolean;
If Not FileExists(AFileName) then Exit;
WriteLn(' Пожалуйста выберите тип топлива:');
until (b=49) or (b=50) or (b=51) or (b=52) or (b=27);
{Выполним поиск и запишем результат в файл FTmp.dat}
FSelect(AFileName, AFileFTmp, iskomoe, 2);
{Выводим на экран полученный результат}
WriteLn('Для выхода нажмите любую клавишу...');
Function FDelCardsNo(AFileName:string; AFTmp : string):boolean;
WriteLn('Внимание! Нет данных для удаления!!!');
Write ('Вы действительно хотите их удалить? <0>-ДА, <1>-НЕТ : ');
If FileSize(temp)<>0 then FDelCardsNo:=True;
WriteLn ('Запись успешно удалена');
WriteLn ('Нажмите любую клавишу...');
{Функция добавления записи в файл БД, если его нет, то программа создаст его}
Function FAddCards (AFilename:string):boolean;
t_fuel, t_client, kursor, n: integer;
if NOT FileExists(AFilename) then begin
While not Eof(t) do Read(t, Cards);
WriteLn ('Внимание все поля обязательны к заполнению!');
{Запрашиваем и проверяем формат ввода новой карты}
Write('Введите номер карты (6 цифр): ');
Writeln('Данная карта уже имеет владельца!!! Введите другую карту');
{Запрашиваем и проверяем формат владельца карты}
if length(Cards.Client)=0 then s:=False;
if pos(' ',Cards.Client)=1 then s:=False;
Write ('Выберите тип топлива: 1-"АИ-80", 2-"АИ-92", 3-"АИ-95", 4-"ДТ" : ');
until (t_fuel=1) Or (t_fuel=2) Or (t_fuel=3) Or (t_fuel=4);
Write ('Выберите тип клиента: 1 - "Физ.лицо", 2 - "Юр.лицо : ');
until (t_client=1) Or (t_client=2);
{Запрашиваем и проверяем формат пароля карты}
Write('Введите пароль (4 цифры): ');
writeln('!!! Запись успешно добавлена в БД !!!');
writeln('Нажмите любую клавишу...');
{Функция редактирования данных с номером карты}
Function FEditClient (AFileName:string;AFTmpFile:string; PoleId:integer):boolean;
{Запрашиваем и проверяем формат владельца карты}
if length(Cards.Client)=0 then s:=False;
if pos(' ',Cards.Client)=1 then s:=False;
Write ('Выберите тип топлива: 1-"АИ-80", 2-"АИ-92", 3-"АИ-95", 4-"ДТ" : ');
until (t_fuel=1) Or (t_fuel=2) Or (t_fuel=3) Or (t_fuel=4);
{Запрашиваем новый тип владельца карты}
Write ('Выберите тип клиента: 1 - "Физ.лицо", 2 - "Юр.лицо : ');
until (t_client=1) Or (t_client=2);
{Запрашиваем и проверяем формат пароля карты}
Write('Введите пароль (4 цифры): ');
If iskomoe<>Cards.CardNo then begin
Function FEdit (AFileName:string;AFTmpFile:string):boolean;
{По номеру карты находим запись для редактирования}
SelectCardsNO(AFileName, AFTmpFile);
{Выводим на Экран Окно редактирования}
WriteLn('<1>-Изменить владельца карты.');
WriteLn('<2>-Изменить тип топлива.');
WriteLn('<3>-Изменить тип владельца карты.');
49: FEditClient(AFileName, AFTmpFile,0);
50: FEditClient(AFileName, AFTmpFile,1);
51: FEditClient(AFileName, AFTmpFile,2);
52: FEditClient(AFileName, AFTmpFile,3);
Procedure FSortByClient (AFileName:string);
if NOT FileExists(AFileName) then Exit;
if Cards1.Client>Cards2.Client then begin
{Процедура - Сортировки по номеру карты}
Procedure FSortByCardNo (AFileName:string);
if NOT FileExists(AFileName) then Exit;
if Cards1.CardNo>Cards2.CardNo then begin
{Процедура - Сортировки по Типу топлива}
Procedure FSortByGoodType (AFileName:string);
if NOT FileExists(AFileName) then Exit;
if Cards1.GoodType>Cards2.GoodType then begin
{Процедура - Сортировки по Типу клиента}
Procedure FSortByClientType (AFileName:string);
if NOT FileExists(AFileName) then Exit;
if Cards1.ClientType>Cards2.ClientType then begin
WriteLn(' "Справочник выданных Мобильных карт" - Меню "Сортировть"');
until (b=27) or (b=49) or (b=50) or (b=51) or (b=52);
WriteLn(' "Справочник выданных Мобильных карт" - Меню поиска');
WriteLn ('<2> Поиск по номеру карты');
WriteLn ('<3> Выборка по типу топлива');
49 : SelectCardsClient(FileName, FileFTmp);
50 : SelectCardsNo(FileName, FileFTmp);
51 : SelectCardsGoodType(FileName, FileFTmp);
Procedure ShowFile (AfileName:string);
If Not FileExists(AFileName) then begin
Writeln('<3>-"Удалить карту..." ');
Write('<4>-"Редактировать карту..." ');
Writeln('<5>-"Сортировать список..."');
Writeln('----------------------------');
Writeln('-"ВЫХОД - Главное меню"');
51 : FDelCardsNo (FileName, FileFTmp);
WriteLn(' "Справочник выданных Мобильных карт" - Главное меню ');
WriteLn (' Выйти из программы.');
Особенности использования графического режима в среде Турбо Паскаль. Типы драйверов. Инициализация графики. Построение изображения на экране. Графические примитивы и работа с текстом. Разработка и реализация программ в среде Турбо Паскаль "Графика". курсовая работа [1,2 M], добавлен 26.09.2014
Общая характеристика языка программирования Турбо Паскаль: операторы, циклы, файлы. Процедуры и функции модуля Crt. Структурная и функциональная схема программы учета учащихся, таблица идентификаторов. Список и описание использованных подпрограмм. курсовая работа [702,9 K], добавлен 29.01.2011
Особенности программирования на языке Паскаль в среде Турбо Паскаль. Линейные алгоритмы, процедуры и функции. Структура данных: массивы, строки, записи. Модульное программирование, прямая и косвенная рекурсия. Бинарный поиск, организация списков. отчет по практике [913,8 K], добавлен 21.07.2012
Освоение технологии структурного программирования и применения стандартных методов работы с одномерными массивами при разработке и создании программы на языке Турбо Паскаль. Разработка программы методом пошаговой детализации с помощью псевдокода. реферат [276,9 K], добавлен 27.02.2008
Разработка программы, создающей и управляющей базой данных, ее реализация на языке Turbo Pascal. Организация алгоритма программы. Вывод информации и возможность добавления информации в базу данных. Поиск информации в базе данных по заданному значению. курсовая работа [26,7 K], добавлен 19.06.2010
Развертывание системы на жестком диске, диалоговая система программирования Турбо Паскаль, запуск программы и выполнение задания. Функциональные клавиши и их назначение. Текстовый редактор, средства создания и редактирования текстов программ, курсор. реферат [18,6 K], добавлен 01.04.2010
Исследование особенностей работы с динамическими структурами данных, обработки строк. Реализация работоспособного программного обеспечения, которое должно поддерживать информационную базу пользователей компьютеров. Метод пирамидальной сортировки данных. курсовая работа [364,1 K], добавлен 06.04.2014
Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д. PPT, PPTX и PDF-файлы представлены только в архивах. Рекомендуем скачать работу .

© 2000 — 2021



Разработка алгоритмов и их реализация курсовая работа. Программирование, компьютеры и кибернетика.
Отчет по практике по теме Аналіз діяльності ресторану 'Корона'
Реферат: Reverse Discrimination Essay Research Paper REVERSE DISCRIMINATIONTHE
Реферат: Второй корейский ядерный кризис. Скачать бесплатно и без регистрации
Мен Таңдаған Мамандық Мұғалім Эссе
Реферат На Тему Занятость Как Проблема Населения
Эссе На Тему Язык Философии
Великие Художники Эпохи Возрождения Реферат
Реферат: Шевченкове кредо і сучасне відродження України
Курсовая работа по теме Сумочка-косметичка: використання технології ручного плетіння гачком та бісером
Реферат: Державна Фінансова підтримка санації підприємств в Україні
Курсовая Работа На Тему "Мастер И Маргарита" М. Булгакова
Что Значит Жить По Совести Сочинение Рассуждение
Сочинение По Тексту Быкова Стрельба Утихла
Реферат: Стружкодробление и удаление отходов производства
Дипломная работа по теме Исследование организационной культуры на примере ООО 'Газпром трансгаз Томск'
Курсовая работа по теме Деятельность государства по подготовке профессиональных, личностных и деловых качеств организатора работы с молодежью
Дипломная работа по теме Организация кредитования физических лиц коммерческими банками в Республике Беларусь
Курсовая работа по теме Уроки Александра Михайловича Евлахова
Реферат: Шицзы
Реферат: Beatles Music Songs Of The Co Essay
Лексические особенности китайской версии сайтов белорусских предприятий - Иностранные языки и языкознание курсовая работа
Севастопольское восстание 1830 года - История и исторические личности реферат
Аффинные и проективные многообразия - Математика контрольная работа


Report Page