当前位置: 首页>>代码示例>>C++>>正文


C++ Commande类代码示例

本文整理汇总了C++中Commande的典型用法代码示例。如果您正苦于以下问题:C++ Commande类的具体用法?C++ Commande怎么用?C++ Commande使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了Commande类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: while

void Invocateur::lire(){
    for(auto it = Commande::mapCommandes().cbegin(); it != Commande::mapCommandes().cend(); ++it){
        listeCommande.push_back(it->first);
    }

    cout << "--- SIMULATEUR DE ROBOT ---" << endl << "Commande AIDE pour avoir la liste des commandes. Elles ne sont pas sensibles à la casse." << endl;

    while(true){
        string rep;
        cout << "Entrer une commande :" << endl;
        cin >> rep;
        transform(rep.begin(), rep.end(),rep.begin(), ::toupper);
        
        if (!isCommande(rep)) {
            cout << "Commande inconnue. Veuillez réessayer." << endl;
        } else {
            Commande* com = Commande::nouvelleCommande(rep, this);
            try {
                com->executer();
            } catch(EtatRobot::Bad_State){
                cout << "Erreur: action impossible dans cet état !" << endl;
                if (com->reversible()){
                    Commande::pileCommandes().pop(); // pour enlever la mauvaise action de la pile
                }
                
            }
        }

        cin.clear();
        cin.ignore(10000, '\n');

    }


}
开发者ID:skidlucas,项目名称:sim-robot,代码行数:35,代码来源:Invocateur.cpp

示例2: Do

void CommandeEval::Do(){
    pile->pop();
    for (int i = 0; i < pCommande.size(); i++){
       Commande * c =  pCommande.at(i);
       c->Do();
    }
}
开发者ID:paillardf,项目名称:LO21-calculatrice,代码行数:7,代码来源:commande.cpp

示例3: Undo

void CommandeEval::Undo(){
    for (int i =  pCommande.size()-1; i >=0 ; i--){
       Commande * c =  pCommande.at(i);
       c->Undo();
    }
    pile->push(expression);
}
开发者ID:paillardf,项目名称:LO21-calculatrice,代码行数:7,代码来源:commande.cpp

示例4: DISTRIBUTEUR

void* DISTRIBUTEUR(void* param)
{
	//Permettre l'arrêt du thread depuis un autre
	pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);
	pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL);

	while(true)
	{
		pthread_mutex_lock(&mutex);
		//On attend que le thread VENDEUR donne le signal de la distribution de la bouteille
		pthread_cond_wait(&distribuer, &mutex);

		//On récupère le paramètre
		Commande* ach = (Commande*)param;

		system("CLS");
		cout << "Monnaie restante : " << ach->getSolde() << endl;
		//Si une bouteille a été achetée (c-à-d que le solde est suffisant et qu'il reste au moins 1 bouteille
		if(ach->getBouteille())
			cout << "Vous recevez 1 bouteille." << endl;
		else
			cout << "Vous ne recevez aucune bouteille." << endl;
		system("PAUSE");

		//On annonce au thread VENDEUR que l'action est terminée
		pthread_cond_signal(&vendeur);
		pthread_mutex_unlock(&mutex);
	}
	return NULL;
}
开发者ID:sebyx31,项目名称:progconc,代码行数:30,代码来源:automate.cpp

示例5: executer

void CommandeMacro::executer() {
	Commande* commande;
	while(!_macros.empty())
	{
		commande = _macros.front();
		_macros.pop_front();
		commande->executer();
	}
}
开发者ID:SHITianhao,项目名称:UMLproject,代码行数:9,代码来源:CommandeMacro.cpp

示例6: redo

void CommandeManager::redo()throw (LogMessage){
    if(!_listRedoableCommand->isEmpty()){
        Commande * cmd = _listRedoableCommand->pop();
        cmd->redo();
        _listUndoableCommand->push(cmd);
    }
    else
        throw LogMessage("redo(): Aucune commande a rétablir",1);
}
开发者ID:martinni,项目名称:Calculatrice,代码行数:9,代码来源:commandemanager.cpp

