Практикум на ЭВМ технология программирования в среде С++




Скачать 409.93 Kb.
НазваниеПрактикум на ЭВМ технология программирования в среде С++
страница1/13
Дата публикации28.03.2013
Размер409.93 Kb.
ТипДокументы
vbibl.ru > Информатика > Документы
  1   2   3   4   5   6   7   8   9   ...   13
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
БАШКИРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

Практикум на ЭВМ

Технология программирования в среде С++
часть 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



^

1Текстовые файлы


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

Полезно сравнить файлы с их ближайшими родственниками в языке C++ — массивами. Файлы и массивы похожи, поскольку они представляют собой совокупности компонентов, имеющих одинаковый тип. Например, можно создать массив, имеющий тип char, и файл такого же типа. В обоих случаях компонентами являются символы. Однако между файлами и другими типами данных есть отли­чия: например, файлы могут существовать после завершения работы программы, а массивы нет. Укажем еще несколько различий между файлами и массивами.

  • ^ Файлы могут увеличиваться в ходе выполнения программы, а массивы имеют фиксированный размер. Объявив массив, программист указывает его максимальный размер. Следовательно, оперативная система выделит этому массиву соответствующую область памяти. Хорошо написанная программа, перед тем как вставить в массив новый элемент, всегда проверяет, достаточно ли там места. Если места не достаточно, программа должна завершить работу и вывести на экран сообщение об ошибке. Программист может увеличить размер массива, например, изменив значение именованной константы, а затем скомпилировать и выполнить программу вновь. Если объявить максимальную длину массива больше, чем нужно, часть памяти останется неиспользованной. С файлом этого случиться не может. Когда система создает файл в первый раз, он требует очень мало памяти. По мере того как программа добавляет в него новые записи, размеры файла увеличиваются, пока ресурсы внешнего запоминающего устройства не исчерпаются полностью. Таким образом, в любой фиксированный момент времени файл занимает именно столько памяти, сколько ему нужно.

  • ^ Файлы обеспечивают как последовательный, так и прямой доступ; масси­вы обеспечивают только прямой доступ. Если нужно обратиться к 100-му элементу массива array, можно просто записать выражение array [99], не просматривая элементы от array [0] до array [98]. Разумеется, в массиве можно имитировать и последовательный доступ, но при этом каждый следующий элемент все равно будет доступен независимо от предыдущего В то же время доступ к записи в файле может быть как последовательным, так и прямым. Если нам нужен 100-й элемент файла, его можно считать, указав позицию, не считывая первые 99 элементов. Однако при последовательном доступе прежде, чем обратиться к 100-му элементу, придется перебрать предыдущие 99.

Файлы классифицируются следующим образом. ^ Текстовый файл (text file) состоит из строк символов. В частности, все файлы, которые создаются текстовыми редакторами, в том числе исходные коды программы на языке C++, являются текстовыми. Поскольку текстовые файлы состоят из символов, а обращаться к ним по номеру позиции не всегда удобно, обычно они предоставляют последо­вательный доступ. Файлы, которые не являются текстовыми, называются бинарными (binary), а иногда — файлами общего вида (general file), или просто нетекстовыми файлами (nontext file).

Текстовые файлы предназначены для людей. Они представляют собой довольно гибкий и полезный инструмент, но не настолько эффективны с точки зрения за­трат компьютерного времени и объема занимаемой памяти, как бинарные файлы.

На первый взгляд, кажется, что текстовые файлы состоят из строк. Эта иллюзия часто порождает недоразумения. На самом деле, текстовые файлы, как и любые другие файлы, являются последовательностями компонентов, имеющих одинаковый тип. Иначе говоря, текстовый файл представляет собой последовательность символов. Причиной этого эффекта является признак конца строки (end-of-line symbol).

При создании текстового файла для перехода на следующую строку пользователи компьютеров нажимают клавишу , вставляя в конце строки символ ее окончания. Когда устройство вывода, например, принтер или монитор, обна­руживает в текстовом файле признак конца строки, он делает переход на новую строку. В языке C++ признаком конца строки является символ /n.

Кроме того, существует специальный признак конца файла (end-of-file symbol), который находится сразу за последним компонентом

