- •Содержание
- •Техническое задание……………………………………………………………..3
- •Техническое задание
- •Введение
- •Существо системного анализа
- •Классификация проблем
- •Процедура принятия решений
- •Разработка математического алгоритма
- •Разработка алгоритма
- •Разработка программы
- •Сценарий диалога
- •Заключение
- •Литература
- •Приложение а (обязательное)
- •Приложение б (обязательное) руководство оператора
- •Приложение в (обязательное) руководство программиста
Заключение
В ходе выполнения данного курсового проекта была разработана алгоритм и программа для определения технического состояния объекта по его признакам. В соответствии с этой моделью был разработан алгоритм реализации этой модели программными средствами, в результате чего написана программа на языке С++ с применением библиотек классов MFC. Разработанная программа соответствует заданным на этапе проектирования требованиям. В ходе проведения вычислительного эксперимента программа сбоев не давала, результаты подтверждались проверочными расчетами. Ехе-файл проекта занимает 184 Кб.
Литература
1. Дэн Гукин С ,2-е издание. – М.: Диалектика, 2006. – 355с.
2. Каев Артем «MFC. Шаг за шагом» – http://www.firststeps.ru/
3. Никитин Ю.Р. Методическое пособие к выполнению курсовой работы по дисциплине «Системный анализ и принятие решений»: Учеб. пособие. – Ижевск: Изд-во ИжГТУ, 2009.- 8 с.
4. ГОСТ 19.504-79 (СТ СЭВ 2095-80). Руководство программиста. Требования к содержанию и оформлению.
5. ГОСТ 19.701-90 (ИСО 5807-85). Схемы алгоритмов, программ, данных и систем.
Приложение а (обязательное)
Текст программы
// dlkDlg.cpp : файл реализации
//
#include "stdafx.h"
#include "dlk.h"
#include "dlkDlg.h"
#include "afxdialogex.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// Диалоговое окно CAboutDlg используется для описания сведений о приложении
class CAboutDlg : public CDialogEx
{
public:
CAboutDlg();
// Данные диалогового окна
enum { IDD = IDD_ABOUTBOX };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // поддержка DDX/DDV
// Реализация
protected:
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD)
{
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)
END_MESSAGE_MAP()
// диалоговое окно CdlkDlg
CdlkDlg::CdlkDlg(CWnd* pParent /*=NULL*/)
: CDialogEx(CdlkDlg::IDD, pParent)
, m_x11(0)
, m_x12(0)
, m_x13(0)
, m_x21(0)
, m_x14(0)
, m_x22(0)
, m_x23(0)
, m_x24(0)
, m_x31(0)
, m_x32(0)
, m_x33(0)
, m_x34(0)
, m_x41(0)
, m_x42(0)
, m_x43(0)
, m_x44(0)
, m_x51(0)
, m_x52(0)
, m_x53(0)
, m_x54(0)
, m_r1(0)
, m_r2(0)
, m_r3(0)
, m_r4(0)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CdlkDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT8, m_x11);
DDX_Text(pDX, IDC_EDIT12, m_x12);
DDX_Text(pDX, IDC_EDIT16, m_x13);
DDX_Text(pDX, IDC_EDIT20, m_x21);
DDX_Text(pDX, IDC_EDIT10, m_x14);
DDX_Text(pDX, IDC_EDIT14, m_x22);
DDX_Text(pDX, IDC_EDIT18, m_x23);
DDX_Text(pDX, IDC_EDIT22, m_x24);
DDX_Text(pDX, IDC_EDIT9, m_x31);
DDX_Text(pDX, IDC_EDIT13, m_x32);
DDX_Text(pDX, IDC_EDIT17, m_x33);
DDX_Text(pDX, IDC_EDIT21, m_x34);
DDX_Text(pDX, IDC_EDIT7, m_x41);
DDX_Text(pDX, IDC_EDIT11, m_x42);
DDX_Text(pDX, IDC_EDIT15, m_x43);
DDX_Text(pDX, IDC_EDIT19, m_x44);
DDX_Text(pDX, IDC_EDIT23, m_x51);
DDX_Text(pDX, IDC_EDIT24, m_x52);
DDX_Text(pDX, IDC_EDIT25, m_x53);
DDX_Text(pDX, IDC_EDIT26, m_x54);
DDX_Text(pDX, IDC_EDIT4, m_r1);
DDX_Text(pDX, IDC_EDIT6, m_r2);
DDX_Text(pDX, IDC_EDIT5, m_r3);
DDX_Text(pDX, IDC_EDIT3, m_r4);
}
BEGIN_MESSAGE_MAP(CdlkDlg, CDialogEx)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDOK, &CdlkDlg::OnBnClickedOk)
ON_BN_CLICKED(IDC_BUTTON1, &CdlkDlg::OnBnClickedButton1)
ON_BN_CLICKED(IDC_RADIO1, &CdlkDlg::OnBnClickedRadio1)
ON_BN_CLICKED(IDC_3, &CdlkDlg::OnBnClicked3)
ON_BN_CLICKED(IDC_4, &CdlkDlg::OnBnClicked4)
END_MESSAGE_MAP()
// обработчики сообщений CdlkDlg
BOOL CdlkDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
// Добавление пункта "О программе..." в системное меню.
// IDM_ABOUTBOX должен быть в пределах системной команды.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
BOOL bNameValid;
CString strAboutMenu;
bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
ASSERT(bNameValid);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// Задает значок для этого диалогового окна. Среда делает это автоматически,
// если главное окно приложения не является диалоговым
SetIcon(m_hIcon, TRUE); // Крупный значок
SetIcon(m_hIcon, FALSE); // Мелкий значок
// TODO: добавьте дополнительную инициализацию
return TRUE; // возврат значения TRUE, если фокус не передан элементу управления
}
void CdlkDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialogEx::OnSysCommand(nID, lParam);
}
}
// При добавлении кнопки свертывания в диалоговое окно нужно воспользоваться приведенным ниже кодом,
// чтобы нарисовать значок. Для приложений MFC, использующих модель документов или представлений,
// это автоматически выполняется рабочей областью.
void CdlkDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // контекст устройства для рисования
SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
// Выравнивание значка по центру клиентского прямоугольника
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Нарисуйте значок
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialogEx::OnPaint();
}
}
// Система вызывает эту функцию для получения отображения курсора при перемещении
// свернутого окна.
HCURSOR CdlkDlg::OnQueryDragIcon()
{
return static_cast<HCURSOR>(m_hIcon);
}
void CdlkDlg::OnBnClickedOk()
{
// TODO: добавьте свой код обработчика уведомлений
UpdateData(true);
double A[6], mas[6],res[6],var[6],max;int i,n,j,n_max=1,V;
if(IsDlgButtonChecked(IDC_RADIO1))
{
mas[0]=m_x11;mas[1]=m_x21;mas[2]=m_x31;mas[3]=m_x41;mas[4]=m_x51;
max=mas[0];n=0;
for(i=0;i<4;i++)
{
if(mas[i]<mas[i+1])
{n=i;}
}
res[0]=mas[n];
mas[0]=m_x12;mas[1]=m_x22;mas[2]=m_x32;mas[3]=m_x42;mas[4]=m_x52;
max=mas[0];n=0;
for(i=0;i<4;i++){
if(mas[i]<mas[i+1])
{n=i;}
}
res[1]=mas[n];
mas[0]=m_x13;mas[1]=m_x23;mas[2]=m_x33;mas[3]=m_x43;mas[4]=m_x53;
max=mas[0];n=0;
for(i=0;i<4;i++)
{
if(mas[i]<mas[i+1])
{n=i;}
}
res[2]=mas[n];
mas[0]=m_x14;mas[1]=m_x24;mas[2]=m_x34;mas[3]=m_x44;mas[4]=m_x54;
max=mas[0];n=0;
for(i=0;i<4;i++) {
if(mas[i]<mas[i+1])
{n=i;}
}
res[3]=mas[n];
var[0]=m_x11;var[1]=m_x12;var[2]=m_x13;var[3]=m_x14;
for(i=0;i<4;i++)
{
if(var[i]<res[i])
{res[i]=var[i];}
}
for(j=0,V=0;j<3;j++)
{ if(res[V]<res[j+1])
{V=j+1;}
}
m_r1=res[0];
m_r2=res[1];
m_r3=res[2];
m_r4=res[3];
V++;
}
if(IsDlgButtonChecked(IDC_RADIO2))
{
mas[0]=m_x11;mas[1]=m_x21;mas[2]=m_x31;mas[3]=m_x41;mas[4]=m_x51;
max=mas[0];n=0;
for(i=0;i<4;i++)
{
if(mas[i]<mas[i+1])
{n=i;}
}
res[0]=mas[n];
mas[0]=m_x12;mas[1]=m_x22;mas[2]=m_x32;mas[3]=m_x42;mas[4]=m_x52;
max=mas[0];n=0;
for(i=0;i<4;i++) {
if(mas[i]<mas[i+1])
{n=i;}
}
res[1]=mas[n];
mas[0]=m_x13;mas[1]=m_x23;mas[2]=m_x33;mas[3]=m_x43;mas[4]=m_x53;
max=mas[0];n=0;
for(i=0;i<4;i++)
{
if(mas[i]<mas[i+1])
{n=i;}
}
res[2]=mas[n];
mas[0]=m_x14;mas[1]=m_x24;mas[2]=m_x34;mas[3]=m_x44;mas[4]=m_x54;
max=mas[0];n=0;
for(i=0;i<4;i++) {
if(mas[i]<mas[i+1])
{n=i;}
}
res[3]=mas[n];
var[0]=m_x21;var[1]=m_x22;var[2]=m_x23;var[3]=m_x24;
for(i=0;i<4;i++)
{
if(var[i]<res[i])
{res[i]=var[i];}
}
for(j=0,V=0;j<3;j++)
{ if(res[V]<res[j+1])
{V=j+1;}
}
m_r1=res[0];
m_r2=res[1];
m_r3=res[2];
m_r4=res[3];
V++;
}
if(IsDlgButtonChecked(IDC_RADIO3))
{
mas[0]=m_x11;mas[1]=m_x21;mas[2]=m_x31;mas[3]=m_x41;mas[4]=m_x51;
max=mas[0];n=0;
for(i=0;i<4;i++)
{
if(mas[i]<mas[i+1])
{n=i;}
}
res[0]=mas[n];
mas[0]=m_x12;mas[1]=m_x22;mas[2]=m_x32;mas[3]=m_x42;mas[4]=m_x52;
max=mas[0];n=0;
for(i=0;i<4;i++)
{
if(mas[i]<mas[i+1])
{n=i;}
}
res[1]=mas[n];
mas[0]=m_x13;mas[1]=m_x23;mas[2]=m_x33;mas[3]=m_x43;mas[4]=m_x53;
max=mas[0];n=0;
for(i=0;i<4;i++)
{
if(mas[i]<mas[i+1])
{n=i;}
}
res[2]=mas[n];
mas[0]=m_x14;mas[1]=m_x24;mas[2]=m_x34;mas[3]=m_x44;mas[4]=m_x54;
max=mas[0];n=0;
for(i=0;i<4;i++)
{
if(mas[i]<mas[i+1])
{n=i;}
}
res[3]=mas[n];
var[0]=m_x31;var[1]=m_x32;var[2]=m_x33;var[3]=m_x34;
for(i=0;i<4;i++)
{
if(var[i]<res[i])
{res[i]=var[i];}
}
for(j=0,V=0;j<3;j++)
{ if(res[V]<res[j+1])
{V=j+1;}
}
m_r1=res[0];
m_r2=res[1];
m_r3=res[2];
m_r4=res[3]; V++;
}
if(IsDlgButtonChecked(IDC_RADIO4))
{
mas[0]=m_x11;mas[1]=m_x21;mas[2]=m_x31;mas[3]=m_x41;mas[4]=m_x51;
max=mas[0];n=0;
for(i=0;i<4;i++)
{
if(mas[i]<mas[i+1])
{n=i;}
}
res[0]=mas[n];
mas[0]=m_x12;mas[1]=m_x22;mas[2]=m_x32;mas[3]=m_x42;mas[4]=m_x52;
max=mas[0];n=0;
for(i=0;i<4;i++)
{
if(mas[i]<mas[i+1])
{n=i;}
}
res[1]=mas[n];
mas[0]=m_x13;mas[1]=m_x23;mas[2]=m_x33;mas[3]=m_x43;mas[4]=m_x53;
max=mas[0];n=0;
for(i=0;i<4;i++)
{
if(mas[i]<mas[i+1])
{n=i;}
}
res[2]=mas[n];
mas[0]=m_x14;mas[1]=m_x24;mas[2]=m_x34;mas[3]=m_x44;mas[4]=m_x54;
max=mas[0];n=0;
for(i=0;i<4;i++)
{
if(mas[i]<mas[i+1])
{n=i;}
}
res[3]=mas[n];
var[0]=m_x41;var[1]=m_x42;var[2]=m_x43;var[3]=m_x44;
for(i=0;i<4;i++)
{
if(var[i]<res[i])
{res[i]=var[i];}
}
for(j=0,V=0;j<3;j++)
{ if(res[V]<res[j+1])
{V=j+1;}
}
m_r1=res[0];
m_r2=res[1];
m_r3=res[2];
m_r4=res[3]; V++;
}
if(IsDlgButtonChecked(IDC_RADIO5))
{
mas[0]=m_x11;mas[1]=m_x21;mas[2]=m_x31;mas[3]=m_x41;mas[4]=m_x51;
max=mas[0];n=0;
for(i=0;i<4;i++)
{
if(mas[i]<mas[i+1])
{n=i;}
}
res[0]=mas[n];
mas[0]=m_x12;mas[1]=m_x22;mas[2]=m_x32;mas[3]=m_x42;mas[4]=m_x52;
max=mas[0];n=0;
for(i=0;i<4;i++)
{
if(mas[i]<mas[i+1])
{n=i;}
}
res[1]=mas[n];
mas[0]=m_x13;mas[1]=m_x23;mas[2]=m_x33;mas[3]=m_x43;mas[4]=m_x53;
max=mas[0];n=0;
for(i=0;i<4;i++)
{
if(mas[i]<mas[i+1])
{n=i;}
}
res[2]=mas[n];
mas[0]=m_x14;mas[1]=m_x24;mas[2]=m_x34;mas[3]=m_x44;mas[4]=m_x54;
max=mas[0];n=0;
for(i=0;i<4;i++)
{
if(mas[i]<mas[i+1])
{n=i;}
}
res[3]=mas[n];
var[0]=m_x51;var[1]=m_x52;var[2]=m_x53;var[3]=m_x54;
for(i=0;i<4;i++)
{
if(var[i]<res[i])
{res[i]=var[i];}
}
for(j=0,V=0;j<3;j++)
{ if(res[V]<res[j+1])
{V=j+1;}
}
m_r1=res[0];
m_r2=res[1];
m_r3=res[2];
m_r4=res[3];
V++;
}
UpdateData(false);
OnPaint();
}
//CDialogEx::OnOK();
//}
void CdlkDlg::OnBnClickedButton1()
{
// TODO: добавьте свой код обработчика уведомлений
MessageBox(_T("Программа разработана студентом гр.7-05-3"));
}
void CdlkDlg::OnBnClickedRadio1()
{
// TODO: добавьте свой код обработчика уведомлений
}
void CdlkDlg::OnBnClicked3()
{
// TODO: добавьте свой код обработчика уведомлений
}
void CdlkDlg::OnBnClicked4()
{
// TODO: добавьте свой код обработчика уведомлений
}