示例7: retablir

void Pile::retablir(){
    if(posCommande !=0){ //== 0 pas de commande a retablir
        executionCommande = 1;//On empeche de nouvelle commande de s'enregistrer pendant l'execution d'une commande
        posCommande --;
        Commande * c = listeCommande.at(listeCommande.size()-1-posCommande);
        c->Do();
        executionCommande = 0;

    }
}
开发者ID:paillardf,项目名称:LO21-calculatrice,代码行数:10,代码来源:pile.cpp

示例8: CommandeMultiplication

void CommandeManager::multiplication()throw(LogMessage){
    Commande * cmd = new CommandeMultiplication(_pile,_utilisateur);
    try{
        cmd->execute();
        _listUndoableCommand->push(cmd);
    }
    catch(LogMessage& msg){
        throw;
    }
}
开发者ID:martinni,项目名称:Calculatrice,代码行数:10,代码来源:commandemanager.cpp

示例9: CommandeDrop

void CommandeManager::drop()throw(LogMessage){
    Commande * cmd = new CommandeDrop(_pile);
    try{
        cmd->execute();
        _listUndoableCommand->push(cmd);
    }
    catch(LogMessage& msg){
        throw;
    }
}
开发者ID:martinni,项目名称:Calculatrice,代码行数:10,代码来源:commandemanager.cpp

示例10: CommandeMean

void CommandeManager::mean(int fin)throw(LogMessage){
    Commande * cmd = new CommandeMean(_pile,_utilisateur,fin);
    try{
        cmd->execute();
        _listUndoableCommand->push(cmd);
    }
    catch(LogMessage& msg){
        throw;
    }
}
开发者ID:martinni,项目名称:Calculatrice,代码行数:10,代码来源:commandemanager.cpp

示例11: CommandeSwap

void CommandeManager::swap(int x, int y)throw(LogMessage){
    Commande * cmd = new CommandeSwap(_pile,x,y);
    try{
        cmd->execute();
        _listUndoableCommand->push(cmd);
    }
    catch(LogMessage& msg){
        throw;
    }
}
开发者ID:martinni,项目名称:Calculatrice,代码行数:10,代码来源:commandemanager.cpp

示例12: CommandeEval

void CommandeManager::eval()throw(LogMessage){
    Commande * cmd = new CommandeEval(_pile,_utilisateur,this);
    try{
        cmd->execute();
        _listUndoableCommand->push(cmd);
    }
    catch(LogMessage& msg){
        throw;
    }
}
开发者ID:martinni,项目名称:Calculatrice,代码行数:10,代码来源:commandemanager.cpp

示例13: annuler

void Pile::annuler()
{
    if(posCommande <=listeCommande.size()-1){//verification si commande a retablir
        executionCommande = 1;//On empeche de nouvelle commande de s'enregistrer pendant l'execution d'une commande
        Commande * c = listeCommande.at(listeCommande.size()-1-posCommande);
        c->Undo();
        posCommande ++;
        executionCommande = 0;
    }

}
开发者ID:paillardf,项目名称:LO21-calculatrice,代码行数:11,代码来源:pile.cpp

示例14: main

int main () {

	string entreeClavier;
	Commande *commande = new Commande();
	
	while(true) {
		getline(cin, entreeClavier);
		vector<string> requetes;
		requetes.push_back(entreeClavier);

		if(!commande->execute(requetes, false, false))
			break;
	}
	delete commande;
	return 0;
}
开发者ID:BuonOmo,项目名称:tp-heritage,代码行数:16,代码来源:Main.cpp

示例15: main

int main()
{
	Robot r;
	string ligne;

	AfficheurText aft;
	r.attacherAfficheur(aft);

	cout << Console::getCommandes();

	while(1){
		string commandeString;
		cout << "Que faire ? : ";
		cin >> commandeString;

		Commande *com =  CommandeRobot::nouvelleCommandeRobot(commandeString, r);
		com->execute();
	}
}
开发者ID:FabienInspiron,项目名称:Analysez,代码行数:19,代码来源:main.cpp


注:本文中的Commande类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。