Этот символ может фактически отсутствовать, но в языке С++ предполагается, что он существует. Роль этого символа играет предопределенная константа EOF. В нашей книге мы предполагаем, что все текстовые файлы, включая пустой, содержат специальные символы конца строки и конца файла (рис. А. 1.1).







Рис. 1.1. Текстовый файл с символами конца строки и конца файла

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

#include

using namespace std;

В этой библиотеке предусмотрены три типа потоков: ifstream для входных файлов, ostream — для выходных файлов и fstream — для файлов ввода/вывода.

Для поддержки файлового ввода и вывода стандартная библиотека C++ содержит классы, указанные в табл. 1.1.

Таблица 1.1 Классы файловых потоков

Класс

Инстанцирован из шаблона

Базовый шаблонный класс

Назначение

ifstream

basic_ifstream

basic_istream

Входной файловый поток

ofstream

basic_ofstream

basic_ostream

Выходной файловый поток

fstream

basic_fstream

basic_iostream


Двунаправленный файловый поток

Так как классы файловых потоков являются производными от классов 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

Флаг

Назначение

s::in

Открыть файл для ввода

ios::out

Открыть файл для вывода

ios::ate

Установить указатель на конец файла

ios::app

Открыть в режиме добавления в конец файла

ios::trunc

Если файл существует, то обрезать его до нулевой длины

ios::binary

Открыть в двоичном режиме (по умолчанию используется текстовый режим)

ios::nocreate

Если файл не существует, зафиксировать ошибку (установкой потокового объекта в нулевое значение

ios::noreplace

Если файл существует, зафиксировать ошибку


Конструкторы без параметров создают объект соответствующего класса, не связывая его с файлом. В этом случае связь потока с конкретным файлом осуществляется позже — вызовом метода 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 задано краткое имя файла (без указания полного пути), то подразумевается, что файл открывается в текущем каталоге, в противном случае требуется задавать имя файла с путем.
  1   2   3   4   5   6   7   8   9   ...   13

Добавить документ в свой блог или на сайт

Похожие:

Практикум на ЭВМ технология программирования в среде С++ iconПрактикум на ЭВМ среда программирования и отладка программ
Рыков В. И. Среда Microsoft Visual C++ и отладка программ. Технология работы с языком С++. /Издание Башкирского ун-та. Уфа 2006....

Практикум на ЭВМ технология программирования в среде С++ iconПрактикум на ЭВМ задачи для С++
Рыков В. И. Практикум на ЭВМ. Задачи для С++ Част /Издание Башкирского ун-та. Уфа 2006. №№ c

Практикум на ЭВМ технология программирования в среде С++ iconВ. Г. Баула Введение в архитектуру ЭВМ и системы программирования
Мгу им. М. В. Ломоносова. По данному курсу существует достаточно обширная литература, посвящённая программированию на Ассемблере,...

Практикум на ЭВМ технология программирования в среде С++ iconРабочая программа по курсу «основы Программирования на языке ассемблер»
Программа предназначена для обучения основам программирования на языке низкого уровня Ассемблере учащихся средних школ, учреждений...

Практикум на ЭВМ технология программирования в среде С++ iconУчебная программа курса или дисциплины «Основы программирования»
В частности, в курсе рассматриваются основные конструкции языков программирования, анализируются основные типы и структуры данных,...

Практикум на ЭВМ технология программирования в среде С++ iconС 24. 11. 2011г. Компетентность: информационная Модуль 55 Технология...
Модуль 55 Технология работы с текстовыми документами в среде OpenOffice org Writer

Практикум на ЭВМ технология программирования в среде С++ iconТемы для докладов на коллоквиумах
Эвм. Основной, режим прерывания, прямой доступ к памяти, ожидание. Процессор ЭВМ. Основные характеристики: технология изготовления,...

Практикум на ЭВМ технология программирования в среде С++ iconОтчет по индивидуальной работе на тему «Технология asp. Net»
Веб-программирование является бурно развивиющимся в наше время разделом программирования, ориентированным на разработку динамических...

Практикум на ЭВМ технология программирования в среде С++ iconЛабораторная работа Работа с файлами в приложениях на С++ Builder...
Цель работы: изучение принципов работы с текстовыми файлами в среде программирования С++ Builder

Практикум на ЭВМ технология программирования в среде С++ iconТехнологии компонентного программирования
Технология com (Component Object Model компонентная объектная модель) от Microsoft

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
vbibl.ru
Главная страница