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

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

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

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

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

1. Введение ______________________________________________________________ 3
2. Назначение и область применения _______________________________________ 4
3. Постановка задачи _____________________________________________________ 5
4. Используемые методы __________________________________________________ 6
5. Алгоритм программы __________________________________________________ 7
6. Заключение ___________________________________________________________ 10
7. Список литературы ___________________________________________________ 11
8. Приложение 1. Листинг программы _________

Содержимое работы - 1 файл

Курсовая работа Бессмертный.doc

— 2.24 Мб (Скачать файл)

          <Esc> - Выйти…

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

 

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

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

 

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

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

 

        

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

uses Crt;

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

     Client : string [34];{Поле Клиент}

     CardNo : string[6];  {Поле №карты}

     GoodType : string [7]; {Поле Тип топлива}

     ClientType : string [10];{Поле Тип Клиент}

     Passwd : string[4]; {Поле Пароль}

     end;

CONST FileName : string = 'CardsMK.dat';{Файл БД}

CONST FileFTmp : string = 'FTmp.dat'; {Временный файл} 

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

function FileExists(AFileName : String): boolean;

var t: File of TCards;

begin

FileExists := False;

  Assign (t, AFileName);

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

  If IOResult = 0 then begin

    Close (t);

    FileExists:=True

  end;

end; 

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

Function FShowFile (AFileName:string):boolean;

Var

  t, FTmp: File of TCards;

  Cards: TCards;

  n:integer;

begin

FShowFile:=True;

  If NOT FileExists(AFileName) then begin

    FShowFile:=False;

    Exit;

  end;

  Assign(t,AfileName);

  Reset(t);

  n:=1;

  WriteLn('| № |        Владелец карты             |  Карта | Топливо | Юр. / Физ. |Пароль|');

  WriteLn('|---|-----------------------------------|--------|---------|------------|------|');

  While NOT EOF(t) do begin

    Read(t,Cards);

    Writeln('|',n:3,'|',Cards.Client:34,' | ', Cards.CardNo:6,' | ', Cards.GoodType:7,' | ', Cards.ClientType:10,' | ',

    Cards.Passwd:4,' |');

    n:=n+1;

  end;

  WriteLn('--------------------------------------------------------------------------------');

  Close(t);

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

end; 

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

Function FIntTrue (ATCardid:string; ADlina:integer):boolean;

var

code,chislo,dlina: integer;

begin

FIntTrue:=True;

  val(ATCardid,chislo,code);

  dlina:=length(ATCardid);

  if code<>0 then begin

    FIntTrue:=False;

  end

  else begin

    If dlina<>ADlina then FIntTrue:=False;

  end;

end; 

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

Function FSelect(AFileName:string; AFileFTmp:string; iskomoe:string; PoleId:integer):boolean;

var

  FTmp, t : file of TCards;

  Cards:TCards;

  kursor: Longint;

  b,n:integer;

  Pole:string;

Begin

FSelect:=False;

  Assign(t,AFileName);

  Reset(t);

  Assign(FTmp,AFileFTmp);

  Rewrite(FTmp);

  kursor:=0;

  n:=1;

  while NOT EOF(t) do begin

    seek(t,kursor);

    Read(t,Cards);

    Case PoleId of

      0: Pole:=Cards.Client;

      1: Pole:=Cards.CardNo;

      2: Pole:=Cards.GoodType;

    end;

    If pos(iskomoe,Pole)=1 then begin

      write(FTmp,Cards);

      FSelect:=True;

      n:=n+1;

    end;

    inc(kursor);

  end;

  Close(FTmp);

  Close(t);

end; 

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

Function SelectCardsClient(AFileName:string; AFileFTmp:string):boolean;

var

  t : file of TCards;

  FTmp : file of TCards;

  Cards, ftmps : Tcards;

  iskomoe : string;

Begin

SelectCardsClient:=False;

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

  ClrScr;

  Assign(t,AFileName);

  Reset(t);

  Assign(FTmp,FileFTmp);

  Rewrite(FTmp);

  {Запрашиваем данные для поиска данных}

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

  Readln(iskomoe);

  Close(FTmp);

  Close(t);

  {Выполним поиск и запишем результат в файл FTmp.dat}

  FSelect(AFileName, AFileFTmp, iskomoe, 0);

  {Выводим на  экран полученный результат}

  ClrScr;

  FShowFile(AFileFTmp);

  WriteLn('Для выхода  нажмите любую клавишу...');

  ReadKey;

end; 
 

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

