Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебная практика для студентов 1 курса (90

..pdf
Скачиваний:
17
Добавлен:
15.11.2022
Размер:
379.65 Кб
Скачать

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

MessageBoxButtons buttons = MessageBoxButtons::YesNo;

System::Windows::Forms::DialogResult result;

result = MessageBox::Show(this, msg, cap, buttons).

Диалоговые окна также могут использоваться для открытия файлов

(например, открытие текстового файла). Добавьте элементы управления

Button, OpenFileDialog и элемент для отображения содержимого файла, к

примеру, TextBox, и вставьте следующий код:

if

(openFileDialog1->ShowDialog()

==

System::Windows::Forms::DialogResult::OK){

System::IO::StreamReader ^ sr = gcnew

System::IO::StreamReader(openFileDialog1->FileName);

textBox1->Text=(sr->ReadToEnd());

sr->Close()}.

Теперь при нажатии кнопки откроется окно, где можно выбрать файл для просмотра содержимого. Во избежание открытия файлов с неправильным форматом можно вставить этот код в конструкцию try-catch. Для удобства отображения только файлов вы можете добавить фильтр перед оператором if:

openFileDialog1->Filter = "txt files (*.txt)|*.txt|All files

(*.*)|*.*".

Для возможности открытия новых окон вам необходимо для начала создать новую форму. Далее добавьте кнопку на исходной форме и вставьте следующий код в заголовок исходной формы: #include "NewForm.h" и в обработчик событий кнопки вызова новой формы:

Form ^ newform = gcnew NewForm();

newform->ShowDialog().

Таким образом, у вас появилась возможность использования новых окон. Это позволит более рационально распределить функции проекта,

элементы управления и т.д.

8

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

4.3. Рисование на форме с сохранением изображения в файл

Для рисования будем использовать элемент управления PictureBox.

Создаём новую форму, добавляем элемент PictureBox и Button. Затем добавляем следующий код:

bool Draw;

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {

Graphics^ graphon = pictureBox1->CreateGraphics();

graphon->Clear(SystemColors::Window);}

private: System::Void pictureBox1_MouseMove(System::Object^

sender, System::Windows::Forms::MouseEventArgs^

e) {

 

 

Graphics^ graph = pictureBox1->CreateGraphics();

 

 

if (Draw == true){

 

 

 

 

 

graph->FillEllipse(Brushes::Violet, e->X, e->Y, 3,

 

3); //цвет и толщина}}

 

 

private: System::Void pictureBox1_MouseDown(System::Object^

sender,

System::Windows::Forms::MouseEventArgs^

e) {Draw

=

true;}

 

 

 

 

 

private:

System::Void

pictureBox1_MouseUp(System::Object^

sender,

System::Windows::Forms::MouseEventArgs^

e){Draw

=

false;}.

 

 

 

 

 

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

Для загрузки изображения используем OpenFileDialog. Добавим в обработчике события новой кнопки:

openFileDialog1->Title = "Откройте изображение"; openFileDialog1->Filter = "Image

Files(*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF|All files (*.*)|*.*"; if (openFileDialog1->ShowDialog() ==

Windows::Forms::DialogResult::OK)

pictureBox1->Image = Image::FromFile(openFileDialog1- >FileName).

9

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Для сохранения изображения используем SaveFileDialog. Добавим

следующие строки кода в обработчик:

if (saveFileDialog1->ShowDialog() == Windows::Forms::DialogResult::OK){

Bitmap^ bmp = gcnew Bitmap(pictureBox1->Image); saveFileDialog1->Title = "Сохранить изображение"; bmp->Save(saveFileDialog1->FileName,

System::Drawing::Imaging::ImageFormat::Jpeg);}.

Для того чтобы вывести массив на изображение, получившийся ранее в задании 1, необходимо добавить пустое изображение в контроллер PictureBox

(свойства) и новые строки кода в кнопке «Sort»:

Image^ img = Image::FromFile("C:\\1.bmp");

Bitmap^ bmp = gcnew Bitmap(pictureBox1->Image);

Graphics^ G = Graphics::FromImage(bmp);

Brush^ brsh = gcnew SolidBrush(Color::DarkViolet).

и изменить код внутри сортировки:

while (step > 0){

for (j = 0; j < (cnt - step); j++){ textBox2->Text =

str; k = j;

while (k >= 0 && massiv[k] > massiv[k + step]){ int buf = massiv[k];

massiv[k] = massiv[k + step]; massiv[k + step] = buf; k--;};

str = "";

for (i = 0; i < cnt; i++){

str = str->Format(str + "{0}", massiv[i] + "

");}

G->DrawString(str, gcnew System::Drawing::Font("Arial", 13), brsh, Point(0, j * 20)); // Координаты размещения текста}

MessageBox::Show("Next Step"); step = step / 2;}.

10

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Теперь на элементе PictureBox будут изображены итерации сортировки

массива.

4.4. Создание и отображение html файла на форме в компоненте

«WebBrowser»

Для начала работы создайте новую форму, затем добавьте компонент

«WebBrowser», который находится на панели управления, и элемент Button, в

свойстве которого присвойте имя «Открыть отчет». И, наконец, необходимо добавить элемент OpenFileDialog (отображает диалоговое окно, позволяющее пользователю открыть файл), который также находится на панели управления.

Далее щёлкните два раза по элементу Button, в появившемся обработчике события наберите следующий код:

OpenFileDialog^ opn = gcnew OpenFileDialog();

opn->Filter = "Html files (*.html)|*.html|All files (*.*)|*.*";

if (opn->ShowDialog() == Windows::Forms::DialogResult::OK) webBrowser1->Navigate(opn->FileName).

Далее перейдите на вкладку «MyForm.cpp» и подключите библиотеку

"Windows.h". Пример кода:

#include "MyForm.h" #include "Windows.h" using namespace System;

using namespace System::Windows::Forms; [STAThread]

void Main(array<String^>^args){ Application::EnableVisualStyles(); Application::SetCompatibleTextRenderingDefault(false);

Проект1::MyForm form; Application::Run(%form);}.

11

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Теперь скомпилируете ваш проект и запустите. При нажатии на кнопку

«Открыть отчет» появится возможность выбора html-файла, после чего выбранный файл отобразится в компоненте «WebBrowser».

Итак, создайте кнопку «Create HTML» и добавьте:

openFileDialog1->Title = "Открыть изображение для HTML-

отчёта"; openFileDialog1->Filter="Image

Files(*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF|All files (*.*)|*.*"; ofstream myfile;

ofstream outputfile("report.txt");

myfile << "<!DOCTYPE html><html><head></head><body>";//Начало

Html-файла

myfile << "Сортировка массива.\n Массив до сортировки: ", textBox1->Text+"\n";

myfile << "Массив после сортировки: ", textBox2->Text + "\n"; if (openFileDialog1->ShowDialog() ==

Windows::Forms::DialogResult::OK)

myfile << "<img src=", openFileDialog1->FileName + """

alt=""Изображение не найдено"">";//Вставляем изображение myfile << "</body></html>"<<std::endl;//Конец файла openFileDialog1->Title = "Открыть HTML-отчёт"; openFileDialog1->Filter = "Html files (*.html)|*.html|All

files (*.*)|*.*";

if (openFileDialog1->ShowDialog() == Windows::Forms::DialogResult::OK)

webBrowser1->Navigate(openFileDialog1- >FileName);//Открытие в WebBrowser myfile.close().

5. Формулировка и варианты индивидуального домашнего задания

Создать структуру данных и реализовать способ их обработки в форме на C++, обеспечить заполнение данных из файла и формы, рисование и сохранение изображения (System.Drawing), создание отчета в виде html-файла,

12

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

содержащего ссылки на изображения итераций процесса и отображение html-

файла в форме (компонент WebBrowser). Варианты представлены в таблице 2.

Таблица 2. Варианты индивидуального домашнего задания

Задание

 

 

1

Сортировка массива методом бинарного дерева

 

 

2

Поиск суммы наименьших элементов в двумерном массиве

 

 

3

Вычисление разности двух графов

 

 

4

Поиск произведения наибольших элементов в двумерном массиве

 

 

5

Обход бинарного дерева в глубину

 

 

6

Сортировка двумерного массива методом «перебора»

 

 

7

Сортировка двумерного массива методом «пузырька»

 

 

8

Заполнение простого дерева случайными числами и поиск наименьшего элемента

 

 

9

Сортировка двумерного массива методом «вставки»

 

 

10

Реализация декартова произведения двух графов

 

 

11

Сортировка двумерного массива методом «выбора»

 

 

12

Вычисление пересечения двух графов

 

 

13

Реализация обхода бинарного дерева в ширину

 

 

14

Сортировка двумерного массива методом Шелла

 

 

15

Поиск наименьшего элемента в графе

 

 

6. Требования к оформлению отчета

Отчет оформляется в виде распечатки согласно общим требованиям,

предъявляемым к оформлению студенческих работ (СТО-13-2016). В случае отступления от указанных рекомендаций подобное поведение необходимо обосновать.

Отчет должен содержать рубрики:

1)титульный лист;

2)задание кафедры;

3)аннотацию;

4)оглавление;

13

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

5)ход выполнения индивидуального домашнего задания;

6)заключение;

7)библиографический список.

7.Библиографический список

1.Шилдт, Г. С++ Базовый курс [Текст] / Г. Шилдт. – 3-е издание. – М.:

Издательский дом «Вильямс», 2015. – 624 с.

2. Создание графического приложения (Windows Forms) в Visual Studio

2013 - C++/CLI WinForms [Электронный ресурс]: форум программистов и сисадминов. – Режим доступа: WWW.URL: http://www.cyberforum.ru/cpp-cli- winforms/thread1224010.html, свободный. – 17.05.2016.

3. Компонент WebBrowser - открытие файлов разных типов - C++ Builder [Электронный ресурс]: форум программистов и сисадминов. – Режим доступа: WWW.URL: http://www.cyberforum.ru/cpp-builder/thread454023.html,

свободный. – 17.05.2016.

4. СТО-13-2016. Студенческие работы. Общие требования к оформлению [Текст]. – Введ. 2016 – 02 – 01. – Липецк: Издательство Липецкий Государственный Технический Университет – 2016. – 36 с.

14

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

 

Содержание

 

1.

Общие положения .................................................................................................

3

2.

Цели и задачи практики........................................................................................

3

3.

Перечень приобретаемых компетенций .............................................................

4

4.

Порядок выполнения учебной практики ............................................................

5

 

4.1. Работа с окнами и элементами форм: создание оконного приложения,

 

 

работа с элементами управления .........................................................................

5

 

4.2. Работа с окнами и элементами форм: работа с диалоговыми окнами,

 

 

вызов окон в окнах.................................................................................................

7

 

4.3. Рисование на форме с сохранением изображения в файл ..........................

9

 

4.4. Создание и отображение html файла на форме в компоненте

 

 

«WebBrowser» ......................................................................................................

11

5.

Формулировка и варианты индивидуального домашнего задания................

12

6.

Требования к оформлению отчета.....................................................................

13

7.

Библиографический список................................................................................

14

15

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

УЧЕБНАЯ ПРАКТИКА

ДЛЯ СТУДЕНТОВ 1 КУРСА

МЕТОДИЧЕСКИЕ УКАЗАНИЯ к проведению учебной практики для студентов 1 курса

Лаврухина Тамара Владимировна

Редактор Попова О.И.

 

 

Подписано в печать

. Формат 60х84 1/16. Бумага офсетная.

Ризография. Печ. л. 1,0. Тираж 100 экз. Заказ №

.

Издательство Липецкого государственного технического университета. Полиграфическое подразделение Издательства ЛГТУ.

398600, Липецк, ул. Московская, 30.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]