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

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ти місяців, а потім нажати на кнопку «Ввести данные». Для виводу даних з файлу треба ввести ім’я файлу та натиснути кнопку «Открыть файл» і вам відкриється список хворих. Щоб упорядити інформацію натисніть кнопку «Упорядочить информацию», але перед застосуванням цієї операції треба вивести «Общее кол-во заболевших за полугодие». Для того щоб дізнатись який місяць з найвищім показником хворих, введіть «№ строки», тобто за яку хворобу потрібна інформація і натисніть «Месяц с наивысшим показателем болеющих» Після завершення роботи з програмою закрійте її.

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