全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 1251|回复: 15
打印 上一主题 下一主题

[Windows VPS] 求一个【加减法自动出题】的软件。有没有dalao有。

[复制链接]
跳转到指定楼层
1#
发表于 2017-1-16 14:09:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
网上看了些都不满意,试了几个都有这样那样的不足。。。

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


推荐
发表于 2017-1-18 00:47:56 | 只看该作者
QQ截图20170118004656.jpg (18.91 KB, 下载次数: 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_())
复制代码


2#
 楼主| 发表于 2017-1-16 14:13:13 | 只看该作者
有一个【小学算术练习工具】比较合适的,但是会出错。

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

你的也会有这个问题,会出现负数,比如1-10   1-15  3-12
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2025-11-7 07:42 , Processed in 0.324681 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表