Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Курсовой проект1 / Wladimir / kurs / DlgRooms
.cpp// DlgRooms.cpp : implementation file
//
#include "stdafx.h"
#include "kurs.h"
#include "DlgRooms.h"
#include "DlgAddRoom.h"
#include "DlgEditRoom.h"
#include "ListEmpl.h"
#include "Person.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// DlgRooms dialog
//CList<CRoom> LR;
DlgRooms::DlgRooms(CWnd* pParent /*=NULL*/)
: CDialog(DlgRooms::IDD, pParent)
{
//{{AFX_DATA_INIT(DlgRooms)
m_listR = _T("");
m_onlyfree = FALSE;
//}}AFX_DATA_INIT
}
void DlgRooms::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(DlgRooms)
DDX_LBString(pDX, IDC_lstRooms, m_listR);
DDX_Check(pDX, IDC_FrR, m_onlyfree);
//}}AFX_DATA_MAP
CListBox* pLB=(CListBox*) GetDlgItem(IDC_lstRooms);
CString str("");
pLB->ResetContent();
CElem<CRoom> *buf = LR.beg;
while (buf !=0){
str = buf->inf.GetNumber()+buf->inf.GetCapasity()+buf->inf.GetOccupy()+buf->inf.GetPrice();
if (m_onlyfree){
if(atoi(buf->inf.GetOccupy())==0)
pLB->AddString(str);
}
else
pLB->AddString(str);
buf = buf->next;
}
}
BEGIN_MESSAGE_MAP(DlgRooms, CDialog)
//{{AFX_MSG_MAP(DlgRooms)
ON_BN_CLICKED(IDC_AddR, OnAddR)
ON_BN_CLICKED(IDC_DelR, OnDelR)
ON_LBN_DBLCLK(IDC_lstRooms, OnDblclklstRooms)
ON_BN_CLICKED(IDC_FrR, OnFrR)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// DlgRooms message handlers
void DlgRooms::OnAddR()
{
DlgAddRoom dlgAR;
int result = dlgAR.DoModal();
if(result==IDOK){
CRoom R;
R.SetNumber(dlgAR.m_num);
R.SetCapasity(dlgAR.m_type);
R.SetPrice(dlgAR.m_price);
LR.AddEl(R);
UpdateData(false);
}
}
void DlgRooms::OnDelR()
{
CListBox* pLB=(CListBox*) GetDlgItem(IDC_lstRooms);
CString str;
if (pLB->GetCurSel() !=-1){
pLB->GetText(pLB->GetCurSel(), str);
str=str.Left(5);
CElem<CRoom> *buf = LR.beg;
while((buf != 0) && (buf->inf.GetNumber()!=str))
buf = buf->next;
if (atoi(buf->inf.GetOccupy())==0){
LR.DelEl(buf);
UpdateData(false);
}
else
AfxMessageBox("Невозможно удалить занятый номер!");
}
else
AfxMessageBox("Не выбран номер!");
}
void DlgRooms::OnOK()
{
fstream File("Rooms.txt",ios::out);
CString str("");
CElem<CRoom> *buf = LR.beg;
int i;
while(buf != 0){
str = buf->inf.GetNumber()+buf->inf.GetCapasity()+buf->inf.GetOccupy()+buf->inf.GetPrice()+"\n";
i = str.GetLength();
File.write(str,i);
buf = buf->next;
}
File.close();
LR.DelAllElem();
// UpdateData(false);
CDialog::OnOK();
}
void DlgRooms::OnCancel()
{
LR.DelAllElem();
CDialog::OnCancel();
}
void DlgRooms::OnDblclklstRooms()
{
DlgEditRoom dlgER;
CString str;
CString strroom;
CListBox* pLB=(CListBox*) GetDlgItem(IDC_lstRooms);
pLB->GetText(pLB->GetCurSel(), str);
str=str.Left(5);
CElem<CRoom> *buf = LR.beg;
while (buf !=0)
{
dlgER.LREdit.AddEl(buf->inf);
buf=buf->next;
}
buf = LR.beg;
while((buf != 0) && (buf->inf.GetNumber()!=str))
buf = buf->next;
dlgER.m_editnum = buf->inf.GetNumber();
dlgER.m_edittype = buf->inf.GetCapasity();
dlgER.m_editprice = buf->inf.GetPrice();
int result = dlgER.DoModal();
if(result==IDOK){
buf->inf.SetNumber(dlgER.m_editnum);
buf->inf.SetCapasity(dlgER.m_edittype);
buf->inf.SetPrice(dlgER.m_editprice);
UpdateData(false);
}
/* DlgEditRoom dlgER;
CString str;
CString strroom;
CListBox* pLB=(CListBox*) GetDlgItem(IDC_lstRooms);
pLB->GetText(pLB->GetCurSel(), str);
bool b=true;
str=str.Left(5);
CElem<CRoom> *buf = LR.beg;
CElem<CRoom> *buf2 = LR.beg;
while((buf != 0) && (buf->inf.GetNumber()!=str))
buf = buf->next;
dlgER.m_editnum = buf->inf.GetNumber();
dlgER.m_edittype = buf->inf.GetCapasity();
dlgER.m_editprice = buf->inf.GetPrice();
strroom = buf->inf.GetNumber();
UINT len;
int result = dlgER.DoModal();
if(result==IDOK){
if (!dlgER.m_editnum.IsEmpty() && !dlgER.m_edittype.IsEmpty() && !dlgER.m_editprice.IsEmpty()){
len = dlgER.m_editnum.GetLength();
if (len>5) {dlgER.m_editnum=dlgER.m_editnum.Left(5);}
else
while (len<5){
dlgER.m_editnum+=' ';
len = dlgER.m_editnum.GetLength();
}
len = dlgER.m_edittype.GetLength();
if (len>5) {dlgER.m_edittype=dlgER.m_edittype.Left(5);}
else
while (len<5){
dlgER.m_edittype+=' ';
len = dlgER.m_edittype.GetLength();
}
len = dlgER.m_editprice.GetLength();
if (len>5) {dlgER.m_editprice=dlgER.m_editprice.Left(5);}
else
while (len<5){
dlgER.m_editprice+=' ';
len = dlgER.m_editprice.GetLength();
}
if (strroom != dlgER.m_editnum){
while (buf2!=0){
if (buf2->inf.GetNumber() == dlgER.m_editnum){
b = false;
AfxMessageBox("Невозможно изменить номер комнаты!");
}
buf2=buf2->next;
}
if(atoi(buf->inf.GetOccupy())>0){
b=false;
AfxMessageBox("Невозможно изменить номер комнаты!");
}
}
if (atoi(dlgER.m_edittype)<atoi(buf->inf.GetOccupy()) ){
b = false;
AfxMessageBox("Занятость номера превышает его тип!");
}
if (atoi(dlgER.m_edittype)<=0){
b=false;
AfxMessageBox("Тип должен быть больше 0!");
}
if (b){
buf->inf.SetNumber(dlgER.m_editnum);
buf->inf.SetCapasity(dlgER.m_edittype);
buf->inf.SetPrice(dlgER.m_editprice);
UpdateData(false);
}
}
else
AfxMessageBox("Заполнены не все поля!");
}
*/
}
void DlgRooms::OnFrR()
{
UpdateData();
}
Соседние файлы в папке kurs