48606 (588579), страница 9
Текст из файла (страница 9)
Data();
public:
virtual ~Data();
virtual void RemoveAll()=0;
virtual bool Add(int*)=0;
virtual void Remove()=0;
};
Реализация класса Data
#include "StdAfx.h"
#include "Data.h"
Data::Data(){}
Data::~Data(){}
Представление и определение класса Leikoformula
#pragma once
#include "Data.h"
class CDialog;
class Leikoformula: public Data
{
private:
int Sum;
public:
Leikoformula();
int & GetSum();
static bool Create(CDialog ** dForm,Data** pData);
virtual void RemoveAll();
virtual bool Add(int * pLeikoformula);
virtual void Remove();
int NORMOBLAST;
int PALOCHKOYADERN;
int SEGMEHTARN;
int MONOCIT;
int LIMFOCIT;
int MIELOCIT;
int METAMELOCIT;
int EOZILOFIL;
int BAZOFIL;
};
Реализация класса Leikoformula
#include "StdAfx.h"
#include "Leikoformula.h"
#include "Form.h"
Leikoformula::Leikoformula():Data(),PALOCHKOYADERN(0),SEGMEHTARN(0),MONOCIT(0),LIMFOCIT(0),MIELOCIT(0),METAMELOCIT(0),EOZILOFIL(0),BAZOFIL(0),NORMOBLAST(0),Sum(0)
{
}
int & Leikoformula::GetSum()
{
return Sum;
}
void Leikoformula::RemoveAll()
{
PALOCHKOYADERN=SEGMEHTARN=MONOCIT=LIMFOCIT=MIELOCIT=METAMELOCIT=EOZILOFIL=BAZOFIL=NORMOBLAST=Sum=0;
}
bool Leikoformula::Add(int * pLeikoformula)
{
if(100<=Sum)return false;
Sum++;
(*pLeikoformula)++;
return true;
}
void Leikoformula::Remove()
{
if(0 } bool Leikoformula::Create(CDialog ** dForm,Data** pData) { if((*dForm)&&(*dForm)->IsKindOf(RUNTIME_CLASS(Form_Leikoformula)))return false; if((*dForm)){(*dForm)->DestroyWindow();delete (*dForm);(*dForm)=0;} (*dForm)=new Form_Leikoformula(); if((*pData)){delete (*pData);(*pData)=0;} (*pData)=new Leikoformula; ((Form_Leikoformula*)*dForm)->pData=(*pData); return true; } Реализация класса Mielogramma #include "StdAfx.h" #include "Mielogramma.h" #include "Form.h" Mielogramma::Mielogramma():Data(),PALOCHKOYADERN(0),SEGMEHTARN(0),MONOCIT(0),LIMFOCIT(0),MIELOCIT(0),METAMELOCIT(0),EOZILOFIL(0),BAZOFIL(0) ,_9(0) ,_10(0) ,_11(0) ,_12(0) ,_13(0) ,_14(0) ,_15(0) ,_16(0) ,_17(0) ,_18(0) ,_19(0) ,_20(0) ,_21(0) ,_22(0) ,_23(0) ,_24(0) { } Mielogramma::~Mielogramma(){} bool Mielogramma::Create(CDialog ** dForm,Data** pData) { if((*dForm)&&(*dForm)->IsKindOf(RUNTIME_CLASS(Form_Mielogramma)))return false; (*dForm)->DestroyWindow(); if((*dForm)){delete (*dForm);(*dForm)=0;} (*dForm)=new Form_Mielogramma(); if((*pData)){delete (*pData);(*pData)=0;} (*pData)=new Mielogramma; ((Form_Mielogramma*)*dForm)->pData=(*pData); return true; } void Mielogramma::RemoveAll() { PALOCHKOYADERN=SEGMEHTARN=MONOCIT=LIMFOCIT=MIELOCIT=METAMELOCIT=EOZILOFIL=BAZOFIL=_9=_10=_11=_12=_13=_14=_15=_16=_17=_18=_19=_20=_21=_22=_23=_24=0; } bool Mielogramma::Add(int * pMielogramma) { (*pMielogramma)++; return true; } void Mielogramma::Remove(){} Представление и определение класса Trombocity #pragma once #include "Data.h" class Data; class CDialog; class Trombocity: public Data { public: Trombocity(); ~Trombocity(); static bool Create(CDialog ** dForm,Data** pData); virtual void RemoveAll(); virtual bool Add(int * pTrombocity); virtual void Remove(); }; Реализация класса Trombocity #include "StdAfx.h" #include "Trombocity.h" #include "Form.h" Trombocity::Trombocity():Data(){} Trombocity::~Trombocity(){} bool Trombocity::Create(CDialog ** dForm,Data** pData) { if((*dForm)&&(*dForm)->IsKindOf(RUNTIME_CLASS(Form_Trombocity)))return false; (*dForm)->DestroyWindow(); if((*dForm)){delete (*dForm);(*dForm)=0;} (*dForm)=new Form_Trombocity(); if((*pData)){delete (*pData);(*pData)=0;} (*pData)=new Trombocity; ((Form_Trombocity*)*dForm)->pData=(*pData); return true; } void Trombocity::RemoveAll(){} bool Trombocity::Add(int * pTrombocity){return 1;} void Trombocity::Remove(){} Представление и определение классов: Form_Leikoformula, Form_Mielogramma, Form_Trombocity. #pragma once #include "resource.h" class Data; class Form_Leikoformula : public CDialog { DECLARE_DYNAMIC(Form_Leikoformula) public: Form_Leikoformula(CWnd* pParent = NULL); // standard constructor virtual ~Form_Leikoformula(); enum { IDD = IDD_FORM_LEIKOFORMULA }; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support DECLARE_MESSAGE_MAP() public: Data * pData; }; class Form_Mielogramma : public CDialog { DECLARE_DYNAMIC(Form_Mielogramma) public: Form_Mielogramma(CWnd* pParent = NULL); // standard constructor virtual ~Form_Mielogramma(); enum { IDD = IDD_FORM_MIELOGRAMMA }; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support DECLARE_MESSAGE_MAP() public: Data * pData; }; class Form_Trombocity : public CDialog { DECLARE_DYNAMIC(Form_Trombocity) public: Form_Trombocity(CWnd* pParent = NULL); // standard constructor virtual ~Form_Trombocity(); enum { IDD = IDD_FORM_TROMBOCITY }; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support DECLARE_MESSAGE_MAP() public: Data * pData; }; Реализация классов: Form_Leikoformula, Form_Mielogramma, Form_Trombocity. #include "stdafx.h" #include "Hematology_Counter.h" #include "Form.h" #include "Leikoformula.h" IMPLEMENT_DYNAMIC(Form_Leikoformula, CDialog) Form_Leikoformula::Form_Leikoformula(CWnd* pParent /*=NULL*/) : CDialog(Form_Leikoformula::IDD, pParent),pData(NULL) { } Form_Leikoformula::~Form_Leikoformula() { } void Form_Leikoformula::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); if(!pData)return; Leikoformula* LEIKOFORMULA=(Leikoformula*)pData; DDX_Text(pDX, IDC_STATIC_PALOCHKOYADERN,LEIKOFORMULA->PALOCHKOYADERN); DDX_Text(pDX, IDC_STATIC_SEGMEHTARN,LEIKOFORMULA->SEGMEHTARN); DDX_Text(pDX, IDC_STATIC_MONOCIT, LEIKOFORMULA->MONOCIT); DDX_Text(pDX, IDC_STATIC_LIMFOCIT, LEIKOFORMULA->LIMFOCIT); DDX_Text(pDX, IDC_STATIC_MIELOCIT,LEIKOFORMULA->MIELOCIT); DDX_Text(pDX, IDC_STATIC_METAMELOCIT, LEIKOFORMULA->METAMELOCIT); DDX_Text(pDX, IDC_STATIC_EOZILOFIL,LEIKOFORMULA->EOZILOFIL); DDX_Text(pDX, IDC_STATIC_BAZOFIL, LEIKOFORMULA->BAZOFIL); DDX_Text(pDX, IDC_STATIC_NORMOBLAST,LEIKOFORMULA->NORMOBLAST); DDX_Text(pDX, IDC_STATIC_SUM, LEIKOFORMULA->GetSum()); } BEGIN_MESSAGE_MAP(Form_Leikoformula, CDialog) END_MESSAGE_MAP() #include "Mielogramma.h" IMPLEMENT_DYNAMIC(Form_Mielogramma, CDialog) Form_Mielogramma::Form_Mielogramma(CWnd* pParent /*=NULL*/) : CDialog(Form_Mielogramma::IDD, pParent),pData(NULL) { } Form_Mielogramma::~Form_Mielogramma() { } void Form_Mielogramma::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); if(!pData)return; Mielogramma* MIELOGRAMMA=(Mielogramma*)pData; DDX_Text(pDX, IDC_STATIC_PALOCHKOYADERN,MIELOGRAMMA->PALOCHKOYADERN); DDX_Text(pDX, IDC_STATIC_SEGMEHTARN,MIELOGRAMMA->SEGMEHTARN); DDX_Text(pDX, IDC_STATIC_MONOCIT, MIELOGRAMMA->MONOCIT); DDX_Text(pDX, IDC_STATIC_LIMFOCIT, MIELOGRAMMA->LIMFOCIT); DDX_Text(pDX, IDC_STATIC_MIELOCIT,MIELOGRAMMA->MIELOCIT); DDX_Text(pDX, IDC_STATIC_METAMELOCIT, MIELOGRAMMA->METAMELOCIT); DDX_Text(pDX, IDC_STATIC_EOZILOFIL,MIELOGRAMMA->EOZILOFIL); DDX_Text(pDX, IDC_STATIC_BAZOFIL, MIELOGRAMMA->BAZOFIL); DDX_Text(pDX, IDC_STATIC_9,MIELOGRAMMA->_9); DDX_Text(pDX, IDC_STATIC_10,MIELOGRAMMA->_10); DDX_Text(pDX, IDC_STATIC_11, MIELOGRAMMA->_11); DDX_Text(pDX, IDC_STATIC_12, MIELOGRAMMA->_12); DDX_Text(pDX, IDC_STATIC_13,MIELOGRAMMA->_13); DDX_Text(pDX, IDC_STATIC_14, MIELOGRAMMA->_14); DDX_Text(pDX, IDC_STATIC_15,MIELOGRAMMA->_15); DDX_Text(pDX, IDC_STATIC_16,MIELOGRAMMA->_16); DDX_Text(pDX, IDC_STATIC_17,MIELOGRAMMA->_17); DDX_Text(pDX, IDC_STATIC_18, MIELOGRAMMA->_18); DDX_Text(pDX, IDC_STATIC_19, MIELOGRAMMA->_19); DDX_Text(pDX, IDC_STATIC_20,MIELOGRAMMA->_20); DDX_Text(pDX, IDC_STATIC_21, MIELOGRAMMA->_21); DDX_Text(pDX, IDC_STATIC_22,MIELOGRAMMA->_22); DDX_Text(pDX, IDC_STATIC_23,MIELOGRAMMA->_23); DDX_Text(pDX, IDC_STATIC_24,MIELOGRAMMA->_24); } BEGIN_MESSAGE_MAP(Form_Mielogramma, CDialog) END_MESSAGE_MAP() #include "Trombocity.h" IMPLEMENT_DYNAMIC(Form_Trombocity, CDialog) Form_Trombocity::Form_Trombocity(CWnd* pParent /*=NULL*/) : CDialog(Form_Trombocity::IDD, pParent),pData(NULL) { } Form_Trombocity::~Form_Trombocity() { } void Form_Trombocity::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); if(!pData)return; } BEGIN_MESSAGE_MAP(Form_Trombocity, CDialog) END_MESSAGE_MAP() Таблица Е.1 - Выбор модели ЖЦ на основе характеристик требований Требования Каскадная V-образная Прото-типиро-вание Спиральная RAD Инкрементная Являются ли требования легко определимыми и/или хорошо известными Да Да Нет Нет Да Нет Могут ли требования заранее определятся в цикле Да Да Нет Нет Да Да Часто ли изменяются требования в цикле Нет Нет Да Да Нет Нет Нужно ли демонстрировать требования с целью определения Нет Нет Да Да Да Нет Требуется ли демонстрация возможностей проверка концепции Нет Нет Да Да Да Нет Будут ли требования отражать сложность системы Нет Нет Да Да Нет Да Обладает ли требование функциональными свойствами на раннем этапе Нет Нет Да Да Да Да Таблица Е.2 - Выбор модели ЖЦ на основе характеристик участников команды разработчиков Команда разработчиков проекта Каскадная V- образная Прото-типиро-вание Спиральная RAD Инкрементная Являются ли проблемы предметной области проекта новыми для большинства разработчиков Нет Нет Да Да Нет Нет Является ли технология предметной области проекта новой для большинства разработчиков Да Да Нет Да Да Да Являются ли инструменты, используемые проектом, новыми для большинства разработчиков Да Да Нет Да Да Нет Изменяются ли роли участников проекта во время ЖЦ Нет Нет Да Да Нет Да Могут ли разработчики проекта пройти обучение Нет Да Нет Нет Да Да Является ли структура более значимой для разработчиков, чем гибкость Да Да Нет Нет Да Да Будет ли менеджер проекта строго отслеживать прогресс проекта Да Да Нет Да Нет Да Важна легкость распределения ресурсов Да Да Нет Нет Да Да Приемлет ли команда равноправные обзоры инспекций, менеджмент/обзоры заказчиков, а так же стадии Да Да Да Да Да Да Таблица В.З - Выбор модели ЖЦ на основе характеристик типа проектов и рисков Тип проекта и риски Каскадная V- образная Прото-типиро-вание Спиральная RAD Инкрементная Будет ли проект идентифицировать новое направление продукта для организации Нет Нет Да Да Нет Да Будет ли проект иметь тип системной интеграции Нет Да Да Да Да Да Будет ли проект являться расширением существующей системы Нет Да Нет Нет Да Да Будет ли финансирование проекта стабильным на всем протяжении ЖЦ Да Да Да Нет Да Нет Ожидается ли длительная эксплуатация продукта в организации Да Да Нет Да Да Да Должна ли быть высокая степень надежности Нет Да Нет Да Да Да Будет ли система изменяться, возможно, с применением непредвиденных методов, на этапе сопровождения Нет Нет Да Да Нет Да Является ли график ограниченным Нет Нет Да Да Да Да Являются ли «прозрачными» интерфейсные модули Да Да Нет Нет Нет Да Доступны ли повторно используемые компоненты Нет Нет Да Да Да Нет Являются ли достаточными ресурсы (время, деньги, инструменты, персонал) Нет Нет Да Да Да Нет Таблица В.4 - Выбор модели ЖЦ на основе характеристик пользователей Коллектив пользователей Каскадная V- образная Прото-типиро-вание Спиральная RAD Инкрементная Будет ли присутствие пользователей ограниченно в ЖЦ Да Да Нет Да Да Да Будут ли пользователи знакомы с определением системы Нет Нет Да Да Да Да Будут ли пользователи ознакомлены с проблемами предметной области Нет Нет Да Нет Да Да Будут ли пользователи вовлечены во все фазы ЖЦ Нет Нет Да Нет Да Нет Будет ли заказчик отслеживать ход выполнения проекта Нет Нет Да Да Нет Нет
Приложение Ж – ОБОСНОВАНИЕ МОДЕЛИ ВЫБОРА ЖИЗНЕННОГО ЦИКЛА