Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
??-?????5_???? сеев_Куров.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
670.72 Кб
Скачать

15.6 Задания для самостоятельной работы

1. Составить приложение для вычисления приближенных значений определённого интеграла (см. таблицу ниже) тремя предложенными методами (прямоугольников, трапеций, парабол). Пределы интегрирования a и b, а также число N подынтервалов задавать при вводе.

2. Дополнить разработанное приложение вычислением интеграла с заданной точностью. Обеспечить ввод точности, вывести полученные значения интеграла и количество разбиений для каждого метода.

Таблица 3.

Подынтегральная функция

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

15.7 Лабораторная работа n2. Работа с текстовым файлом с использованием многострочного текстового редактора

В рамках второй лабораторной работы выполняется задание по обработке текстового файла, при этом для отображения информации, хранящейся в файле, предусматривается использование в качестве элемента интерфейса многострочного текстового редактора RichTextBox. Выбор конкретной операции по обработке файла целесообразно выполнять с помощью пунктов меню (элемент MenuStrip). Выбор имени файла при открытии и сохранении удобно выполнять с помощью диалоговых окон (элементы OpenFileDialog и SaveFileDialog). Таким образом, необходимо рассмотреть основные свойства и методы перечисленных элементов интерфейса. Материал по работе с текстовыми файлами изложен в предыдущей части пособия [4].

Многострочный текстовый редактор RichTextBox

Компонент находится в разделе Common Controls палитры компонентов Toolbox в разделе Common Controls. Для нанесения компонента на форму необходимо щелкнуть левой кнопкой мыши в палитре компонентов на элемент RichTextBox, а затем, переведя курсор мыши на форму, щелкнуть левой кнопкой на форме, после чего можно, потянув за анкерные точки, придать текстовому редактору нужные размеры.

Перечислим основные свойства компонента:

-Name - получает или задает идентификационное имя элемента. Имя позволяет обращаться из кода программной части, например, из кода обработчика событий;

- FontFamily - получает или задает семейство шрифтов элемента управления;

- FontSize - получает или задает размер шрифта;

- FontStyle - получает или задает стиль шрифта;

- HorizontalScrollBarVisibility - возвращает или задает значение, указывающее, отображается ли горизонтальная полоса прокрутки;

- VerticalScrollBarVisibility - возвращает или задает значение, указывающее, отображается ли вертикальная полоса прокрутки;

- ScrollBars - позволяет ввести полосы прокрутки. Используется при многострочном режиме, когда строки не помещаются в отведенное пространство редактора. Вид полос прокрутки выбирается из выпадающего списка. При этом надо следить за свойством WordWrap (если разрешен перенос текста на следующую строку, то горизонтальная полоса не появится);

- WordWrap - задает возможность автоматического переноса символов в начало следующей строки (без нажатия клавиши Enter);

- Lines – массив строк – содержимое текстового редактора;

- Text – текст, представленный в редакторе.

Из большого количества событий практическое значение имеет событие TextChanded - генерируется при любом изменении содержимого редактора или форматирования (например, изображений, таблиц или фонового цвета).

Основные методы компонента следующие:

- AppendText (String ^s)– добавление текста к текущему тексту;

- Clear – удаляет текущее выделение текста из элемента управления, поддерживающего редактирование текста, и копирует его в буфер обмена;

- Copy – копирует текущее выделение текста в элементе управления, поддерживающем редактирование текста, в буфер обмена;

- Cut – вырезка отмеченного множества строк из поля ввода/вывода и помещение их в буфер памяти;

- Focus – установка фокуса ввода на компонент;

- Hide – установка компонента в невидимое состояние;

- Paste – замена текущего выбранного участка текста содержимым буфера памяти; Вставляет текущее содержимое буфера обмена на место текущего выделения в элементе управления, поддерживающем редактирование текста;

- SelectAll – выделяет все содержимое текстового элемента управления, поддерживающего редактирование текста;

- Show – установка компонента в видимое состояние;

- Undo – отмена последней операции редактирования в поле компонента.

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

