Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Obrazets.doc
Скачиваний:
21
Добавлен:
10.06.2015
Размер:
3.99 Mб
Скачать

ВНИМАНИЕ!!! УБЕДИТЕЛЬНО РПОШУ ПРОЯВИТЬ СОЗНАТЕЬНОСТЬ И ПОМЕНЯТЬ НАЗВАНИЯ ПЕРЕМЕННЫХ ПОРЯДОК ОПИСАНИЯ ФФУНКЦИЙ И ВНЕШНИЙ ВИД ОФОРМЛЕНИЯ РАБОТЫ, ЧЕМ СТАРАТЕЛЬНЕЕ ВЫ ЭТО СДЕЛАЕТЕ ТЕМ БОЛЬШЕ ШАНС НА ТО ЧТО ВАМ ВСЕ ЗАЧТУТ С УЧЕТОМ РАБОТОСПООСОБНОСТИ ПРИЛОЖЕНИЯ!!!

ВНИМАНИЕ!!! УБЕДИТЕЛЬНО РПОШУ ПРОЯВИТЬ СОЗНАТЕЬНОСТЬ И ПОМЕНЯТЬ НАЗВАНИЯ ПЕРЕМЕННЫХ ПОРЯДОК ОПИСАНИЯ ФФУНКЦИЙ И ВНЕШНИЙ ВИД ОФОРМЛЕНИЯ РАБОТЫ, ЧЕМ СТАРАТЕЛЬНЕЕ ВЫ ЭТО СДЕЛАЕТЕ ТЕМ БОЛЬШЕ ШАНС НА ТО ЧТО ВАМ ВСЕ ЗАЧТУТ С УЧЕТОМ РАБОТОСПООСОБНОСТИ ПРИЛОЖЕНИЯ!!! 1

1. Цель курсовой работы

Цель данной работы практическое знакомство с интерфейсом командной строки ОС MS Windows путем реализации упрощенной версии оболочки и подмножества команд интерпретатора cmd.exe на языке Pascal и закрепление навыков разработки приложений, полученных в курсе «Программирование на ЯВУ».

Задание:

-Реализовать команду DIR и ключи: [/A:R-S-H-A-D][O:N-D-S-E-G], выполнить вывод итогов на экран;

-Реализовать команду TYPE;

-Реализовать команду ATTRIB и ключи: [/R+-,/H+-,/S+-,/A+-];

-Реализовать команду SORT и ключ /R;

-Реализовать команду DATE и TIME;

-Реализовать команду CLS;

-Реализовать команду INVERTCOLOR - команда по инвертированию цветов экрана;

-Реализовать команду ECHO ON|OFF;

-Реализовать команду DEL|ERASE и ключи:[/P,/F,/S,/Q, /A:R-S-H-A];

-Реализовать команду RD и ключи [/S, /Q];

-Реализовать команду CD;

-Реализовать команду перенаправления вывода >;

-Реализовать команду CD.

2. Командный процессор ос ms Windows cmd

2.1. Оболочка (интерпретатор) командной строки command.Com/cmd.Exe

Во всех версиях ОС Windows поддерживается интерактивная оболочка командной строки (command shell) и определенный набор утилит командной строки (количество и состав этих утилит зависит от версии ОС). Механизм работы оболочек командной строки в разных системах одинаков: в ответ на приглашение ("подсказку", prompt), выдаваемое находящейся в ожидании оболочкой, пользователь вводит некоторую команду (функциональность этой команды может быть реализована либо самой оболочкой, либо определенной внешней утилитой), оболочка выполняет ее, при необходимости выводя на экран какую-либо информацию, после чего снова выводит приглашение и ожидает ввода следующей команды.

Наряду с интерактивным режимом работы оболочки, как правило, поддерживают и пакетный режим, в котором система последовательно выполняет команды, записанные в текстовом файле-сценарии. C точки зрения программирования язык командных файлов Windows может быть охарактеризован следующим образом:

  • наличие управляющих конструкций;

  • поддержка нескольких видов циклов (в том числе специальных циклов для обработки текстовых файлов).

2.2 Оболочка (интерпретатор) командной строки

Внешний вид оболочки ничем не отличается от стандартного оформления cmd, функциональные возможности схожи, в некоторых местах заменены мной на более удобные и расширенные возможности. Дальше будет приведена схема линейного алгоритма, на основании которого работает мой интерпретатор:

Рисунок 1. Блок схема общего алгоритма работы интерпретатора

Первым этапом выполняется запуск и создание оболочки интерпретатора, данные и классы для построения находятся в стандартных классах VCL Borland Delphi 7 (см. листинг 1).

Алгоритм работы следующий:

1. Инициализация консоли и ее создание.

2. Инициализация переменных.

3. Вывод приветствия и данных о разработчике (см. рисунок 2).

4. Ожидание ввода.

5. Ищем команду, если она есть и написана правильно то выполняем ее, если нет то возвращаемся на начало работы приложения.

6. Если команда есть то выводим данные реализованные в ходе ее выполнения.

7. Возвращаемся на начало работы приложения.

procedure Init;

begin

ConHandle := GetConOutputHandle;

Coord := GetLargestConsoleWindowSize(ConHandle);

MaxX := Coord.X;

MaxY := Coord.Y;

echo := True;

output := False;

flag := 0;

SetConsoleOutputCP(1251);

invcolor := false;

ffd := TDataModule1.Create(nil);

end;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]