Compare commits

..

No commits in common. 'master' and '1.0.0' have entirely different histories.

@ -1,22 +1,20 @@
import random import random
from cfractions import Fraction import re
def create_number(i): def create_number(i):
get_number = random.randint(0, int(i)) get_number = random.randint(0,int(i))
# print(get_number) # print(get_number)
return get_number return get_number
def create_sign(): def create_sign():
sign = ['+', '-', '*', '÷'] sign = ['+','-','*','÷']
get_sign = random.choice(sign) get_sign = random.choice(sign)
# print(get_sign) # print(get_sign)
return get_sign return get_sign
def create_formula(flag_num): def create_formula(flag_num):
total = [3, 5, 7] total = [3,5,7]
flag = random.choice(total) flag = random.choice(total)
# 生成算式 result数组 # 生成算式 result数组
result = [] result = []
@ -39,20 +37,19 @@ def create_formula(flag_num):
if bracket == 1: if bracket == 1:
for i in range(length): for i in range(length):
if result[i] == '+' or result[i] == '-': if result[i] == '+' or result[i] == '-':
result.insert(i-1, '(') result.insert(i-1,'(')
result.insert(i+3, ')') result.insert(i+3,')')
break break
# print(result) print(result)
formula = str(str(result).replace("'", "").replace( formula = str(str(result).replace("'","").replace(',','')).replace('[','').replace(']','')
',', '')).replace('[', '').replace(']', '')
# 计算 # 计算
while len(result) != 1: while len(result) != 1:
if '(' in result: if '(' in result:
number_sign = result.index('(')+2 number_sign = result.index('(')+2
if result[number_sign] == '+': if result[number_sign] == '+':
number_num = result[number_sign - 1] + result[number_sign + 1] number_num = result[number_sign - 1] + result[number_sign + 1]
result[number_sign - 2] = number_num result[number_sign -2] = number_num
result.remove(result[number_sign - 1]) result.remove(result[number_sign - 1])
result.remove(result[number_sign - 1]) result.remove(result[number_sign - 1])
result.remove(result[number_sign - 1]) result.remove(result[number_sign - 1])
@ -69,57 +66,38 @@ def create_formula(flag_num):
else: else:
if '*' in result: if '*' in result:
number_sign = result.index('*') number_sign = result.index('*')
# print(result) print(result)
number_num = int( number_num = float(result[number_sign - 1]) * float(result[number_sign + 1])
float(result[number_sign - 1]) * float(result[number_sign + 1]))
result[number_sign] = number_num result[number_sign] = number_num
result.remove(result[number_sign - 1]) result.remove(result[number_sign - 1])
result.remove(result[number_sign]) result.remove(result[number_sign])
# print('*'+str(result)) print('*'+str(result))
elif '÷' in result: elif '÷' in result:
number_sign = result.index('÷') number_sign = result.index('÷')
if result[number_sign + 1] == 0 or result[number_sign + 1] == '0': if result[number_sign + 1] == 0 or result[number_sign + 1] == '0':
create_formula(flag_num) create_formula(flag_num)
else: else:
# print(result[number_sign - 1],result[number_sign + 1]) number_num = float(result[number_sign - 1]) / float(result[number_sign + 1])
number_num = Fraction(
int(result[number_sign - 1]), int(result[number_sign + 1]))
# print(number_num)
result[number_sign] = number_num result[number_sign] = number_num
result.remove(result[number_sign - 1]) result.remove(result[number_sign - 1])
result.remove(result[number_sign]) result.remove(result[number_sign])
# print('÷'+str(result)) print('÷'+str(result))
elif '+' in result: elif '+' in result:
number_sign = result.index('+') number_sign = result.index('+')
number_num = int( number_num = float(result[number_sign - 1]) + float(result[number_sign + 1])
float(result[number_sign - 1]) + float(result[number_sign + 1]))
result[number_sign - 1] = number_num result[number_sign - 1] = number_num
result.remove(result[number_sign]) result.remove(result[number_sign])
result.remove(result[number_sign]) result.remove(result[number_sign])
# print('+'+str(result)) print('+'+str(result))
elif '-' in result: elif '-' in result:
number_sign = result.index('-') number_sign = result.index('-')
number_num = int( number_num = float(result[number_sign - 1]) - float(result[number_sign + 1])
float(result[number_sign - 1]) - float(result[number_sign + 1]))
result[number_sign - 1] = number_num result[number_sign - 1] = number_num
result.remove(result[number_sign]) result.remove(result[number_sign])
result.remove(result[number_sign]) result.remove(result[number_sign])
# print('-'+str(result)) print('-'+str(result))
result = str(result).replace('[', '').replace(']', '') result = str(result).replace('[','').replace(']','')[0:5]
# print('------------')
# print(result) # print(result)
# print('+++++++++++++')
if 'Fraction' in result:
start = result.index('(')
center = result.index(',')
end = result.index(')')
if result[start + 1] == 0 or result[start + 1] == '0':
result = 0
else:
result = str(result)[start+1:center] + \
'/' + str(result)[center+1:end]
# print(result)
# print(start,center,end)
# print(formula) # print(formula)
return result, formula return result,formula

