Интерпретатор команд MS DOS (47096)

Посмотреть архив целиком

Волжский университет имени В.Н.Татищева

Факультет “Информатика и телекоммуникации”

Кафедра “Информатика и системы управления”









КУРСОВАЯ РАБОТА

по дисциплине: “Системное программное обеспечение”

Тема:

Интерпретатор команд MS DOS”















Тольятти


Содержание



ВВЕДЕНИЕ

1. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

1.1 ОПЕРАЦИОННАЯ СИСТЕМА MS DOS

1.1.1 Файлы IO.SYS и MSDOS.SYS

1.1.2 Командный процессор DOS

1.1.3. Базовая система ввода-вывода

1.1.4 Загрузчик DOS

1.1.5 Диалог пользователя с DOS

1.1.6 Команды DOS

1.2 НЕДОСТАТКИ ЯЗЫКА ПРОГРАМИРОВАНИЯ С++

2. ПРОГРАММНАЯ ЧАСТЬ

2.1 ПОСТАНОВКА ЗАДАЧИ

2.2 ПОСТРОЕНИЕ АЛГОРИТМА РЕШЕНИЯ ЗАДАЧИ

2.2 АЛГОРИТМ

2.3. ОПИСАНИЕ РАЗРАБОТАННОЙ ПРОГРАММЫ

3. ЗАКЛЮЧЕНИЕ

4. СПИСОК ЛИТЕРАТУРЫ

5. ПРИЛОЖЕНИЕ



Введение


MsDos была создана в 1981 г. фирмой Microsoft по заказу IBM для разрабатывающихся тогда компьютеров IBM PC. Компьютер IBM PC, для которого была написана MsDos, был мало похож на современные компьютеры – медленный микропроцессор Intel-8088, 256 Кбайт оперативной памяти, без жёсткого диска, алфавитно-цифровой чёрно-белый монитор, работа лишь с односторонними 160- Кбайтными дискетами и т.д. Однако эти возможности были выше, чем у конкурирующих персональные компьютеры.

Первая версия Ms Dos тоже обладала гораздо более скромными возможностями, чем современные ОС. Она обеспечивала работу на компьютере лишь одного пользователя и одной программы (то есть однопользовательской и однозадачной), поддерживала работу лишь с дискетами, клавиатурной и алфавитно-цифровым дисплеем. Зато Ms Dos была компактной, предъявляла довольно скромные требования к аппаратуре и выполняла необходимый минимум функций для пользователей и программ.

За те два десятка лет, которые прошли с момента появления IBM PC, технические характеристики компьютеров совершили фантастический рывок вперёд. Современные компьютеры превосходят по всем показателям (быстродействию, объему оперативной и дисковой памяти, возможностям монитора и т.д) компьютеры начала 80х годов в сотни и даже тысячи раз. Поэтому фирма Microsoft внесла в MsDos много изменений и добавлений, чтобы расширить её возможности и более эффективно использовать новые, более мощные, компьютеры.

Как наличие автомобилей не отменяет необходимости уметь ходить на своих двоих, так и наличие Windows, Windows 95, Windows NT не ликвидирует (хотя и сильно сокращает) потребности в MS DOS и DOS-программах:

  • до сих пор остаётся множество областей деятельности, где DOS-программы успешно работают, а применение решений, требующих иных ОС, невозможно или экономически не целесообразно;

  • при повреждении таких ОС, как WINDOWS 3.1, WINDOWS for Workgroup и Windows 95 (что случается весьма часто) для исследования причин неисправности и их устранения обычно приходится использовать MS DOS и DOS-программы.

Операционная система MSDOS в наше время не используется как основная ОС, но без неё не обойдешься. При установке Windows используют команды MSDOS. В курсовой работе я интерпретирую эти команды.


1. Теоретическая часть



    1. Операционная система MS DOS



      1. Файлы IO.SYS и MSDOS.SYS

Файлы IO.SYS и MSDOS.SYS, иначе называемые основными системными файлами MS DOS, содержат программы MSDOS, которые постоянно находятся в оперативной памяти компьютера.


1.1.2 Командный процессор DOS

Командный процессор DOS Обрабатывает команды, вводимые пользователем. Стандартный командный процессор MS DOS имеет имя COMMAND.COM, обычно он находится в корневом каталоге диска, с которого загружается DOS. Некоторые команды пользователя, TYPE,DIR,COPY, командный процессор выполняет сам. Такие команды называются внутренними. Для выполнения остальных (внешних) команд пользователя командный процессор ищет на дисках программу с соответствующим именем и если находит её, то загружает в память и передаёт ей управление. По окончании работы программы командный процессор удаляет программу из памяти и выводит сообщение о готовности к выполнению команд.


