免费预览已结束,剩余22页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
经济管理学院本科课程设计论文数据库开发与应用课程设计学 号: 姓 名: 班 级: 管理081 专 业: 信息管理与信息系统 系 别: 管理系 指导教师: 2010 年 12 月24日 吉 林第一章 开发背景与现状3第二章 开发设计的意义3第三章 系统分析41 系统目标和开发可行性41.1系统目标41.2可行性分析41.2.1 技术可行性分析41.2.2 经济可行性分析41.2.3 管理可行性分析42系统需求说明52.1宿舍楼的基本情况52.1.1学生的基本信息52.1.2宿舍的基本信息52.1.3报修的基本信息:52.1.4夜归的基本信息:52.2 用户对系统的要求62.2.1信息要求62.2.2 处理要求62.2.3安全性与完整性要求6第四章 系统功能模块设计7第五章 数据库设计71 数据字典:81.1数据项:81.1.1 login表81.1.2 studentn表81.1.3 work表92 概念结构设计:103 数据库实现11第六章 界面设计121 登陆界面122 主页界面设计123 管理系统-公寓设置界面134 学生管理-按学期注册界面135 员工管理员工信息管理界面146 信息查询-混合查询界面14第七章 代码设计151 登陆界面代码152 主页面代码173 员工信息登记界面代码194 学生信息修改20第八章 课程设计总结26东北电力大学学生寝室管理信息系统设计报告第一章 开发背景与现状 随着时代的发展,计算机技术越来越深入各行各业,为广大的用户提供了更为周到和便捷的服务。目前各行各业广泛使用专用系统,其内容范围跨越了教育科研、文化事业、金融、商业、新闻出版、娱乐、体育等各个领域,其用户群十分庞大,因此,设计开发好一个专用系统对一个机构(或部门)的发展十分重要。近年来,随着用户要求的不断提高及计算机科学的迅速发展,特别是数据库技术的广泛应用,向用户提供的服务将越来越丰富,越来越人性化。对于学校而言,学生宿舍管理是必不可少的组成部分。目前仍然存在有学校停留在宿舍管理部门人员手工记录数据的阶段,手工记录对于规模小的学校来说勉强可以接受;但对于学生信息量比较庞大,需要记录存档的数据比较多的高校来说,人工记录是相当麻烦的,而且当查找某条记录时,由于数据量庞大,只能依靠人工去一条一条地查找,这样不但麻烦而且浪费许多时间,工作效率比较低。采用计算机来管理宿舍和学生的信息,大大提高了查询的速度,节约了人力和物力资源达到了要求。第二章 开发设计的意义 为了实现提高高校宿舍管理部门的工作效率;充分利用资源;减少不必要的人力,物力和财力的支出;方便宿舍管理部门的工作人员全面地掌握学生住宿情况等目的;为宿舍管理部门,开发设计专用系统-高校学生宿舍信息管理系统来进行管理学生宿舍信息,使学生宿舍信息实现标准化的管理和规范化的制度是十分必要的。专用系统是一个信息管理系统mis(management information system)(以下就称信息管理系统),它将实现检索迅速和查找方便;信息的录入,修改和删除功能;对新入校学生进行宿舍安排等功能,学生可以在系统前台产讯。第三章 系统分析1 系统目标和开发可行性1.1系统目标按照管理信息系统的原理和方法,采用成熟的信息技术和手段,支持宿舍管理工作的全过程,加强各种信息资源的管理与运用,提高管理工作的现代化水平,优化人、财、物和信息资源在各环节的运行机制。1.2可行性分析 1.2.1 技术可行性分析我们正走进一个信息时代,信息技术将从根本上改变人类社会的生产方式和生活方式,各行各业的业务管理现在都已经相继使用计算机来处理,可以说用计算机进行信息管理是一个总趋势。学生宿舍管理系统主要是对宿舍、寝室的配置、住宿人员登记、卫生检查、宿舍资产、学生违纪、值班老师记录以及对学生住宿情况查询,修改,更新等。可以更快地了解到每个学生的住宿情况。开发一个学生宿舍管理系统可以达到事半功倍的效果。随着数据库管理系统的普及以及可视化编程系统的出现,使数据库管理信息系统的开发变得更为简单,因此开发一个学生宿舍管理系统是完全可行的。1.2.2 经济可行性分析学校有自己的微机室可以使用,而且宿舍管理部门也配有电脑不必重新购置计算机,不需要花费大量资金,是一个节约人力物力的好办法。1.2.3 管理可行性分析本单位的管理人员都具有较高的素质,它们对管理现代化有较高的认识水平,并且有各级部门的大力支持和重视。2系统需求说明2.1宿舍楼的基本情况学生住在宿舍楼中,每栋宿舍楼都会有若干名老师负责本宿舍楼的日常管理。2.1.1学生的基本信息入校时,每位同学都有唯一的学号,并被分配到指定的宿舍楼和指定的宿舍,也会有一个宿舍号,其入校时间就是他的入住时间。另外,为了管理上的方便,同一院系的学生的宿舍一般在一起,相应地会有其所在的院系名称。2.1.2宿舍的基本信息每间宿舍都有唯一的宿舍号,入校时,宿舍会装公用电话机, 相应地就有宿舍电话号码。 2.1.3报修的基本信息:宿舍楼中经常出现财产的损坏,比如灯泡坏了,厕所的马桶出故障了等,这时,同学们需要将 财产损坏情况报告给宿舍楼管理员,以便学校派人进行维修。这时,需要记录报修的宿舍号和损坏的财产编号,同时记录报修的时间和损坏的原因。当损坏的财产维修完毕后,应记录解决时间,表示该报修成功解决。2.1.4夜归的基本信息:宿舍楼在指定的时间关门(比如晚上12点),若有同学晚于关门 时间会宿舍,需通知宿舍楼管理员,同时应登记晚归学生姓名,宿舍号,时间和晚归原因,以利于学校的管理和查证。2.2 用户对系统的要求 2.2.1信息要求宿舍楼管理员能查询上面提到的宿舍楼的所有相关信息,包括某一学号的学生在宿舍楼中住宿的详细信息,快件收发的所有信息,报修的所有信息,夜归的详细信息和学生离返校的信息。以利于对整个宿舍楼的全面管理。2.2.2 处理要求当学生基本信息发生变化时,宿舍楼管理员能对其进行修改。比如,某些同学搬到其他的宿舍中去,他们在本宿舍楼中相应的记录就应该删去;或者学生转换专业,他们记录中院系的信息也要作相应的修改等等。当宿舍楼的电话号码发生变更时,宿舍楼管理员能根据有关证明做出修改。当宿舍财产报修及时解决后,管理员应登记解决时间,表明该报修问题已成功解决。2.2.3安全性与完整性要求安全性要求:系统应设置访问用户的标识以鉴别是否是合法用户,并要求合法用户设置其密码,保证用户身份不被盗用;系统应对不同的数据设置不同的访问级别,限制访问用户可查询和处理数据的类别和内容;系统应对不同用户设置不同的权限,区分不同的用户如区分普通用户(学生),管理员。完整性要求:各种信息记录的完整性,信息记录内容不能为空;各种数据间相互的联系的正确性;相同的数据在不同记录中的一致性。第四章 系统功能模块设计财产管理东电学生寝室管理系统管理系统学生管理信息查询住宿情况出入登记各功能模块介绍:1、 管理系统模块包含添加楼房、楼房设置以及退出系统,用于设置楼房楼层数、人数等等;2、 学生管理模块包含基本信息录入、按学期注册以及离校处理,用于录入入住学生的基本信息以及毕业学生住宿的解决登记;3、 信息查询模块包含学生查询、员工查询、个人财产管理、员工上班情况、信访查询情况,用于了解学生的基本情况、员工的基本信息、个人信息的详细记录以及用户信息的查询;4、 住宿情况模块该模块包含可查入住信息和入住人员信息等等;5、 出入登记模块该模块包含来访登记和出楼登记;6、 财产管理该模块包含个人财产登记和个人财产查询。第五章 数据库设计创建数据库是设计系统的第一步,其关键问题在于确定所需的表结构并为之建立索引。为了使系统设计精练实用,体现关系型数据库的特点,本系统还为各相关表建立关系。1 数据字典:1.1数据项:1.1.1 login表(1)usename含义说明:惟一标识一个用户名类型:文本允许空:否 (2)usepwd:含义说明:惟一标识一个用户名的密码类型:文本允许空:否(3)qx含义说明:惟一标识一个管理员名称类型:文本允许空:否1.1.2 studentn表(1)学号含义说明:惟一标识一个学生类型:文本允许空:否 (2)学生姓名含义说明:惟一标识一个学生姓名类型:文本允许空:否(3性别含义说明:惟一标识性别类型:文本允许空:否(4)所在系含义说明:惟一标识一个学生所在系类型:文本允许空:否 (5)班级含义说明:惟一标识一个用户所在班级类型:文本允许空:否(6)入学日期含义说明:定义学生入学日期类型:日期/时间允许空:否(7)毕业日期含义说明:定义学生毕业日期类型:日期/时间允许空:否 (8)籍贯含义说明:惟一标识一个用户的籍贯类型:文本允许空:否(9)联系电话含义说明:惟一标识一个用户联系方式类型:文本允许空:是1.1.3 work表(1)员工编号含义说明:惟一标识一个员工类型:文本允许空:否 (2)员工姓名含义说明:惟一标识一个员工姓名类型:文本允许空:否(3)性别含义说明:惟一标识性别类型:文本允许空:否(4)联系电话含义说明:标识一个员工联系电话类型:文本允许空:否(3)负责寝室含义说明:惟一标识员工负责的寝室楼层类型:文本允许空:否2 概念结构设计:本系统在需求分析的基础上设计出能够满足用户需求的各种实体。根据上面的分析所得的实体图:东电寝室管理系统实体属性图usenamemelogin表userpwdqx图1 login实体属性图student表入学日期毕业日期班级政治面貌联系电话性别学号学生姓名籍贯所在系图2 student实体属性图负责寝室性别workt表联系电话员工姓名员工编号图3 student实体属性图3 数据库实现列名数据类型可否为空说明usename文本否usenameuserpwd文本否userpwdqx文本否qx表1 login信息表表2 student信息表列名数据类型可否为空说明学号文本否学号学生姓名文本否学生姓名性别文本否性别班级文本可班级毕业日期日期/时间可毕业日期入学日期日期/时间可入学日期所在系文本可所在系表3 work信息表列名数据类型可否为空说明员工编号文本否员工编号员工姓名文本否部门名称性别文本否性别负责寝室文本可负责寝室联系电话文本可联系电话第六章 界面设计1 登陆界面2 主页界面设计3 管理系统-公寓设置界面4 学生管理-按学期注册界面5 员工管理员工信息管理界面6 信息查询-混合查询界面第七章 代码设计1 登陆界面代码procedure tfrmlogin.button1click(sender: tobject);var username ,password:string;begin username:=trim(cmbname.text);if username= thenbegin messagedlg(请选着登陆用户!,mtwarning,mbok,0) ; exit;end;with dm.adoquery1 dobegin close; sql.clear; sql.add(select * from login where username=:username and userpwd=:userpwd); parameters.parambyname(username).value:=trim(cmbname.text); parameters.parambyname(userpwd).value:=trim(edtpwd.text); open; if recordcount1 then begin if i=3 then begin messagebox(0,没有权限使用此软件,警告,mb_iconwarning+mb_ok); application.terminate; end; messagebox(handle,pchar(您输入的密码有误! +#10#13+你还有 +inttostr(3-i)+ 次机会), 警告!,mb_iconwarning+mb_ok); edtpwd.text:=; edtpwd.setfocus; i:=i+1; exit; end else frmmain.statusbar1.panels.items1.text:=username; frmmain.statusbar1.panels.items3.text:=dm.adoquery1.fieldvaluesqx; if fieldbyname(qx).asstring=教职工 then begin with frmmain do begin n8.enabled:=false; yg.enabled:=false; toolbutton1.enabled:=false; toolbutton6.enabled:=false; end; end; if fieldbyname(qx).asstring=东北电力的大学学生 then begin with frmmain do begin toolbutton1.enabled:=false; toolbutton5.enabled:=false; toolbutton6.enabled:=false; end; end; if fieldbyname(qx).asstring=宿舍管理员 then begin with frmmain do begin n11.enabled:=false; n12.enabled:=false; toolbutton1.enabled:=false; end; end; frmlogin.close;end;end;procedure tfrmlogin.edtpwdkeydown(sender: tobject; var key: word; shift: tshiftstate);begin if key=13 then frmlogin.button1click(sender);end;end.2 主页面代码procedure tfrmmain.toolbutton1click(sender: tobject);begin frmaddyonghu:=tfrmaddyonghu.create(self); frmaddyonghu.showmodal; frmaddyonghu.free;end;procedure tfrmmain.formactivate(sender: tobject);begin frmlogin:=tfrmlogin.create(self); frmlogin.showmodal; frmlogin.free;end;procedure tfrmmain.n24click(sender: tobject);begin frmgrccquery:=tfrmgrccquery.create(self); frmgrccquery.showmodal; frmgrccquery.free;end;procedure tfrmmain.n40click(sender: tobject);begin frmgrccquery:=tfrmgrccquery.create(self); frmgrccquery.showmodal; frmgrccquery.free;end;procedure tfrmmain.n39click(sender: tobject);var frmygquery:tfrmygquery;begin frmygquery:=tfrmygquery.create(self); frmygquery.showmodal; frmygquery.free;end;procedure tfrmmain.image1click(sender: tobject);beginend;cedure tfrmmain.toolbutton7click(sender: tobject);var frmxsquey:tfrmxsquey;begin frmxsquey:=tfrmxsquey.create(self); frmxsquey.tabbednotebook1.pageindex:=6; frmxsquey.showmodal; frmxsquey.free;end;procedure tfrmmain.toolbutton5click(sender: tobject);var frmaddstu:tfrmaddstu;begin frmaddstu:=tfrmaddstu.create(self); frmaddstu.showmodal; frmaddstu.free;end;procedure tfrmmain.n41click(sender: tobject);var frmfwquery:tfrmfwquery;begin frmfwquery:=tfrmfwquery.create(self); frmfwquery.showmodal; frmfwquery.free;end;procedure tfrmmain.n23click(sender: tobject);var frmgrccdengji:tfrmgrccdengji;begin frmgrccdengji:=tfrmgrccdengji.create(self); frmgrccdengji.showmodal; frmgrccdengji.free;end;procedure tfrmmain.toolbutton1click(sender: tobject);begin frmaddyonghu:=tfrmaddyonghu.create(self); frmaddyonghu.showmodal; frmaddyonghu.free;end;procedure tfrmmain.formactivate(sender: tobject);begin frmlogin:=tfrmlogin.create(self); frmlogin.showmodal; frmlogin.free;end;procedure tfrmmain.n24click(sender: tobject);begin frmgrccquery:=tfrmgrccquery.create(self); frmgrccquery.showmodal; frmgrccquery.free;end;procedure tfrmmain.n40click(sender: tobject);begin frmgrccquery:=tfrmgrccquery.create(self); frmgrccquery.showmodal; frmgrccquery.free;end;procedure tfrmmain.n39click(sender: tobject);var frmygquery:tfrmygquery;begin frmygquery:=tfrmygquery.create(self); frmygquery.showmodal; frmygquery.free;end;end.3 员工信息登记界面代码procedure tfrmygdj.button1click(sender: tobject);var i:integer;begin if trim(edtnum.text)= then begin showmessage(请你输入员工号!); exit; end; if trim(edtname.text)= then begin showmessage(请你输入姓名!); edtname.setfocus; exit; end; try with dm.adoquery1 do begin close; sql.clear; sql.add(insert into worker values(:ygnum,:ygname,:ygsex,:lh,:lc,:zhiwei,:jt,:lxphone); parameters.parambyname(ygnum).value:=edtnum.text; parameters.parambyname(ygname).value:=edtname.text; parameters.parambyname(ygsex).value:=cmbsex.text; parameters.parambyname(lh).value:=cmblh.text; parameters.parambyname(lc).value:=cmblc.text; parameters.parambyname(jt).value:=edtjt.text; parameters.parambyname(lxphone).value:=edtphone.text; execsql; showmessage(操作成功!); end; except showmessage(操作失败!); end; with dm.adoquery1 do begin close; sql.clear; sql.add(select * from worker); open; end; with dbgrid1 do begin columns.items0.title.caption:=员工号; columns.items1.title.caption:=姓名; columns.items2.title.caption:=性别; columns.items3.title.caption:=楼号; columns.items4.title.caption:=楼层; columns.items5.title.caption:=职位; columns.items6.title.caption:=家庭地址; columns.items7.title.caption:=联系电话; end; for i:=0 to dbgrid1.fieldcount-1 do dbgrid1.fieldsi.displaywidth:=14;end;end.4 学生信息修改procedure tfrmxsquey.button1click(sender: tobject);var i:integer;begin if trim(edtnum.text)= then begin showmessage(请输入学号!); edtnum.setfocus; exit; end; try with dm.adoquery1 do begin close; sql.clear; sql.add(select * from student where stunum=:stunum); parameters.parambyname(stunum).value:=trim(edtnum.text); open; end; dbgrid1.columns.items0.title.caption:=学 号; dbgrid1.columns.items1.title.caption:=姓 名; dbgrid1.columns.items2.title.caption:=性 别; dbgrid1.columns.items3.title.caption:=系 别; dbgrid1.columns.items4.title.caption:=班 别; dbgrid1.columns.items5.title.caption:=入学日期; dbgrid1.columns.items7.title.caption:=出生年月; dbgrid1.columns.items8.title.caption:=政治面貌; dbgrid1.columns.items9.title.caption:=联系电话; dbgrid1.columns.items12.title.caption:=家庭地址; for i:=0 to dbgrid1.fieldcount-1 do begin dbgrid1.fieldsi.displaywidth:=12; dbgrid2.fieldsi.displaywidth:=12; dbgrid3.fieldsi.displaywidth:=12; end; except showmessage(操作失败!);end;end;procedure tfrmxsquey.formcreate(sender: tobject);var i:integer;begin try with dm.adoquery1 do begin close; sql.clear; sql.add(select * from student ); open; dbgrid1.datasource:=dm.datasource1; dbgrid2.datasource:=dm.datasource1; dbgrid3.datasource:=dm.datasource1; dbgrid4.datasource:=dm.datasource1; end; exceptend; dbgrid1.columns.items0.title.caption:=学 号; dbgrid1.columns.items1.title.caption:=姓 名; dbgrid1.columns.items2.title.caption:=性 别; dbgrid1.columns.items3.title.caption:=系 别; dbgrid1.columns.items4.title.caption:=班 别; dbgrid1.columns.items5.title.caption:=入学日期; dbgrid1.columns.items8.title.caption:=政治面貌; dbgrid1.columns.items9.title.caption:=联系电话; dbgrid1.columns.items12.title.caption:=家庭地址; for i:=0 to dbgrid1.fieldcount-1 do begin dbgrid1.fieldsi.displaywidth:=12; end;end;procedure tfrmxsquey.button2click(sender: tobject);var i:integer;begin if trim(edtname.text)= then begin showmessage(请输入姓名!); edtname.setfocus; exit; end; try with dm.adoquery1 do begin close; sql.clear; sql.add(select * from student where stuname=:stuname); parameters.parambyname(stuname).value:=trim(edtname.text); open; end; dbgrid1.columns.items0.title.caption:=学 号; dbgrid1.columns.items1.title.caption:=姓 名; dbgrid1.columns.items2.title.caption:=性 别; dbgrid1.columns.items3.title.caption:=系 别; dbgrid1.columns.items4.title.caption:=班 别; dbgrid1.columns.items5.title.caption:=入学日期; dbgrid1.columns.items7.title.caption:=出生年月; dbgrid1.columns.items8.title.caption:=政治面貌; dbgrid1.columns.items9.title.caption:=联系电话; for i:=0 to dbgrid2.fieldcount-1 do begin dbgrid2.fieldsi.displaywidth:=12; end; except showmessage(操作失败!);end;end;procedure tfrmxsquey.button3click(sender: tobject);var i:integer;begin if trim(cmbsex.text)= then begin showmessage(请选着性别!); exit; end; try with dm.adoquery1 do begin close; sql.clear; sql.add(select * from student where stusex=:stusex); parameters.parambyname(stusex).value:=trim(cmbsex.text); open; end; dbgrid3.columns.items0.title.caption:=学 号; dbgrid3.columns.items1.title.caption:=姓 名; dbgrid3.columns.items2.title.caption:=性 别; dbgrid3.columns.items3.title.caption:=系 别; dbgrid3.columns.items4.title.caption:=班 别; dbgrid3.columns.items5.title.caption:=入学日期; dbgrid3.columns.items6.title.caption:=毕业中学; dbgrid3.columns.items7.title.caption:=出生年月; for i:=0 to dbgrid3.fieldcount-1 do begin dbgrid3.fieldsi.displaywidth:=12; end; except showmessage(操作失败!);end;end;procedure tfrmxsquey.button4click(sender: tobject);var i:integer;begin if trim(cmbdept.text)= then begin showmessage(请选着系别!); exit; end; try with dm.adoquery1 do begin close; sql.clear; sql.add(select * from student where dept=:dept); parameters.parambyname(dept).value:=trim(cmbdept.text); open; end; dbgrid4.columns.items0.title.caption:=学 号; dbgrid4.columns.items1.title.caption:=姓 名; dbgrid4.columns.items2.title.caption:=性 别; dbgrid4.columns.items3.title.caption:=系 别; dbgrid4.columns.items4.title.caption:=班 别; dbgrid4.columns.items5.title.caption:=入学日期; for i:=0 to dbgrid4.fieldcount-1 do begin dbgrid4.fieldsi.displaywidth:=12; end; except showmessage(操作失败!);end;end;procedure tfrmxsquey.button5click(sender: tobject);var i:integer;begin if trim(edtaddr.text)= then begin showmessage(请输入家庭地址!); edtaddr.setfocus; exit; end; try with dm.adoquery1 do begin close; sql.clear; sql.add(select * from student where jt=:jt); parameters.parambyname(jt).value:=trim(edtaddr.text); open; end; dbgrid5.columns.items0.title.caption:=学 号; dbgrid5.columns.items1.title.caption:=姓 名; dbgrid5.columns.items2.title.caption:=性 别; dbgrid5.columns.items3.title.caption:=系 别; dbgrid5.columns.items4.title.caption:=班 别; dbgrid5.columns.items5.title.caption:=入学日期; dbgrid5.columns.items6.title.caption:=毕业中学; dbgrid5.columns.items7.title.caption:=出生年月; dbgrid5.columns.items8.title
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 陶瓷烧成工高级工作计划及安排
- 职业女性回归后的身心调适指导手册
- 水电安装工程造价控制全解一级工程中需掌握要点
- 注册营养师工作手册营养健康计划与实践
- 互联网背景下无人机行业发展趋势分析报告针对初修岗位
- 磨工安全培训教材全集
- 县级体育人才飞镖面试指南
- 语言教师-TESOL-认证备考与教学计划安排
- 平舆八中2025寒假通知书
- 平顺小学寒假放假通知书
- 标准离婚协议书文档模板
- 2025年军队文职人员招聘考试题库附答案(满分必刷)
- 2025年高考生物试题(重庆卷) 含答案
- 拆除工程专项方案
- 2025赤峰翁牛特旗公立医院招聘29名员额备案制工作人员考试笔试备考试题及答案解析
- 2025高中政治主观题答题模板
- 2025年全国低压电工证理论考试笔试试题(200题)附答案
- 2025贵州天健福康医养供应链有限责任公司招聘劳动合同制人员18人实施考试参考试题及答案解析
- 2025下半年厦门市总工会招聘工会专干和集体协商指导员50人考试参考题库及答案解析
- 2025年中小学教师职称评定答辩题(附答案)
- 自制小水车课件
评论
0/150
提交评论