当前位置: 首页 > news >正文

烟台做网站公司哪家好nba最新交易消息

烟台做网站公司哪家好,nba最新交易消息,奉贤网站建设,wordpress花生壳初步体验Qt Creator 用途&#xff1a;练习20以内2位数乘法速算的程序 功能1&#xff1a;支持用户设定题目数量 std::cout << "请输入本次练习题目数量&#xff1a;";int numProblems 0;std::string num;std::cin >> num;try {numProblems std::stoi(…

初步体验Qt Creator

用途:练习20以内2位数乘法速算的程序

功能1:支持用户设定题目数量

    std::cout << "请输入本次练习题目数量:";int numProblems = 0;std::string num;std::cin >> num;try {numProblems = std::stoi(num);MathQuiz quiz(numProblems);quiz.runQuiz();} catch (const std::invalid_argument& e) {std::cerr << "请输入合法的整数结果!\n";continue;}

功能2:支持随机生成期望数量的题目

void MathQuiz::generateProblems() {for (int i = 0; i < numProblems; i++) {int randomValue1 = generateRandomValue();int randomValue2 = generateRandomValue();problems.emplace_back(randomValue1, randomValue2);}
}int MathQuiz::generateRandomValue() { return randomGenerator.bounded(10, 21); }

功能3:支持判断用户输入结果的准确性

bool MathQuiz::promptAndCheckAnswer(int value1, int value2, int index) {std::cout << std::format("{}-{} 请计算:{}×{}=", index, numProblems, value2,value1);std::string str;int result = 0;std::cin >> str;try {result = std::stoi(str);} catch (const std::invalid_argument& e) {std::cerr << "请输入合法的整数结果!\n";}return result == value2 * value1;
}

功能4:循环出题,并支持记录计算错误的题目

  std::map<int, std::string> incorrectProblems;for (int i = 0; i < numProblems; i++) {const auto& problem = problems[i];bool correct = false;while (!correct) {correct = promptAndCheckAnswer(problem.first, problem.second, i + 1);if (!correct) {std::cout << "回答错误,请再试一次。\n";incorrectProblems.insert(std::pair<int, std::string>(i + 1, std::format("{}×{}", problem.first, problem.second)));} else {if (incorrectProblems.find(i + 1) == incorrectProblems.end()) {numCorrect++;}break;}}}

功能5:支持统计正确题目数、平均计算耗时和总计耗时

void MathQuiz::printResults(double elapsedTime) {double correctPercent = numCorrect * 100 / numProblems;QTextStream out(stdout);QString outstr =QString("共%2题,答对%1题,正确率:%3%,平均用时:%4秒,累计用时:%5秒。\n").arg(numCorrect).arg(numProblems).arg(correctPercent).arg(elapsedTime / numProblems).arg(elapsedTime);out << outstr;
}

程序结构:

main.cpp主程序

#include <windows.h>#include <QCoreApplication>
#include <iostream>#include "mathquiz.h"int main() {SetConsoleOutputCP(CP_UTF8);while (true) {std::cout << "请输入本次练习题目数量:";int numProblems = 0;std::string num;std::cin >> num;try {numProblems = std::stoi(num);MathQuiz quiz(numProblems);quiz.runQuiz();} catch (const std::invalid_argument& e) {std::cerr << "请输入合法的整数结果!\n";continue;}std::cout << "是否继续练习? (y/n):";std::string yn;std::cin >> yn;if (yn != "y" && yn != "Y") break;}return 0;
}

mathquiz.cpp,一个计算功能类

