_btn- gt; setText ( Побудувати ); gt; addWidget (paint_btn); * f_menu=new QMenu ( Файл ); * s_menu=new QMenu ( Редагувати ); * a_menu= new QMenu ( Довідка ); * open_act=f_menu- gt; addAction ( Завантажити ); * save_act=f_menu- gt; addAction ( Зберегти ); _ menu- gt; addSeparator (); * exit_act=f_menu-gt;addAction(laquo;Выходraquo;);gt;addMenu(f_menu);gt;addMenu(s_menu);gt;addMenu(a_menu);*lay =New QGridLayout;gt;setMenuBar(mainmenu);gt;addWidget(toolbar);gt;addWidget(viewer);gt;addWidget(statusbar);(lay);(laquo;Squaresraquo;);(500,400);gt;setScene(scene);(paint_btn,amp;QToolButton::clicked,this,amp;Widget::paint_it);(open_act,amp;QAction::triggered,load_form,amp;QWidget::show);(save_act,amp;QAction::triggered,this,amp;Widget::save_to_file);(exit_act,SIGNAL(triggered(bool)),qApp,SLOT(quit()));(do_load,amp;QPushButton::clicked,this,amp;Widget::load_from_file);(load_submit,amp;QCommandLinkButton::clicked,load_form,amp;QWidget::close);
}
Функція необхідна для виводу прямокутніків: Widget :: paint_it () {* buffer=new QPoint; (int i=point_arr.count () - 1; i gt; 0; i -) (int j =0; j lt; i; j ++) (point_arr (j) - gt; x () gt; point_arr (j + 1) - gt; x () || point_arr(j)-gt;x()gt;point_arr(j+1)-gt;x()){gt;setX(point_arr(j)-gt;x());gt;setY(point_arr(j)-gt;y());_arr(j)-gt;setX(point_arr(j+1)-gt;x());_arr(j)-gt;setY(point_arr(j+1)-gt;y());_arr(j)-gt;setX(buffer-gt;x());_arr(j)-gt;setY(buffer-gt;y());
} nx=0, ny=0; (int i=0; i lt; point_arr.count (); i++){gt;addRect(nx,ny,point_arr(i)-gt;x(),point_arr(i)-gt;y());=point_arr(i)-gt;x();=point_arr(i)-gt;y();
}
}
Функція load_from_file () завантажує файл з координатами прямокутніків: Widget :: load_from_file () {_ view- gt; clear (); _ arr.clear (); lst; fileName=QFileDialog :: getOpenFileName (this, tr ( Відкрити ), raquo ;, Текст (* .txt) ); file (fileName); (file.open (QIODevice :: ReadOnly | QIODevice :: Text)) {(! fileEnd ()) {. clear (); str=file.readLine (); _ view- gt; addItem (str);=str.split ( );=new QPoint; - gt; setX (lst. at (0) .toInt ()); - gt; setY (lst (1) .toInt ()); _ arr.push_back (point1);
}
}
}
После того як оператор Виконаю всі розрахунки, та маніпуляції з розкроєм, ВІН может забрести свои результати. Для цього в Програмі існує така функція save_to_file: Widget :: save_to_file () {image (scene- gt; width (), scene- gt; height (), QImage :: Format_ARGB32_Premultiplied); painter ( amp; image); gt; render ( amp; painter); fileName=QFileDialog :: getSaveFileName (this, tr ( Save File ), , tr ( Images (* .png) )) ;. save (fileName);
}
Що стосується стандартного програмного забезпечення, то для роботи з даною системою на комп ютері користувача мают буті Встановлені:
налаштована операційна система Windows, зі всіма необхіднімі для ПК драйверами;
Встановленій.NET Framework.
При дотріманні Вищевказаними вимог, данє програмне забезпечення буде працювати коректно.
5.5 Компіляція та тестування ПО
Для того щоб запустіті програму та патенти Відкрити файл squares_img.exe. Наступний кроком є ??Відкриття текстового файлу або набір тексту з Клавіатури. Для того щоб Відкрити файл необходимо натіснуті Файл? Відкрити. У Програмі встановлений фільтр, а отже користувач зможите Відкрити лишь файл з форматом * .txt.
У якості вхідних даних завантажуємо текстовий файл з Наступний текстом:
20 0
14 0
30 0
10 0
15 0
23 0
20 0
14 0
30 0
10 0
15 0
23 0
20 0
14 0
30 0
10 0
15 0
23 0
Проведемо ряд тестів, для Виявлення помилок в проектованій сістемі.
Тест 1: У даного тесті, поведемо перевірку, оптимального размещения прямокутніків на полотні. Перевірімо працездатність ПЗ оптімізацію, причому Проведемо тест 40 разів, засікаючі при цьом годину (рис. 5.4)
Малюнок 5.4 - Тест 1
Як видно з даного тесту, всі прямокутник розташовані оптимально на полотні, з мінімальнімі витратами полотна. Середня обробка програмного забезпечення 1.84 секунди. Тобто, на Обробка одного прямокутник необходимо 0,00283951 секунди годині.
<...