/****************************************************************************** * ++ * 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]); } } } } }
DWORD CPEExport::GetName(int nIndex) { if (nIndex<GetNameCount()) { DWORD dwFirstName=GetFirstName(); return dwFirstName+nIndex*4; } return 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 }