Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
otchet.docx
Скачиваний:
8
Добавлен:
26.03.2015
Размер:
1.27 Mб
Скачать

3.4 Опис класів та методів

При реалізації задачі в якості об’єктів розглядаємо форми для обчислення тих чи інших змінних. Для заданих об’єктів в проекті розроблені наступні класи Czz1, Czz2 з наступними інтерфейсними частинами представлених у підрозділу 2.5 і наступною реалізацію представленою у підрозділу 2.5.

Клас Czz1 (форма одномірного масиву) створений шляхом додавання до базового класу членів змінних та методів.

Клас Czz1 має наступний інтерфейс:

class Czz1 : public CDialog

{// Construction

public:

Czz1(CWnd* pParent = NULL); // standard constructor

// Dialog Data

//{{AFX_DATA(Czz1)

enum { IDD = IDD_DIALOG1 };

int m_i;

CMSFlexGrid m_mas;

int m_a;

//}}AFX_DATA

// Overrides

// ClassWizard generated virtual function overrides

//{{AFX_VIRTUAL(Czz1)

protected:

virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support

//}}AFX_VIRTUAL

// Implementation

protected:

// Generated message map functions

//{{AFX_MSG(Czz1)

afx_msg void OnButton1();

afx_msg void OnRadio1();

afx_msg void OnButton2();

afx_msg void OnRadio2();

afx_msg void OnRadio3();

//}}AFX_MSG

DECLARE_MESSAGE_MAP() };

Методи є обробниками подій кнопок. Члени змінних додаються до класу за допомогою майстра ClassWizard, шляхом зв’язування об’єктів для вводу значень змінних та заданих ідентифікаторів для змінних, це представлено у таблиці 3.3

Таблиця 3.3 – змінні - члена класу Czz1

Ідентифікатор об’єкта

Ідентифікатор змінної - члена класу

Тип змінної

IDC_EDIT1

m_i

int

IDC_EDIT2

m_a

int

IDC_MSFLEXGRID1

m_mas

CMSFlexGrid

Клас Czz2 (форма двомірного масиву) створений шляхом додавання до базового класу членів змінних та методів.

Клас Czz2 має наступний інтерфейс:

class Czz2 : public CDialog

{

// Construction

public:

Czz2(CWnd* pParent = NULL); // standard constructor

// Dialog Data

//{{AFX_DATA(Czz2)

enum { IDD = IDD_DIALOG2 };

int m_i;

int m_j;

CMSFlexGrid m_mas;

//}}AFX_DATA

// Overrides

// ClassWizard generated virtual function overrides

//{{AFX_VIRTUAL(Czz2)

protected:

virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support

//}}AFX_VIRTUAL

// Implementation

protected:

// Generated message map functions

//{{AFX_MSG(Czz2)

afx_msg void OnButton1();

afx_msg void OnRadio1();

afx_msg void OnRadio3();

afx_msg void OnRadio2();

//}}AFX_MSG

DECLARE_MESSAGE_MAP() };

Методи є обробниками подій кнопок. Члени змінних додаються до класу за допомогою майстра ClassWizard, шляхом зв’язування об’єктів для вводу значень змінних та заданих ідентифікаторів для змінних, це представлено у таблиці 3.4

Таблиця 3.4 – змінні - члена класу Czz2

Ідентифікатор об’єкта

Ідентифікатор змінної - члена класу

Тип змінної

IDC_EDIT1

m_i

int

IDC_EDIT2

m_j

int

IDC_MSFLEXGRID1

m_mas

CMSFlexGrid

3.5 Програмний код

//Блок 1 – метод по обробці кнопки Button1 на формі одномірного масиву

void Czz1::OnButton1()

{ int stolb;

CString s;

int st2,i,j;

UpdateData();

stolb=m_i;

m_mas.SetCols(stolb);

m_mas.SetRows(1);

int *mas=new int [stolb];

m_mas.SetRow(0);

for (j=0;j<stolb;j++)

{ m_mas.SetCol(j);

mas[j]=rand()%801-400;

s.Format("%d",mas[j]);

m_mas.SetText(s); }}