@ -0,0 +1 @@
# test

@ -0,0 +1,45 @@
from tkinter import *
def run1():
a = float(inp1.get())
b = float(inp2.get())
s = '%0.2f+%0.2f=%0.2f\n' % (a, b, a + b)
txt.insert(END, s) # 追加显示运算结果
inp1.delete(0, END) # 清空输入
inp2.delete(0, END) # 清空输入
def run2(x, y):
a = float(x)
b = float(y)
s = '%0.2f+%0.2f=%0.2f\n' % (a, b, a + b)
txt.insert(END, s) # 追加显示运算结果
inp1.delete(0, END) # 清空输入
inp2.delete(0, END) # 清空输入
root = Tk()
root.geometry('460x240')
root.title('简单加法器')
lb1 = Label(root, text='请输入两个数,按下面两个按钮之一进行加法计算')
lb1.place(relx=0.1, rely=0.1, relwidth=0.8, relheight=0.1)
inp1 = Entry(root)
inp1.place(relx=0.1, rely=0.2, relwidth=0.3, relheight=0.1)
inp2 = Entry(root)
inp2.place(relx=0.6, rely=0.2, relwidth=0.3, relheight=0.1)
# 方法-直接调用 run1()
btn1 = Button(root, text='方法一', command=run1)
btn1.place(relx=0.1, rely=0.4, relwidth=0.3, relheight=0.1)
'''
# 方法二利用 lambda 传参数调用run2()
btn2 = Button(root, text='方法二', command=lambda: run2(inp1.get(), inp2.get()))
btn2.place(relx=0.6, rely=0.4, relwidth=0.3, relheight=0.1)
'''
# 在窗体垂直自上而下位置60%处起布局相对窗体高度40%高的文本框
txt = Text(root)
txt.place(rely=0.6, relheight=0.4)
root.mainloop()

@ -21,7 +21,7 @@ def begin():
'formula':formula, 'formula':formula,
'result':result 'result':result
} }
print(data) # print(data)
return data return data
if __name__ == "__main__": if __name__ == "__main__":

