import sys
from PyQt4 import QtGui
import random
Info=["欢迎使用上机答题系统,开始答题:" ,
"当前是第 " ,
" 题,您还有 " ,
" 次机会:" ,
"您的回答错误,请继续尝试.." ,
"您的总得分是 : " ];
resultInfo = [ 'SMART' ,'GOOD' ,'OK' ,'PASS' ,'TRY AGAIN'];
class Sunyuqiang(QtGui.QWidget):
def __init__(self):
super(Sunyuqiang, self).__init__()
self.center()
self.initUI()
def initUI(self):
self.resize(400, 150)
self.setWindowTitle('小学生测验')
self.btn = QtGui.QPushButton('题目', self)
self.btn.resize(60,25)
self.btn.move(50, 50)
self.ans = QtGui.QLineEdit(self)
self.ans.resize(300, 25)
self.ans.move(50, 20)
self.le = QtGui.QLineEdit(self)
self.le.resize(200,25)
self.le.move(150, 50)
self.btn = QtGui.QPushButton('提示', self)
self.btn.resize(60, 25)
self.btn.move(50, 80)
self.req = QtGui.QLineEdit(self)
self.req.resize(200, 25)
self.req.move(150, 80)
self.req = QtGui.QLineEdit(self)
self.req.resize(200, 25)
self.req.move(150, 80)
self.btn = QtGui.QPushButton('评价', self)
self.btn.resize(60, 25)
self.btn.move(50, 110)
self.sco = QtGui.QLineEdit(self)
self.sco.resize(200, 25)
self.sco.move(150, 110)
self.show()
self.showQuestionDialog()
def closeEvent(self, event):
reply = QtGui.QMessageBox.question(self, '是否退出',
"Are you sure to quit?", QtGui.QMessageBox.Yes, QtGui.QMessageBox.No)
if reply == QtGui.QMessageBox.Yes:
event.accept()
else:
event.ignore()
def showDialog(self,question):
text, ok = QtGui.QInputDialog.getText(self, question, '输入你的答案:')
return text
def center(self):
screen = QtGui.QDesktopWidget().screenGeometry()
size = self.geometry()
self.move((screen.width()-size.width())/2, (screen.height()-size.height())/2)
def showQuestionDialog(self):
print(Info[0])
sum = 0
for i in range(0, 10):
while 1:
x1 = random.randrange(0, 51, 1)
x2 = random.randrange(0, 51, 1)
if x1 + x2 <= 50 and x1 - x2 >= 0:
break
res = 0
question = " "
flag = random.choice("+-")
if str(flag) == "+":
res = x1 + x2
question = str(x1) + '+' + str(x2) + '=' + '?'
self.le.setText(str(question))
for tryTime in [3, 2, 1]:
self.ans.setText(Info[1] + str(i + 1) + Info[2] + str(tryTime) + Info[3])
x=self.showDialog(question)
if x=='exit:':
return
if x != str(res):
self.req.setText(Info[4])
if tryTime==1:
self.req.setText(question+'正确答案:' + str(res))
if x == str(res) and tryTime == 3:
sum = sum + 10
self.req.setText('回答正确')
break
if x == str(res) and tryTime == 2:
sum = sum + 7
self.req.setText('回答正确')
break
if x == str(res) and tryTime == 1:
sum = sum + 5
self.req.setText('回答正确')
break
else:
res = x1 - x2
question = str(x1) + '-' + str(x2) + '=' + '?'
self.le.setText(str(question))
for tryTime in [3, 2, 1]:
self.ans.setText(Info[1] + str(i + 1) + Info[2] + str(tryTime) + Info[3])
x=self.showDialog(question)
if x=='exit:':
return
if x != str(res):
self.req.setText(Info[4])
if tryTime==1:
self.req.setText(question+'正确答案:' + str(res))
if x == str(res) and tryTime == 3:
sum = sum + 10
self.req.setText('回答正确')
break
if x == str(res) and tryTime == 2:
sum = sum + 7
self.req.setText('回答正确')
break
if x == str(res) and tryTime == 1:
sum = sum + 5
self.req.setText('回答正确')
break
print('检测结束')
print(Info[5] + str(sum))
if sum >= 90:
self.sco.setText(str(sum)+'分'+'您的评价为' + resultInfo[0])
if sum < 90 and sum >= 80:
self.sco.setText(str(sum)+'分'+'您的评价为' + resultInfo[1])
if sum < 80 and sum >= 70:
self.sco.setText(str(sum)+'分'+'您的评价为' + resultInfo[2])
if sum < 70 and sum >= 60:
self.sco.setText(str(sum)+'分'+'您的评价为' + resultInfo[3])
if sum < 60:
self.sco.setText(str(sum)+'分'+'您的评价为' + resultInfo[4])
def main():
app = QtGui.QApplication(sys.argv)
syq = Sunyuqiang()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
用QT写的一个小程序
最新推荐文章于 2024-08-02 20:22:27 发布