/******************************************************************************
* ++
* Method name : CListStudent::SortByGPAName()
* Description : Xap sep danh sach sinh vien tang dan theo diem trung binh,
*					neu diem trung binh bang sap xep theo ten
* --
*****************************************************************************/
void CListStudent::SortByGPAName()
{
	float flGPAx = 0;	//Dung de luu diem trung binh sinh vien thu 1
	float flGPAy = 0;	//Dung de luu diem trung binh sinh vien thu 2

	//Lay so luong sinh vien trong danh sach
	int wSize = this->m_lstStudent.size();
	for(int i = 0; i < wSize - 1; i++)
	{
		for(int j = i; j < wSize; j++)
		{
			//Lay diem trung binh sinh vien thu i
			flGPAx = g_cSchool->GetListMark()->GetGPA(this->m_lstStudent[i].GetID());
			//Lay diem trung binh sinh vien thu j
			flGPAy = g_cSchool->GetListMark()->GetGPA(this->m_lstStudent[j].GetID());
			if(flGPAx > flGPAy)			//Neu diem trung binh sinh vien i > sinh vien j
			{
				//Hoan doi vi tri hai sinh vien
				Swap(&this->m_lstStudent[i], &this->m_lstStudent[j]);
			}
			else if(flGPAx == flGPAy)	//Neu diem trung binh hai sinh vien bang nhau
			{
				//Neu ten cua sinh vien thu i sau ten sinh vien thu j
				if(GetFirstName(StringToLower(this->m_lstStudent[i].GetName()))[0] > GetFirstName(StringToLower(this->m_lstStudent[j].GetName()))[0])
				{
					//Hoan doi vi tri hai sinh vien
					Swap(&this->m_lstStudent[i], &this->m_lstStudent[j]);
				}
			}
		}
	}
}
Exemplo n.º 2
0
DWORD CPEExport::GetName(int nIndex)
{
	if (nIndex<GetNameCount())
	{
		DWORD dwFirstName=GetFirstName();
		return dwFirstName+nIndex*4;
	}
	return 0;
} 
Exemplo n.º 3
0
status_t
ConnectView::Connect()
{
	if (IsServerNeeded())
	{
		// Demandons au serveur l'adresse de l'usager choisi
		// On demande en premier avec l'email : GetEmail().
		// Si ca ne fonctionne pas, on demande avec le nom: GetFirstName() & GetLastName().
		
		char* ip = TClient::Instance()->GetIPByEmail(GetEmail());
		if (!strcmp(ip, "null"))
		{
			ip = TClient::Instance()->GetIPByName(GetLastName(), GetFirstName());
			if (!strcmp(ip, "null"))
			{
				BAlert *myAlert = new BAlert(	"Error", "User not found (maybe not online).\n  Please try again later.",
												"Ok", NULL, NULL, 
												B_WIDTH_AS_USUAL, B_EVEN_SPACING, B_STOP_ALERT); 
				myAlert->Go();

				return false;
			}
		}

/*		WaitWindow* waitWindow = new WaitWindow;
		waitWindow->Show();
		waitWindow->SetText(ip);*/
		Output::Instance()->Network("Attempting servered Connection\n");  // OliverESP
		CNetwork::Instance()->SetView(this);							  // OliverESP
		SetEnabled(false);												  // OliverESP
		//return CNetwork::Instance()->ConnectFromUI(inet_addr(ip));
		return CNetwork::Instance()->ConnectFromUI(GetIP());
	}
	else
	{		
		if (!strlen(GetIP())) {
			Field_error(_T("Please type some host or IP address"));
			BMessenger(this->Window()).SendMessage(new BMessage(MSG_NOT_CONNECTED));
			SetEnabled(true);
			return B_ERROR;
		}	
		
		WaitWindow* waitWindow = new WaitWindow;
		waitWindow->Show();
		waitWindow->SetText(GetIP());

		// On demande directement au reseau de nous connecter avec l'adresse dans GetIP().
    	// ulong RemoteAddress; OliverESP :not needed
		status_t err;
		
		Output::Instance()->Network("Attempting direct Connection\n");  // OliverESP
		CNetwork::Instance()->SetView(this);							// OliverESP inform to enable later
		SetEnabled(false);     											// OliverESP diasabling

	 // return CNetwork::Instance()->ConnectFromUI(inet_addr(GetIP())); // OliverESP error control

	  	err = CNetwork::Instance()->ConnectFromUI(GetIP());
	  		 
		switch (err){
			case EHOSTUNREACH:
				Field_error(_T("It doesn´t look a valid host address"));
				BMessenger(this->Window()).SendMessage(new BMessage(MSG_NOT_CONNECTED));
				SetEnabled(true);
				break;
			case B_ERROR:
				Field_error("Unable to comunicate sRTCP thread");
				BMessenger(this->Window()).SendMessage(new BMessage(MSG_NOT_CONNECTED));
				SetEnabled(true);
				break;
			case B_OK:
				Output::Instance()->Network("Awaiting response from remote...\n");
				//Field_error("Trying connection..."); <-- this is blocking
				//return err;
				break;
			default:
				Field_error("Unable spawn threads!");
				BMessenger(this->Window()).SendMessage(new BMessage(MSG_NOT_CONNECTED));
				SetEnabled(true);
				break;			
		}

//		waitWindow->QuitRequested(); //OliverESP: this method is provided no way to use it
		waitWindow->Lock();
		waitWindow->Quit();          //OliverESP: if we dont Quit() it, it will acumulate with anothers
	    return err;		
	}
	
	return true; // temporaire
}