Function SelectCardsNo(AFileName:string; AFileFTmp:string):boolean;

var

  FTmp, t : file of TCards;

  Cards, ftmps : Tcards;

  iskomoe: string;

  v : boolean;

Begin

  SelectCardsNo:=False;

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

  If Not FileExists(AFileName) then Exit;

  ClrScr;

  Assign(t,AFileName);

  Reset(t);

  Assign(FTmp,FileFTmp);

  Rewrite(FTmp);

  {Запрашиваем №карты для ее поиска с обязательной проверкой верности введенных данных}

  Repeat

    Write('Введите  точный номер карты (6 цифр):  ');

    Readln(iskomoe);

    v:= FIntTrue (iskomoe,6);

  until v=True;

  Close(FTmp);

  Close(t);

  {Выполним поиск  и запишем результат в файл FTmp.dat}

  FSelect(AFileName, AFileFTmp, iskomoe, 1);

  {Выводим на  экран полученный результат}

  ClrScr;

  FShowFile(AFileFTmp);

  WriteLn('Нажмите  любую клавишу...');

  ReadKey;

end; 

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

Function SelectCardsGoodType(AFileName:string; AFileFTmp:string):boolean;

var

  t : file of TCards;

  FTmp : file of TCards;

  Cards, ftmps : Tcards;

  kursor, f_size: Longint;

  a:char;

  b,n:integer;

  iskomoe: string;

  v : boolean;

Begin

  SelectCardsGoodType:=False;

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

  If Not FileExists(AFileName) then Exit;

  ClrScr;

  Assign(t,AFileName);

  Reset(t);

  Assign(FTmp,FileFTmp);

  Rewrite(FTmp);

  {Предлогаем выбрать тип топлива}

  repeat

    begin

      ClrScr;

      WriteLn(' Пожалуйста выберите тип  топлива:');

      WriteLn;

      WriteLn ('<1> "АИ-80"');

      WriteLn;

      WriteLn ('<2> "АИ-92"');

      WriteLn;

      WriteLn ('<3> "АИ-95"');

      WriteLn;

      WriteLn ('<4> "Дт"');

      WriteLn;

      WriteLn;

      WriteLn ('<Esc> Выход.');

      a:=ReadKey;

      b:=ord(a);

      case b of

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

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

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

        52 : iskomoe:='"ДТ"';

        27 : Exit;

      end;

    end;

  until (b=49) or (b=50) or (b=51) or (b=52) or (b=27);

  Close(FTmp);

  Close(t);

  {Выполним поиск и запишем результат в файл FTmp.dat}

  FSelect(AFileName, AFileFTmp, iskomoe, 2);

  {Выводим на  экран полученный результат}

  ClrScr;

  FShowFile(AFileFTmp);

  WriteLn('Для выхода  нажмите любую клавишу...');

  ReadKey;

end; 

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

Function FDelCardsNo(AFileName:string; AFTmp : string):boolean;

Var

  t,FTmp,temp: File of TCards;

  Cards : TCards;

  kursor, n : integer;

  iskomoe1,iskomoe2 : string;

  otvet: char;

begin

FDelCardsNo:=False;

  SelectCardsNO(AFileName, AFTmp);

  Assign(FTmp,FileFTmp);

  Reset(FTmp);

  If FileSize(FTmp)=0 then begin

    WriteLn('Внимание! Нет данных для удаления!!!');

    Close(FTmp);

    ReadKey;

    Exit;

  end

  else begin

    repeat

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

      readln (otvet);

      if ord(otvet)=49 then EXIT;

    until ord(otvet)=48;

  end;

  Assign(t,AFileName);

  Reset(t);

  Assign(temp,'Temp.dat');

  Rewrite(temp);

  kursor:=0;

  Read(FTmp,Cards);

  iskomoe1:=Cards.CardNo;

  while NOT EOF(t) do begin

    seek(t,kursor);

    Read(t,Cards);

    iskomoe2:=Cards.CardNo;

    If iskomoe2<>iskomoe1 then begin

      write(temp,Cards);

    end;

    inc(kursor);

  end; 

  If FileSize(temp)<>0 then FDelCardsNo:=True;

  Close(t);

  Close(FTmp);

  Close(temp);

  Erase(t);

  Rename(temp, AFileName);

  WriteLn;

  WriteLn ('Запись  успешно удалена');

  WriteLn;

  WriteLn ('Нажмите  любую клавишу...');

  ReadKey;

end; 

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

Function FAddCards (AFilename:string):boolean;

var

  t : File of TCards;

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