Студопедия

Главная страница Случайная лекция


Мы поможем в написании ваших работ!

Порталы:

БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика



Мы поможем в написании ваших работ!




Пример выполнения лабораторной работы

Задание: разработать программу, которая:

· записывает в файл символьные строки;

· считывает их из файла и выводит в элемент управления EditBox построчно.

 

1) В среде Microsoft Developer Studio (Visual C++)создаем проект на основе диалога. Для этого в пункте меню File->New выбираем подпункт Projects (рис. 1).

Рисунок 1 – Пункт меню File->New

Далее выбираем тип приложения на основе диалога (рис. 2) и нажимаем на кнопку «Finish».

 

Рисунок 2 – Выбор типа нового проекта

 

После выполнения указанных действий в проекте автоматически будут созданы файлы в выбранной директории (списки ресурсов (а) и файлов (б) проекта изображены на рис. 3).

а) б)

Рисунок 3 – Созданные ресурсы (а) и файлы (б) проекта

 

 

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

 

3) Размещаем в окне приложения элемент управления EditBox для вывода данных из файла и кнопку для вызова создаваемой функции для работы с файлами. Модифицируем надписи на кнопках в пункте «Properties», вызываемом нажатием правой кнопки мыши на поле элемента управления. Удаляем лишние элементы управления. Полученный в результате интерфейс пользователя представлен на рис. 5.

 

Рисунок 4 – Заготовка создаваемого приложения и

панель инструментов с элементами управления «Controls»

 

Рисунок 5 – Интерфейс пользователя

 

4) Для возможности вывода в элемент EditBox многострочного текста и добавления полосы вертикальной прокрутки изменяем стили этого элемента управления, кликнув провой кнопкой мыши по полю EditBox и выбрав пункт “Properties” (рис. 6).

Рисунок 6 – Стили элемента EditBox

 

5) Создаем заголовки функции для работы с файлами, вызываемой по нажатию на кнопку «Жми!», расположенную в окне создаваемого приложения. Для этого вызываем мастер Class Wizard, выбрав соответствующий пункт меню при нажатии правой кнопкой мыши по полю окна приложения. Во вкладке Message Maps находим уникальный идентификатор кнопки диалога приложения и дважды нажимаем левой клавишей мыши по сообщению BN_CLICKED, которое отвечает за одинарное нажатие на кнопку диалога с идентификатором IDC_BUTTON1 (рисунок 7). В появившемся новом окне будет показано имя функции, которая будет выполняться при нажатии на эту кнопку диалога, согласитесь с предложенным именем, нажав кнопку ОК, или измените его на другое.

 

Рисунок 7 – Объявление функции, вызываемой

по нажатию на кнопку в окне приложения

 

6) Для создания переменной для элемента управления EditBox, перейдите во вторую вкладку «Member Variables» мастера Class Wizard. Кликните дважды по уникальному идентификатору элемента управления EditBox и укажите имя создаваемой переменной и ее тип в появившемся диалоге (рис. 8, 9).

Рисунок 8 – Добавление переменной

Рисунок 9 – Результат добавления переменной

 

7) Для редактирования программного кода функции, вызываемой по нажатию на кнопку, кликнем дважды по изображению кнопки в окне создаваемого приложения или в первой вкладке окна мастера Class Wizard необходимо дважды нажать левой клавишей мыши на название функции в нижней части окна, в данном случае OnButton1 (рис. 7).

Перед вами появится текст файла с заголовком функции следующего вида:

 

void CLara3Dlg::OnButton1()

{

// TODO: Add your control notification handler code here = добавьте здесь свой код

}

 

Согласно заданию добавляем программный код в тело функции, вызываемой по нажатию кнопки работы с файлами. Эта функция расположена в файле с именем «имя_проектаDlg.cpp», т.е. в данном примере в файле с именем «lara3Dlg.cpp» (рис. 10).

 

void CLara3Dlg::OnButton1()

{

CString Text = "string1\nstring2\nstring3";

 

CFileDialog DlgSaveAs(FALSE,(LPCSTR)"txt",NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,(LPCSTR)" Text Files (*.txt) |*.txt||");

// отображение стандартной панели выбора файла SaveAs

if(DlgSaveAs.DoModal()==IDOK)

{

CStdioFile File1(DlgSaveAs.GetPathName(),CFile::modeCreate|CFile::modeWrite);

// создание объекта и открытие файла для записи

File1.WriteString(Text);// запись в файл строки

File1.Close();

}

 

CFileDialog DlgOpen(TRUE,(LPCSTR)"txt",NULL,OFN_HIDEREADONLY,(LPCSTR)" Text Files (*.txt) |*.txt||");

if(DlgOpen.DoModal()==IDOK)

{

// создание объекта и открытие файла для записи

CStdioFile File2(DlgOpen.GetPathName(),CFile::modeRead);

if (File2!=NULL)

{CString s;

while (File2.ReadString(s)) //считывание строки из файла

{m_str+=s; // добавление считанной строки к содержимому переменной, связанной с элементом EditBox

m_str+=CString("\r\n"); // добавление перехода на новую строку

}

m_str+=CString("\r\n");// добавление перехода на новую строку после вывода всего содержимого файла

File2.Close();

UpdateData(0);// обновление данных в элементах EditBox

}

}

}

 

Рисунок 10 – Программный код функции, вызываемой при нажатии на кнопку работы с файлами

 

8) Работа программы.

После запуска программы пользователь нажимает на кнопку «Жми!» и в новом окне, отображаемом с помощью объекта класса CFileDialog, выбирает файл для записи данных в файл, далее пользователю будет предложено выбрать файл для считывания данных из файла (рис. 11).

 

Рисунок 11 – Диалог открытия файла

 

Результаты, выводимые программой в элемент управления EditBox, при однократном и многократном выполнении программного кода функции, вызываемой при нажатии на кнопку «Жми!», приведены на рисунках 12 и 13 соответственно. Если выводимый текст по высоте превышает размер элемента управления EditBox, то будет активизирован элемент вертикальной прокрутки scrollbar (рис. 13).

Рисунок 12 – Результат работы программы после однократного вызова функции работы с файлами

 

Рисунок 13 – Результат работы программы после многократного вызова функции работы с файлами

 


<== предыдущая страница | следующая страница ==>
Класс CFileDialog для выбора файла | Задание. · Считать из файла n чисел, где n задает пользователь в элементе управления EditBox, расположенном в окне разрабатываемой программы

Дата добавления: 2015-06-30; просмотров: 273; Нарушение авторских прав




Мы поможем в написании ваших работ!
lektsiopedia.org - Лекциопедия - 2013 год. | Страница сгенерирована за: 0.004 сек.