全球主机交流论坛

标题: 求一个【加减法自动出题】的软件。有没有dalao有。 [打印本页]

作者: HKCPC    时间: 2017-1-16 14:09
标题: 求一个【加减法自动出题】的软件。有没有dalao有。
网上看了些都不满意,试了几个都有这样那样的不足。。。

最主要是能以结果来生成题目的。。。比如20以内的加减法生成20题。



作者: HKCPC    时间: 2017-1-16 14:13
有一个【小学算术练习工具】比较合适的,但是会出错。

选择20以内加减法的时候,会出现乘法,还会出来 负数的减法。。。。
作者: vpsbar    时间: 2017-1-16 14:36
自己写一个就好了~又不是很难~
作者: HKCPC    时间: 2017-1-16 17:37
要是会,能来求助吗。。
作者: 暗贱难防    时间: 2017-1-16 17:56
我大一时候课程设计写过这玩意,源码PM给你一份吧,在邮箱中找到了。。。
作者: allnetstore    时间: 2017-1-16 17:58
只要有预算,没什么需求是满足不了的
作者: 虚空    时间: 2017-1-16 18:03
这种东西源码应该很好写吧
作者: HKCPC    时间: 2017-1-17 18:34
有大佬给了一个源码,谁帮编译一下,是C #
作者: 暗贱难防    时间: 2017-1-17 18:37
\bin\Debug\目录下 有个exe 可以直接运行的
作者: HKCPC    时间: 2017-1-17 19:00
暗贱难防 发表于 2017-1-17 18:37
\bin\Debug\目录下 有个exe 可以直接运行的

你的也会有这个问题,会出现负数,比如1-10   1-15  3-12

作者: zsl198854    时间: 2017-1-17 19:31
孩子多大了?  
作者: the2ndface    时间: 2017-1-17 20:02
  1. 加法:
  2. C =20
  3. 随机A = RAND(0,C)
  4. B = RAND(0,C-A)
  5. A+B =?
  6. 减法
  7. C,A同上
  8. B= RAND(0,A)

  9. A-B=?

复制代码

判下重
加减随机一下
作者: Kvm    时间: 2017-1-17 21:07
搭车 同求一个 最好是php的
作者: linhai    时间: 2017-1-17 21:19
HKCPC 发表于 2017-1-17 19:00
你的也会有这个问题,会出现负数,比如1-10   1-15  3-12

我给你写个吧10金币
作者: 来一晚    时间: 2017-1-17 23:20
  1. <?php
  2. error_reporting(E_ALL);

  3. //结果
  4. $rand = 10;
  5. //题目数量 不要太大。。。
  6. $num = 10;

  7. //加法
  8. $t = 0;
  9. $u = 0;
  10. for ($i=0; $i<$num; $i++){
  11. while(1)
  12. {
  13.   $a = mt_rand(0, $rand);
  14.   if ($a > 0) break;
  15. }
  16. while(1)
  17. {
  18.   if ( $u == 1 ) break;
  19.   $t++;
  20.   $b = ($t / 2 == 0 ) ? mt_rand(0, $rand - $a) : $b = ($t == 10000) ? $u = 1 : rand(0, $rand - $a);
  21.   if ( $b <= 0) continue;
  22.   $c = $a + $b;
  23.   if ($c > 0 && $c < $rand) break;
  24. }

  25. printf ("%d + %d = %d \n", $a, $b, $a+$b);}

  26. //减法
  27. $t = 0;
  28. $u = 0;
  29. for ($i=0; $i<$num; $i++){
  30. while(1)
  31. {
  32.   $a = mt_rand(0, $rand);
  33.   if ($a > 0) break;
  34. }
  35. while(1)
  36. {  
  37.   if ( $u == 1 ) break;
  38.   $t++;
  39.   $b = ($t / 2 == 0 ) ? mt_rand(0, $rand - $a) : $b = ($t == 10000) ? $u = 1 : rand(0, $rand - $a);
  40.   if ( $b <= 0) continue;
  41.   $c = $a - $b;
  42.   if ($c > 0 && $c < $rand) break;
  43. }

  44. printf ("%d - %d = %d \n", $a, $b, $a-$b);}

  45. //乘法
  46. $t = 0;
  47. $u = 0;
  48. for ($i=0; $i<$num; $i++){
  49. while(1)
  50. {
  51.   $a = mt_rand(0, $rand);
  52.   if ($a > 0) break;
  53. }
  54. while(1)
  55. {
  56.   if ( $u == 1 ) break;
  57.   $t++;
  58.   $b = ($t / 2 == 0 ) ? mt_rand(0, $rand - $a) : $b = ($t == 10000) ? $u = 1 : rand(0, $rand - $a);
  59.   if ( $b <= 0) continue;
  60.   $c = $a * $b;
  61.   if ($c > 0 && $c < $rand) break;
  62. }

  63. printf ("%d * %d = %d \n", $a, $b, $a*$b);}

  64. //除法
  65. $t = 0;
  66. $u = 0;
  67. for ($i=0; $i<$num; $i++){
  68. while(1)
  69. {
  70.   $a = mt_rand(0, $rand);
  71.   if ($a > 0) break;
  72. }
  73. while(1)
  74. {
  75.   if ( $u == 1 ) break;
  76.   $t++;
  77.   $b = ($t / 2 == 0 ) ? mt_rand(0, $rand - $a) : $b = ($t == 10000) ? $u = 1 : rand(0, $rand - $a);
  78.   if ( $b <= 0) continue;
  79.   $c = $a / $b;
  80.   if ($c > 0 && $c < $rand) break;
  81. }

  82. printf ("%d / %d = %d \n", $a, $b, $a/$b);}

  83. ?>
