Разработка модели, алгоритма и программы для определения технического состояния объекта по его признакам
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
°ют возможность создавать Windows-приложения на базе объектно-ориентированного подхода. С точки зрения программиста, MFC представляет собой каркас, на основе которого можно писать программы для Windows.
Одним из основных преимуществ работы с MFC является возможность многократного использования одного и того же кода. Так как библиотека содержит много элементов, общих для всех Windows-приложений, нет необходимости каждый раз писать их заново. Вместо этого их можно просто наследовать (говоря языком объектно-ориентированного программирования). Кроме того, интерфейс, обеспечиваемый библиотекой, практически независим от конкретных деталей, его реализующих. Поэтому программы, написанные на основе MFC, могут быть легко адаптированы к новым версиям Windows (в отличие от большинства программ, написанных обычными методами).
Еще одним существенным преимуществом MFC является упрощение взаимодействия с прикладным программным интерфейсом (API) Windows. Любое приложение взаимодействует с Windows через API, который содержит несколько сот функций. Внушительный размер API затрудняет попытки понять и изучить его целиком. Зачастую даже сложно проследить, как отдельные части API связаны друг с другом! Но поскольку библиотека MFC объединяет (путем инкапсуляции) функции API в логически организованное множество классов, интерфейсом становится значительно легче управлять. Поскольку MFC представляет собой набор классов, написанных на языке С++, поэтому программы, написанные с использованием MFC, должна быть в то же время программами на С++. Для этого необходимо владеть соответствующими знаниями. Для начала необходимо уметь создавать собственные классы, понимать принципы наследования и уметь переопределять виртуальные функции. Хотя программы, использующие библиотеку MFC, обычно не содержат слишком специфических элементов из арсенала С++, для их написания тем не менее требуются солидные знания в данной области.
Программа определяет техническое состояние объекта по его признакам. Текст программы диагностики станка с ЧПУ представлен в приложении А.
СЦЕНАРИЙ ДИАЛОГА
После запуска приложения появится диалоговое окно, через которое осуществляется связь программы с пользователем. Пользователь вводит в нем экспертную матрицу, выбирает один из анализируемых параметров. Исходные величины могут принимать значения от 0 до 1. Виды диалоговых окон представлены на рисунке 2,3.
Рисунок 2 - Вариант диалогового окна №1
Рисунок 3 - Вариант диалогового окна №2 икона помощи
ЗАКЛЮЧЕНИЕ
В ходе выполнения данного курсового проекта были разработаны алгоритм и программа для определения технического состояния станка с ЧПУ по его признакам (выходным параметрам). В соответствии с этой моделью был разработан алгоритм её реализации программными средствами, в результате чего написана программа на языке С++ с применением библиотек классов MFC. Разработанная программа соответствует заданным на этапе проектирования требованиям. Выполненный проект может быть модернизирован и использован в производственных целях для анализа и контроля станка с ЧПУ и определения вероятностей причин его возможных повреждений. В ходе проведения вычислительного эксперимента программа сбоев не давала, результаты подтверждались проверочными расчетами. Ехе-файл проекта занимает 184 Кб.
СПИСОК ЛИТЕРАТУРЫ
1. Дэн Гукин С, 2-е издание. - М.: Диалектика, 2006. - 355 с.
. Каев Артем MFC. Шаг за шагом -
. Никитин Ю.Р. Методическое пособие к выполнению курсовой работы по дисциплине Системный анализ и принятие решений: Учеб. пособие. - Ижевск: Изд-во ИжГТУ, 2009.- 8 с.
. ГОСТ 19.504-79 (СТ СЭВ 2095-80). Руководство программиста. Требования к содержанию и оформлению.
. ГОСТ 19.701-90 (ИСО 5807-85). Схемы алгоритмов, программ, данных и систем.
ПРИЛОЖЕНИЕ А
Текст программы
программа технический состояние станок
Текст программы определения технического состояния станка с ЧПУ по выходным параметрам.
#include "stdafx.h"
#include "KurszpT.h"
#include "KurszpTDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endifCAboutDlg : public CDialog
{:();{IDD = IDD_ABOUTBOX};:void DoDataExchange(CDataExchange* pDX); // DDX/DDV support:_MESSAGE_MAP()
};::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
}CAboutDlg::DoDataExchange(CDataExchange* pDX)
{::DoDataExchange(pDX);
}_MESSAGE_MAP(CAboutDlg, CDialog)_MESSAGE_MAP()::CKurszpTDlg(CWnd* pParent /*=NULL*/)
: CDialog(CKurszpTDlg::IDD, pParent)
, res1(0)
, res2(0)
, res3(0)
, res4(0)
, res5(0)
, r11(0.9)
, r12(0.1)
, r13(0.1)
, r14(0)
, r15(0.1)
, r16(0.3)
, r21(0.4)
, r22(0.3)
, r23(0.3)
, r24(0.1)
, r25(0.2)
, r26(0.7)
, r31(0.1)
, r32(0.3)
, r33(0.8)
, r34(0.5)
, r35(0.1)
, r36(0.4)
, r41(0.2)
, r42(0.1)
, r43(0.3)
, r44(0.6)
, r45(0.9)
, r46(0.1)
, r51(0.5)
, r52(0.1)
, r53(0.1)
, r54(0.8)
, r55(0.2)
, r56(0.6)
{_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}CKurszpTDlg::DoDataExchange(CDataExchange* pDX)
{::DoDataExchange(pDX);_Text(pDX, IDC_EDIT31, res1);_Text(pDX, IDC_EDIT32, res2);_Text(pDX, IDC_EDIT33, res3);_Text(pDX, IDC_EDIT34, res4);_Text(pDX, IDC_EDIT35, res5);_Text(pDX, IDC_EDIT1, r11);_Text(pDX, IDC_EDIT2, r12);_Text(pDX, IDC_EDIT3, r13);_Text(pDX, IDC_EDIT4, r14);_Text(pDX, IDC_EDIT5, r15);_Text(pDX, IDC_EDIT6, r16);_Text(pDX, IDC_EDIT7, r21);_Text(pDX, IDC_EDIT8, r22);_Text(pDX, IDC_EDIT9, r23);_Text(pDX, IDC_EDIT10, r24);_Text(pDX, IDC_EDIT11, r25);_Text(pDX, IDC_EDIT12, r26);_Text(pDX, IDC_EDIT13, r31);_Text(pDX, IDC_EDIT14, r32);_Text(pDX, IDC_EDIT15, r33);_Text(pDX, IDC_EDIT16, r34);_Text(pDX, IDC_EDIT17, r35);_Text(pDX, IDC_EDIT18, r36);_Text(pDX, IDC_EDIT19, r41);_Text(pDX, IDC_EDIT20, r42);_Text(pDX, IDC_EDIT21, r43);_Text(pDX, IDC_EDIT22, r44);_Text(pDX, IDC_EDIT23, r45);_Text(pDX, IDC_EDIT24, r46);_Text(pDX, IDC_EDIT25, r51);_Text(pDX, IDC_EDIT26, r52);_Text(pDX, IDC_EDIT27, r53);_Text(pDX, IDC_EDIT28, r54);_Text(pDX, IDC_EDIT29, r55);_Text(pDX, IDC_EDIT30, r56);
}_MESSAGE_MAP(CKurszpTDlg, CDialog)_WM_SYSCOMMAND()_WM_PAINT()_WM_QUERYDRAGICON()
//}}AFX_MSG_MAP_BN_CLICKED(IDOK, &CKurszpTDlg::OnBnClickedOk)_BN_CLICKED(IDC_BUTTON1, &CKurszpTDlg::OnBnClickedButton1)
Рисунок А1 - Продолже