#include "mathquiz.h"#include <iostream>MathQuiz::MathQuiz(int numProblems) : numCorrect(0), numProblems(numProblems) {randomGenerator.seed(QTime::currentTime().msec());generateProblems();
}void MathQuiz::runQuiz() {QTime startTime = QTime::currentTime();std::map<int, std::string> incorrectProblems;for (int i = 0; i < numProblems; i++) {const auto& problem = problems[i];bool correct = false;while (!correct) {correct = promptAndCheckAnswer(problem.first, problem.second, i + 1);if (!correct) {std::cout << "回答错误,请再试一次。\n";incorrectProblems.insert(std::pair<int, std::string>(i + 1, std::format("{}×{}", problem.first, problem.second)));} else {if (incorrectProblems.find(i + 1) == incorrectProblems.end()) {numCorrect++;}break;}}}QTime endTime = QTime::currentTime();double elapsedTime = startTime.msecsTo(endTime) / 1000.0;printResults(elapsedTime);printIncorrectProblems(incorrectProblems);
}void MathQuiz::generateProblems() {for (int i = 0; i < numProblems; i++) {int randomValue1 = generateRandomValue();int randomValue2 = generateRandomValue();problems.emplace_back(randomValue1, randomValue2);}
}int MathQuiz::generateRandomValue() { return randomGenerator.bounded(10, 21); }bool MathQuiz::promptAndCheckAnswer(int value1, int value2, int index) {std::cout << std::format("{}-{} 请计算:{}×{}=", index, numProblems, value2,value1);std::string str;int result = 0;std::cin >> str;try {result = std::stoi(str);} catch (const std::invalid_argument& e) {std::cerr << "请输入合法的整数结果!\n";}return result == value2 * value1;
}void MathQuiz::printResults(double elapsedTime) {double correctPercent = numCorrect * 100 / numProblems;QTextStream out(stdout);QString outstr =QString("共%2题,答对%1题,正确率:%3%,平均用时:%4秒,累计用时:%5秒。\n").arg(numCorrect).arg(numProblems).arg(correctPercent).arg(elapsedTime / numProblems).arg(elapsedTime);out << outstr;
}void MathQuiz::printIncorrectProblems(const std::map<int, std::string>& incorrectProblems) {if (incorrectProblems.empty()) {return;}std::cout << "回答错误的题目:\n";int i = 1;for (const auto& it : incorrectProblems) {const auto& problem = problems[it.first - 1];std::cout << "题目 " << i << ": " << it.second << "="<< (problem.first * problem.second) << "\n";i++;}
}

mathquiz.h头文件

#ifndef MATHQUIZ_H
#define MATHQUIZ_H#include <QRandomGenerator>
#include <QTime>
#include <vector>class MathQuiz {public:MathQuiz(int numProblems);void runQuiz();private:void generateProblems();int generateRandomValue();bool promptAndCheckAnswer(int value1, int value2, int index);void printResults(double elapsedTime);void printIncorrectProblems(const std::map<int, std::string>& incorrectProblems);QRandomGenerator randomGenerator;int numCorrect;int numProblems;std::vector<std::pair<int, int>> problems;
};#endif  // MATHQUIZ_H

运行效果

遇到问题总结:

Qt Creator编写Console程序,运行时没反应,应勾选下面选项

Qt Creator编写Console程序,汉字输出乱码

原因1:默认字符输出位置设置的值与Windows控制台默认字符集(GBK)不符

默认字符输出查看与修改

确定控制台窗口使用的编码格式:

原因2:文件编码格式与系统不兼容

原因3:部分库默认使用UTF-8,输出应转码,比如QTextStream

QTextStream out(stdout);
out.setEncoding (QStringConverter::System); 

还有个方法,添加windows.h的引用,并在main开始时,添加:

SetConsoleOutputCP(CP_UTF8);

注意:将所有源代码以及系统文件编辑器默认编码均修改为UTF-8即可

http://www.zhongyajixie.com/news/567.html

相关文章:

  • 重庆制作网站培训市场调研的重要性
  • 网站运维工作内容ueeshop建站费用
  • 哈尔滨营销型网站建设公司友情链接站长平台
  • 中山网站建设哪家好百度网页版电脑版
  • 策划公司口号广州seo推广培训
  • 安徽网站建设维护银徽seo
  • 安装php网站广州企业网站推广
  • 手机网站建设怎样建站模板
  • 做网站如何选主机西安seo培训机构
  • 做网站是怎么收费的是按点击率青岛网络优化费用
  • 如何利用ps做网站网络营销渠道有哪几种
  • 如何制作公司网站免费ip域名查询
  • 音频文件放到网站空间里生成链接怎么做站长之家域名查询官网
  • 泉州网站建设电话淘宝运营培训多少钱
  • 政府网站建设调查问卷目前推广软件
  • 网站文字循环滚动代码百度网站登录
  • 中国建设银行网上银行网站特点怎么制作网站二维码
  • 英语网站推广策划书深度优化
  • 服装网络营销方案策划seo优化软件
  • wordpress 基于 网店seo工作是什么意思
  • 做神马网站优化快速排推广渠道有哪些
  • 织梦手机网站教程视频教程数据统计网站有哪些
  • 做网站时链接的网页无法显示代理怎么引流推广
  • 网站开发前景西安关键词排名优化
  • 网站公司 转型排名优化seo
  • 国建设银行e路通网站申今日新闻50字
  • 政府网站集约化建设存在的问题搜索引擎简称seo
  • 字节跳动员工人数2020做网站关键词优化的公司
  • 做一个网页难不难网站产品怎么优化
  • 织梦网站需要优化百度云搜索引擎入口官网