复制代码


给我打1000分过来~
作者: linhai    时间: 2017-1-18 00:47
(, 下载次数: 0)

https://pan.baidu.com/s/1kVrz74j

  1. from PyQt5 import QtCore, QtGui, QtWidgets
  2. import random

  3. # UI部分
  4. class Ui_MainWindow(object):
  5.     def setupUi(self, MainWindow):
  6.         MainWindow.setObjectName("MainWindow")
  7.         MainWindow.resize(451, 191)
  8.         self.centralWidget = QtWidgets.QWidget(MainWindow)
  9.         self.centralWidget.setObjectName("centralWidget")
  10.         self.label_a = QtWidgets.QLabel(self.centralWidget)
  11.         self.label_a.setGeometry(QtCore.QRect(20, 30, 71, 71))
  12.         font = QtGui.QFont()
  13.         font.setFamily("微软雅黑")
  14.         font.setPointSize(26)
  15.         self.label_a.setFont(font)
  16.         self.label_a.setFrameShape(QtWidgets.QFrame.WinPanel)
  17.         self.label_a.setTextFormat(QtCore.Qt.AutoText)
  18.         self.label_a.setObjectName("label_a")
  19.         self.label_b = QtWidgets.QLabel(self.centralWidget)
  20.         self.label_b.setGeometry(QtCore.QRect(190, 30, 71, 71))
  21.         font = QtGui.QFont()
  22.         font.setFamily("微软雅黑")
  23.         font.setPointSize(26)
  24.         self.label_b.setFont(font)
  25.         self.label_b.setFrameShape(QtWidgets.QFrame.WinPanel)
  26.         self.label_b.setTextFormat(QtCore.Qt.AutoText)
  27.         self.label_b.setObjectName("label_b")
  28.         self.label_3 = QtWidgets.QLabel(self.centralWidget)
  29.         self.label_3.setGeometry(QtCore.QRect(360, 30, 71, 71))
  30.         self.label_3.setFrameShape(QtWidgets.QFrame.WinPanel)
  31.         self.label_3.setText("")
  32.         self.label_3.setTextFormat(QtCore.Qt.AutoText)
  33.         self.label_3.setObjectName("label_3")
  34.         self.label_4 = QtWidgets.QLabel(self.centralWidget)
  35.         self.label_4.setGeometry(QtCore.QRect(125, 44, 41, 41))
  36.         #self.label_4.setAlignment(QtCore.Qt.AlignCenter)
  37.         font = QtGui.QFont()
  38.         font.setFamily("微软雅黑")
  39.         font.setPointSize(48)
  40.         self.label_4.setFont(font)
  41.         self.label_4.setObjectName("label_4")
  42.         self.label_5 = QtWidgets.QLabel(self.centralWidget)
  43.         self.label_5.setGeometry(QtCore.QRect(290, 50, 41, 31))
  44.         font = QtGui.QFont()
  45.         font.setFamily("微软雅黑")
  46.         font.setPointSize(48)
  47.         self.label_5.setFont(font)
  48.         self.label_5.setObjectName("label_5")
  49.         self.range_lineEdit = QtWidgets.QLineEdit(self.centralWidget)
  50.         self.range_lineEdit.setGeometry(QtCore.QRect(20, 129, 41, 21))
  51.         self.range_lineEdit.setCursorPosition(0)
  52.         self.range_lineEdit.setObjectName("range_lineEdit")
  53.         self.lineEdit_2 = QtWidgets.QLineEdit(self.centralWidget)
  54.         self.lineEdit_2.setGeometry(QtCore.QRect(360, 29, 71, 71))
  55.         font = QtGui.QFont()
  56.         font.setFamily("微软雅黑")
  57.         font.setPointSize(26)
  58.         self.lineEdit_2.setFont(font)
  59.         self.lineEdit_2.setCursorPosition(0)
  60.         self.lineEdit_2.setObjectName("lineEdit_2")
  61.         self.label_6 = QtWidgets.QLabel(self.centralWidget)
  62.         self.label_6.setGeometry(QtCore.QRect(70, 130, 54, 21))
  63.         self.label_6.setObjectName("label_6")
  64.         self.check_btn = QtWidgets.QPushButton(self.centralWidget)
  65.         self.check_btn.setGeometry(QtCore.QRect(350, 120, 81, 31))
  66.         self.check_btn.setCheckable(True)
  67.         self.check_btn.setObjectName("check_btn")
  68.         self.next_btn = QtWidgets.QPushButton(self.centralWidget)
  69.         self.next_btn.setGeometry(QtCore.QRect(250, 120, 81, 31))
  70.         self.next_btn.setObjectName("next_btn")
  71.         self.label = QtWidgets.QLabel(self.centralWidget)
  72.         self.label.setEnabled(False)
  73.         self.label.setGeometry(QtCore.QRect(160, 170, 131, 16))
  74.         self.label.setObjectName("label")
  75.         self.comboBox = QtWidgets.QComboBox(self.centralWidget)
  76.         self.comboBox.setGeometry(QtCore.QRect(140, 131, 65, 21))
  77.         self.comboBox.setObjectName("comboBox")
  78.         self.comboBox.addItem("")
  79.         self.comboBox.addItem("")
  80.         self.comboBox.addItem("")
  81.         self.comboBox.addItem("")
  82.         MainWindow.setCentralWidget(self.centralWidget)

  83.         self.retranslateUi(MainWindow)
  84.         QtCore.QMetaObject.connectSlotsByName(MainWindow)

  85.     def retranslateUi(self, MainWindow):
  86.         _translate = QtCore.QCoreApplication.translate
  87.         MainWindow.setWindowTitle(_translate("MainWindow", "神奇的加减法练习"))
  88.         self.label_a.setText(_translate("MainWindow", "1"))
  89.         self.label_b.setText(_translate("MainWindow", "1"))
  90.         self.label_4.setText(_translate("MainWindow", "+"))
  91.         self.label_5.setText(_translate("MainWindow", "="))
  92.         self.range_lineEdit.setText(_translate("MainWindow", "20"))
  93.         self.label_6.setText(_translate("MainWindow", "以内数字"))
  94.         self.check_btn.setText(_translate("MainWindow", "验证结果"))
  95.         self.next_btn.setText(_translate("MainWindow", "下一题"))
  96.         self.label.setText(_translate("MainWindow", "来自热心的hostloc元老"))
  97.         self.comboBox.setItemText(0, _translate("MainWindow", "加法 +"))
  98.         self.comboBox.setItemText(1, _translate("MainWindow", "减法 -"))
  99.         self.comboBox.setItemText(2, _translate("MainWindow", "乘法 ×"))
  100.         self.comboBox.setItemText(3, _translate("MainWindow", "除法 ÷"))

  101. # 逻辑部分
  102. class Main(QtWidgets.QMainWindow, Ui_MainWindow):
  103.     def __init__(self):
  104.         super(Main, self).__init__()
  105.         self.setupUi(self)
  106.         self.get_nums()
  107.         self.check_btn.clicked.connect(self.check)
  108.         self.next_btn.clicked.connect(self.next)
  109.         self.o = ['+','-','×','÷']
  110.         self.comboBox.currentIndexChanged.connect(self.change_operator_label)
  111.         print(self.comboBox.currentIndex())

  112.     def change_operator_label(self):
  113.         curr_index = self.comboBox.currentIndex()
  114.         self.label_4.setText(self.o[curr_index])

  115.     def get_nums(self):
  116.         self.random_range = int(self.range_lineEdit.text())  # 获取设定的数值范围
  117.         while True:
  118.             self.a = random.choice(range(self.random_range))
  119.             self.b = random.choice(range(self.random_range))
  120.             if self.a - self.b > 0: # 设定运算结果非负数
  121.                 if self.b != 0: # 除法运算 被除数要求不为0
  122.                     break
  123.         self.label_a.setText(str(self.a))
  124.         self.label_b.setText(str(self.b))


  125.     def check(self):
  126.         result = self.lineEdit_2.text()

  127.         o = self.comboBox.currentIndex()
  128.         if o == 0:
  129.             self.operator = '+'
  130.         elif o == 1:
  131.             self.operator = '-'
  132.         elif o == 2:
  133.             self.operator = '*'
  134.         else:
  135.             self.operator = '/'

  136.         a = self.label_a.text()
  137.         b = self.label_b.text()
  138.         c = eval(a + self.operator + b)
  139.         print(c)
  140.         if result == str(c):
  141.             QtWidgets.QMessageBox.information(self, '结果','回答正确!')
  142.         else:
  143.             QtWidgets.QMessageBox.information(self, '结果','回答错误!\n %s %s %s = %s' %(a, self.operator, b, c))

  144.         self.get_nums() #刷新题目
  145.         self.lineEdit_2.clear()
  146.         self.lineEdit_2.setFocus() #设置输入框焦点

  147.     def next(self):
  148.         self.get_nums()



  149. if __name__ == "__main__":
  150.     import sys
  151.     app = QtWidgets.QApplication(sys.argv)
  152.     main = Main()
  153.     main.show()
  154.     sys.exit(app.exec_())
复制代码







欢迎光临 全球主机交流论坛 (https://sunk.eu.org/) Powered by Discuz! X3.4