//Блок 2 – метод по обробці кнопки Button2 на формі одномірного масиву

void Czz1::OnButton2()

{ CString Message = " Вы действительно хотите завершить работу?" ;

CString Title = "Завершить работу";

UINT nType = MB_ICONQUESTION | MB_YESNO | MB_DEFBUTTON2 ;

int anser = MessageBox ( Message , Title , nType ) ;

if (anser==IDYES) CDialog:: OnOK(); }

//Блок 3 – метод по обробці кнопки Radio1 на формі одномірного масиву

void Czz1::OnRadio1()

{ int p=1,pr=0;

int stolb;

CString s;

int st2,i,j;

UpdateData();

stolb=m_i;

m_mas.SetRow(0);

for (j=0;j<stolb;j++){

m_mas.SetCol(j);

if ((atoi(m_mas.GetText())>9)&&(atoi(m_mas.GetText())<100))

{ pr=1;p*=atoi(m_mas.GetText()); }}

if (pr==0) {MessageBox("Нет двузначных элементов в данном массиве"); }

else{s.Format("%d",p);s="Произведение двузначных чисел = "+s; MessageBox(s);}}

//Блок 4 – метод по обробці кнопки Radio2 на формі одномірного масиву

void Czz1::OnRadio2()

{ int p=1,pr=0;

int stolb;

CString s;

int st2,i,j;

UpdateData();

stolb=m_i;

m_mas.SetRow(0);

for (j=0;j<stolb;j++){

m_mas.SetCol(j);

if ((abs(atoi(m_mas.GetText()))>50)&&(atoi(m_mas.GetText())%2==0)&&(atoi(m_mas.GetText())%3==0)) {pr=pr+1;}}

if (pr==0) {MessageBox("Нет элементов превышающих 50 и кратных 2 или 3");}

else{s.Format("%d",p);s="Кол-во чисел превышаюших 50 и кратных 2 и 3 = "+s; MessageBox(s);}}

//Блок 5 – метод по обробці кнопки Radio3 на формі одномірного масиву

void Czz1::OnRadio3()

{ int p=1,pr=0;

int stolb;

CString s,d;

int st2,i,j,ww,qq;

UpdateData();

stolb=m_i;

m_mas.SetRow(0);

for (j=0;j<stolb-1;j++){

m_mas.SetCol(j);

ww=atoi(m_mas.GetText());

m_mas.SetCol(j+1);

qq=atoi(m_mas.GetText());

if ((ww>0)&&(qq<0)||(ww<0)&&(qq>0))

{ if (qq+ww<m_a) {

s.Format("%d",ww);

d.Format("%d",qq);

s="Первое число = "+s +"; Второе число = "+d; MessageBox(s); break; } else {s="Нема пари сумма яких менш А "; MessageBox(s);}}}}

//Блок 6 – метод по обробці кнопки Button1 на формі двомірного масиву

void Czz2::OnButton1()

{ int stolb;

CString s;

int st2,i,j;

UpdateData();

stolb=m_i+1;

st2=m_j+1;

m_mas.SetCols(stolb);

m_mas.SetRows(st2);

int **mas=new int *[st2];

for (i=1;i<st2;i++)

mas[i]=new int [stolb];

for (i=1;i<st2;i++)

for (j=1;j<stolb;j++)

{ m_mas.SetRow(i);

m_mas.SetCol(j);

mas[i][j]=rand()%801-400;

s.Format("%d",mas[i][j]);

m_mas.SetText(s); }}

//Блок 7 – метод по обробці кнопки Radio1 на формі двомірного масиву

void Czz2::OnRadio1()

{ int p=1,pr=0;

int stolb;

CString s,w;

int st2,i,j;

UpdateData();

stolb=m_i+1;

st2=m_j+1;

for (i=1;i<st2;i++)

for (j=1;j<stolb;j++){

m_mas.SetRow(i);

m_mas.SetCol(j);

if ((atoi(m_mas.GetText())>0)&&(atoi(m_mas.GetText())%5==0))

{ pr=1;

w.Format("%d",atoi(m_mas.GetText()));

s=s+w+"; "; }}

if (pr==0) {MessageBox("Нет элементов кратных 5 в данном массиве");}

else{s="Положительные эл-ты кратные 5 = "+s; MessageBox(s);}}

