Drop Down MenusCSS Drop Down MenuPure CSS Dropdown Menu

вівторок, 9 травня 2017 р.

Програма "Матриця"

Напевно усі читачі моєї статі дивилися фільм "Матриця". Напевно ви пам'ятаєте там зелений екран з цифрами та символами:



Так ось сьогодні ми спробуємо зробити програму яка буде нескінченно змінювати цифри і виводити їх в текстовому документі:







Почнемо!

Запускаємо Visual Studio та налаштовуємо там все. Після налаштування через Solution Explorer відкриваємо ProgramDlg.h


Знизу видаляємо весь код, та замість нього пишемо
private: 

COLORREF cf, c[25];

HFONT hold, hNew, hbk;

HPEN hPenOxy, hOldPen, pen;
HBRUSH m, oldm, brush;
CPen d, oldd;
CBitmap pic;
CRect rc, w, kw[30];

CString ms, t, z;

int Matrix[50][50];
int x1, y1, x2, y2, x3, y3, x4, y4;
int RH, RW, k, i, j, p, x, y, cx, cy, dx, dy;

bool fg;
        DECLARE_MESSAGE_MAP()
public:
CStatic E;
};





Потім зверху вписуємо:

#define pi 3.14159265358979323846


#include "afxwin.h"


Після чого відкриваємо діалогову планшетку





Взявши до рук інструменти з Toolbox майструємо ось таке діалогове вікно




Викликавши налаштування "Static" редагуємо в  ID -> IDC_STATIC на IDC_E.

Викликавши налаштування "ГЕНЕРИРОВАТЬ" додаємо через Add Event Handler у код цю клавішу



Потім у доданому нами коді вписуємо:




ms = "\n\tИсходная матрица:\n\n";




int a = 10;

int b = 99;
int TAB[8][8];

for (k = 0; k < 8; k++)
{
  for (i = 0; i < 8; i++)
  {
   TAB[k][i] = a + rand() % (b - a + 1);
   int p = TAB[k][i];
   t.Format(L"\t%i", p);
   ms += t;
  }
  ms += "\n";
}

E.SetWindowTextW(ms);

setlocale(LC_ALL, "rus");
CStdioFile inf(L"d:\\temp\\data.txt", CFile::modeCreate | CFile::modeWrite);
inf.WriteString(ms); // записать в файл
inf.Flush();
inf.Close();
ShellExecute(m_hWnd, L"open", L"d:\\temp\\data.txt", NULL, NULL, SW_SHOWDEFAULT);





Потім замість:

CProgramDlg::CProgramDlg(CWnd* pParent /*=NULL*/)
: CDialog(CProgramDlg::IDD, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CProgramDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);

c[0] = 0xFF00FF;
c[1] = 0xFFA500;
c[2] = 0xFFFF;
c[3] = 0x0C7800;
c[4] = 0x005690;
c[5] = 0xFFFF0000;
c[6] = 0xCC00AA;
c[7] = 0xAA5600;
c[8] = 0xAAAA;
c[9] = 0x00CC00;
c[10] = 0x090056;
c[11] = 0xF0F0F0;

fg = true;

SetWindowTextW(L"Program");

}
Вписуємо:

CProgramDlg::CProgramDlg(CWnd* pParent /*=NULL*/)
: CDialog(IDD_PROGRAM_DIALOG, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
srand((unsigned)time(NULL));
}

void CProgramDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);

fg = true;
SetWindowTextW(L"Матрица случайных чисел");
DDX_Control(pDX, IDC_E, E);
E.SetWindowTextW(L"\n\n\tНажмите кнопку <ГЕНЕРИРОВАТЬ>");

}


Після чого додаємо у бібліотеку коду:

#include <time.h>
#include <iostream>

using namespace std;
Запускаємо проект:




Погрались та й годі. Тепер подуємо гістограму в Excel.

По - перше в утвореному файлі data виділяємо та копіюємо усі числа


Потім запускаємо Excel


Та вставляємо скопійовані числа.


Потім виділяємо їх та у розділі "Вставка" шукаємо "Линейчатые гистограммы".
Та переміщаємо її на окрему сторінку



Все готово!!!


Дякую за увагу!!!


Якщо вам не сподобалось програмувати та створювати діаграми передивіться усі частини фільму "Матриця")))!!!


Немає коментарів:

Дописати коментар