Автор работы: Пользователь скрыл имя, 03 Декабря 2014 в 16:18, курсовая работа
У сучасному світі є три основні проблеми , вирішення яких присвячені останнім часом зусилля вчених . Це економія природних ресурсів , розробка раціональних технологій виробництва та організація оптимального управління . Сучасне автоматизоване виробництво являє собою складну систему , домогтися оптимального функціонування якої можна тільки застосовуючи на всіх її рівнях ефективні методи автоматизації управління роботою її складових. Стрімкий прогрес в області засобів інформаційного забезпечення вирішення задач науки і техніки передбачає кардинальну зміну підходів до технології вирішення наукових і виробничих проблем. Одним з найважливіших напрямків прискорення науково -технічного прогресу та підвищення ефективності виробництва є автоматизація всіх ланок виробничого циклу , у тому числі проектування , технологічної підготовки виробництва і управління. Об'єкти виробництва стають більш складними , проте терміни на проектування і технологічну підготовку їх виробництва в умовах конкуренції скорочуються. Екстенсивно вирішити дану проблему неможливо, тому не всі процеси проектування можуть бути виконані паралельно. Інтенсифікація праці конструкторського і технологічного персоналу можлива тільки при наявності обчислювальної техніки , застосуванні комп'ютерних технологій , що базуються на створенні та / або використанні автоматизованих систем управління (АСУ) і складових їх частин: систем автоматизованого проектування ( САПР ) і автоматизованих систем технологічної підготовки виробництва ( АСТШТ ) . Розробка АСУ на базі математичних методів і моделей , сучасних інформаційних технологій дозволить вирішувати питання управління , проектування і виробництва на належному рівні , зберігаючи конкурентоспроможність виробленої продукції.
В умовах целюлозно-паперового, деревного і т.д, виробництва одним із способів зниження витрат на сировину і матеріали є скорочення кількості відходів, що утворюються в процесі виробництва продукції. У загальній системі організації і планування виробництва серед багатьох факторів оптимальний розкрій має важливе значення.
З проблеми оптимального розкрою опубліковано велику кількість робіт, починаючи з кінця 40-ч років, коли завдання розкрою вперше була поставлена і вирішена, і до теперішнього часу.
Однак, рішення вважається класичної задачі оптимального розкрою у виробничих умовах пов'язане з такими труднощами як, умова цеілочисельності рішення, вимоги гарантованого існування оптимального рішення за будь-яких вихідних даних, обмеження по кількості ножів поздовжньо-різального верстата (ПРС), а так само багатьох інших вимог, пов'язаних зі специфікою роботи окремих підприємств.
Літературний огляд показує, що існуючі моделі, алгоритми та методи вирішення оптимального розкрою не забезпечують виконання цих вимог.
З урахуванням цього метою курсової роботи є створення автоматизованої системи оптимального використання заготовок при розкрої площинних матеріалів на основі методів, моделей і алгоритмів оптимального розкрою.
ВСТУП……………………………………………………………………………4
1 ТЕХНІЧНЕ ЗАВДАННЯ………………………………………………………6
2 АНАЛІЗ СУЧАСНОГО СТАНУ ЗАДАЧІ ПРОЕКТА………………………16
3 ВИБІР НАПРЯМКУ РОЗВ’ЯЗАННЯ ЗАДАЧІ ПРОЕКТУ…………………17
4 РОЗРОБКА МАТЕМАТИЧНОГО, ІНФОРМАЦІЙНОГО ТА МЕТРОЛОГІЧНОГО ЗАБЕЗПЕЧЕННЯ ПРОЕКТУ………………………….19
5 РОЗРОБКА ТА ОПТИМІЗАЦІЯ АЛГОРИТМІЧНОГО ЗАБЕЗПЕЧЕННЯ ПРОЕКТУ…………….………………………………………………………….23
5.1 Вибір і обґрунтування інструментальних засобів………………….23
5.2 Розробка блок-схем алгоритмів та їх оптимізація….………………25
5.3 Вибір та обґрунтування апаратного забезпечення проектованої системи…………………………………………………………………………...31
5.4 Розробка вихідних текстів програмного забезпечення та вибір стандартного програмного забезпечення………………………………………31
5.5 Компіляція та тестування ПО………………………………………...36
6 РОЗРОБКА ПРОГРАМНОЇ ДОКУМЕНТАЦІЇ……………………………...39
6.1 Вихідні тексти проектованої системи……………………………….39
6.2 Опис проектованої системи…………………………………………..43
6.3 Інструкції з використання проектованої системи…………………..44
7 ЕКОНОМІЧНЕ ОБГРУНТУВАННЯ…………………………………………46
ВИСНОВОК……………………………………………………………………...53
ВИКОРИСТАННІ В ПРОЕКТІ ДЖЕРЕЛА……………………………………54
#include "widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
viewer = new QGraphicsView;
scene = new QGraphicsScene;
mainmenu = new QMenuBar;
toolbar = new QToolBar ;
statusbar = new QStatusBar;
load_form = new QWidget;
load_form->setWindowTitle("
QGridLayout *load_lay = new QGridLayout;
list_view = new QListWidget;
do_load = new QPushButton("Открыть файл...");
load_submit = new QCommandLinkButton("
load_lay->addWidget(do_load);
load_lay->addWidget(list_view)
load_lay->addWidget(load_
load_form->setLayout(load_lay)
QToolButton *paint_btn = new QToolButton;
paint_btn->setText("Построить"
toolbar->addWidget(paint_btn);
QMenu *f_menu = new QMenu("Файл");
QMenu *s_menu = new QMenu("Редактировать");
QMenu *a_menu = new QMenu("Справка");
QAction *open_act = f_menu->addAction("Загрузить")
QAction *save_act = f_menu->addAction("Сохранить")
f_menu->addSeparator();
QAction *exit_act = f_menu->addAction("Выход");
mainmenu->addMenu(f_menu);
mainmenu->addMenu(s_menu);
mainmenu->addMenu(a_menu);
QGridLayout *lay = new QGridLayout;
lay->setMenuBar(mainmenu);
lay->addWidget(toolbar);
lay->addWidget(viewer);
lay->addWidget(statusbar);
setLayout(lay);
setWindowTitle("Squares");
resize(500,400);
viewer->setScene(scene);
connect(paint_btn,&
connect(open_act,&QAction::
connect(save_act,&QAction::
connect(exit_act,SIGNAL(
connect(do_load,&QPushButton::
connect(load_submit,&
}
Widget::~Widget()
{
}
void Widget::paint_it(){
QPoint *buffer = new QPoint;
for(int i=point_arr.count()-1;i>0;i--)
for(int j=0;j<i;j++)
if(point_arr.at(j)->x()>point_
buffer->setX(point_arr.at(j)->
buffer->setY(point_arr.at(j)->
point_arr.at(j)->setX(point_
point_arr.at(j)->setY(point_
point_arr.at(j)->setX(buffer->
point_arr.at(j)->setY(buffer->
}
int nx=0, ny=0;
for(int i=0; i<point_arr.count(); i++){
scene->addRect(nx,ny,point_
*if(i>1){
if(point_arr.at(i)->y()>point_
ny=point_arr.at(i)->y();
}
}*/
nx=point_arr.at(i)->x();
ny=point_arr.at(i)->y();
}
}
void Widget::load_from_file(){
list_view->clear();
point_arr.clear();
QStringList lst;
QString fileName = QFileDialog::getOpenFileName(
QFile file(fileName);
if(file.open(QIODevice::
while(!file.atEnd()){
lst.clear();
QString str = file.readLine();
list_view->addItem(str);
lst = str.split(" ");
point1 = new QPoint;
point1->setX(lst.at(0).toInt()
point1->setY(lst.at(1).toInt()
point_arr.push_back(point1);
}
}
}
void Widget::save_to_file(){
QImage image(scene->width(),
scene->height(), QImage::Format_ARGB32_
QPainter painter(&image);
scene->render(&painter);
QString fileName = QFileDialog::getSaveFileName(
image.save(fileName);
}