Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
гшеш8.docx
Скачиваний:
10
Добавлен:
11.04.2015
Размер:
232.38 Кб
Скачать

Работа с текстовыми файлами

Файлы бывают текстовые (в которых можно записывать только буквы, цифры, скобки и т.п.) и двоичные (в которых могут храниться любые символы из таблицы). В текстовых файлах не употребляются первые 31 символ кодовой таблицы ASCII (управляющие), а символы конца строки 0x13 (возврат каретки, CR) и 0x10 (перевод строки LF) преобразуются при вводе в одиночный символ перевода строки \n (при выводе выполняется обратное преобразование). Эти символы добавляются в конце каждой строки, записываемой в текстовый файл. При обнаружении в текстовом файле символа с кодом 26 (0x26), т.е. признака конца файла, чтение файла в текстовом режиме заканчивается, хотя файл может иметь продолжение.

Создать текстовый файл можно с помощью текстового редактора и с помощью программы.

39__________

Обработка бинарных файлов

Если файл открыт в бинарном режиме, его можно записывать или считывать побайтно. Функция fseek() позволяет обращаться с бинарным файлом как с массивом и переходить к любой позиции в файле, обеспечивая возможность произвольного доступа. Если текстовые файлы являются файлами с последовательным доступом, то к бинарным файлам может применяться произвольный доступ.

40__________

С++: Динамические структуры данных: характеризуются непостоянством и непредсказуемостью размера структуры в процессе обработки отсутствием физической смежности элементов структуры.

Для установления связи между элементами структуры используются указатели, через которые устанавливаются явные связи между элементами. Элемент динамической структуры состоит из нескольких полей:

Информационное поле или поле данных, в котором содержатся те данные, ради которых и создается структура

Полей связи, в которых содержится одна или несколько указателей, связывающей данных элемент с другими элементами структуры.

К динамическим структурам данных относятся:

1. Связные линейные списки

2. Стеки

3. Очереди

4. Многосвязные списки

5. Деревья

41__________

С++: связные линейные списки:

Список называется односвязным, когда каждый элемент содержит ссылку на следующий. Если добавить в каждый элемент вторую ссылку — на предыдущий элемент, получится двунаправленный список (двусвязный), если последний элемент связать указателем с первым, получится кольцевой список. Каждый элемент списка содержит ключ, идентифицирующий этот элемент. Над списками можно выполнять операции:

• начальное формирование списка (создание первого элемента);

• добавление элемента в конец списка;

• чтение элемента с заданным ключом;

• вставка элемента в заданное место списка (до или после элемента с заданным

ключом);

• удаление элемента с заданным ключом;

• упорядочивание списка по ключу.

42__________

С++: стеки:

Стек – частный случай однонаправленного списка добавление и удаление элементов в который выполняется с одного конца, называемого вершиной стека. Говорят, что стек реализует принцип обслуживания LIFO(last in – first out). Стеки хорошо применяются в системах программирования, компиляторах, в различных рекурсивных алгоритмах.

43_________

С++: очередь:

Очередь – частный случай однонаправленного списка добавление элементов в который выполняется с одного конца, а удаление с другого конца. Говорят, что очередь реализует принцип обслуживания FIFO(first in – first out). Очереди применяются при моделировании систем массового обслуживание, диспетчеризации задач операционной системы, буферизованном вводе/выводе. Та сторона очереди, с которой осущ-ся добавление, наз-ся хвостом или концом очереди, другая – голова.

44_________

С++: деревья:

Частный случай многосвязных списков. Древовидные структуры или просто деревья. Деревом назыв. стр-ра, которая характеризуется следующими свойствами:

1) Существует единственный элемент или узел, на который не ссылается никакой другой элемент и называется корнем.

2) Начиная с корня и следуя по определённой цепочке указателей, содержащихся в элементах, можно осуществить доступ к любому элементу структуры.

3) На каждый элемент, кроме корня, имеется единственная ссылка, т.е. каждый элемент адресуется единственным указателем.

4) Узлы могут быть любого типа, за исключением файлового.

Бинарное дерево – динамическая структура данных, состоящая из узлов, каждый из которых содержит, кроме данных, не более 2-х ссылок на различные поддеревья. Такое дерево можно реализовать в виде двухсвязного списка.

45_________

ООП: описание класса:

Класс является абстрактным типом данных, определённым пользователем и представляет собой модель реального объекта в виде данных и функций для работы с ними. Данные класса назыв. полями, а ф-ии класса – методами поля и методы называются элементами класса. Описание класса выглядит так: class<имя>{

[private:] <описание скрытых элементов>

Public: <описание доступных элементов>

};

46_________

ООП: методы класса:

Вызов методов класса. При вызове методов класса необходимо связать метод с объектами этого класса. Поэтому имена объектов(р) связаны с именем ф-кции (метода) операцией тыка(.):

p.InitPoint(10,10); p.relmove(5;10);

Замечание! Это напоминает доступ к полям стр-ры.

Вызов методов InitPoint() и relmove() приводит к изменению значений полей x и y.

47_________

ООП: инкапсуляция:

Инкапсуляция – это механизм, объединяющий данные и методы, манипулирующие этими данными, и защищающий и то, и другое от внешнего вмешательства или направленного использования. Когда методы или данные объединяются таким способом, создаётся объект.

48_________

ООП: наследование. Иерархия классов:

Наследование - важная часть ООП. Выигрыш от него состоит в том, что наследование позволяет использовать существующий код несколько раз. Простым называется наследование, при котором производный класс имеет одного родителя.

Иерархия классов: на основе принципа наследования может быть построена иерархия классов. Одним из примеров иерархии является база данных.

49_________

ООП: полиморфизмы. Виртуальные методы:

Полиморфизм – один из важнейших механизмов ООП.

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

50_________

Stdafx - нужен для обеспечения возможности включения предкомпиляции заголовков

Cstdio – содержит определения функций ввода и вывода

Cstdlib – одержит функции для выделения памяти

Iostream - содержит определения функций ввода и вывода

Locale – используется для задач, связанных с локализацией

Conio - для создания текстового интерфейса пользователя, ввода или вывода

String-содержащит функции для работы со строками.

Библиотека STL/CLR представляет собой упакованную библиотеку стандартных шаблонов (STL) :

  • алгоритм (algorithm)- определяет вычислительную процедуру.

  • контейнер (container)-управляет набором объектов в памяти.

  • итератор (iterator)- обеспечивает для алгоритма средство доступа к содержимому контейнера.

  • функциональный объект (function object)- инкапсулирует функцию в объекте для использования другими компонентами.

  • адаптер (adaptor)- адаптирует компонент для обеспечения различного интерфейса.

Библиотека ATL- предназначенная для разработки компонентов. С помощью библиотеки ATL вы можете создать собственную особую кнопку и затем использовать ее в программах.

Библиотека MFC -предназначена в основном для создания приложений с пользовательским интерфейсом (окна, диалоги и т. п.).

Библиотека .NET Framework (строки, массивы и элементы форматирования, передача данных по сети, базы данных, Web-программирование и др)

1