本文主要是介绍QT实现 三个数的加减法自动生成,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
三位数加减法自动生成函数
输出一个txt文件,可以copy到word文档,打印回家训练娃的加减法
void MainWindow::test2(int answerMax, int count) {// 创建一个随机数生成器QRandomGenerator *generator = QRandomGenerator::global();// 创建一个文件QString filename =QString("%1以内三个数加减法%2道.txt").arg(answerMax).arg(count);QFile file(filename);if (!file.open(QIODevice::WriteOnly | QIODevice::Text))return;// 创建一个文本流并附加到文件上QTextStream out(&file);// 生成N个问题int i = 0;int j = 0;int z = 0;while (1) {// 生成随机数int num1 = generator->bounded(1, answerMax + 1);int num2 = generator->bounded(1, answerMax + 1);int num3 = generator->bounded(1, answerMax + 1);// 确保至少有两个数字是不同的,以避免重复或相同的数字if (num1 == num2) {num2 = generator->bounded(1, answerMax + 1);}if (num1 == num3) {num3 = generator->bounded(1, answerMax + 1);}if (num2 == num3) {num3 = generator->bounded(1, answerMax + 1);}// 生成运算符char op = (generator->bounded(2) == 0) ? '+' : '-';char op2 = (generator->bounded(2) == 0) ? '+' : '-';// 如果是减法,确保第一个数不大于第二个数if (op == '-' && num1 < num2) {int temp = num1;num1 = num2;num2 = temp;}int result1 = 0;if (op2 == '-') {result1 = num1 - num2;if (result1 < 0) {continue;}if (result1 < num3) {int temp = result1;result1 = num3;num3 = temp;}} else {result1 = num1 + num2;}// 计算答案int answer;if (op2 == '+') {answer = result1 + num3;} else {answer = result1 - num3;}if (answer == 0) {z++;if (z >= 10) {continue;}}if (answer > answerMax) {continue;}// 写入问题到文件if ((j + 1) % 6 == 0) {// 添加一个换行符out << QString("%1 %2 %3 %4 %5= \n").arg(num1).arg(op).arg(num2).arg(op2).arg(num3);} else {out << QString("%1 %2 %3 %4 %5= ").arg(num1).arg(op).arg(num2).arg(op2).arg(num3);}i++;j++;if ((i + 1) % 100 == 0) {j = 0;out << QString("\n\n");}if (i == count - 1) {break;}}file.close();
}
界面
这篇关于QT实现 三个数的加减法自动生成的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!