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

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

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

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

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

class CFox4Dlg : public CDialog

{// Construction

public:

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

// Dialog Data

//{{AFX_DATA(CFox4Dlg)

enum { IDD = IDD_FOX4_DIALOG };

float m_x;

int m_k;

double m_res;

//}}AFX_DATA

// ClassWizard generated virtual function overrides

//{{AFX_VIRTUAL(CFox4Dlg)

protected:

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

//}}AFX_VIRTUAL

// Implementation

protected:

HICON m_hIcon;

// Generated message map functions

//{{AFX_MSG(CFox4Dlg)

virtual BOOL OnInitDialog();

afx_msg void OnSysCommand(UINT nID, LPARAM lParam);

afx_msg void OnPaint();

afx_msg HCURSOR OnQueryDragIcon();

virtual void OnOK();

afx_msg void OnButton1();

afx_msg void OnButton2();

//}}AFX_MSG

DECLARE_MESSAGE_MAP() };

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

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

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

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

Тип змінної

IDC_EDIT1

m_k

Int

IDC_EDIT2

m_x

Float

IDC_EDIT3

m_res

double

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

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

class Cd

{float x;

int k;

public:

double rs2();

double rs1();

Cd(int,float);

virtual ~Cd(); };

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

//Блок 1 – реалізація головного класу Сd, для розрахунку завдання.

Cd::Cd() //Конструктор за умовчанням

{

}

Cd::Cd(int k1,float x1) // • Конструктор для ініціалізації;

{

x=x1;k=k1;

}

Cd::~Cd()//деструктор

{

x=0;

k=0;

}

double Cd::rs1() //Функція розрахунку добутку ряду;

{

int i;

double pr=1;

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

pr=pr*((2*i-1)/(cos(i*x)/sin(i*x))+sqrt(fabs(pow(i,2)*x)));

return pr;

}

double Cd::rs2() // Функція розрахунку суми ряду;

{

int i;

double pr=0;

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

pr=pr+((2*i-1)/(cos(i*x)/sin(i*x))+sqrt(fabs(pow(i,2)*x)));

return pr;

}

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

void CFox4Dlg::OnButton1()

{ UpdateData();

if (m_k<=0) {MessageBox("K не может быть меньше 1");} else {

Cd ob1(m_k,m_x);

m_res=ob1.rs1();}

UpdateData(false);}

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

void CFox4Dlg::OnButton2()

{ UpdateData();

if (m_k<=0) {MessageBox("K не может быть меньше 1");} else {

Cd ob1(m_k,m_x);

m_res=ob1.rs2();}

UpdateData(false); }

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

void CFox4Dlg::OnOK()

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

CString Title = "Завершение работы";

UINT nType = MB_ICONQUESTION | MB_YESNO | MB_DEFBUTTON2 ;

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

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

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

Для запуску програми запустити файл Fox4.exe. На головній формі розташовані розрахунки завдань, представлених на рисунку 5.2.

Рисунок 5.2 – Головне вікно та вікно для розрахунків

Для розрахунку значення змінних P та S треба задати данні x будь якого типу та кількість членів ряду цілого типу. Для виводу результатів треба натиснути ліву кнопку «Автопроизв» або праву «Автосумма». Після завершення роботи з програмою натисніть на кнопку «EXIT».

5.7 Контрольний приклад

Контрольний приклад для суми та добутку ряду який представлений в таблиці 5.3.

Таблиця 5.3 – Контрольний приклад суми та добутку ряду

Тесту

Кількість членів ряду

Значення змінної Х

Розрахунок суми за формулой (2.1)

Розрахунок добутку за формулой (2.2)

1.

1

3

1.589

1.589

2

4.180

4.118

3

7.115

12.086

4

9.592

29.939

5

10.548

28.631

Вихідна інформація:

33.024

76.363

Тесту

Кількість членів ряду

Значення змінної Х

Розрахунок суми за формулой (2.1)

Розрахунок добутку за формулой (2.2)

2.

1

8

-3.971

-3.971

2

2.587

-26.046

3

0.398

57.021

Вихідна інформація:

-1.972

27.004

6 ЗАВДАННЯ №5

6.1 Постановка задачі

Основною метою завдання №5 є здійснення розрахунків за допомогою персонального комп’ютера. Задача передбачає виконання такої задачі:

Створити функції обчислення об’єму кулі по формулі (6.1) і циліндру по формулі (6.2)

