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


C++ Entier::toComplexe方法代码示例

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


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

示例1: execute

void CommandeDivision::execute()throw(LogMessage){
    savePileAvtExe();
    Constante* c1;
    Constante* c2;
    try{
        c1 = _pileCourante->depiler();
        c2 = _pileCourante->depiler();

        if(typeid(*c1)==typeid(Expression) && typeid(*c2)==typeid(Expression)){
            throw LogMessage("addition(): impossible d'appliquer un operateur sur 2 expressions",1);
        }
        if (typeid(*c1)==typeid(Expression)){
            Expression* oldExpr=dynamic_cast<Expression*>(c1);
            QString oldChaine=oldExpr->getExp();
            QString newChaine;
            if(typeid(*c2)!=typeid(Complexe)){
                Nombre* nb=dynamic_cast<Nombre*>(c2);
                newChaine = nb->toQString();
            }
            else{
                Complexe* nb=dynamic_cast<Complexe*>(c2);
                newChaine = nb->toQString();
            }
            oldChaine.remove(oldChaine.length()-1,1);
            _pileCourante->empilerExpression(oldChaine.append(" "+newChaine+" "+'/'+'\''));
        }

        else if (typeid(*c2)==typeid(Expression)){
            Expression* oldExpr=dynamic_cast<Expression*>(c2);
            QString oldChaine=oldExpr->getExp();
            QString newChaine;
            if(typeid(*c1)!=typeid(Complexe)){
                Nombre* nb=dynamic_cast<Nombre*>(c1);
                newChaine = nb->toQString();
            }
            else{
                Complexe* nb=dynamic_cast<Complexe*>(c1);
                newChaine = nb->toQString();
            }
            oldChaine.remove(oldChaine.length()-1,1);
            _pileCourante->empilerExpression(oldChaine.append(" "+newChaine+" "+'/'+'\''));
        }

        else{

        if(_utilisateur->useComplexe()){
            Complexe *co1;
            Complexe *co2;

            if(typeid(*c1)==typeid(Complexe))
                co1 =dynamic_cast<Complexe*>(c1);
            else if(typeid(*c1)==typeid(Entier)){
                Entier* nb = dynamic_cast<Entier*>(c1);
                co1 = nb->toComplexe();
            }
            else if(typeid(*c1)==typeid(Rationnel)){
                Rationnel* nb = dynamic_cast<Rationnel*>(c1);
                co1 = nb->toComplexe();
            }
            else if(typeid(*c1)==typeid(Reel)){
                Reel* nb = dynamic_cast<Reel*>(c1);
                co1 = nb->toComplexe();
            }

            if(typeid(*c2)==typeid(Complexe))
                 co2 = dynamic_cast<Complexe*>(c2);
            else if(typeid(*c2)==typeid(Entier)){
                Entier* nb = dynamic_cast<Entier*>(c2);
                co2 = nb->toComplexe();
            }
            else if(typeid(*c2)==typeid(Rationnel)){
                Rationnel* nb = dynamic_cast<Rationnel*>(c2);
                co2 = nb->toComplexe();
                }
            else if(typeid(*c2)==typeid(Reel)){
                 Reel* nb = dynamic_cast<Reel*>(c2);
                 co2 = nb->toComplexe();
             }

            if(_utilisateur->useEntier()){
                co1->attrToEntier();
                co2->attrToEntier();
            }
            else if(_utilisateur->useRationnel()){
                co1->attrToRationnel();
                co2->attrToRationnel();
            }
            else if(_utilisateur->useReel()){
                co1->attrToReel();
                co2->attrToReel();
            }

            if(co1->getReel()==0 && co2->getImg()==0)
                throw LogMessage("division(): impossible de diviser par 0",1);
            else{
            Complexe * res = *(co1)/co2;
            _pileCourante->empilerConstante(res);
            savePileApresExe();
            }
        }
//.........这里部分代码省略.........
开发者ID:martinni,项目名称:Calculatrice,代码行数:101,代码来源:commandedivision.cpp


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