版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
任务3.4路侧消息处理(RSI)项目三:云平台测试与数据处理任务3.4:路侧消息处理(RSI)【任务导入】图3-4-SEQ图3-4-\*ARABIC1图形用户界面(GUI)库Tkinter大部分驾驶员都会遇到这样的情况:在行驶车辆过程,前方有一辆大型货车遮挡了驾驶员的视线,驾驶员没办法看到前方的标牌信息,如果刚好是限速标牌,那就会被当作违章处理,于是,你的领导安排你在云服务器上完成路侧交通信息(RSI)的实时处理与监控,然后发送给车辆,帮助驾驶员做出及时的决策和调整。你应该如何完成任务呢?同学们思考一下,云服务器处理和监控RSI消息包括哪些工作任务?【学习目标】素质目标让学生明白5G+云网技术的科技创新在社会发展中的重要作用;引导学生学习医护人员和建筑工人的奉献精神。知识目标能说出Python基础语法的使用方法[K44];能说出使用Python和paho-mqtt库进行MQTT通信的流程[K45];能说出Tkinter的使用方法[K46]。能力目标能完成RSI消息的接收功能开发[A26];能完成RSI消息的处理功能开发[A27];能完成RSI消息的实时监控功能开发[A28]。【知识准备】RSI消息的处理实时处理与监控RSI消息的原因实时处理与监控路侧交通信息(RSI)对车路协同系统和交通管理具有重要意义,原因如下:(1)提供实时的路况信息:实时处理和监控RSI可以提供准确、实时的路况信息。这包括交通流量、拥堵情况、事故警报、临时施工等信息。这些信息对驾驶员和交通管理中心来说都非常有价值,可以帮助他们做出及时的决策和调整。(2)支持智能导航和路径规划:通过实时处理和监控RSI,车辆可以获得最新的路况信息,并根据这些信息进行智能导航和路径规划。驾驶员可以选择避开拥堵路段,选择更快捷的道路,从而节省时间和燃料消耗。(3)支持紧急事件响应:实时处理和监控RSI可以帮助快速响应紧急事件,如交通事故、天气灾害等。交通管理中心可以及时收到相关信息,并采取适当的措施来疏导交通、提供救援等。(4)提高交通安全性:实时监控RSI可以帮助检测和报告交通安全问题。例如,如果有车辆发生事故或突发故障,监控系统可以立即将信息传达给其他车辆和交通管理中心,以便采取相应的紧急措施。这有助于减少连环事故发生的风险,并改善道路安全。(5)数据分析和决策支持:通过实时处理和监控RSI,可以收集大量的交通数据,这些数据可以用于数据分析和决策支持。交通管理部门可以利用这些数据来识别交通瓶颈、改善道路设计、规划交通设施等,以提高城市交通系统的效率和可持续性。(6)优化交通流动:实时处理和监控RSI有助于交通管理中心了解交通状况,并采取措施来优化交通流动。根据实时的路况信息,交通管理中心可以调整信号灯时序、实施动态交通管制措施、提供交通导引等,以减少拥堵和提高道路通行效率。云服务器处理和监控RSI的工作任务以下是云服务器处理和监控RSI的典型功能和任务:(1)数据接收和存储:云服务器可以接收从路侧设备和传感器收集的交通信息数据。这些数据可以是实时的交通流量、车速、路况、事件等信息。云服务器负责接收和存储这些数据,以便进行后续的处理和分析。(2)数据处理和分析:云服务器上的软件和算法可以对接收到的交通信息数据进行处理和分析。这包括数据清洗、整合、解码和转换,以便将其转化为可用的格式和结构。云服务器还可以应用机器学习和数据挖掘技术,从数据中提取有价值的信息,如交通模式、拥堵预测、事件检测等。(3)实时监控和反馈:云服务器可以提供实时监控和反馈功能,将处理后的交通信息发送给相关的车辆和交通管理中心。这可以通过车辆与云服务器之间的无线通信或者通过车路协同系统中的其他通信技术实现。车辆可以接收到最新的路况和交通事件信息,而交通管理中心可以获得实时的交通数据用于监控和决策。(4)数据存储和查询:云服务器可以存储大量的交通信息数据,并提供灵活的数据查询和检索功能。这允许交通管理中心或其他相关方在需要时访问历史数据,进行分析、预测和规划。(5)安全和隐私保护:云服务器需要采取安全措施来保护交通信息的安全性和隐私。这包括加密通信、访问控制、数据匿名化等技术,以确保只有授权的用户可以访问和使用数据。通过云服务器的处理和监控,路侧交通信息可以得到高效的处理、分析和共享,为车辆和交通管理中心提供实时的、准确的交通情报,从而促进交通安全和效率的提升。同时,云服务器还可以支持更高级别的数据分析和智能决策,为交通管理和规划提供更深入的洞察力。本节任务主要实现功能包括以下几点:云服务器接收RSI消息;云服务器处理RSI消息;云服务器实时监控RSI消息。Python基础语法字典与列表在Python中,字典(Dictionary)和列表(List)是两种常用的数据类型,用于组织和存储数据。虽然它们在用途和特性上有所不同,但都可以用于存储多个值。下面是字典和列表的一些特点和区别:字典字典是无序的,其中的元素是通过键值对(Key-ValuePair)的形式存储的。键(Key)必须是唯一的,而值(Value)可以是任何数据类型,包括数字、字符串、列表、字典等。字典使用大括号{}来创建,键和值之间使用冒号:分隔,键值对之间使用逗号,分隔。字典是通过键来访问和操作其中的值,具有快速的查找能力。字典的特点是适合存储具有关联性的数据,可以根据键来进行索引和查找。列表列表是有序的,其中的元素可以是任意数据类型,包括数字、字符串、列表、字典等。列表使用方括号[]来创建,元素之间使用逗号,分隔。列表中的元素是根据它们在列表中的位置(索引)进行访问和操作的。列表提供了丰富的方法和操作,如追加、插入、删除、切片等,以方便对列表进行修改和操作。列表的特点是适合存储有序的、可变的集合,可以根据索引进行快速访问和操作。以下是一个简单的示例,展示了字典和列表的创建和使用:#创建字典person={"name":"Alice","age":30,"city":"NewYork"}#访问字典中的值print(person["name"])#输出:Alice#创建列表numbers=[1,2,3,4,5]#访问列表中的值print(numbers[0])#输出:1函数的定义与调用在Python中,定义函数和调用函数是实现代码重用和模块化的重要方式。下面是定义和调用函数的基本语法:定义函数deffunction_name(parameter1,parameter2,...):#函数体#执行函数的具体操作returnreturn_valuedef关键字用于定义函数。function_name是函数的名称,用于在其他地方调用函数时引用。parameter1,parameter2,...是函数的参数,可以是任意数量的参数,用于接收函数调用时传递的值。函数体是包含在冒号(:)后的缩进块中的代码,表示函数要执行的操作。return语句用于返回函数的结果,可选。如果不需要返回值,则可以省略。调用函数result=function_name(argument1,argument2,...)function_name是要调用的函数的名称。argument1,argument2,...是函数调用时传递给函数的实际参数值。函数的返回值可以存储在一个变量中,供后续使用。定义与调用函数的示例下面是一个简单的示例,演示了定义函数和调用函数的过程:defgreet(name):print("Hello,"+name+"!")greet("Alice")#输出结果:Hello,Alice!greet("Bob")#输出结果:Hello,Bob!字符串拼接str()在Python中,str()是一个内置函数,用于将对象转换为字符串表示形式。它可以接受各种类型的对象作为参数,并返回一个对应的字符串。以下是一些常见用法:1)将数字转换为字符串:num=42str_num=str(num)print(str_num)#输出:"422)将布尔值转换为字符串:flag=Truestr_flag=str(flag)print(str_flag)#输出:"True"3)将列表、元组或集合转换为字符串:my_list=[1,2,3]str_list=str(my_list)print(str_list)#输出:"[1,2,3]"4)将字典转换为字符串:my_dict={"key":"value"}str_dict=str(my_dict)print(str_dict)#输出:"{'key':'value'}"str()函数在很多情况下非常有用,可以将其他数据类型转换为字符串以便进行拼接、打印或其他字符串操作。字符串拼接方法在Python中,可以使用多种方法进行字符串的拼接。以下是几种常见的字符串拼接方式:1)使用加号(+)进行拼接:str1="Hello"str2="World"result=str1+""+str2print(result)#输出:HelloWorld2)使用逗号(,)进行拼接:str1="Hello"str2="World"print(str1,str2)#输出:HelloWorld请注意,使用逗号进行拼接时,会在字符串之间自动添加一个空格。3)使用字符串的join()方法进行拼接:str_list=["Hello","World"]result="".join(str_list)print(result)#输出:HelloWorld上述示例使用空格作为分隔符,将字符串列表中的元素拼接为一个字符串。4)使用格式化字符串进行拼接:str1="Hello"str2="World"result=f"{str1}{str2}"print(result)#输出:HelloWorld示例中,使用f-string(格式化字符串)来将变量插入到字符串中。len()在Python中,len()是一个内置函数,用于返回对象(例如字符串、列表、字典等)的长度或元素个数。具体来说,len()函数可以用于以下几种情况:(1)字符串的长度:返回字符串中字符的个数。my_string="Hello,World!"print(len(my_string))#输出:13(2)列表的长度:返回列表中元素的个数。my_list=[1,2,3,4,5]print(len(my_list))#输出:5(3)字典的长度:返回字典中键值对的个数。my_dict={"key1":"value1","key2":"value2","key3":"value3"}print(len(my_dict))#输出:3注意事项:对于字符串,len()函数返回的是字符的个数,而不是字节的个数。对于字典,len()函数返回的是字典中键值对的个数,而不是键的个数或值的个数。字节串转为Python对象在Python中,可以使用内置的json模块将字节串(bytes)对象转换为Python对象。下面是一个示例代码,演示如何将字节串转换为Python对象:importjsonbyte_string=b'{"name":"John","age":30}'json_data=byte_string.decode()#将字节串解码为字符串json_object=json.loads(json_data)#解析JSON字符串为Python对象print(json_object)#输出:{'name':'John','age':30}在上述示例中,首先使用decode()方法将字节串byte_string解码为字符串json_data。然后,使用json.loads()函数将JSON字符串解析为Python对象,这里得到的是一个字典对象json_object。json_object就是一个Python字典对象,你可以按照字典的方式访问和处理其中的数据。if…elseif...else是一种条件语句,用于根据给定条件的前提执行不同的代码块。它允许程序根据条件的结果进行分支控制。基本的if...else语法如下:ifcondition:#条件为真时执行的代码块else:#条件为假时执行的代码块condition是一个表达式,用于判断条件的前提。如果条件为a,则执行紧跟在if后面的代码块;如果条件为b,则执行紧跟在else后面的代码块。代码块是使用缩进的一组语句,用于指定在满足或不满足条件时要执行的操作。下面是一个简单的示例,演示了if...else的用法:x=10ifx>5:print("xisgreaterthan5")else:print("xislessthanorequalto5")在这个示例中,我们比较变量x的值与5的大小。如果x大于5,则打印"xisgreaterthan5";否则打印"xislessthanorequalto5"。if...else语句还可以与elif(即"elseif")一起使用,用于处理多个条件的情况。这样可以构建更复杂的分支逻辑。ifcondition1:#满足条件1时执行的代码块elifcondition2:#不满足条件1但满足条件2时执行的代码块else:#所有条件都不满足时执行的代码块需要注意的是,if...else语句中只会执行一个代码块,即满足条件的第一个代码块。其他条件下的代码块将被忽略。for循环for循环是一种用于重复执行一段代码的循环结构,它可以遍历一个可迭代对象(如列表、元组、字符串等)中的元素,或者在指定的范围内执行特定的操作。基本的for循环语法如下:forelementiniterable:#循环体#执行针对每个元素的操作element是一个变量,用于表示每次循环迭代时从可迭代对象中取出的元素。iterable是一个可迭代对象,例如列表、元组、字符串等。循环体是包含在冒号(:)后的缩进块中的代码,表示要对每个元素执行的操作。下面是一个简单的示例,演示了for循环的用法:fruits=["apple","banana","cherry"]forfruitinfruits:print(fruit)#输出结果为:applebananacherryfor循环还可以与range()函数一起使用,用于按照指定的范围执行循环。foriinrange(start,stop,step):#循环体#执行循环操作start是循环的起始值,默认为0。stop是循环的终止值(不包含在循环范围内)。step是循环变量的增量,默认为1。下面是一个使用range()函数的示例:foriinrange(1,5):print(i)#输出结果为:1234在这个示例中,range(1,5)生成一个范围为1到4的整数序列。for循环遍历这个序列中的每个元素,并打印出每个元素。for循环提供了一种方便的方式来遍历和处理可迭代对象中的元素,或者按照指定的范围执行重复操作。通过灵活使用for循环,我们可以处理各种迭代任务,并简化代码的编写。importimport是Python中的一个关键字,用于导入模块或模块中的特定对象。在Python中,使用import可以导入整个模块或模块中的特定对象,使其在当前代码中可用。下面是一些常见的使用import的示例:(1)导入整个模块:importmodule_name这将导入名为module_name的整个模块,并使其在当前代码中可用。在使用模块中的对象时,需要使用module_name.object_name的形式。(2)导入模块并指定别名:importmodule_nameasalias_name这将导入名为module_name的模块,并为其指定一个别名alias_name。这样,在使用模块中的对象时,可以使用alias_name.object_name的形式。使用as关键字可以避免模块名过长或冲突的问题,并提高代码的可读性。(3)导入模块中的特定对象:frommodule_nameimportobject_name这将从名为module_name的模块中导入特定的object_name对象,并使其在当前代码中可用。在使用对象时,直接使用object_name的形式即可。(4)导入模块中的多个对象:frommodule_nameimportobject1,object2,...这将从名为module_name的模块中导入多个对象,并使其在当前代码中可用。在使用这些对象时,可以直接使用其名称。try...excepttry...except是Python中用于处理异常的语句块。它允许我们在代码中捕获和处理可能发生的异常,以避免程序崩溃或意外终止。try...except的基本语法如下:try:#可能会引发异常的代码块exceptExceptionType:#处理特定类型的异常在try块中,我们放置可能会引发异常的代码。如果在执行这些代码时发生了异常,那么程序将跳转到对应的except块中,进行异常处理。ExceptionType是期望捕获的异常类型。你可以指定具体的异常类型,如ValueError、TypeError等,也可以使用Exception来捕获所有异常。如果省略了ExceptionType,则默认捕获所有异常。下面是一个简单的示例,演示了try...except的用法:try:x=10/0#可能会引发ZeroDivisionError异常exceptZeroDivisionError:print("除数不能为零!")print("程序继续执行...")在这个示例中,我们尝试将10除以0,这会引发ZeroDivisionError异常。在try块中,我们捕获了这个特定类型的异常,并在except块中打印出错误信息。无论异常是否发生,都会继续执行except块之后的代码。需要注意的是,try...except块可以有多个except块,用于处理不同类型的异常。也可以使用finally块来定义一段无论是否发生异常都会执行的代码。使用try...except可以有效地处理可能出现的异常情况,增加代码的健壮性和容错性。格式化时间戳时间戳转换为datetime对象时间戳是指自特定时间(通常是1970年1月1日00:00:00UTC)以来经过的秒数或毫秒数。如果为毫秒数(通常情况下,毫秒级时间戳是13位数),需要将毫秒数除以1000以获得秒级。时间戳fromtimestamp()方法接受一个时间戳作为参数,并返回相应的datetime对象。下面是一个示例:importdatetimetimestamp=1622546400#时间戳表示2021-06-0112:00:00dt=datetime.datetime.fromtimestamp(timestamp)print(dt)#输出:2021-06-0112:00:00在上述示例中,fromtimestamp()方法接受时间戳1622546400,并将其转换为相应的datetime对象dt。打印dt会显示转换后的日期和时间。需要注意的是,fromtimestamp()方法默认将时间戳解释为本地时间。如果要将时间戳解释为其他时区的时间,可以使用datetime.timezone参数进行指定。例如,要将时间戳解释为UTC时间,可以使用datetime.timezone.utc:importdatetimetimestamp=1622546400#时间戳表示2021-06-0112:00:00dt=datetime.datetime.fromtimestamp(timestamp,datetime.timezone.utc)print(dt)#输出:2021-06-0112:00:00+00:00在上述示例中,通过传递datetime.timezone.utc参数,将时间戳解释为UTC时间。日期时间对象格式化为字符串strftime()是Python中datetime模块中的一个方法,用于将日期时间对象格式化为字符串。strftime()方法接受一个格式化字符串作为参数,并返回格式化后的字符串表示。格式化字符串中包含特定的格式代码,用于指定日期时间的各个部分的显示方式。下面是一个示例:importdatetimenow=datetime.datetime.now()formatted_date=now.strftime("%Y-%m-%d%H:%M:%S")print(formatted_date)#输出:2023-06-0115:30:45在上述示例中,strftime()方法将当前日期时间对象now格式化为字符串。格式化字符串"%Y-%m-%d%H:%M:%S"中的%Y表示年份,%m表示月份,%d表示日期,%H表示小时,%M表示分钟,%S表示秒数。通过将这些格式代码组合在一起,可以灵活地定义日期时间的显示格式。可以根据需要选择适合的格式化字符串来满足项目的需求。基于paho-mqtt库进行MQTT通信下面是一个使用Python和paho-mqtt库进行MQTT通信的简单示例:importpaho.mqtt.clientasmqttUSERNAME="your_username"#MQTT用户名PASSWORD="your_password"#MQTT密码#定义回调函数,用于处理连接成功事件defon_connect(client,userdata,flags,rc):print("Connectedwithresultcode"+str(rc))#订阅主题client.subscribe("test/topic")#定义回调函数,用于处理接收到消息事件defon_message(client,userdata,msg):print("Receivedmessage:"+msg.payload.decode())#创建MQTT客户端实例client=mqtt.Client()#设置连接成功和消息接收的回调函数client.on_connect=on_connectclient.on_message=on_message#设置用户名和密码client.username_pw_set(USERNAME,PASSWORD)#连接到MQTT代理client.connect("",1883,60)#循环监听MQTT消息client.loop_forever()在上述示例中,首先导入了paho.mqtt.client模块,然后定义了两个回调函数on_connect()和on_message(),分别用于处理连接成功和接收到消息的事件(回调函数是一个可以被传递给其他函数的函数,它在特定事件或条件发生时被调用,控制流程由调用它的函数控制)。接下来,创建了一个MQTT客户端实例client,并通过设置on_connect和on_message回调函数来指定处理相应事件的逻辑。(1)on_connect通常包括以下参数:client:MQTT客户端对象,表示连接成功的客户端实例。userdata:用户自定义数据,可以在连接时传递给客户端。flags:连接标志,包含一些与连接状态相关的标志。rc:连接结果代码(ReturnCode),表示连接的结果状态(0表示连接成功,其他值表示连接被拒绝)。(2)on_message通常包括以下参数:client:MQTT客户端对象,表示接收到消息的客户端实例。userdata:用户自定义数据,可以在连接时传递给客户端。msg:表示接收到的消息对象,通常包括消息的主题、负载(payload)、QoS等信息。再将on_connect函数和on_message函数分别设置为client.on_connect和client.on_message的值,以确保在成功连接到MQTT代理时调用on_connect函数,在成功接收到消息时调用on_message函数。下一步是设置用户名和密码。为了提高安全性,与Broker建立连接时会启用用户密码认证,确保只有经过验证的客户端才能连接到MQTTBroker,并访问被授权的资源。因此与Broker建立连接时,需要设置用户名和密码。然后,使用client.connect()方法连接到MQTT代理。在开发项目时,需要将""替换为实际的MQTT代理地址,1883替换为实际的端口号,60替换为连接超时时间(单位为秒)。最后,使用client.loop_forever()方法启动一个循环,使客户端一直处于监听状态,接收并处理MQTT消息。在实际应用中,可以根据需要在回调函数中编写逻辑来处理连接成功事件、接收到的消息,以及其他自定义的操作。TkinterTkinter介绍Tkinter是Python中的标准图形用户界面(GUI)库,它提供了创建窗口、控件和处理用户事件的功能。Tkinter是基于Tcl/Tk工具包开发的,因此它的名称是"Tkinterface"的缩写。Tkinter的优点包括:易于学习和使用:Tkinter提供了直观的API,使得创建简单的GUI应用程序变得容易。它具有简洁的语法和一组常用的GUI控件,适合初学者入门。跨平台性:Tkinter是Python的标准库,因此它可以在几乎所有主流操作系统上运行,包括Windows、macOS和Linux。这使得你可以编写一次代码,在不同的平台上都能运行。大量的控件和布局选项:Tkinter提供了丰富的GUI控件,如按钮、标签、文本框、下拉列表等,以及各种布局选项,如网格布局、包布局等。这使得你可以创建复杂的用户界面,并对其进行灵活的排列和布局。可扩展性:Tkinter是基于Tcl/Tk工具包构建的,可以通过Tcl/Tk的强大功能扩展Tkinter的功能。你可以使用Tcl/Tk的其他库来增加图形效果、添加自定义小部件等。Tkinter的使用下面是使用Tkinter来创建基本的GUI应用程序的示例:importtkinterastk#导入Tkinter模块window=tk.Tk()#创建主窗口对象window.title("标题")#设置窗口标题window.geometry("400x300")#设置窗口大小text_var=tk.StringVar()#创建一个字符串类型的变量对象text_var.set("Thisisalongtextthatwillbewrappedwithinthelabel.")#设置初始值label=tk.Label(window,textvariable=text_var,font=("Arial",14),wraplength=350)#创建一个标签(Label)组件label.pack()#放置标签(Label)组件window.mainloop()#启动主事件循环,使窗口显示出来在这个示例中,首先创建了一个主窗口对象window,并设置了设置窗口标题和窗口大小。geometry()接受一个字符串参数,表示窗口的宽度和高度。注意,指定的值为像素值。并定义了字符串类型的变量对象text_var。这个变量对象可以被关联到Tkinter控件的属性,使得控件能够动态地显示和更新变量的值。并通过set()方法设置初始值为一个较长的文本。然后,创建了一个标签组件label,将其放置在主窗口中。其中,创建标签(Label)组件包括以下属性:window:表示要将标签放置在哪个窗口中,可以是主窗口或其他容器组件。textvariable:表示要在标签中显示的文本变量。这个变量可以是StringVar对象,用于动态更新标签的文本内容。font:表示标签的字体设置。在示例中,使用了"Arial"字体,并设置字号为14。wraplength:表示标签的换行宽度。如果文本内容超过该宽度,标签会自动换行显示。然后使用pack()方法来放置该组件。最后,通过调用window.mainloop()方法启动主事件循环,使窗口显示出来。这个示例展示了如何使用tk.Label()创建一个具有特定属性的标签组件。【任务实施】实施准备设备工具准备设备清单表3-4-SEQ表3-4-\*ARABIC1工具设备清单分类名称数量图例规格要求实训设备路杆设备1套/笔记本电脑(含鼠标和充电线)1套Windows7以上系统防护用品工作服1套/安全帽1个/工作手套1双/辅助材料无纺布1张/场地准备(1)锁止路杆设备(2)设置隔离栏(3)放置安全警示牌(4)启动路杆设备RSI消息处理项目开发开发内容注意:此次任务基于Python脚本语言处理RSI消息,并使用Python的图形用户界面(GUI)库Tkinter来实时显示RSI消息。另外,使用云服务器处理RSI消息前,需要完成云服务器的环境部署,具体部署方法参考前置学习资料。项目内容包括以下几点:(1)云服务器通过MQTT通信接收RSI消息。(2)云服务器处理RSI消息。(3)通过Tkinter窗口实时显示处理后的数据。REF_Ref
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中小学英语语法专项练习题集
- 2026年中班家长园地育儿知识
- 初中2025年性别话题说课稿
- 2026年人力资源师二级考试组织行为学仿真题
- 2026年村级残疾人康复站社工招聘笔试模拟题
- 2026年幼儿园秋冬季传染病防控知识
- 小学生网络安全说课稿2025
- Lesson21 Can you ride a horse说课稿-2025-2026学年小学英语第三级B剑桥少儿英语(2013版)
- 2026年心脑血管疾病预防控制知识培训
- 2026年初级会计职称考试重点梳理
- 可研咨询服务方案
- 2025年国企智联招聘行测笔试题库
- TCDJC005-2024 水硬性交联聚乙烯复合卷材浮筑楼板 隔声保温工程技术标准
- 科技情报研究课题申报书
- 幼儿饮用水卫生安全培训课件
- 市场调研报告采购协议书
- 2025年保安员证考试题库(附答案+解析)
- 手工创作雨伞课件
- 劳动仲裁调解授课课件
- 树木修剪应急服务方案(3篇)
- 知道智慧树Office高效办公满分测试答案
评论
0/150
提交评论