//Блок 8 – метод по обробці кнопки Radio2 на формі двомірного масиву

void Czz2::OnRadio2()

{ int p=0,pr=0,min,max;

int stolb,minI,minJ,maxI,maxJ;

CString s,w,mn,mx,sw,st,qw,minS,maxS;

int st2,i,j;

UpdateData();

stolb=m_i+1;

st2=m_j+1;

for (j=0;j<stolb-1;j++)

{ m_mas.SetRow(1);

m_mas.SetCol(j+1);

min=atoi(m_mas.GetText());

max=atoi(m_mas.GetText());

minI=1;

minJ=j+1;

maxI=1;

maxJ=j+1;

for (i=0;i<st2-1;i++)

{ m_mas.SetRow(i+1);

m_mas.SetCol(j+1);

if (min>atoi(m_mas.GetText())) {

min=atoi(m_mas.GetText());

mn.Format("%d",min);

s=mn;

minI=i+1; }

if (max<atoi(m_mas.GetText())) {

max=atoi(m_mas.GetText());

mx.Format("%d",max);

w=mx;

maxI=i+1; }}

m_mas.SetRow(1);

minS=m_mas.GetText();

m_mas.SetRow(minI);

m_mas.SetText(minS);

m_mas.SetRow(1);

mn.Format("%d",min);

m_mas.SetText(mn);

m_mas.SetRow(st2-1);

maxS=m_mas.GetText();

m_mas.SetRow(maxI);

m_mas.SetText(maxS);

m_mas.SetRow(st2-1);

mx.Format("%d",max);

m_mas.SetText(mx); }}

//Блок 9 – метод по обробці кнопки Radio3 на формі двомірного масиву

void Czz2::OnRadio3()

{ int p=0,pr=0;

int stolb;

CString s,w;

int st2,i,j;

UpdateData();

stolb=m_i+1;

st2=m_j+1;

for (i=1;i<st2;i++)

for (j=1;j<stolb;j++){

m_mas.SetRow(i);

m_mas.SetCol(j);

if (atoi(m_mas.GetText())>0)

{ pr=1;

p=p+atoi(m_mas.GetText()); }}

if (pr==0) {MessageBox("Нет положительных эл-тов в данном массиве");}

else{s.Format("%d",p);s="Сумма положительных эл-ов = "+s; MessageBox(s);}}

3.6 Керівництво користувачеві

Для запуску програми запустити файл Fox2.exe. Після чого з’явиться меню програми, представлене на рисунку 3.3

Рисунок 3.3 – Меню

Для розв’язання задачі одномірного масиву необхідно натиснути на кнопку «Вычисления» - «Одномерные массивы», або на картинку яка відображена на рисунку 3.4.

Рисунок 3.4 – Кнопка для одномірного масиву

. Після чого з’явиться форма з умовою задачі та вводу даних для розв’язання задачі, яка представлена на рисунку 3.5

Рисунок 3.5 – Форма одномірного масиву

Для розрахунку треба задати данні А дійсного типу, кількість елементів, та автоматично ввести самі елементи. Для виводу результатів треба натиснути кнопки, які виконують розрахунки. Після завершення роботи з програмою натисніть на кнопку «ВИХІД».

Для розв’язання задачі двомірного масиву необхідно натиснути на кнопку «Розрахунок» - «Задача 2», або на картинку яка відображена на рисунку 3.6.

Рисунок 3.6 – Кнопка для двомірного масиву

Після чого з’явиться форма з умовою задачі та вводу даних для розв’язання задачі, яка представлена на рисунку 3.7

Рисунок 3.7 – Форма двомірного масиву

Для розрахунку треба задати розмірність масиву та ввести самі елементи автоматично. Для виводу результатів треба натиснути кнопки, які виконують розрахунки – «Значення кратні 5», «В кожному стовбці макс і мін єл поміняти з першим і останнім», «Визначити суму позитивних елементів». Після закінчення роботи з програмою закрийте вікно програми.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]