@ -5,12 +5,10 @@
html,body{ html,body{
margin: 0px; margin: 0px;
padding: 0; padding: 0;
overflow-y: hidden; width: 100%;
background: #c2ccd0e5; height: 90%;
} overflow: hidden;
body{ background: #c2ccd0;
width: 100vw;
height: 100vh;
} }
input::-webkit-outer-spin-button, input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button { input::-webkit-inner-spin-button {
@ -23,32 +21,23 @@ input[type="number"] {
h1{ h1{
margin: 10px; margin: 10px;
padding: 5px; padding: 5px;
width: 80%; width: 50%;
position: relative; position: relative;
left: 10%; left: 25%;
border-top: 1px solid #bbcdc5;
border-left: 1px solid #bbcdc5;
box-shadow: 4px 4px 5px #888888; box-shadow: 4px 4px 5px #888888;
} }
ul{ ul{
display: block; width: 60%;
height: 50%;
min-width: 800px;
max-width: 50%;
position: relative; position: relative;
left: 25%; left: 20%;
text-align: right; text-align: right;
border: 1px solid #bbcdc5; border: 1px solid #bbcdc5;
box-shadow: 4px 4px 5px #888888; box-shadow: 4px 4px 5px #888888;
overflow: auto;
} }
li{ li{
position: relative;
left: 15%;
width: 70%;
height: 10px;
margin: 5px; margin: 5px;
padding: 10px; padding: 10px;
width: 80%;
list-style: none; list-style: none;
} }
.notice{ .notice{
@ -64,14 +53,14 @@ li{
display: block; display: block;
margin: 10px; margin: 10px;
padding: 10px; padding: 10px;
height: 150px; height: 25%;
text-align: center; text-align: center;
font-size: large; font-size: large;
font-weight: bold; font-weight: bold;
background: #e0eee8; background: #e0eee8;
} }
.display{ .display{
height: 85%; height: 90%;
margin: 10px; margin: 10px;
padding: 10px; padding: 10px;
position: relative; position: relative;
@ -81,8 +70,6 @@ li{
font-weight: bold; font-weight: bold;
text-align: center; text-align: center;
background: #e0eee8; background: #e0eee8;
overflow-y: auto;
overflow-x: hidden;
} }
.result{ .result{
outline: none; outline: none;
@ -97,14 +84,13 @@ li{
} }
.btnn,.btnn2{ .btnn,.btnn2{
width: 100px; width: 100px;
height: 25px; height: 50px;
font-size: large; font-size: large;
font-weight: bold; font-weight: bold;
background: #f3f9f1; background: #f3f9f1;
outline: none; outline: none;
border: #c2ccd0; border: #c2ccd0;
box-shadow: 4px 4px 5px #888888; box-shadow: 4px 4px 5px #888888;
text-align: center;
} }
#time{ #time{
display: inline-block; display: inline-block;
@ -112,12 +98,10 @@ li{
height: 25px; height: 25px;
text-align: center; text-align: center;
border: #c2ccd0; border: #c2ccd0;
border-top: 1px solid #bbcdc5;
border-left: 1px solid #bbcdc5;
box-shadow: 4px 4px 5px #888888; box-shadow: 4px 4px 5px #888888;
} }
#info{ #info{
float: left;
margin: 5px; margin: 5px;
padding: auto; padding: auto;
width: 15%; width: 15%;

@ -0,0 +1,25 @@
//计时器
var intDiff = parseInt(15);//倒计时总秒数量
function timer(intDiff) {
window.setInterval(function () {
var minute = 0,
second = 0;//时间默认值
if (intDiff > 0) {
minute = Math.floor(intDiff / 60);
second = Math.floor(intDiff) - (minute * 60);
}
if (minute <= 9) minute = '0' + minute;
if (second <= 9) second = '0' + second;
$('#minute').html('<s></s>' + minute + '分');
$('#second').html('<s></s>' + second + '秒');
intDiff++;
if (intDiff >= 20) {
clearInterval(timer); //定时器清除;
history.back(-1);
}
}, 1000);
}
$(function () {
timer(intDiff);
});

@ -2,7 +2,6 @@
$(document).ready(function () { $(document).ready(function () {
var results = Array(); var results = Array();
var ctime; var ctime;
var flag_again = false;
var flag_create = false; var flag_create = false;
var score = 0; var score = 0;
var usetime = 0; var usetime = 0;
@ -26,71 +25,25 @@ $(document).ready(function () {
}); });
$("#create").click(function (e) { $("#create").click(function (e) {
e.preventDefault(); e.preventDefault();
if (!flag_again) { $("#show").hide();
flag_again = true; if (module) {
console.log(flag_again); if (parseFloat(btn.text()) == 0 || btn.text() == "") {
if (language == 1 && confirm("答题须知除法的商请以分数形式输入示例1 ÷ 2 = 1/2")) { results = [];
$("#show").hide(); score = 0;
if (module) { usetime = 0;
if (parseFloat(btn.text()) == 0 || btn.text() == "") { begin();
results = []; } else {
score = 0; return;
usetime = 0;
begin();
} else {
return;
}
} else {
if (language != -1) {
alert("请先选择出题模式。");
} else {
alert("Please Choose Module First!");
}
}
} else if (language == -1 && confirm("Answer note: Please enter the quotient of division as a fraction! Such as: 1 ÷ 2 = 1/2")) {
$("#show").hide();
if (module) {
if (parseFloat(btn.text()) == 0 || btn.text() == "") {
results = [];
score = 0;
usetime = 0;
begin();
} else {
return;
}
} else {
if (language != -1) {
alert("请先选择出题模式。");
} else {
alert("Please Choose Module First!");
}
}
} }
} else { } else {
$("#show").hide(); if (language != -1) {
if (module) { alert("请先选择出题模式。");
if (parseFloat(btn.text()) == 0 || btn.text() == "") {
results = [];
score = 0;
usetime = 0;
begin();
} else {
return;
}
} else { } else {
if (language != -1) { alert("Please Choose Module First!");
alert("请先选择出题模式。");
} else {
alert("Please Choose Module First!");
}
} }
} }
console.log(results);
//console.log(results);
}); });
$("#exchange").change(function (e) { $("#exchange").change(function (e) {
e.preventDefault(); e.preventDefault();
@ -198,15 +151,8 @@ $(document).ready(function () {
let counts = Object.keys(res).length; let counts = Object.keys(res).length;
for (let i = 0; i < counts; i++) { for (let i = 0; i < counts; i++) {
$("#ul").append("<li><span class='detials'>" + res[i].formula + " = " + "</span><input class='result' type='text'>" + "<span class='notice'></span></li>"); $("#ul").append("<li><span class='detials'>" + res[i].formula + " = " + "</span><input class='result' type='number'>" + "<span class='notice'></span></li>");
var tmp = res[i].result; results.push(res[i].result);
var reg = /\s+/g;
//console.log(typeof tmp + " " + tmp);
if (typeof tmp == "string") {
tmp = tmp.replace(reg, "");
}
//results.push(res[i].result);
results.push(tmp);
} }
$("#ul").slideToggle("slow"); $("#ul").slideToggle("slow");
@ -234,11 +180,7 @@ $(document).ready(function () {
btn.text(parseFloat(btn.text()) - 1 + 's'); btn.text(parseFloat(btn.text()) - 1 + 's');
if (parseFloat(btn.text()) == 0) { if (parseFloat(btn.text()) == 0) {
stopct(); stopct();
flag_input = true;
check(); check();
$("#show").show();
$(".result").attr("disabled", 'disabled');
$("#check").attr("disabled", 'disabled');
} }
}, 1000); }, 1000);
} }
@ -248,7 +190,7 @@ $(document).ready(function () {
if (flag_input) { if (flag_input) {
for (let i = 0; i < results.length; i++) { for (let i = 0; i < results.length; i++) {
console.log(inputs.eq(i).val()); console.log(inputs.eq(i).val());
if (inputs.eq(i).val() != "" && inputs.eq(i).val() == results[i]) { if (inputs.eq(i).val() != "" && Number(inputs.eq(i).val()) == Number(results[i])) {
if (language != -1) { if (language != -1) {
notices.eq(i).text("结果正确!"); notices.eq(i).text("结果正确!");
} else { } else {

@ -28,11 +28,12 @@
<span id="time">0s</span> <span id="time">0s</span>
<button id="check" class="btnn" data-name="check" style="display: none;">提交答案</button> <button id="check" class="btnn" data-name="check" style="display: none;">提交答案</button>
<button id="show" class="btnn" data-name="show" style="display: none;">查看答案</button> <button id="show" class="btnn" data-name="show" style="display: none;">查看答案</button>
<span id="info" style="display: none;"></span>
</div> </div>
<div class="display"> <div class="display">
<ul id="ul" style="display: none"></ul> <span id="info" style="display: none;"></span>
<ul id="ul" style="display: none">
</ul>
</div>
</div> </div>
</body> </body>

Loading…
Cancel
Save