【教学类-52-03】20240412动物数独(4宫格)难度1-9 打印版

作品展示:合并打印(难度10%-90%,一共9份)

背景需求

前期两个代码完成了4宫格基本样式的制作

【教学类-52-01】20240411动物数独(4宫格)宫格图icon-default.png?t=N7T8https://mp.csdn.net/mp_blog/creation/editor/137679361【教学类-52-01】20240411动物数独(4宫格)宫格图-CSDN博客文章浏览阅读700次,点赞19次,收藏3次。【教学类-52-01】20240411动物数独(4宫格)宫格图https://blog.csdn.net/reasonsummer/article/details/137679361

但是在打印前,我仔细这些正方形的数独题,只有图纸没有记号,有巨大的问题:

1、打印后,要通过点数空格数,才能知道那一份是简单的(空格少)那一份是最难的(空格多)

2、幼儿操作时没法确定简单和困难,会反复询问老师解题方法,也很麻烦。

因此,我认为还是要给图片加上一定的记号(数字或星号),来区分图片的难度。

素材准备:

这些宫格图并非图片,因此我将docx竖版改成横版,并在宫格图上方加入一个独立的1行2列表格,作为标题栏。

代码修改

代码展示:

# 测试11*11格,2*2一共4套3*3 宫格
'''
目的:动物数独01 a4竖版 2个4*4宫格(连在一起的)套抽一半(数字替换成图片) 难度1-9,横版加标题
作者:「Vaeeeeeee」,AI对话大师,阿夏
时间:2024年4月12日 13:35'''import random,time
from win32com.client import constants,gencache
from win32com.client.gencache import EnsureDispatch
from win32com.client import constants # 导入枚举常数模块
import os,timeimport docx
from docx import Document
from docx.shared import Pt 
from docx.shared import RGBColor
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.oxml.ns import qnfrom docxtpl import DocxTemplate
import pandas as pd
from docx2pdf import convert
from docx.shared import RGBColorfrom docx import Document
from docx.shared import Cm
from docx.enum.text import WD_ALIGN_PARAGRAPH, WD_PARAGRAPH_ALIGNMENTfrom docx.oxml.ns import nsdecls
from docx.oxml import parse_xml# 生成题库
import random
import copynum=int(input('生成几份\n'))
# 制作"单元格"# 几宫格
hsall=int(input('请输入4或9\n'))
hs=hsall# kk=int(input('空格数量,输入5,就是50%,就是空一半)\n'))for kk in range(1,10):# 因为有3-9的不同word模板,其中3-4模板一页生成9套,5-9模板一页生成6套,这里直接生成边长ll=['4','9'] # 如果输入345mm=['21','32']# 3对应的套数是1*2套nn=['24','24']# 3对应的写入单元格的数字大小36磅 for r in range(len(ll)):if hsall ==int(ll[r]):# 底边几套.底边看有2份db=int(mm[r][0])# int(input('底边几套? 3\n'))# 侧边几套 侧边看也是2份print(db )        cb=int(mm[r][1])# int(input('侧边几套? 2\n'))print(cb)size=int(nn[r])print(size)        # 写入单元格数字的大小(撑满格子)path=r'C:\Users\jg2yXRZ\OneDrive\桌面\动物数独'# 新建一个”装N份word和PDF“的临时文件夹imagePath=path+r'\\零时Word'if not os.path.exists(imagePath):  # 判断存放图片的文件夹是否存在os.makedirs(imagePath)  # 若图片文件夹不存在就创建# 计算不同模板中的单元格坐标,放在bg里# 棋盘格子数量,# 如果正方形:底边2*侧边2,就是3*3宫格 2*2=4套,底边边格子数量就是3*2+1=7,侧边格子数量就是3*2+1=7,# 如果长方形:底边3*侧边2,就是3*3宫格,3*2=6套 底边格子数量就是3*3+2=11,侧边格子数量就是3*2+1=7,# if db==cb:db_size = hs*db+db-1cb_size=  hs*cb+cb-1print('{}宫格排列底{}侧{}共{}套,底边格子数{}'.format(hs,db,cb,db*cb,db_size ))print('{}宫格排列底{}侧{}共{}套,侧边格子数{}'.format(hs,db,cb,db*cb,cb_size ))# 确定每个宫格的左上角坐标 00 04 40  44bgszm=[]for a in range(0,cb_size,hs+1):    # 0-11每隔4,写一个坐标  侧边yfor b in range(0,db_size,hs+1):  # 0-11每隔4,写一个坐标  侧边xbgszm.append('{}{}'.format('%02d'%a,'%02d'%b))print(bgszm)# 3宫格排列底3侧2共6套,底边格子数11# 3宫格排列底3侧2共6套,侧边格子数7# ['0000', '0004', '0008', '0400', '0404', '0408']# 转为元祖start_coordinates = [(int(s[0:2]), int(s[2:4])) for s in bgszm]cell_coordinates = []# 推算每个起始格子后面的单元格数字for start_coord in start_coordinates:i, j = start_coordsubgrid_coordinates = []for x in range(hs):for y in range(hs):subgrid_coordinates.append((i + x, j + y))cell_coordinates.append(subgrid_coordinates)# 打印结果(元祖样式)bg=[]for coordinates in cell_coordinates:# print(coordinates)     # [(4, 8), (4, 9), (4, 10), (5, 8), (5, 9), (5, 10), (6, 8), (6, 9), (6, 10)]for c in  coordinates:print(c)        # 元组 (1, 2) 样式s = ''.join(str(num).zfill(2) for num in c)   # zfill将元组 (1, 2) 转换为字符串 '0102' 特别是(5,10)这种必须转成2个数字0510print(str(s))        #  '12'bg.append(s)  #  '0102'print(bg)# 生成PDfP=[] for z in range(num):  P.clear()#    制作4份数据for j in range(db*cb):    #  3宫格,4*3=12套# ————————————————# 版权声明:本文为CSDN博主「Vaeeeeeee」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。# 原文链接:https://blog.csdn.net/m0_46366547/article/details/131334720def generate_sudoku_board():# 创建一个9x9的二维列表,表示数独棋盘board = [[0] * hs for _ in range(hs)]# 递归函数,用于填充数独棋盘的每个单元格def filling_board(row, col):# 检查是否填充完成整个数独棋盘if row == hs:return True# 计算下一个单元格的行和列索引next_row = row if col < hs-1 else row + 1next_col = (col + 1) % hsimport mathr = int(math.sqrt(hs))print(r)# 获取当前单元格在小九宫格中的索引box_row = row // rbox_col = col // r# 随机生成1到9的数字numbers = random.sample(range(1, hs+1), hs)for num in numbers:# 检查行、列、小九宫格是否已经存在相同的数字if num not in board[row] and all(board[i][col] != num for i in range(hs)) and all(num != board[i][j] for i in range(box_row*r, box_row*r+r) for j in range(box_col*r, box_col*r+r)):board[row][col] = num# 递归填充下一个单元格if filling_board(next_row, next_col):return True# 回溯,将当前单元格重置为0board[row][col] = 0return False# 填充数独棋盘filling_board(0, 0)return board# 这一块是按照等级随机产生空格,数量不稳定,    # def create_board(level): # level数字越大代表游戏难度越大,空白格子越多#         """#         生成一个随机的数独棋盘,空白格少#         """#         board = generate_sudoku_board()#         board1 =  copy.deepcopy(board)#         for i in range(hs*hs):#             row = i // hs#             col = i % hs#             if random.randint(0, hs) < level:   # 随机数量#                 board1[row][col] = 0                          # 格子填充为0#         return (board,board1)# if hs==9:#     v = create_board(5)[1]  #     print(v)# if hs==4:#     v = create_board(3)[1]  #     print(v)# 定量出现空白格子def create_board(): # level数字越大代表游戏难度越大"""生成一个随机的数独棋盘,空白格少"""board = generate_sudoku_board()board1 =  copy.deepcopy(board)blanks = random.sample(range(hs*hs), int(hs*hs*kk/10))for i in blanks:row = i // hscol = i % hsboard[row][col] = 0# if random.randint(0, hs) < level:#     board1[row][col] = 0return boardv = create_board() # 数字越小,空格少# 数字大,空格多# 这里无法控制空格的数量# 提取每个元素for a1  in v:         # 第一次读取,[a,b][c,d][e,f]的内容-列表for a2 in a1:    # 第二次读取,[a,b,c,d,e,f]的内容-元素if a2==0:                # 如果某个元素==0,就替换成空P.append('')else:      # 如果某个元素非0,就写入本身的数字P.append(a2)print(P)print(len(P))Q=Pdoc = Document(path+r'\动物数独(四宫格横板).docx')     # 获取第一个表格,写难度用的table = doc.tables[0]for b1 in range(0,2):# 在'00'单元格中插入文本cell_00 = table.cell(0, b1)cell_00_paragraph = cell_00.paragraphs[0]cell_00_paragraph.text =f"第 {kk} 关"cell_00_paragraph.style.font.bold = Truecell_00_paragraph.style.font.size = Pt(24)cell_00_paragraph.style.font.name = "黑体"cell_00_paragraph.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER#    table = doc.tables[1]          # 表0,表2 写标题用的# 标题写入3、5单元格  for t in range(0,len(bg)):             # 0-5是最下面一行,用来写卡片数字pp=int(bg[t][0:2])     # qq=int(bg[t][2:4])k=str(Q[t])              # 提取list图案列表里面每个图形  t=索引数字print(pp,qq,k)# 图案符号的字体、大小参数run=table.cell(pp,qq).paragraphs[0].add_run(k)    # 在单元格0,0(第1行第1列)输入第0个图图案run.font.name = '黑体'#输入时默认华文彩云字体# run.font.size = Pt(46)  #输入字体大小默认30号 换行(一页一份大卡片run.font.size = Pt(size) #是否加粗# run.font.color.rgb = RGBColor(150,150,150) #数字小,颜色深0-255run.font.color.rgb = RGBColor(50,50,50) #数字小,颜色深0-255run.bold=True# paragraph.paragraph_format.line_spacing = Pt(180) #数字段间距r = run._elementr.rPr.rFonts.set(qn('w:eastAsia'), '黑体')#将输入语句中的中文部分字体变为华文行楷table.cell(pp,qq).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER#居中  doc.save(imagePath+r'\{}.docx'.format('%02d'%(z+1)))#保存为XX学号的电话号码word   time.sleep(1)from docx import Documentfrom docx.shared import Cm# 读取四张卡通动物的文件名animal_path = path+r'\02动物图片'  # 替换为实际的文件夹路径# 获取文件夹中所有文件的完整路径file_paths = [os.path.join(animal_path, file_name) for file_name in os.listdir(animal_path)]print(file_paths)# 把数字1替换成01图片# 打开Word文档doc = Document(imagePath+r'\{}.docx'.format('%02d'%(z+1)))# 获取所有表格tables = doc.tables# 遍历每个表格for table in tables:# 遍历表格的行for i, row in enumerate(table.rows):# 遍历行的单元格for j, cell in enumerate(row.cells):# 读取单元格的文本值cell_text = cell.textfor x in range(0,4):# 判断单元格的值是否为1if cell_text == f'{x+1}':# 删除原来的文本cell.text = ''# 插入图片run = cell.paragraphs[0].add_run()run.add_picture(file_paths[x], width=Cm(3), height=Cm(3))# 设置图片对齐方式为居中run.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER# 设置单元格的水平和垂直对齐方式为居中cell.vertical_alignment = WD_ALIGN_PARAGRAPH.CENTERcell.paragraphs[0].alignment = WD_ALIGN_PARAGRAPH.CENTER# 保存修改后的文档doc.save(imagePath+r'\{}.docx'.format('%02d'%(z+1)))time.sleep(2)# # 关闭Word文档# doc.close()time.sleep(2)from docx2pdf import convert# docx 文件另存为PDF文件inputFile = imagePath+"\{}.docx".format('%02d'%(z+1))# 要转换的文件:已存在outputFile = imagePath+"\{}.pdf".format('%02d'%(z+1))  # 要生成的文件:不存在# 先创建 不存在的 文件f1 = open(outputFile, 'w')f1.close()# 再转换往PDF中写入内容convert(inputFile, outputFile)print('----------第4步:把都有PDF合并为一个打印用PDF------------')# 多个PDF合并(CSDN博主「红色小小螃蟹」,https://blog.csdn.net/yangcunbiao/article/details/125248205)import osfrom PyPDF2 import PdfMergertarget_path =  imagePathpdf_lst = [f for f in os.listdir(target_path) if f.endswith('.pdf')]pdf_lst = [os.path.join(target_path, filename) for filename in pdf_lst]pdf_lst.sort()file_merger = PdfMerger()for pdf in pdf_lst:print(pdf)file_merger.append(pdf)file_merger.write(path+r"\(打印合集) 动物拼图{}宫格难度{} ({}乘{}等于{}套{}人{}份).pdf" .format(hs,kk,db,cb,db*cb,num,num))file_merger.close()# doc.Close()# # print('----------第5步:删除临时文件夹------------')    import shutilshutil.rmtree(imagePath) #递归删除文件夹,即:删除非空文件夹time.sleep(3)    # 防止转换时报错,预留生成时间# 最后把PDF合并
import os
from PyPDF2 import PdfMerger, PdfFileReader# 创建一个PdfMerger对象
merger = PdfMerger()# 遍历文件夹中的所有PDF文件
folder_path = path
for filename in os.listdir(folder_path):if filename.endswith('.pdf'):# 打开PDF文件pdf_path = os.path.join(folder_path, filename)pdf_file = open(pdf_path, 'rb')pdf_reader = PdfFileReader(pdf_file)# 将PDF文件添加到合并器中merger.append(pdf_reader)# 关闭当前打开的PDF文件pdf_file.close()# 保存合并后的PDF文件
output_path = path+r"\动物数独4宫格(难度1-9).pdf"
merger.write(output_path)
merger.close()print("PDF文件合并完成!")