, (6.1)

, (6.2)

Створити додаток з використанням принципу поліморфізм. Розробити функцію та пере грузити її (ДІАЛОГ1) і шаблон для функції (ДІАЛОГ2). Для реалізації завдання №5 необхідно створити проект який мав би зручний інтерфейс.

6.2 Алгоритм розв’язання задачі

Для розв’язання задачі необхідно проводити обчислення об'єму кулі та конусу в підставі якого куля яка розраховуються за спеціальною формулою (6.1). Будемо вважати, що результатом є деякий об’єкт для якого необхідно ввести данні, обчислити та вивести результати на екран.

Алгоритм виконання задачі передбачає організацію роботи з вказаним об’єктом, а тому для об’єкту треба створити клас, в класі передбачити усі члени – змінні для розрахунку та члени – методи для організації зв’язку об’єкту з навколишніми діями над даними об’єктами. Опис класу представлений у розділі 6.5 блок 1, а тому алгоритм розв’язання задачі можна розбити на 2 етапи:

  • алгоритм методів класу:;

  • алгоритм вводу та виводу даних та взаємозв’язку об’єктів з навколишніми даними.

Алгоритм методів класу.

  1. Алгоритм знаходження об'єму кулі

    1. Ввести змінну R;

    2. Перевірити умову, якщо R дорівнює 0, віидати повідомлення «Нет такого шара радиус которого равен 0» і перейти до пункту 1.1. Якщо умова не здійснюється перейти до пункту 1.3.

    3. Перевірити умову, якщо R менше 0, віидати повідомлення «Радиус не может быть меньше 0» і перейти до пункту 1.1. Якщо умова не здійснюється перейти до пункту 1.4.

    4. Розрахувати об'єм кулі по формулі 6.1

  1. Алгоритм знаходження об'єму циліндру

    1. Ввести змінні R та h за клавіатури

    2. Перевірити умову, якщо R дорівнює 0, віидати повідомлення «Нет такого цилиндра радиус которого равен 0» і перейти до пункту 2.1. Якщо умова не здійснюється перейти до пункту 2.3.

    3. Перевірити умову, якщо h дорівнює 0, віидати повідомлення «Нет такого цилиндра высота которого равна 0» і перейти до пункту 2.1. Якщо умова не здійснюється перейти до пункту 2.4.

2.4) Розрахувати об'єм конусу в підставі якого куля по формулі 6.2

Алгоритм вводу та виводу даних та взаємозв’язку об’єктів за навколишніми даними.

  1. Створюємо об’єкт класу Csv;

6.3 Проектування форм

Для реалізації завдання 5 створимо діалоговий додаток який має наступні форми:

  1. Меню;

  2. Форма перегрузки;

  3. Форма шаблону.

Спроектувати меню у відповідності з рисунком 6.1

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

Спроектувати форму перегрузки у відповідності з рисунком 6.2.

Рисунок 6.2 – Форма перегрузки

Задати властивості елементам згідно таблиці 6.1

Таблиця 6.1 – Об’єкти форми перегрузки

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

Властивість об’єкта

Значення об’єкта

IDC_BUTTON1

Caption

Вичислення об’єму кулі

IDC_BUTTON2

Caption

ВИХІД

IDC_BUTTON3

Caption

Вичислення об’єму циліндру

IDC_STATIC

GroupBox

Ввод данных

IDC_STATIC

GroupBox

Вивод

IDC_STATIC1

Text

R радіус

IDC_STATIC2

Text

Н висота

Спроектувати форму шаблону у відповідності з рисунком 6.3.

Рисунок 6.2 – Форма шаблону

Задати властивості елементам згідно таблиці 6.2

Таблиця 6.2 – Об’єкти форми шаблону

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

Властивість об’єкта

Значення об’єкта

IDC_BUTTON1

Caption

Вичислення об’єму кулі

IDC_BUTTON2

Caption

ВИХІД

IDC_BUTTON3

Caption

Вичислення об’єму циліндру

IDC_STATIC

GroupBox

Ввод данных

IDC_STATIC

GroupBox

Вивод

IDC_STATIC1

Text

R радіус

IDC_STATIC2

Text

Н висота

IDB_BITMAP1

Picture

Bitmap

IDB_BITMAP2

Picture

Bitmap

Спроектувати головне меню програми у відповідності з рисунком 6.3.

Рисунок 6.3 – Головне меню

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