- •1 Характеристика мови програмування
- •2.4 Опис класів та методів
- •2.7 Контрольний приклад
- •3.4 Опис класів та методів
- •3.7 Керівництво користувачеві
- •3.4 Опис класів та методів
- •4.7 Контрольний приклад
- •5.4 Опис класів та методів
- •6.4 Опис класів та методів
- •6.7 Контрольний приклад
- •7.4 Опис класів та методів
- •7.7 Контрольний приклад
- •Список використаних джерел
3.4 Опис класів та методів
При реалізації задачі в якості об’єктів розглядаємо форми для обчислення тих чи інших змінних. Для заданих об’єктів в проекті розроблені наступний клас Czz1 з наступною інтерфейсною частиною представленою у підрозділу 2.5 і наступною реалізацію представленою у підрозділу 2.5.
Клас CFox3Dlg (головна форма програми) створений шляхом додавання до базового класу членів змінних та методів.
Клас CFox3Dlg має наступний інтерфейс:
class CFox3Dlg : public CDialog
{// Construction
public:
CFox3Dlg(CWnd* pParent = NULL); // standard constructor
// Dialog Data
//{{AFX_DATA(CFox3Dlg)
enum { IDD = IDD_FOX3_DIALOG };
// NOTE: the ClassWizard will add data members here
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CFox3Dlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
HICON m_hIcon;
// Generated message map functions
//{{AFX_MSG(CFox3Dlg)
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
afx_msg void OnMenuitem32771();
afx_msg void On65535();
afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
//}}AFX_MSG
DECLARE_MESSAGE_MAP() };
Клас Czz1 (форма для роботи з файлом) створений шляхом додавання до базового класу членів змінних та методів.
Клас Czz1 має наступний інтерфейс:
class Czz1 : public CDialog
{ // Construction
public:
Czz1(CWnd* pParent = NULL); // standard constructor
// Dialog Data
//{{AFX_DATA(Czz1)
enum { IDD = IDD_DIALOG1 };
CMSFlexGrid m_mas;
int m_2;
int m_3;
int m_4;
int m_5;
int m_6;
int m_7;
CString m_1;
CString m_name;
int m_x;
//}}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 OnButton2();
afx_msg void OnRadio1();
afx_msg void OnRadio2();
afx_msg void OnRadio3();
//}}AFX_MSG
DECLARE_MESSAGE_MAP() };
Методи є обробниками подій кнопок. Члени змінних додаються до класу за допомогою майстра ClassWizard, шляхом зв’язування об’єктів для вводу значень змінних та заданих ідентифікаторів для змінних, це представлено у таблиці 4.4
Таблиця 4.4 – змінні - члена класу Czz1
|
Ідентифікатор об’єкта |
Ідентифікатор змінної - члена класу |
Тип змінної |
|
IDC_EDIT1 |
m_1 |
CString |
|
IDC_EDIT2 |
m_2 |
int |
|
IDC_EDIT3 |
m_3 |
Int |
|
IDC_EDIT4 |
m_4 |
Int |
|
IDC_EDIT5 |
m_5 |
Int |
|
IDC_EDIT6 |
m_6 |
Int |
|
IDC_EDIT7 |
m_7 |
Int |
|
IDC_EDIT8 |
m_name |
CString |
|
IDC_EDIT10 |
m_x |
Int |
|
IDC_MSFLEXGRID2 |
m_mas |
MSFlexGrid |
4.5 Програмний код
//Блок 1 – метод по обробці кнопки Button1 на формі роботи з файлом
void Czz1::OnButton1()
{ zap pk;
int stolb;
CString s;
int st2,i,j;
UpdateData();
file1.open(m_name,ios::app);
strcpy(pk.b,m_1);
pk.b1=m_2;
pk.b2=m_3;
pk.b3=m_4;
pk.b4=m_5;
pk.b5=m_6;
pk.b6=m_7;
file1.write((char*)&pk,sizeof(zap));
file1.close(); }
//Блок 2 – метод по обробці кнопки Button2 на формі роботи з файлом
void Czz1::OnButton2()
{ int st2,i=2,j,sum;
CString s;
UpdateData();
file1.open(m_name,ios::in);
//col=file1.gcount();
file1.seekg(0);
file1.read((char*)&pk,sizeof(zap));
m_mas.SetCols(9);
m_mas.SetRow(0);
m_mas.SetCol(1);
m_mas.SetText("Болезнь");
m_mas.SetCol(2);
m_mas.SetText("Январь");
m_mas.SetCol(3);
m_mas.SetText("Февраль");
m_mas.SetCol(4);
m_mas.SetText("Ìàðò");
m_mas.SetCol(5);
m_mas.SetText("Апрель");
m_mas.SetCol(6);
m_mas.SetText("Ìàé");
m_mas.SetCol(7);
m_mas.SetText("Èþíü");
m_mas.SetCol(8);
m_mas.SetText("Среднее");
//m_mas.SetRows(2);
while(!file1.eof())
{ m_mas.SetRows(i);
m_mas.SetRow(i-1);
m_mas.SetCol(1);
s.Format("%10s",pk.b);
m_mas.SetText(s);
m_mas.SetCol(2);
s.Format("%5d",pk.b1);
m_mas.SetText(s);
m_mas.SetCol(3);
s.Format("%5d",pk.b2);
m_mas.SetText(s);
m_mas.SetCol(4);
s.Format("%5d",pk.b3);
m_mas.SetText(s);
m_mas.SetCol(5);
s.Format("%5d",pk.b4);
m_mas.SetText(s);
m_mas.SetCol(6);
s.Format("%5d",pk.b5);
m_mas.SetText(s);
m_mas.SetCol(7);
s.Format("%5d",pk.b6);
m_mas.SetText(s);
file1.read((char*)&pk,sizeof(zap));
i++;
sum=0; } strcpy(pk.b,m_1); }
//Блок 3 – метод по обробці кнопки Radio1 на формі роботи з файлом
void Czz1::OnRadio1()
{ col=m_mas.GetRows();
float q,w; int i,priz=1;
CString a12,b12;
while(priz==1)
{ priz=0;
for(i=1;i<col-1;i++)
{ m_mas.SetCol(8);
m_mas.SetRow(i);
q=atof(m_mas.GetText());
m_mas.SetRow(i+1);
w=atof(m_mas.GetText());
if(q>w)
{ m_mas.SetCol(1);
m_mas.SetRow(i);
a12.Format("%5s",m_mas.GetText());
m_mas.SetRow(i+1);
b12.Format("%5s",m_mas.GetText());
m_mas.SetRow(i);
m_mas.SetText(b12);
m_mas.SetRow(i+1);
m_mas.SetText(a12);
m_mas.SetCol(2);
m_mas.SetRow(i);
a12.Format("%5s",m_mas.GetText());
m_mas.SetRow(i+1);
b12.Format("%5s",m_mas.GetText());
m_mas.SetRow(i);
m_mas.SetText(b12);
m_mas.SetRow(i+1);
m_mas.SetText(a12);
m_mas.SetCol(3);
m_mas.SetRow(i);
a12.Format("%5s",m_mas.GetText());
m_mas.SetRow(i+1);
b12.Format("%5s",m_mas.GetText());
m_mas.SetRow(i);
m_mas.SetText(b12);
m_mas.SetRow(i+1);
m_mas.SetText(a12);
m_mas.SetCol(4);
m_mas.SetRow(i);
a12.Format("%5s",m_mas.GetText());
m_mas.SetRow(i+1);
b12.Format("%5s",m_mas.GetText());
m_mas.SetRow(i);
m_mas.SetText(b12);
m_mas.SetRow(i+1);
m_mas.SetText(a12);
m_mas.SetCol(5);
m_mas.SetRow(i);
a12.Format("%5s",m_mas.GetText());
m_mas.SetRow(i+1);
b12.Format("%5s",m_mas.GetText());
m_mas.SetRow(i);
m_mas.SetText(b12);
m_mas.SetRow(i+1);
m_mas.SetText(a12);
m_mas.SetCol(6);
m_mas.SetRow(i);
a12.Format("%5s",m_mas.GetText());
m_mas.SetRow(i+1);
b12.Format("%5s",m_mas.GetText());
m_mas.SetRow(i);
m_mas.SetText(b12);
m_mas.SetRow(i+1);
m_mas.SetText(a12);
m_mas.SetCol(7);
m_mas.SetRow(i);
a12.Format("%5s",m_mas.GetText());
m_mas.SetRow(i+1);
b12.Format("%5s",m_mas.GetText());
m_mas.SetRow(i);
m_mas.SetText(b12);
m_mas.SetRow(i+1);
m_mas.SetText(a12);
m_mas.SetCol(8);
m_mas.SetRow(i);
a12.Format("%5s",m_mas.GetText());
m_mas.SetRow(i+1);
b12.Format("%5s",m_mas.GetText());
m_mas.SetRow(i);
m_mas.SetText(b12);
m_mas.SetRow(i+1);
m_mas.SetText(a12);
priz=1; }}}}
//Блок 4 – метод по обробці кнопки Radio2 на формі роботи з файлом
void Czz1::OnRadio2()
{ int i,j,f=0;
CString s,w;
UpdateData();
i=m_x;
for (j=1;j<=8;j++)
{ m_mas.SetRow(i);
m_mas.SetCol(j);
if (f<=atoi(m_mas.GetText())) f=atoi(m_mas.GetText()); }
UpdateData(false);
m_mas.SetRow(i);
m_mas.SetCol(2);
if (f==atoi(m_mas.GetText())){
s.Format("%d",f);
w="Январь с наивысшим показателем болеющих = "+s; }
m_mas.SetRow(i);
m_mas.SetCol(3);
if (f==atoi(m_mas.GetText())){
s.Format("%d",f);
w=" Февраль с наивысшим показателем болеющих = "+s; }
m_mas.SetRow(i);
m_mas.SetCol(4);
if (f==atoi(m_mas.GetText())){
s.Format("%d",f);
w=" Март с наивысшим показателем болеющих = "+s; }
m_mas.SetRow(i);
m_mas.SetCol(5);
if (f==atoi(m_mas.GetText())){
s.Format("%d",f);
w=" Апрель с наивысшим показателем болеющих = "+s; }
m_mas.SetRow(i);
m_mas.SetCol(6);
if (f==atoi(m_mas.GetText())){
s.Format("%d",f);
w=" Май с наивысшим показателем болеющих = "+s; }
m_mas.SetRow(i);
m_mas.SetCol(7);
if (f==atoi(m_mas.GetText())){
s.Format("%d",f);
w=" Июнь с наивысшим показателем болеющих = "+s;
} MessageBox(w); }
//Блок 5 – метод по обробці кнопки Radio3 на формі роботи з файлом
void Czz1::OnRadio3()
{ int st2,i=2,j,sum=0;
CString s,w;
UpdateData();
file1.close();
file1.open(m_name,ios::in);
file1.seekg(0);
file1.read((char*)&pk,sizeof(zap));
m_mas.SetCols(9);
while(!file1.eof())
{ sum=0;
m_mas.SetRows(i);
m_mas.SetRow(i-1);
m_mas.SetCol(1);
s.Format("%10s",pk.b);
m_mas.SetText(s);
m_mas.SetCol(2);
s.Format("%5d",pk.b1);
m_mas.SetText(s);
m_mas.SetCol(3);
s.Format("%5d",pk.b2);
m_mas.SetText(s);
sum+=atoi(m_mas.GetText());
m_mas.SetCol(4);
s.Format("%5d",pk.b3);
m_mas.SetText(s);
sum+=atoi(m_mas.GetText());
m_mas.SetCol(5);
s.Format("%5d",pk.b4);
m_mas.SetText(s);
sum+=atoi(m_mas.GetText());
m_mas.SetCol(6);
s.Format("%5d",pk.b5);
m_mas.SetText(s);
sum+=atoi(m_mas.GetText());
m_mas.SetCol(7);
s.Format("%5d",pk.b6);
m_mas.SetText(s);
sum+=atoi(m_mas.GetText());
w.Format("%5d",sum);
m_mas.SetCol(8);
m_mas.SetText(w);
file1.read((char*)&pk,sizeof(zap));
i++; } strcpy(pk.b,m_1); }
4.6 Керівництво користувачеві
Для запуску програми запустити файл Fox3.exe. Після чого з’явиться меню програми або можна визвати контекстне меню, представлене на рисунку 4.3

Рисунок 4.3 – контекстне меню програми
Для розв’язання задачі з файлами необхідно натиснути на кнопку «Статистика заболеваемости за полугодие» в меню «Файл». Після чого з’явиться форма з умовою задачі та вводу даних для розв’язання задачі, яка представлена на рисунку 4.4.

Рисунок 4.3 – Статистика заболеваемости за полугодие.
Для внесення даних у файл треба указати ім’я файлу, заповнити Болезнь та записати кількість хворих за кожен з 6ти місяців, а потім нажати на кнопку «Ввести данные». Для виводу даних з файлу треба ввести ім’я файлу та натиснути кнопку «Открыть файл» і вам відкриється список хворих. Щоб упорядити інформацію натисніть кнопку «Упорядочить информацию», але перед застосуванням цієї операції треба вивести «Общее кол-во заболевших за полугодие». Для того щоб дізнатись який місяць з найвищім показником хворих, введіть «№ строки», тобто за яку хворобу потрібна інформація і натисніть «Месяц с наивысшим показателем болеющих» Після завершення роботи з програмою закрійте її.