漫长的生成后……

难度1到难度9的9个PDF+动物数独卡片1页PDF(黏贴图)=合并打印PDF

作品展示:

从难度1-难度9的生成的空格数量来看,它是取int的值,也就是只看小数点前面的那个数。

用代码测算一下实际空缺格数量

'''
4宫格难度1-难度9(抽取10%-90%的空格)实际是几个空?
作者:阿夏
时间:2024年4月12日
'''n=4
g=n*nfor i in range(1,10):print(f'{n}宫格,难度{i},抽取{i*10}%:实际有{int(g*i*10/100)}空,已有图案{g-int(g*i*10/100)}')# 4宫格,难度1,抽取10%:实际有1空,已有图案15
# 4宫格,难度2,抽取20%:实际有3空,已有图案13
# 4宫格,难度3,抽取30%:实际有4空,已有图案12
# 4宫格,难度4,抽取40%:实际有6空,已有图案10
# 4宫格,难度5,抽取50%:实际有8空,已有图案8
# 4宫格,难度6,抽取60%:实际有9空,已有图案7
# 4宫格,难度7,抽取70%:实际有11空,已有图案5
# 4宫格,难度8,抽取80%:实际有12空,已有图案4
# 4宫格,难度9,抽取90%:实际有14空,已有图案2

