Програмирование на языке высокого уровня

Автор работы: Пользователь скрыл имя, 05 Декабря 2011 в 16:41, курсовая работа

Краткое описание

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

Содержание работы

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. Введение ______________________________________________________________ 3

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

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

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

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

    6. Заключение ___________________________________________________________ 10

    7. Список литературы ___________________________________________________ 11

    8. Приложение 1. Листинг программы _____________________________________ 12

    9. Приложение 2. Результат работы _______________________________________ 24 
     
     
     
     
     
     
     
     
     
     

 

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’ (временный файл);
 
    1. Процедура 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; {конец процедуры} 

    1. Процедура 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>-«ВЫХОД – Главное меню» конец работы текущей процедуры;
 
      1. Процедура MPoisk - процедура представляющая собой не что иное, как меню пользователя где предлагается  для выбора три условия поиска нужной (ых) записи: по клиенту, по номеру карты и по типу топлива (соответственно по клавишам <1>,<2>,<3> для выхода <Esc>). Процедуры SelectCardsClient, SelectCardsNo, SelectCardsGoodType похожи по своей структуре и алгоритму работы и необходимым для работы входным параметрам (FileName{файл для поиска},FileFTmp{файл для вывода найденных данных}). Алгоритм сводится к открытию окна с возможностью ввода(выбора) данных для поиска(выборки) из БД и вывода результата на экран, по окончании процедура возвращает пользователя в меню поиска.
      2. Функция FAddCards (AFileName:string) – Предназначена для добавления записи в БД. Перед началом процедуры ведется проверка по наличию самого файла БД, в случае его отсутсвия программа сама создает его. Далее пользователю предлагается поэтапно ввести данные для одной записи, причем обязательным условием является заполнение всех полей!!! Алгоритм следующий:

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

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

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

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

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

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

          <Esc> - Выйти…

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

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

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

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

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

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

Информация о работе Програмирование на языке высокого уровня