Автор работы: Пользователь скрыл имя, 26 Сентября 2013 в 21:40, курсовая работа
В работе рассматриваются три вопроса. В первом мы анализируем устройства ввода звуковой информации, их виды и назначение. При ответе на второй вопрос мы узнаем об организации файловой системы, как обслуживается файловая структура . В третьем вопросе мы рассматриваем объектно-ориентированное программирование в языках С++, Object Pascal, Java, узнаём о предназначении и структуре.
Современный период развития общества характеризуется сильным влиянием на него компьютерных технологий. Средства ввода звуковой информации на компьютер совершенствуются. Объектно-ориентированное программирование – это новый способ подхода к программированию
Введение……………..……………………….…………….……………………….…...…..4
1. Устройства ввода звуковой информации.…………………………………………....5
1.1 Микрофон……...…………..………………………..………………………………..5
1.2 Цифровой диктофон.…………………………………………………………….…7
1.3 Модем…………………………………………………………………………………..7
2. Организация файловой системы. Обслуживание файловой структуры…………......10
2.1 Организация файловой системы.…………………………….…………….… ... 10
2.2 Обслуживание файловой структуры…………………………….….…….…….21
3. Объектно-ориентированное программирование…….……………………………..…....24
3.1 Контроль во время компиляции и во время выполнения………………….……25
3.2 Чисто объектно-ориентированные и гибридные языки……………………..25
3.3 Простая объектная модель и ссылочно-объектная модель…………………26
3.4 Классы, объекты и ссылки………………………………………………………….26
3.5 Мусорная корзина…………………………………………………………………….27
3.6 Определение новых классов…………………………………………………………29
3.7 Создание и уничтожение объектов ……………………………………………..30
3.8 Инкапсуляция (Private и Public)……………………………………………………30
3.9 Файлы, юниты и пакеты……………………………………………………………30
3.10 Методы/данные класса и объекта класса……………………………………..31
3.11 Классы и наследование……………………………………………………………..31
3.12 Предок всех классов…………………………………………………………………32
3.13 Доступ к методам базового класса……………………………………………..32
3.14 Совместимость подтипов………………………………………………………..33
3.15 Позднее связывание (и полиморфизм)…………………………………………..33
3.16 Абстрактные методы и классы…………………………………………………33
3.17 Множественное наследование и интерфейсы…………..……………………34
3.18 Другие свойства…………………………………………………………….………35
3.19 Стандарты…………………………………………………………………….……37
3.20 Языки и программное окружение……………………………………………...37
4. Практическая часть ……………………….…………………………...……………38
4.1 Условие задачи…………………………………………………………….…………38
4.2 Блок-схема………………………………………………….…………………………39
4.3 Листинг программы…………………………………………………………………40
Заключение ……………….……….………………………………………………………42
Список использованной литературы…………………………………………………… 43
Для
справки укажем, что операция стирания
файлов, выполняемая специальными служебными
программами, состоит именно в том,
чтобы заполнить якобы
Навигация по файловой структуре
Навигация по файловой структуре является одной из наиболее используемых функций операционной системы. Удобство этой операции часто воспринимают как удобство работы с операционной системой. В операционных системах, имеющих интерфейс командной строки, навигацию осуществляют путем ввода команд перехода с диска на диск или из каталога в каталог. В связи с крайним неудобством такой навигации, широкое применение нашли специальные служебные программы, называемые файловыми оболочками.
Как и операционные системы, файловые оболочки бывают неграфическими и графическими. Наиболее известная неграфическая файловая оболочка для MS-DOS — диспетчер файлов Norton Commander, а роль графической файловой оболочки для MS-DOS в свое время исполняли программы Windows1.0 и Windows2.0, которые постепенно развились до понятия операционной среды (в версиях Windows З.х) и далее до самостоятельной операционной системы (Windows95/98).
Управление атрибутами файлов
Кроме имени и расширения имени файла операционная система хранит для каждого файла дату его создания (изменения) и несколько флаговых величин, называемых атрибутами файла. Атрибуты — это дополнительные параметры, определяющие свойства файлов. Операционная система позволяет их контролировать и изменять; состояние атрибутов учитывается при проведении автоматических операций с файлами.
Основных атрибутов четыре:
Атрибут Только для чтения ограничивает возможности работы с файлом. Его установка означает, что файл не предназначен для внесения изменений.
Атрибут
Скрытый сигнализирует
Атрибутом Системный помечаются файлы, обладающие важными функциями в работе самой операционной системы. Его отличительная особенность в том, что средствами операционной системы его изменить нельзя. Как правило, большинство файлов, имеющих установленный атрибут Системный, имеют также и установленный атрибут Скрытый.
Атрибут Архивный в прошлом использовался для работы программ резервного копирования. Предполагалось, что любая программа, изменяющая файл, должна автоматически устанавливать этот атрибут, а средство резервного копирования должно его сбрасывать. Таким образом, очередному резервному копированию подлежали только те файлы, у которых этот атрибут был установлен. Современные программы резервного копирования используют другие средства для установления факта изменения файла, и данный атрибут во внимание не принимается, а его изменение вручную средствами операционной системы не имеет практического значения.
3.Объектно-ориентированное программирование
Объектно-ориентированное
Класс — это тип, описывающий устройство объектов. Понятие «класс» подразумевает некоторое поведение и способ представления. Понятие «объект» подразумевает нечто, что обладает определённым поведением и способом представления. Говорят, что объект — это экземпляр класса. Класс можно сравнить с чертежом, согласно которому создаются объекты. Обычно классы разрабатывают таким образом, чтобы их объекты соответствовали объектам предметной области.
Класс является описываемой на языке терминологии (пространства имён) исходного кода моделью ещё не существующей сущности, т.е. объекта.
Объект
— сущность в адресном пространстве
вычислительной системы, появляющаяся
при создании экземпляра класса (например,
после запуска результатов
Прототип — это объект-образец, по образу и подобию которого создаются другие объекты.
ООП стало популярным во второй половине 80-х в таких различных языках, как Си-плюс-плюс, Objective C, Object и Турбо Паскаль (Turbo Pascal), CLOS (ОО-расширение Лиспа), Eiffel, Ада (в её последних воплощениях) и недавно — в Джаве (Java). Эта работа сосредоточена на Си-плюс-плюс (C++), Обджект Паскале (Object Pascal) и Джава (Java), иногда упоминая и другие языки.
Ключевые черты ООП:
Первая — инкапсуляция — это определение классов — пользовательских типов данных, объединяющих своё содержимое в единый тип и реализующих некоторые операции или методы над ним. Классы обычно являются основой модульности, инкапсуляции и абстракции данных в языках ООП.
Вторая ключевая черта, — наследование — есть способ определения нового типа, наследуя элементы (содержание и методы) существующего и модифицируя или расширяя их. Это способствует выражению специализации и генерализации.
Третья черта, известная как полиморфизм, позволяет единообразно ссылаться на объекты различных классов (обычно внутри некоторой иерархии). Это делает классы ещё более удобными и делает программы, основанные на них, легче для расширения и поддержки.
Инкапсуляция, наследование и полиморфизм — фундаментальные свойства, требуемые от языка, претендующего называться объектно-ориентированным (языки, не имеющие наследования и полиморфизма, но имеющие только классы, обычно называются основанными на классах). Различные ОО языки используют совершенно разные подходы. Мы можем различать ОО языки, сравнивая механизм контроля типов, способность поддерживать различные программные модели и то, какие объектные модели они поддерживают.
Алан Кей в свое время вывел пять основных черт языка Smalltalk — первого удачного ОО языка:
Все является объектом. Объект как хранит информацию, так и способен ее преобразовывать. В принципе любой элемент решаемой задачи (дом, собака, услуга, химическая реакция, город, космический корабль и т. д.) может представлять собой объект. Объект можно представить себе как швейцарский нож: он является набором различных ножей и «открывашек» (хранение), но в то же самое время им мы можем резать или открывать что-либо (преобразование).
Программа — совокупность объектов, указывающих друг другу что делать. Для обращения к одному объекту другой объект «посылает ему сообщение». Как вариант возможно и «ответное сообщение». Программу можно представить себе как совокупность к примеру 3 объектов: писателя, ручки и листа бумаги. Писатель «посылает сообщение» ручке, которая в свою очередь «посылает сообщение» листу бумаги — в результате мы видим текст (посыл сообщения от листа к писателю).
Каждый
объект имеет свою собственную «память»
состоящую из других объектов. Таким
образом программист может
У каждого объекта есть тип. Иногда тип называют еще и классом. Класс (тип) определяет какие сообщения объекты могут посылать друг другу.
Все объекты одного типа могут получать одинаковые сообщения. К примеру у нас есть 2 объекта: синяя и красная кружки. Обе разные по форме и материалу. Но из обеих мы можем пить (или не пить, если они пустые). В данном случае кружка — это тип объекта.
Самое лаконичное описание объекта предложил Буч: «Объект обладает состоянием, поведением и индивидуальностью».
3.1 Контроль во время компиляции и во время выполнения
Языки программирования можно оценить по тому, насколько они строги к типам. Контроль типов включает проверку существования вызываемых методов, типов их параметров, проверку границ массивов и подобное.
C++,
Java, Python, и Object Pascal предпочитают более
или менее тщательный контроль
типов во время компиляции. С++,
возможно, наименее точен в этом
отношении (на что указывает,
к примеру, возможность
Тот факт, что виртуальная машина Java интерпретирует байтовый код во время выполнения, не означает, что этот язык отказывается от проверки типов во время компиляции. Наоборот, в этом языке проверка наиболее тщательна. Другие ОО языки, такие как Smalltalk и CLOS, наоборот, склонны большинство проверок типов (если не все) осуществлять во время исполнения.
3.2 Чисто объектно-ориентированные и гибридные языки
Различаются
чистые и гибридные объектно-
Среди трех наших языков, только Java и C являются чистыми ОО языками (как Eiffel и Smalltalk). На первый взгляд это кажется положительной идеей. Однако она ведет к тому, что вы используете кучу статических методов и статических данных, что не так уж отличается от использования глобальных функций и данных, за исключением более сложного синтаксиса. Чистые ОО языки дают преимущество новичкам в ООП, потому что программист вынужден использовать (и учить) модель ООП. C++ и Object Pascal, наоборот, - типичные примеры гибридных языков, которые позволяют программистам использовать при необходимости традиционный подход C или Pascal.
Smalltalk
расширяет эту идею до уровня
«обобъекчивания» таких
3.3 Простая объектная модель и ссылочно-объектная модель
Третий
элемент, по которому различаются языки
ООП - их объектная модель. Некоторые
традиционные языки ООП позволяют
программистам создавать
В
последнее время появилась
3.4 Классы, объекты и ссылки
Класс - это тип данных, а объект - экземпляр типа класс.
C++: если у нас есть класс MyClass с методом MyMethod, мы можем написать:
MyClass Obj;
Obj.MyMethod();
и получить объект класса MyClass с именем Obj. Память для этого объекта обычно выделяется в стеке, и вы можете сразу начать использовать объект, как это сделано во второй строке.
Java: подобная инструкция выделяет только место для хэндла объекта, а не для самого объекта:
MyClass Obj;
Obj = new MyClass();
Obj.MyMethod();
Прежде чем использовать объект, вы должны вызвать "new" для выделения под него памяти. Конечно, вы можете объявить и проинициализировать объект в одном предложении, избегая использования неинициализированных объектных хэндлов:
MyClass Obj = new MyClass();
Obj.MyMethod();
Object Pascal: использует подобный подход, но (к сожалению) требует отдельных предложений для объявления и инициализации:
var
Obj: MyClass;
begin
Obj := MyClass.Create;
Obj.MyMethod;
В C++ вы часто должны использовать указатели и ссылки на объекты. Только используя указатели и ссылки, вы можете добиться полиморфизма. Ссылочно-объектная модель, наоборот, делает использование указателей подразумеваемым, скрывая от программиста сложность этого подхода. В Java, официально указателей нет, хотя они там повсюду. Только программисты не имеют над ними прямого контроля, и поэтому, из соображений безопасности, не могут попасть в произвольное место памяти.
Информация о работе Объектно-ориентированное программирование