Example #1
0
void fractin::on_simplify_clicked()
{
    int d=0,c=0;
    if(text.isEmpty()){
        text="格式不支持!";
        ui->show->setText(text);
        return;
    }
    QChar ch=text[0];
    text.remove(0,1);
    if(!ch.isDigit()){
        text="格式不支持!";
        ui->show->setText(text);
        return;
    }
    while(ch.isDigit()&&!text.isEmpty()){
        d=d*10+ch.unicode()-48;
        ch=text[0];
        text.remove(0,1);

    }
    if(text.isEmpty()||ch!='|'){
        text="格式不支持!";
        ui->show->setText(text);
        return;
    }
    ch=text[0];
    text.remove(0,1);
    if(!ch.isDigit()){
        text="格式不支持!";
        ui->show->setText(text);
        return;
    }
    while(ch.isDigit()&&!text.isEmpty()){
        c=c*10+ch.unicode()-48;
        ch=text[0];
        text.remove(0,1);
    }
    if(ch.isDigit()){
        c=c*10+ch.unicode()-48;
        Fraction f;
        f.Sim(d,c);
        text=QString::number(f.getnumer(),10)+"|"+QString::number(f.getdenom(),10);
        ui->show->setText(text);
        return;
    }
    else{
        text="格式不支持!";
        ui->show->setText(text);
        return;
    }

}
Example #2
0
int main()
{
    Fraction fra;
    fra.Sim(2,-108);
    fra.Pri();
    fra.Add(6,5,2,9);
     fra.Pri();
	 cout<<fra.Swi()<<endl;
    fra.Sub(2,5,-1,5);
     fra.Pri();
    fra.Mul(6,2,0,5);
     fra.Pri();
    fra.Rec(3,-2);
    fra.Pri();
	fra.Div(3,6,0,4);
    return 0;

}
Example #3
0
void fractin::on_switchButton_clicked()
{
    int d=0,c=0;
    if(text.isEmpty()){
        text="格式不支持!";
        ui->show->setText(text);
        return;
    }
    QChar ch=text[0];
    text.remove(0,1);
    if(!ch.isDigit()){
        text="格式不支持!";
        ui->show->setText(text);
        return;
    }
    while(ch.isDigit()&&!text.isEmpty()){
        d=d*10+ch.unicode()-48;
        ch=text[0];
        text.remove(0,1);
    }
    if(ch.isDigit()){
        d=d*10+ch.unicode()-48;
        text=QString::number(d,10)+"|"+QString::number(1,10);
        ui->show->setText(text);
        return;
    }
    if(ch=='|'){
        ch=text[0];
        text.remove(0,1);
        if(!ch.isDigit()){
            text="格式不支持!";
            ui->show->setText(text);
            return;
        }
        while(ch.isDigit()&&!text.isEmpty()){
            c=c*10+ch.unicode()-48;
            ch=text[0];
            text.remove(0,1);
        }
        if(ch.isDigit()){
            c=c*10+ch.unicode()-48;
            float l=(float)d/c;
            text=QString("%1").arg(l);
            ui->show->setText(text);
            return;
        }
        else{
            text="格式不支持!";
            ui->show->setText(text);
            return;
        }

    }
    if(ch=='.'){
        c=pow(10,text.length());
        ch=text[0];
        text.remove(0,1);
        if(!ch.isDigit()){
            text="格式不支持!";
            ui->show->setText(text);
            return;
        }
        while(ch.isDigit()&&!text.isEmpty()){
            d=d*10+ch.unicode()-48;
            ch=text[0];
            text.remove(0,1);
        }
        if(ch.isDigit()){
            d=d*10+ch.unicode()-48;
            Fraction f;
            f.Sim(d,c);
            text=QString::number(f.getnumer(),10)+"|"+QString::number(f.getdenom(),10);
            ui->show->setText(text);
            return;
        }
        else{
            text="格式不支持!";
            ui->show->setText(text);
            return;
        }

    }

}