1.1.3 Базовая система ввода-вывода

Базовая система ввода-вывода (BIOS), находящаяся в постоянной памяти (постоянно запоминающем устройстве, ПЗУ) компьютера, формально не является частью MS DOS, однако тесно с ней связана. BIOS содержит программы для проверки оборудования компьютера, инициирования загрузки операционной системы (ОС) и программы для выполнения базовых (низкоуровневых) операций ввода-вывода с монитором, клавиатурой, дисками и принтером.


1.1.4 Загрузчик DOS

Ещё одна программа, которую можно считать частью DOS,- это загрузчик DOS. Он находится в первом секторе каждой дискеты и в первом секторе логического диска, с которого происходит загрузка DOS (то есть диска С:). Название этой очень короткой программы- загрузка в память системного файла DOS IO.SYS при начальной загрузке компьютера.


1.1.5 Диалог пользователя с DOS

Диалог пользователя с DOS осуществляется в форме команд-строк символов, вводимых с клавиатуры. Каждая команда пользователя означает, что DOS должна выполнить то или иное действие, например, напечатать файл или выдать на экран оглавление каталога.

Команды DOS состоит из имени команды или вызываемой программы и, возможно, параметров, разделённых пробелами. Ввод каждой команды заканчивается нажатием клавиши ENTER.


1.1.6 Команды DOS

Любая команда, вводимая пользователем в MS DOS, вызывает выполнение либо внутренней команды (из COMMAND.COM) либо какой-либо программы или командного файла.

Команды DOS состоят из имени команды и, возможно, параметров разделённых пробелами. Имя команды и параметры могут набираться как прописными, так и строчными латинскими буквами. Ниже полностью описаны три команды DEL,REN,COPY, подробная характеристика, примеры правильного написания для работы с ними. Моя программа интерпретирует их с небольшими изменениями.

  • Для удаления файлов в DOS имеется команда DEL.Формат команды:

DEL Имя файла

В имени файла можно употреблять символы * и ?.

Примеры:

DEL *.bak–удаление всех файлов с расширением bak из текущего каталога.

DEL my.txt- удаление файла my.txt из текущего каталога.

  • Для переименования файлов в DOS имеется команда REN. Формат команды:

REN имя-файла1 имя-файла2

Параметры. Параметр имя-файла1 задает имя переименуемого файла, параметр имя-файла2 –новое имя файла.

Примеры:

REN xxx.doc xxx.txt –переименование файла ххх.doc в текущем каталоге. Новое имя файла xxx.txt.

  • Для переименования файлов в DOS имеется команда COPY. Формат команды:

COPY имя-файла1 имя-файла2

В имени файла можно употреблять символы * и ?, а также указывать имя диска и каталога.

Выполнение команд. Если в параметре имя-файла1 указанно имя каталога, то файлы копируются из этого каталога в, иначе – из текущего каталога. Каталог, в котором копируются файлы, можно задать параметром имя-файла2 или указанием каталога в параметре имя-файла2. Если этот каталог не задан, то файлы копируются в текущий каталог.

Если во втором параметре команды задано имя файла, то оно указывает новое имя копируемого файла. Символы * и ? в имени файла во втором параметре команды указывают, что соответствующие символы в именах копируемых файлов при копировании не меняются.

Примеры:

COPY xxx.doc xxx.txt –копирование файла ххх.doc в текущем каталоге; создаётся файл xxx.txt в текущем каталоге.

COPY a:\*.* - копирование всех файлов из корневого каталога диска а: в текущий каталог.

COPY a:\*.* d: -- копирование всех файлов из корневого каталога диска а: в текущий каталог диска D:.

COPY \t\*.doc c:\*.txt - копирование всех файлов с расширением.doc из каталога \t текущего диска в текущий каталог диска с:. Файлы получают расширение txt.

Если файл с таким же именем, как у копии, создаваемой командой COPY, уже существует, то он замещается без каких либо предупреждений.


1.2 Особенности языка програмирования С++


С++ программно независимый язык. На языке С++ пишутся операционные системы, различные программы и т.д. При написании своей программы я столкнулся с одной проблемой - это работа со строками, чтобы выполнить определённую задачу мне приходилось добавлять в программу ещё несколько или больше функций для устранения ошибок. Например:

for (i=0;i

if (lptr[i]==' ')break; Копирование в ff до пробела

ff[i]=lptr[i];}

strncat(fs,ff,i);

