From d09368bc074bbfba37305bf0ca3fd689650b8fb3 Mon Sep 17 00:00:00 2001 From: WangWeiye Date: Wed, 7 Jun 2023 08:23:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=89=B9=E9=87=8F=E9=A2=98?= =?UTF-8?q?=E5=8F=B7=E6=9D=A5=E6=BA=90=E8=AF=86=E5=88=AB=E5=B7=A5=E5=85=B7?= =?UTF-8?q?=E5=B9=B6=E5=9C=A8=E5=88=86=E7=B1=BB=E5=8F=B7=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E4=B8=AD=E6=B7=BB=E5=8A=A0=E7=82=B9=E8=A6=81=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E9=A2=98=E5=8F=B7=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 工具/分类题号字典生成.py | 70 ++++++++++++++++++++++++++++ 工具/工具面板.py | 4 ++ 工具/批量生成题目pdf.py | 34 +++++++++++--- 工具/文本文件/批量题目分类号记录.txt | 32 +++++++++++++ 4 files changed, 134 insertions(+), 6 deletions(-) create mode 100644 工具/分类题号字典生成.py diff --git a/工具/分类题号字典生成.py b/工具/分类题号字典生成.py new file mode 100644 index 00000000..cf1b4288 --- /dev/null +++ b/工具/分类题号字典生成.py @@ -0,0 +1,70 @@ +original_id_list = "1:50000" + +import re,json +suffix_words = ["试题"] + +def strip_suffix(problem, suf_words): + origin = problem["origin"] + for sw in suf_words: + if sw in origin: + origin = re.sub(sw+r"[\d]*$","",origin) + return(origin) + +def generate_number_set(string): + string = re.sub(r"[\n\s]","",string) + string_list = string.split(",") + numbers_list = [] + for s in string_list: + if not ":" in s: + numbers_list.append(s.zfill(6)) + else: + start,end = s.split(":") + for ind in range(int(start),int(end)+1): + numbers_list.append(str(ind).zfill(6)) + return numbers_list + +def generate_exp(id_list): + if not len(id_list) == 0: + exp_list = [] + start = id_list[0] + current = start + end = start + for id in id_list[1:]: + # print(id,current) + if int(id)-1 == int(current): + current = id + end = id + else: + if not start == end: + exp_list.append('"'+start+":"+end+'"') + else: + exp_list.append('"'+start+'"') + start = id + current = id + end = id + if not start == end: + exp_list.append('"'+start+":"+end+'"') + else: + exp_list.append('"'+start+'"') + return exp_list + +with open(r"..\题库0.3\Problems.json","r",encoding="u8") as f: + pro_dict = json.loads(f.read()) + +idlist = generate_number_set(original_id_list) +setlist = {} +for id in idlist: + if id in pro_dict: + p = pro_dict[id] + origin = strip_suffix(p,suffix_words) + if not origin in setlist: + setlist[origin] = [id] + else: + setlist[origin].append(id) +outputlist = {} +for origin in setlist: + outputlist[origin] = ",".join(generate_exp(setlist[origin])).replace('"',"") +t = json.dumps(outputlist,ensure_ascii=False,indent=4) +with open("临时文件/分类题号列表.txt","w",encoding="u8") as f: + f.write(t) +print("已输出至 临时文件/分类题号列表.txt") \ No newline at end of file diff --git a/工具/工具面板.py b/工具/工具面板.py index f04695bf..b1fa339d 100644 --- a/工具/工具面板.py +++ b/工具/工具面板.py @@ -110,6 +110,8 @@ def run_command1(): call(["python","合并使用记录并排序.py"]) elif selectedtool == "剪贴板单选变多选": call(["python","../文本处理工具/单选变为多选.py"]) + elif selectedtool == "分类题号字典生成": + call(["python","分类题号字典生成.py"]) LabelTool.config(text = selectedtool+"STEP1命令执行完毕") button1.place_forget() @@ -146,6 +148,8 @@ ImportMenu.add_command(label = "寻找空闲题号", command = lambda: SetButton ImportMenu.add_separator() ImportMenu.add_command(label = "批量收录题目", command = lambda: SetButton("批量收录题目",1,["批量收录题目.py"])) ImportMenu.add_command(label = "添加关联题目", command = lambda: SetButton("添加关联题目",2,["添加关联题目.py"])) +ImportMenu.add_separator() +ImportMenu.add_command(label = "分类题号字典生成", command = lambda: SetButton("分类题号字典生成",1,["分类题号字典生成.py"])) # 设置 维护 菜单项 MaintainenceMenu = Menu(menubar, tearoff = False) diff --git a/工具/批量生成题目pdf.py b/工具/批量生成题目pdf.py index 0ffc6bb5..9ce96a12 100644 --- a/工具/批量生成题目pdf.py +++ b/工具/批量生成题目pdf.py @@ -17,12 +17,34 @@ filename = "统计单元作业无答案" """---设置题目列表---""" #字典字段为文件名, 之后为内容的题号 problems_dict = { -"8.1.1-成对数据间的关系":"030554,030521,030522,030523,030524", -"8.1.2-相关系数":"010905,010906,010908,030525,030526,030591", -"8.2.1-一元线性回归分析的基本思想":"030527,030528,030567,010911,010912,030573", -"8.2.2-一元线性回归分析的应用举例":"010913,010915,010916,010917,010918", -"8.3.1-2乘2列联表独立性检验":"010920,010922,030530,030531,030532,030578,030579,030580,030593", -"8.3.2-独立性检验的具体应用":"030582,030588" +"高中数学质量测试与监控单元知识测试01集合与逻辑单元测试": "017551:017567", +"高中数学质量测试与监控单元知识测试02等式与不等式单元测试": "017568:017582", +"高中数学质量测试与监控单元知识测试03幂函数指数函数和对数函数单元测试": "017583:017596", +"高中数学质量测试与监控单元知识测试04函数的基本性质单元测试": "017597:017610", +"高中数学质量测试与监控单元知识测试05三角单元测试": "017611:017624", +"高中数学质量测试与监控单元知识测试06三角函数单元测试": "017625:017638", +"高中数学质量测试与监控单元知识测试07平面向量单元测试": "017639:017655", +"高中数学质量测试与监控单元知识测试08复数单元测试": "017656:017671", +"高中数学质量测试与监控单元知识测试09空间直线与平面单元测试": "017672:017684", +"高中数学质量测试与监控单元知识测试10简单几何体单元测试": "017685:017697", +"高中数学质量测试与监控单元知识测试11概率初步单元测试": "017698:017715", +"高中数学质量测试与监控单元知识测试12概率与统计初步单元测试": "017716:017733", +"高中数学质量测试与监控单元知识测试13坐标平面上的直线单元测试": "017734:017749", +"高中数学质量测试与监控单元知识测试14圆锥曲线单元测试": "017750:017764", +"高中数学质量测试与监控单元知识测试15空间向量及其应用一单元测试": "017765:017782", +"高中数学质量测试与监控单元知识测试16空间向量及其应用二单元测试": "017783:017798", +"高中数学质量测试与监控单元知识测试17数列和数学归纳法单元测试": "017799:017812", +"高中数学质量测试与监控单元知识测试18导数及其应用单元测试": "017813:017829", +"高中数学质量测试与监控单元知识测试19计数原理单元测试": "017830:017847", +"高中数学质量测试与监控单元知识测试20概率初步续单元测试": "017848:017864", +"高中数学质量测试综合测试01集合函数不等式": "017865:017887", +"高中数学质量测试综合测试02三角与平面向量": "017888:017909", +"高中数学质量测试综合测试03数列": "017910:017931", +"高中数学质量测试综合测试04解析几何直线和圆": "017932:017952", +"高中数学质量测试综合测试05解析几何圆锥曲线": "017953:017971", +"高中数学质量测试综合测试06空间直线与平面多面体与旋转体及空间向量": "017972:018001", +"高中数学质量测试综合测试07排列组合二项式定理概率与复数": "018002:018019", +"高中数学质量测试综合测试08导数及其应用": "018020:018038" } # problems_dict = { diff --git a/工具/文本文件/批量题目分类号记录.txt b/工具/文本文件/批量题目分类号记录.txt index c3c66e94..3f7a7592 100644 --- a/工具/文本文件/批量题目分类号记录.txt +++ b/工具/文本文件/批量题目分类号记录.txt @@ -1,3 +1,35 @@ +20230607 点要附带练习卷 +problems_dict = { +"高中数学质量测试与监控单元知识测试01集合与逻辑单元测试": "017551:017567", +"高中数学质量测试与监控单元知识测试02等式与不等式单元测试": "017568:017582", +"高中数学质量测试与监控单元知识测试03幂函数指数函数和对数函数单元测试": "017583:017596", +"高中数学质量测试与监控单元知识测试04函数的基本性质单元测试": "017597:017610", +"高中数学质量测试与监控单元知识测试05三角单元测试": "017611:017624", +"高中数学质量测试与监控单元知识测试06三角函数单元测试": "017625:017638", +"高中数学质量测试与监控单元知识测试07平面向量单元测试": "017639:017655", +"高中数学质量测试与监控单元知识测试08复数单元测试": "017656:017671", +"高中数学质量测试与监控单元知识测试09空间直线与平面单元测试": "017672:017684", +"高中数学质量测试与监控单元知识测试10简单几何体单元测试": "017685:017697", +"高中数学质量测试与监控单元知识测试11概率初步单元测试": "017698:017715", +"高中数学质量测试与监控单元知识测试12概率与统计初步单元测试": "017716:017733", +"高中数学质量测试与监控单元知识测试13坐标平面上的直线单元测试": "017734:017749", +"高中数学质量测试与监控单元知识测试14圆锥曲线单元测试": "017750:017764", +"高中数学质量测试与监控单元知识测试15空间向量及其应用一单元测试": "017765:017782", +"高中数学质量测试与监控单元知识测试16空间向量及其应用二单元测试": "017783:017798", +"高中数学质量测试与监控单元知识测试17数列和数学归纳法单元测试": "017799:017812", +"高中数学质量测试与监控单元知识测试18导数及其应用单元测试": "017813:017829", +"高中数学质量测试与监控单元知识测试19计数原理单元测试": "017830:017847", +"高中数学质量测试与监控单元知识测试20概率初步续单元测试": "017848:017864", +"高中数学质量测试综合测试01集合函数不等式": "017865:017887", +"高中数学质量测试综合测试02三角与平面向量": "017888:017909", +"高中数学质量测试综合测试03数列": "017910:017931", +"高中数学质量测试综合测试04解析几何直线和圆": "017932:017952", +"高中数学质量测试综合测试05解析几何圆锥曲线": "017953:017971", +"高中数学质量测试综合测试06空间直线与平面多面体与旋转体及空间向量": "017972:018001", +"高中数学质量测试综合测试07排列组合二项式定理概率与复数": "018002:018019", +"高中数学质量测试综合测试08导数及其应用": "018020:018038" +} + 20230531 2022届全国各地高考试题汇编 problems_dict = { "2022届全国高考新高考I卷":"017244:017265",