void LoadFile( String^ path, RichTextBoxStreamType fileType);

void SaveFile( String^ path, RichTextBoxStreamType fileType);

Первый параметр задает имя файла, а второй параметр – тип загружаемого файла.

Значения второго параметра могут быть следующими:

RichText - поток в формате RTF.

PlainText - поток открытого текста с пробелами вместо объектов OLE.

RichNoOleObjs - поток в формате RTF с пробелами вместо объектов OLE. Это значение действительно только для использования с методом SaveFile элемента управления RichTextBox.

TextTextOleObjs - поток открытого текста с текстовым представлением объектов OLE. Это значение действительно только для использования с методом SaveFile элемента управления RichTextBox.

UnicodePlainText - поток текста с пробелами вместо объектов OLE. Текст в кодировке Юникод.

С помощью метода LoadFile содержимое загружаемого файла замещает все содержимое элемента управления RichTextBox. С помощью этого метода можно загрузить предварительно созданный текст или RTF-документ в элемент управления для дальнейшей с ним работы.

Эта версия метода LoadFile позволяет указать тип загружаемого файла и обеспечивать возможность загружать в элемент управления иные, чем RTF-документы, файлы.

В следующем примере кода текстовый файл открывается в элементе управления RichTextBox. Для вывода на экран диалогового окна с запросом файла от пользователя в примере используется класс OpenFileDialog. Затем код загружает этот файл в элемент управления RichTextBox. В примере эта версия метода LoadFile используется для указания того, что файл должен быть открыт как текстовый файл в кодировке ASCII, а не в стандартном формате RTF. В примере предполагается, что код размещается в классе объекта Form, содержащем элемент управления RichTextBox с именем richTextBox1.

void LoadMyFile()

{

OpenFileDialog^ openFile1 = gcnew OpenFileDialog;

openFile1->DefaultExt = "*.rtf";

openFile1->Filter = "RTF Files|*.rtf";

if ( openFile1->ShowDialog() == System::

Windows::Forms::DialogResult::OK &&

openFile1->FileName->Length > 0)

{

richTextBox1->LoadFile( openFile1->FileName, RichTextBoxStream

Type::PlainText );

}

}

Метод SaveFile позволяет сохранять все содержимое элемента управления в RTF-файл, который можно будет использовать в других программах, таких как Microsoft Word и Windows WordPad. Если имя файла, переданное параметру path, уже существует в указанной папке, старый файл будет замещен без предупреждения. Метод LoadFile позволяет загрузить содержимое файла в элемент управления RichTextBox.

Эта версия метода SaveFile позволяет также указать тип файла, в который будет сохранено содержимое элемента управления. Эта возможность позволяет обеспечить сохранение файла в правильном формате, в зависимости от содержимого элемента управления. Например, если в документе используется один шрифт или цвет, его можно сохранить в формате текстового файла в кодировке ASCII, присвоив параметру fileType значение RichTextBoxStreamType.PlainText.

В следующем примере осуществляется сохранение содержимого элемента управления RichTextBox в ASCII-файл. В примере для вывода на экран диалогового окна с запросом пути и имени файла у пользователя используется класс SaveFileDialog. Затем код сохраняет содержимое элемента управления в этот файл. В примере эта версия метода SaveFile используется для указания того, что файл должен быть сохранен как текстовый файл в кодировке ASCII, а не в стандартном формате RTF. В примере предполагается, что код размещается в классе Form, содержащем элемент управления RichTextBox с именем richTextBox1.

void SaveMyFile()

{

SaveFileDialog^ saveFile1 = gcnew SaveFileDialog;

saveFile1->DefaultExt = "*.rtf";

saveFile1->Filter = "RTF Files|*.rtf";

if ( saveFile1->ShowDialog()

== Sytem::Windows::Forms::DialogResult::OK

&& saveFile1->FileName->Length > 0 )

{

richTextBox1->SaveFile( saveFile1->FileName

, RichTextBoxStreamType::PlainText );

}

}