В ff копируется посимвольно строка размером i, но при просмотре новой строки оказывалось символов не i, а в несколько раз больше, приходилось использовать strncat, она вырезает не нужные символы. И так почти на каждом шагу были проблема. Это мои первые замечания по ошибкам, возможно их прибавится.


2. Программная часть


2.1 Постановка задачи

Перед началом выполнения данной курсовой работы я поставил для себя целью изучить принципы работы с файлами в операционной системе DOS, команды, позволяющие работать с файлами, а также функции и системные вызовы языка С++, позволяющие копирование, удаление, переименование файлов, работа с командной строкой. В данной работе я постаралась наиболее подробно изучить операционную систему DOS в программируемой части и частично других операционных систем, получить практические навыки работы с операционной системой DOS. В курсовой работе я буду создавать и описывать программу, которая позволит работать с файлами, а именно, копировать, переименовывать и удалять. Данная программа в дальнейшем может быть использована студентами для изучения работы с файлами на лабораторных занятиях по изучению теоретического материала и приобретения практических навыков по дисциплине «Системное Программное Обеспечение», а также программа может быть использована в работе с операционной системой MS DOS.


2.2 Построение алгоритма решения задачи


Алгоритм решения поставленной задачи, выполненный с помощью графического метода изображения алгоритмов – блок-схемой представлен ниже.

Алгоритм программы

Для реализации моей задачи используется следующий алгоритм (рисунок 1.).

Описание алгоритма:

  1. Ввод команды с клавиатуры

  2. Индификация вводимой команды

  3. Операции над параметрами команды

  4. Выполнение команды







Рис. 1. Алгоритм программы.


2.3 Описание разработанной программы


Моя программа интерпретирует команды MS DOS

В программе можно пользоваться четырьмя командами:

  1. Exit- программа завершается.

  2. Copy – копирование файла или файлов.

  3. Ren –переименование файла.

  4. Del –Удаление файла.

В программе я использую встроенные библиотеки С++. Таб. 1

В основном программа работает со строковыми функциями. Эти функции нужны для обработки строк с клавиатуры, для устранения ошибок С++.

  • strtok –для устранения ошибок в строке

  • strncat -копирует определённое количество символов в переменную.

  • strstr - для поиска слова в строке.

  • strcpy –копирует строку в переменную.

  • strcat –добавляет строку в переменную.

  • Strrev- реверсирует строку.

  • Strlen- определяет количество символов в строке

  • Strlwr-все символы преобразовывает в строчные.

  • Strpbrk- ищет определённые символы.

Почти в любой программе не обойдешься без собственных функций, они упрощают программирование, программа становится более понятна и удобна в изучении. В моей программе я использую шесть своих функций FILCOP, GAD, GIP, DELFILE, RENFILE, COPYES.

  • Filcop - функция для копирования файлов.

  • Gad – функция для выреза одного пути без имени файла из строки.

  • Gip – функция для выреза одного имени файла из строки.

  • Delete- функция удаления файлов.

  • Renfile- функция переименования файлов.

  • Copyes- функция обрабатывающая строку и вызова функции Filcop. Она разделяет строку на два параметра копирования- какой файл и куда копировать с учётов шаблонов (*?).

После загрузки программы появится меню с приглашением «>>>>». Теперь можно вводить команды. После ввода команды программа определяет её.

Если:

  • EXIT - программа завершается.

  • REN –оставляет в введённой строке только два параметра (какой файл, на какой переименовывать) и вызывает функцию Renfile.

  • Copy- оставляет в введённой строке только два параметра (какой файл, куда копировать и что), вызывает функцию Copyes.

  • Del- оставляет в введённой строке только один параметр (какой файл) и вызывает функцию Delete.

В программе в основном я работаю со строковыми переменными и функциями для вырезания путей с файлами, путей, и т.д. Это всё нужно, чтобы использовать шаблоны в некоторых командах (Copy,delete).


Название библиотеки

Описание функции

Stdlib.h

Преобразование данных, генерирование случайных чисел, получение и установка переменных среды SHELL

Time.h

Организация имитационного процесса системного времени

Iostream.h

Потоки ввода \ вывода

Conio.h

Прототип функции задержки

Stdio.h

Обозначение потоковых файлов

Sys\stat.h

Системные вызовы для работы с файлами

Sys\types.h

Системные вызовы для работы с файлами

Fstream.h

Операции ввода \ вывода в файлах

String.h

Обработка строк

Fcntl.h

Флаги

Io.h

Организация ввода \ вывода

Math.h

Использование математических функций

Таблица 1. Библиотеки C++.


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


Случайные файлы

Файл
38817.rtf
77663.doc
13457-1.rtf
45382.doc
16384.rtf




Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.