- •1 Характеристика мови програмування
- •2.4 Опис класів та методів
- •2.7 Контрольний приклад
- •3.4 Опис класів та методів
- •3.7 Керівництво користувачеві
- •3.4 Опис класів та методів
- •4.7 Контрольний приклад
- •5.4 Опис класів та методів
- •6.4 Опис класів та методів
- •6.7 Контрольний приклад
- •7.4 Опис класів та методів
- •7.7 Контрольний приклад
- •Список використаних джерел
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 етапи:
-
алгоритм методів класу:;
-
алгоритм вводу та виводу даних та взаємозв’язку об’єктів з навколишніми даними.
Алгоритм методів класу.
-
Алгоритм знаходження об'єму кулі
-
Ввести змінну R;
-
Перевірити умову, якщо R дорівнює 0, віидати повідомлення «Нет такого шара радиус которого равен 0» і перейти до пункту 1.1. Якщо умова не здійснюється перейти до пункту 1.3.
-
Перевірити умову, якщо R менше 0, віидати повідомлення «Радиус не может быть меньше 0» і перейти до пункту 1.1. Якщо умова не здійснюється перейти до пункту 1.4.
-
Розрахувати об'єм кулі по формулі 6.1
-
Алгоритм знаходження об'єму циліндру
-
Ввести змінні R та h за клавіатури
-
Перевірити умову, якщо R дорівнює 0, віидати повідомлення «Нет такого цилиндра радиус которого равен 0» і перейти до пункту 2.1. Якщо умова не здійснюється перейти до пункту 2.3.
-
Перевірити умову, якщо h дорівнює 0, віидати повідомлення «Нет такого цилиндра высота которого равна 0» і перейти до пункту 2.1. Якщо умова не здійснюється перейти до пункту 2.4.
-
2.4) Розрахувати об'єм конусу в підставі якого куля по формулі 6.2
Алгоритм вводу та виводу даних та взаємозв’язку об’єктів за навколишніми даними.
-
Створюємо об’єкт класу Csv;
6.3 Проектування форм
Для реалізації завдання 5 створимо діалоговий додаток який має наступні форми:
-
Меню;
-
Форма перегрузки;
-
Форма шаблону.
Спроектувати меню у відповідності з рисунком 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 – Головне меню