Програмирование на языке высокого уровня
Курсовая работа, 05 Декабря 2011, автор: пользователь скрыл имя
Краткое описание
Целью курсовой работы является углубление знаний и расширение навыков по разработке алгоритмов и их реализации на персональном компьютере. Курсовая работа выполняется в среде Турбо Паскаль и предполагает работу с текстами, файловыми структурами, обработку записей.
Содержание работы
1. Введение ______________________________________________________________ 3
2. Назначение и область применения _______________________________________ 4
3. Постановка задачи _____________________________________________________ 5
4. Используемые методы __________________________________________________ 6
5. Алгоритм программы __________________________________________________ 7
6. Заключение ___________________________________________________________ 10
7. Список литературы ___________________________________________________ 11
8. Приложение 1. Листинг программы _________
Содержимое работы - 1 файл
Курсовая работа Бессмертный.doc
— 2.24 Мб (Скачать файл)| Томский межвузовский центр дистанционного образования | |
| Томский государственный университет систем управления и радиоэлектроники (ТУСУР) | |
| Кафедра автоматизированные системы управления (АСУ) | |
| Курсовая работа по дисциплине «Программирование на языке высокого уровня» Тема: «Справочник
выданных мобильных карт» учебное пособие Е.Н. Сафьянова 'Основы алгоритмизации и программирование' | |
| | |
| Выполнил студент гр. з-435-б специальность
230105 | |
| Бессмертный
Дмитрий Валерьевич
02 января
2010 г. | |
| г.Ноябрьск 2009 | |
Содержание
1. Введение
______________________________
2. Назначение
и область применения ______________________________
3. Постановка
задачи ______________________________
4. Используемые
методы ______________________________
5. Алгоритм
программы ______________________________
6. Заключение
______________________________
7. Список
литературы ______________________________
8. Приложение
1. Листинг программы ______________________________
9. Приложение
2. Результат работы ______________________________
1. Введение.
Целью курсовой работы является углубление знаний и расширение навыков по разработке алгоритмов и их реализации на персональном компьютере. Курсовая работа выполняется в среде Турбо Паскаль и предполагает работу с текстами, файловыми структурами, обработку записей.
2. Назначение и область применения.
Программа представляет собой мини комплекс по учету выданных мобильных карт, областью применения могут быть Автомобильные Заправочные Станции.
3. Постановка задачи.
Написать программу, которая будет работать с базой выданных мобильных карт. При этом программа должна уметь добавлять, изменять, удалять, искать записи и создавать БД (База Данных) в случае если таковая отсутствует. Для упрощения работы с программой разработать интуитивно понятный интерфейс.
4. Используемые методы.
БД создается под именем CardsMK.dat в той же директории, где находится сама программа. Доступ к данным происходит напрямую из процедур или функции. При поиске или изменении записи создается временный файл с именем FTmp.dat, в него записываются результат поиска из файла CardsMK.dat, используемые в дальнейшем для определенных целей: вывод на экран, визуального контроля редактируемой или удаляемой записи. Для удаления так же создается временный файл temp.dat, для хранения отредактированной БД, затем файл CardsMK.dat удаляется, а файл temp.dat переименовывается в CardsMK.dat.
В программе
использован метод объектно-
5. Алгоритм программы.
Создадим новый тип записи 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 {начало оператора цикла}
ClrScr; {очистка экрана, встроенная процедура}
WriteLn(' "Справочник выданных Мобильных карт" - Главное меню ');
WriteLn; {оператор вывода текста на экран с переводом курсора на следующую строку}
WriteLn ('<1> Список карт.');
WriteLn;
WriteLn ('<Esc> Выйти из программы.');
a:=ReadKey; {присваиваем значение ReadKey – встроенная функция считывания кода нажатой клавиши типа Char}
b:=ord(a); {присваиваем переменной значение, возвращенное оператором ord-преобразует переменную типа Char в целочисленную - Integer}
case b of {начало оператора выборки по значению переменной b}
49 : 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:
- 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> - По типу владельца.