Ai
1 Star 2 Fork 0

Apphao/大话设计模式C++版

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
main.cpp 1.77 KB
一键复制 编辑 原始数据 按行查看 历史
#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;
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/apphao/dahua-design-mode---version-cpp.git
git@gitee.com:apphao/dahua-design-mode---version-cpp.git
apphao
dahua-design-mode---version-cpp
大话设计模式C++版
master

搜索帮助