Разработка модели, алгоритма и программы для определения технического состояния объекта по его признакам

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование

°ют возможность создавать 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 - Продолже