代码拉取完成,页面将自动刷新
#pragma execution_character_set("utf-8")
#include <QCoreApplication>
#include <QTextStream>
#include <QDebug>
#include "Operation.h"
#include "OperationFactory.h"
QTextStream cin(stdin, QIODevice::ReadOnly);
QTextStream cout(stdout, QIODevice::WriteOnly);
QTextStream cerr(stderr, QIODevice::WriteOnly);
bool isOperator(QString str);
bool isDouble(QString str);
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
try {
Operation* oper;
qDebug() << "请选择运算符号(+、-、*、/): ";
QString strOperate;
cin >> strOperate;
if (!isOperator(strOperate)) {
throw QString("运算符号错误!");
}
oper = OperationFactory::createOperate(strOperate);
qDebug() << "请输入数字A: ";
QString strNumberA;
cin >> strNumberA;
if (!isDouble(strNumberA)) {
throw QString("数字A不是浮点数!");
}
oper->setNumberA(strNumberA.toDouble());
qDebug() << "请输入数字B: ";
QString strNumberB;
cin >> strNumberB;
if (!isDouble(strNumberB)) {
throw QString("数字B不是浮点数!");
}
oper->setNumberB(strNumberB.toDouble());
QString strResult = QString::number(oper->GetResult());
qDebug() << "result is" << strResult;
delete oper;
}
catch (QString err) {
qDebug() << "您的输入有错:" << err;
}
qDebug() << "程序结束!";
return a.exec();
}
bool isDouble(QString str)
{
bool ok;
str.toDouble(&ok);
return ok;
}
bool isOperator(QString str)
{
bool ret;
if (str != "+" && str != "-" && str != "*" && str != "/") {
ret = false;
}
else {
ret = true;
}
return ret;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。