4宫格,难度1,抽取10%:实际有1空,已有图案15
4宫格,难度2,抽取20%:实际有3空,已有图案13
4宫格,难度3,抽取30%:实际有4空,已有图案12
4宫格,难度4,抽取40%:实际有6空,已有图案10
4宫格,难度5,抽取50%:实际有8空,已有图案8
4宫格,难度6,抽取60%:实际有9空,已有图案7
4宫格,难度7,抽取70%:实际有11空,已有图案5
4宫格,难度8,抽取80%:实际有12空,已有图案4
4宫格,难度9,抽取90%:实际有14空,已有图案2

以4宫格

16格

为例

序号

难度

空格比例

空格数

图案数量

1

难度1

10%

1

15

2

难度2

20%

3

13

3

难度3

30%

4

12

4

难度4

40%

6

10

5

难度5

50%

8

8

6

难度6

60%

9

7

7

难度7

70%

11

5

8

难度8

80%

12

4

9

难度9

90%

14

2

难度9已经只有两个图案了,不能再减少了(空格越多,自由度越大,会出现无数种排列方法(4宫格最多576种)

结果显示,缺少了2、3、5、7、10、13空格

因此还需要查询,输入那个百分比数字(13%),可以正好生成2个空格?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/812606.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSS-浮动文字环绕布局、隐藏属性display、overflow、三角形制作、鼠标样式

文字环绕布局 CSS文字环绕布局是指在网页中让文字环绕在图片或其他元素周围的布局方式。这通常通过CSS中的float属性来实现。你可以将图片设置为float: left;或float: right;&#xff0c;然后在文本元素中使用clear属性来清除浮动&#xff0c;以确保文字不会覆盖图片。另外&am…

引领未来:杭州2024快递物流展共绘创新浪潮,塑造智慧物流新蓝图

杭州&#xff0c;作为中国的电商之都&#xff0c;近年来在快递物流行业背景与应用方面取得了显著的发展。随着电子商务的迅猛增长&#xff0c;杭州的快递物流行业迅速崛起&#xff0c;成为支撑电商产业发展的重要力量。 2024长三角&#xff08;杭州&#xff09;快递物流供应链与…

FFmpeg: 简易ijkplayer播放器实现--05ijkplayer–连接UI界面和ffplay.c

文章目录 ijkplayer时序图消息循环--回调函数实现播放器播放时状态转换播放停止 ijkmediaPlay成员变量成员函数 ijkplayer时序图 stream_open: frame_queue_init packet_queue_init init_clock 创建read_thread线程 创建video_refresh_thread线程 消息循环–回调函数实现 ui …

从吉客云到MySQL通过接口配置打通数据

从吉客云到MySQL通过接口配置打通数据 数据源系统:吉客云 吉客云是基于“网店管家”十五年电商ERP行业和技术积累基础上顺应产业发展需求&#xff0c;重新定位、全新设计推出的换代产品&#xff0c;从业务数字化和组织数字化两个方向出发&#xff0c;以构建流程的闭环为依归&am…

大数据入门之如何利用Phoenix访问Hbase

在大数据的世界里&#xff0c;HBase和Phoenix可谓是一对黄金搭档。HBase以其高效的列式存储和强大的数据扩展能力&#xff0c;成为大数据存储领域的佼佼者&#xff1b;而Phoenix则以其SQL化的操作方式&#xff0c;简化了对HBase的访问过程。今天&#xff0c;就让我们一起看看如…

Pandas部分应掌握的重要知识点

目录 Pandas部分应掌握的重要知识点一、DataFrame数据框的创建1、直接基于二维数据创建&#xff08;同时使用index和columns参数&#xff09;2、基于excel文件中的数据来创建 二、查看数据框中的数据和联机帮助信息1、查看特殊行的数据2、查看联机帮助的两种常见方法&#xff0…

image with CV

""" 视觉&#xff1a;基本API应用&#xff08;OPENCV&#xff09; """ import cv2 import numpy as np"""图像读取方式3. 1.cv2.imread(filename or path, flags)flags0:灰度图像&#xff1b;flags1表示RGB图像&#xff1b;fl…

2024年mathorcup(妈妈杯)数学建模C题思路-物流网络分拣中心货量预测及人员排班

# 1 赛题 C 题 物流网络分拣中心货量预测及人员排班 电商物流网络在订单履约中由多个环节组成&#xff0c;图 ’ 是一个简化的物流 网络示意图。其中&#xff0c;分拣中心作为网络的中间环节&#xff0c;需要将包裹按照不同 流向进行分拣并发往下一个场地&#xff0c;最终使包裹…

《黑马点评》Redis高并发项目实战笔记(上)P1~P43

P1 Redis企业实战课程介绍 P2 短信登录 导入黑马点评项目 首先在数据库连接下新建一个数据库hmdp&#xff0c;然后右键hmdp下的表&#xff0c;选择运行SQL文件&#xff0c;然后指定运行文件hmdp.sql即可&#xff08;建议MySQL的版本在5.7及以上&#xff09;&#xff1a; 下面这…

ArrayList部分底层源码分析

JDK版本为1.8.0_271&#xff0c;以插入和删除元素为例&#xff0c;部分源码如下&#xff1a; // 部分属性 transient Object[] elementData; // 底层数组 private int size; // 记录元素个数 private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA {}; // 空Obje…

物联网实战--驱动篇之(五)TEA和AES加密算法

目录 一、前言 二、TEA算法 三、AES算法 四、加解密测试 五、安全性保障 一、前言 物联网的安全性是经常被提及的一个点&#xff0c;如果你的设备之间通讯没有加密的话&#xff0c;那么攻击者很容易就能获取并解析出报文的协议&#xff0c;从而根据攻击者的需要进行设备操…

MongoDB的安装和使用

1.MongoDB 安装 1.1 基于Docker安装 docker run --restartalways -d --name mongo -v /opt/mongodb/data:/data/db -p 27017:27017 mongo:4.0.6 1.2 客户端工具使用 MongoDB Compass | MongoDB 2.MongoDB 使用 2.1 引用依赖包 <dependency><groupId>org.sprin…

信号完整性的常见术语概念(面试常用)

目录 术语 概念一览 1&#xff0e;信号完整性&#xff08;Signal Integrity&#xff09; 2&#xff0e;传输线&#xff08;Transmission Line&#xff09; 3&#xff0e;特性阻抗&#xff08;Characteristic Impedance&#xff09; 4&#xff0e;反射&#xff08;Reflecti…

【环境搭建】ubuntu工作站搭建全流程(显卡4090)

安装ubuntu22.04系统 首先&#xff0c;先压缩windows分区&#xff0c;按住Win X快捷键&#xff0c;选择磁盘管理,压缩分区&#xff0c;压缩出新的分区用于安装ubuntu22.04 windows插入系统盘&#xff0c;点击重启&#xff0c;一直按F12,选择系统盘启动方式语言选择chinese–…

[react优化] 避免组件或数据多次渲染/计算

代码如下 点击视图x➕1,导致视图更新, 视图更细导致a也重新大量计算!!这很浪费时间 function App() {const [x, setX] useState(3)const y x 2console.log(重新渲染, x, y);console.time(timer)let a 0for (let index 0; index < 1000000000; index) {a}console.timeE…

用ansys q3d提取pcb板上的寄生参数及注意事项

需求 画好pcb板后&#xff0c;想要提取回路的寄生参数 1 保存为ad格式 因为之前图方便用立创eda画的板子&#xff0c;结果无法导出成想要的格式。因此需要将立创eda的文件导出为ad格式。立创eda的官网有相关教程。 注意事项&#xff08;只说自己遇到的问题&#xff09; 导…

Ubuntu22.04 + ROS2 Humble的环境配置

Ubuntu22.04 ROS2 Humble的环境配置 文章目录 Ubuntu22.04 ROS2 Humble的环境配置(1) Set locale(2) Setup Sources(3)安装ROS2(4)检查是否成功安装 参考官方网站ROS2-Installation ROS2的各种版本及维护计划&#xff0c;可以参考ROS2-List of Distributions (1) Set locale…

Django中的静态文件、路径、访问静态文件的方法

1.什么是静态文件 不能与服务器端做动态交互的文件都是静态文件 如:图片,css,js,音频,视频,html文件(部分) 2.静态文件配置 在 settings.py 中配置一下两项内容: 1.配置静态文件的访问路径 通过哪个url地址找静态文件 STATIC_URL ‘/static/’ 说…

独一无二:探索单例模式在现代编程中的奥秘与实践

设计模式在软件开发中扮演着至关重要的角色&#xff0c;它们是解决特定问题的经典方法。在众多设计模式中&#xff0c;单例模式因其独特的应用场景和简洁的实现而广受欢迎。本文将从多个角度详细介绍单例模式&#xff0c;帮助你理解它的定义、实现、应用以及潜在的限制。 1. 什…

数据结构篇1—《顺序表》

文章目录 &#x1f6a9;前言1. 数据结构的概念2. 数据结构的分类3. 顺序表3.1. 顺序表的分类&#xff08;1&#xff09;静态顺序表&#xff08;2&#xff09;动态顺序表 4. 动态顺序表实现4.1. 实现步骤&#xff08;1&#xff09;框架结构&#xff08;2&#xff09;SeqList.h头…