Скачать 409.93 Kb.
|
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ БАШКИРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Практикум на ЭВМ Технология программирования в среде С++ часть 2 для студентов Башгосуниверситета Уфа РИО БашГУ 2007 Составители: Трунов К.В., Рыков В.И. Методы и технологии С++. Технология программирования в среде С++. /Издание Башкирского ун-та. - Уфа 2007. - ХХ c. Работа посвящена методологии программирования на языке С++. Содержит сведения по основным инструментальным средствам Microsoft Visual C++ и технологии разработки программ в указанной среде. Работа используется при выполнении лабораторных и практических работ по дисциплине «Практикум на ЭВМ» - семестр 2. 1 Текстовые файлы 4 1.1 Открыть файл. 7 1.2 Ввод символов. 8 1.3 Вывод символов. 10 1.4 Закрыть файл. 11 1.5 Числовые данные в текстовых файлах. 11 1.6 Копирование файлов 14 2 Строки класса string 15 3 Графика 16 4 Введение в классы) 21 4.1 Формирование облика класса Sphere 23 4.2 Формирование С++ проекта 28 4.3 Документирование работы с классом 29 4.4 WEB публикация 30 4.5 Общая технология решения объектных задач 32 5 Перегрузка операций 33 5.1 Перегрузка операций инкремента 35 6 Связные списки 36 6.1 Технология связных списков 36 6.2 Стандартная библиотека шаблонов языка C++ 37 6.3 Шаблонный класс list из библиотеки STL 39 6.4 Методика решения задач 42 7 Графы, двоичные деревья 46 7.1 Обход корневого дерева 46 7.2 Решение задачи построения дерева поиска 47 8 Графы, системы дорог 50 9 Литература 50 ^ Файлы представляют собой постоянное хранилище информации. В частности, это способ связи между разными программами. Программа А может записать результаты своей работы в файл, который позднее прочтет программа В. Однако файлы, уничтожаемые после выполнения программы, также не редкость. Например, при выполнении программы могут создаваться временные файлы, в которых хранится информация, не помещающаяся в оперативной памяти. Полезно сравнить файлы с их ближайшими родственниками в языке C++ — массивами. Файлы и массивы похожи, поскольку они представляют собой совокупности компонентов, имеющих одинаковый тип. Например, можно создать массив, имеющий тип char, и файл такого же типа. В обоих случаях компонентами являются символы. Однако между файлами и другими типами данных есть отличия: например, файлы могут существовать после завершения работы программы, а массивы нет. Укажем еще несколько различий между файлами и массивами.
Файлы классифицируются следующим образом. ^ (text file) состоит из строк символов. В частности, все файлы, которые создаются текстовыми редакторами, в том числе исходные коды программы на языке C++, являются текстовыми. Поскольку текстовые файлы состоят из символов, а обращаться к ним по номеру позиции не всегда удобно, обычно они предоставляют последовательный доступ. Файлы, которые не являются текстовыми, называются бинарными (binary), а иногда — файлами общего вида (general file), или просто нетекстовыми файлами (nontext file). Текстовые файлы предназначены для людей. Они представляют собой довольно гибкий и полезный инструмент, но не настолько эффективны с точки зрения затрат компьютерного времени и объема занимаемой памяти, как бинарные файлы. На первый взгляд, кажется, что текстовые файлы состоят из строк. Эта иллюзия часто порождает недоразумения. На самом деле, текстовые файлы, как и любые другие файлы, являются последовательностями компонентов, имеющих одинаковый тип. Иначе говоря, текстовый файл представляет собой последовательность символов. Причиной этого эффекта является признак конца строки (end-of-line symbol). При создании текстового файла для перехода на следующую строку пользователи компьютеров нажимают клавишу Кроме того, существует специальный признак конца файла (end-of-file symbol), который находится сразу за последним компонентом Этот символ может фактически отсутствовать, но в языке С++ предполагается, что он существует. Роль этого символа играет предопределенная константа EOF. В нашей книге мы предполагаем, что все текстовые файлы, включая пустой, содержат специальные символы конца строки и конца файла (рис. А. 1.1). ![]() Рис. 1.1. Текстовый файл с символами конца строки и конца файла Любая программа, использующая файлы, должна иметь доступ к стандартной библиотеке потоков языка C++. Для этого необходимо включить в программу следующую директиву и оператор. #include using namespace std; В этой библиотеке предусмотрены три типа потоков: ifstream для входных файлов, ostream — для выходных файлов и fstream — для файлов ввода/вывода. Для поддержки файлового ввода и вывода стандартная библиотека C++ содержит классы, указанные в табл. 1.1. Таблица 1.1 Классы файловых потоков
Так как классы файловых потоков являются производными от классов istream, ostream и iostream соответственно, то они наследуют все методы указанных классов, перегруженные операции вставки и извлечения, манипуляторы, состояние потоков и т. д. Для использования файловых потоков необходимо подключить к программе заголовочный файл Работа с файлом обычно предполагает следующие операции:
Классы файловых потоков содержат несколько конструкторов, позволяющих варьировать способы создания потоковых объектов. Конструкторы с параметрами создают объект соответствующего класса, открывают файл с указанным именем и связывают файл с объектом: ifstream(const char* name, int mode = ios::in); ofstream(const char* name, int mode = ios::out | ios::trunc); fstream(const char* name, int mode = ios: :in | ios::out); Второй параметр конструктора задает режим открытия файла. Если значение по умолчанию вас не устраивает, можно указать другое, выбрав одно или несколько значений (объединенных операцией |) из указанных в табл. 1.2. Таблица 1.2. Значения аргумента mode
Конструкторы без параметров создают объект соответствующего класса, не связывая его с файлом. В этом случае связь потока с конкретным файлом осуществляется позже — вызовом метода open() , который имеет параметры, аналогичные параметрам рассмотренных выше конструкторов. Приведем примеры создания потоковых объектов и связывания их с конкретными файлами: // Файлы для вывода ofstream flog(“flog.txt”); ofstream foutl. fout2; foutl.open( "testl". ios::арр); fout2.open("test2", ios::binary); // Файл для ввода ifstream finpl(“data.txt”); // Файл для ввода и вывода fstream myfile; myfile.open(“mf.dat”); Если в качестве параметра name задано краткое имя файла (без указания полного пути), то подразумевается, что файл открывается в текущем каталоге, в противном случае требуется задавать имя файла с путем. |
![]() | Рыков В. И. Среда Microsoft Visual C++ и отладка программ. Технология работы с языком С++. /Издание Башкирского ун-та. Уфа 2006.... | ![]() | Рыков В. И. Практикум на ЭВМ. Задачи для С++ Част /Издание Башкирского ун-та. Уфа 2006. №№ c |
![]() | Мгу им. М. В. Ломоносова. По данному курсу существует достаточно обширная литература, посвящённая программированию на Ассемблере,... | ![]() | Программа предназначена для обучения основам программирования на языке низкого уровня Ассемблере учащихся средних школ, учреждений... |
![]() | В частности, в курсе рассматриваются основные конструкции языков программирования, анализируются основные типы и структуры данных,... | ![]() | Модуль 55 Технология работы с текстовыми документами в среде OpenOffice org Writer |
![]() | Эвм. Основной, режим прерывания, прямой доступ к памяти, ожидание. Процессор ЭВМ. Основные характеристики: технология изготовления,... | ![]() | Веб-программирование является бурно развивиющимся в наше время разделом программирования, ориентированным на разработку динамических... |
![]() | Цель работы: изучение принципов работы с текстовыми файлами в среде программирования С++ Builder | ![]() | Технология com (Component Object Model компонентная объектная модель) от Microsoft |