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




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

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

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

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

Похожие:

Практикум на ЭВМ технология программирования в среде С++ icon Практикум на ЭВМ среда программирования и отладка программ
Рыков В. И. Среда Microsoft Visual C++ и отладка программ. Технология работы с языком С++. /Издание Башкирского ун-та. Уфа 2006....
Практикум на ЭВМ технология программирования в среде С++ icon Основы информатики и вычислительной техники системы программирования
Рассматриваются основные понятия языков программирования. Излагаются процедурный и объектный подходы в программировании. Более подробно...
Практикум на ЭВМ технология программирования в среде С++ icon Рабочая программа по курсу «основы Программирования на языке ассемблер»
Программа предназначена для обучения основам программирования на языке низкого уровня Ассемблере учащихся средних школ, учреждений...
Практикум на ЭВМ технология программирования в среде С++ icon Программа учебной дисциплины «Управление данными»
«Математика», «Информатика», «Программирование на языках высокого уровня», «Дискретная математика», «Объектно-ориентированное программирование»,...
Практикум на ЭВМ технология программирования в среде С++ icon Практикум по спортивной психологии Санкт-Петербург
...
Практикум на ЭВМ технология программирования в среде С++ icon Реферат по теме: "Строение персональных компьютеров ibm pc"
Эвм и мини ЭВМ. Это стало предметом серьезного беспокойства фирмы ibm (International Bussines Machines Corporation) ведущей компании...
Практикум на ЭВМ технология программирования в среде С++ icon Конспект лекций доцента и. А. Волковой по курсу «системы программирования»
Система программирования – комплекс программных инструментов и библиотек, который поддерживает создание и существование программного...
Практикум на ЭВМ технология программирования в среде С++ icon План лекции: Задачи, решаемые вычислительными центрами Структура...
Создание вычислительных центров является способом повышения эффективности работы ЭВМ. Вычислительный центр объединяет технику различных...
Практикум на ЭВМ технология программирования в среде С++ icon Ментальное моделирование как технология понимания текста на примере книг Карлоса Кастанеды
Ваша собственная ментальная программа. Поэтому вполне может случиться, что некоторые ментальные программы не могут быть отмоделированы...
Практикум на ЭВМ технология программирования в среде С++ icon Практикум по когнитивной терапии
М15 Практикум по когнитивной терапии: Пер с англ. — Спб.: Речь, 2001. — 560 с. Isbn 5-9268-0036-6
Литература


При копировании материала укажите ссылку © 2015
контакты
literature-edu.ru
Поиск на сайте

Главная страница  Литература  Доклады  Рефераты  Курсовая работа  Лекции