版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、湖南工业大学课 程 设 计资 料 袋计算机与通信学院 学院(系、部)20122013学年第一学期 课程名称 大型数据库应用指导教师 曾敏 职称高级讲师学生姓名黄庆清专业班级 计算机091班 学号09408100103题 目图书馆书籍管理系统成 绩起止日期2012年11月27日2012年12月22日目 录 清 单序号材 料 名 称资料数量备 注1课程设计任务书2课程设计说明书3张456湖南工业大学课程设计任务书2012 2013 学年第 一 学期计算机与通信学院(系、部)计算机科学与技术专业091班级课程名称:大型数据库应用设计题目:图书馆书籍管理系统完成期限:自 2012 年 11 月 27
2、日至 2012年 12 月22日共一周内容及任务一、 设计的主要技术参数Oracle数据库,JSP,JavaScript,Struts2,Servlet,JDBC,Java二、 设计任务实现对图书馆中图书的添加,删除,修改,查询;以及通过触发器,存储过程等,对图书状态表中的信息进行查询,添加,修改,和删除;图书信息表中的书籍编号字段,通过索引和触发器,让其以自动增长的方式进行生成,方便图书的添加;三、设计工作量数据的建模;数据库中表的设计;触发器和存储过程的设计;JDBC连接Oracle数据库前台数据逻辑的设计;前台界面的设计;进度安排起止日期工作内容2012-11-272012-11-28系
3、统的规划2012-11-292012-12-01数据库的设计和建模2012-12-022012-12-12系统的概要设计以及系统前台的设计,编码与测试2012-12-132012-12-22系统文档的整理主要参考资料Oracle数据库应用 电子出版社出版Oracle11g从入门到精通钱慎一 (编者), 张素智 (编者)Oracle Database 9i/10g/11g编程艺术:深入数据库体系结构(第2版) 凯特(Thomas Kyte) (作者), 苏金国(译者), 王小振 (译者), 等 (译者)指导教师(签字):年 月 日系(教研室)主任(签字):年 月 日大型数据库应用课程设计课程设计
4、说明书图书馆书籍管理系统起止日期: 2012年11月27日 至 2012年12月25日学生姓名黄庆清班级计算机091班学号09408100103成绩指导教师(签字)计算机与通信学院2012年12月 25 日图书馆书籍管理系统一、 课题的介绍和课题的任务图书馆书籍管理系统主要对图书馆中书籍进行管理,包括对书籍的添加,删除,修改,各种方式的查询等操作,用于管理员对图书馆书籍库的管理;采用Oracle作为数据库,应用了Java,Jsp,JavaScript,SQL等编程语言以及 Struts2,JDBC等等技术,另外系统采用B/S结构,MVC的设计模式进行设计,在数据库方面,多处应用了存储过程和触发
5、器;二、课程设计的要求1、书籍的添加:通过触发器和索引,使图书的编号按照自动增长的方式进行添加,其他字段还有:书籍名称,作者,出版社,页数,藏书地址等;并且通过定义触发器,使每增加一条图书信息,在图书状态表中给其增加对应的图书状态信息;2、书籍的删除:通过存储过程来实现,如果该书的状态为已借出,就不能删除书籍,并发出提示信息;书籍的删除,通过定义before触发器,假如该书籍能够删除,就在其删除之前,删掉该书籍的状态信息;3、书籍的修改:修改除了书籍主键外的其他信息;4、书籍的查询:可根据图书的索引号进行精确查询,可以根据图书的书名,作者,出版社,藏书地址等进行模糊查询,基于系统的需求,还提供
6、系统中以所有字段作为关键字的模糊查询;5、用户身份验证,管理员通过用户登录,输入验证信息,若经过系统验证后,若正确,则进入图书管理主页,若出现错误,则跳到登录界面,并返回相应的友好的错误提示信息;三、系统的分析和系统中数据库的分析(ER图等)1、系统设计11.系统概要设计-流程图系统总体设计如图1.1所示图1-1实现用户的登录,管理员登录后对图书进行书籍的添加,书籍各种方式的查询,书籍的修改,书籍的删除;12.系统的详细设计.用户的登录 图书管理员通过输入管理员和密码进行验证,若验证正确,则进入系统。图1.2.书籍的添加书籍的添加,用户在表单中输入书籍的信息,点击录入,数据通过Struts2
7、的过滤器,自动提交数据,在Struts的Action类中进行获取数据,然后进行检测,如果检测输入信息有误,则跳转到添加页面,并返回相应的错误提示;如果信息正确,则调用添加数据存储过程进行数据的持久化;具体流程如图1-3所示;图1.3.书籍的修改书籍的修改,首先查询出需要修改的书籍,点击修改,跳转到书籍修改页面,顺便通过session对象,将原有的书籍对象带过去;在书籍修改页面表单中修改相应属性,提交到Struts2 的Action类中,首先进行数据的校验,校验失败,跳转到修改页面,返回相应的出错信息,校验成功,则进行书籍的更新处理;具体流程如图1.4所示; 图1.4书籍的删除书籍的删除,首先查
8、询出需要修改的书籍,点击删除,提交到Struts2中的Action类,顺便传入书籍编号这个值(主键,唯一),首先访问书籍库进行查询该书籍的状态是否是“在馆”,是则返回true,进入书籍的删除环节;调用数据库中的存储过程和触发器,进行书籍的删除,确保系统数据的一致性;具体流程如图1.5所示 图1.5书籍的查询书籍的查询,本系统中书籍的查询设定了多种方式,包括按索书号查询,按书名查询,按书籍作者查询,按出版社查询,还有按所有字段进行查询;先选择查询的方式,输入关键字,然后进行数据的提交,经数据过滤校验后,进入控制层,通过判断其查询类型,进行数据的查询,将符合条件的数据查询出来,装入集合框架Arra
9、yList中,传入显示层进行数据的显示,具体流程如图1.6所示; 图1.62数据库的设计 2.1数据库建模E-R图.1图书信息建模系统中书籍信息建模如E-R图2.1所示: 图2.1.2用户信息的建模用户信息的建模如图2.2所示: 图2.23系统前台的设计3.1、系统的结构 本系统使用MVC模式作为系统的设计结构,以JSP作为视图层;采用struts2框架,以其Acation类作为其控制层,以各种JavaBean,FormBean作为模型层;3.2、界面的设计和布局登录界面如图3.1所示 图3.1图书管理界面图书管理主页中提供了集书籍添加,书籍修改,书籍删除,书籍详情查询 及多功能的图书检索功能
10、,使用方便,操作简单,并设有完善友好的错误提示功能,具体展示如图3.2所示; 图3.2图书修改界面书籍修改界面如图3.3所示; 图3.3.图书详情界面由于数据量比较大,在查询主页中不便显示,通过图书详情界面,将对应图书信息进行显示;其界面及运行结果如图3.4所示; 图3.4四、系统的数据库实现1.1.书籍信息表和书籍状态表的设计书籍信息表中包括书籍编号,书籍名称,作者,出版社,页数,藏书地址等字段,书籍编号通过触发器的方式,以自动增长的方式进行添加;页数为Number类型,其他的都为字符串行;图书馆中书籍的各个字段的设计如图4.1所示分为图书表(book)和图书状态表(bookstate);
11、图4.1 表4-1 book表的设计bnumNumberNot null,自动生成,主键bnameCharacter(256)Not nullwriterCharacter(256)Not nullpublishCharacter(256)Not nullpageNumberNot nullplaceCharacter(256)Not null 表4-2 bookstate表的设计bnumNumberNot null 外键,主键stateCharacter(256)Not null default waitcardidCharacter(256)nullborrowDatenull1.2.管理
12、员验证信息的设计如图4.2所示Create table Manager(Username varchar2(20),Pwd varchar2(20); 图4.2 表4-3 manage表的设计usernameCharacter(256)Not null 主键pwdCharacter(256)Not null1.3. 触发器,存储过程的设计1.3.1.图书信息添加触发器的设计先创建一个索引,计算出前一个字段的最大值,然后创建before触发器,每增加一项书籍记录,给书籍编号这一字段赋值;图书的管理-创建图书表:Create table book(bnum number(11),bname var
13、char2(20),writer varchar2(20),publish varchar2(50),page number(11),place varchar2(20),);-创建序列:create sequence book_seqincrement by 1 start with 1maxvalue 1.0E28minvalue 1 nocache -创建触发器create or replace trigger tr_bookbefore insert bookfor each rowbeginselect book_seq.nextval into :new.bnum from dua
14、l;end tr_book;-测试,插入数据Insertintobook(bname,writer,publish,page,place) values('compute','liusi','China',342,'一楼库'); insert into book(bname,writer,publish,page,place) values('computerr','liusi','湖工大',842,'二楼库');1.3.2.添加书籍状态信息触发器trigger_st
15、ate每创建一项书籍记录后,自动在图书状态信息表中,添加一条对应的图书状态信息;创初始触发器create or replace trigger_stateafter insert bookfor each rowbegin -如何用到bnum的值-> insert into bookstate(bnum) values( )end ;1.3.3.删除存储过程的创建pro_del先判断图书状态State是否为”已借出”,如果是,则不能进行删除操作,与此同时,发出提示信息;如果不是,则先删除bookstate表中对应的那条记录,再将相应的图书信息记录删除。-删除,过程Create or re
16、place procedure pro_del( bnumber IN number(11) , say out varchar2(20)as Num1 number sta varchar2 date1=dateBegin select state into sta from bookstate where bnum=bnumber;if sta='wait' then delete from bookstate where bnum=bnumber; delete from book where bnum=bnumber; say='yes'else say
17、='no'end if; end;更新书籍存储过程的创建pro_update-更新书籍存储过程Create or replace procedure pro_update( bnum1 IN number(11) , bname1 IN varchar2(20), writer1 IN varchar2(20), publish1 IN varchar2(50), page1 IN number(11), place1 IN varchar2(20),)asBegin update book set bname=bname1,writer=writer1,publish=pub
18、lish1,page=page1,place=place1 where bnum=bnum1; end;用户登录存储过程的创建pro_login-登录Create or replace procedure pro_login( mname IN varchar2(20), mpwd IN varchar2(20), say out varchar2(20) as count number=0;Begin select count(*) into count from Manage where username=mname && pwd=mpwd;if sta=0 then sa
19、y='yes'else say='no'end if; end;五、系统的实现及调试 1.实现数据库的连接public DBoracle()try Class.forName("oracle.jdbc.driver.OracleDriver");/oracle名称还需填写ct=DriverManager.getConnection("jdbc:oracle:thin:.248:1521:orcl","orcl","orcl"); catch (ClassNotFoundExcepti
20、on e) / TODO Auto-generated catch blocke.printStackTrace(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace(); 2.系统功能的实现2.1通过在前台JSP页面中书籍信息,由Struts2的过滤器,将其数据自动封装成对应的JavaBean,在对应的Action中进行处理;<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts P
21、UBLIC "-/Apache Software Foundation/DTD Struts Configuration 2.0/EN" "/dtds/struts-2.0.dtd"><struts><package name="user" extends="struts-default"> <action name="userlogin" class="lib.action.UserLoginActio
22、n" method="execute"> <result name="success">main.jsp</result> <result name="failure">main.jsp</result> </action> <action name="addbook" class="lib.action.AddBookAction" method="execute"> <resul
23、t name="success">BookManage.jsp</result> <result name="failure">BookManage.jsp</result> </action> <action name="updatebook" class="lib.action.UpdateBookAction" method="execute"> <result name="success">
24、BookManage.jsp</result> <result name="failure">updatebook.jsp</result> </action> <action name="deletebook" class="lib.action.DeleteBookAction" method="execute"> <result name="success">BookManage.jsp</result>
25、<result name="failure">BookManage.jsp</result> </action> <action name="cbookselect" class="lib.action.ChangeBookSelectAction" method="execute"> <result name="success">BookManage.jsp</result> <result name="f
26、ailure">BookManage.jsp</result> </action> </package><package name="sel" extends="struts-default"> <action name="select" class="lib.action.SelectAction" method="execute"> <result name="success">mai
27、n.jsp</result> <result name="error">main.jsp</result> </action></package></struts> 2.2.图书的添加 在图书管理主界面中,录入各项图书信息,通过Struts2过滤器,在Action中进行数据的校验,若出现数据格式等方面的错误,将错误信息写入一个HashMap集合中,并将所有出错信息的集合返回到图书管理主界面;如果数据符合要求,则向数据库图书表中增加一条记录,同时往图书状态表中也写入相应的记录;public boolean
28、 addBook(Book b). 2.3.图书的修改先通过查询,找到要修改的记录,点击进入图书信息修改界面,完成后,输入新的值,进行数据的修改;publicboolean updateBook(Book b) try CallableStatement cstmt = null;String procedure = "call pro_update(?,?,?,?,?,?)"cstmt.setString(1,b.getBname();cstmt.setString(2,b.getWriter();cstmt.setString(3,b.getPublish();cstm
29、t.setInt(4,b.getPage();cstmt.setString(5, b.getPlace();cstmt.setInt(6, b.getBnum();cstmt = ct.prepareCall(procedure); cstmt.executeUpdate();returntrue; catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();returnfalse;2.4图书的删除publicboolean deleteBook(Book b) try /pstmt=ct.prepa
30、reStatement("delete from bookstate where bnum=? ");pstmt=ct.prepareCall(" call pro_del(?) ");pstmt.setInt(1,b.getBnum();/pstmt.executeUpdate();/pstmt=ct.prepareStatement("delete from book where bnum=?");/pstmt.setInt(1,b.getBnum();pstmt.execute();returntrue; catch (SQLE
31、xception e) / TODO Auto-generated catch blocke.printStackTrace();returnfalse;2.5.图书的查询系统中提供了图书索引号,图书名称,作者,出版社,等多种方式的查询,并且为了方便起见,还设立通过所有字段进行模糊查询的功能;public ArrayList getLibBooks(Book b, int choice) ArrayList al=new ArrayList();String sql="select * from book where "String str=null;try / 按照各种查
32、询if (choice = 1) sql="select * from book where bnum=?"pstmt = ct.prepareStatement(sql);pstmt.setInt(1, b.getBnum(); elseif (choice = 2) sql="select * from book where bname like ?"pstmt=ct.prepareStatement(sql);pstmt.setString(1, "%"+b.getBname()+"%"); elseif (
33、choice = 3) sql="select * from book where writer=?"pstmt=ct.prepareStatement(sql);pstmt.setString(1, b.getWriter(); elseif (choice = 4) sql="select * from book where publish like ?" pstmt=ct.prepareStatement(sql); pstmt.setString(1, "%"+b.getPublish()+"%"); el
34、se sql="select * from book where bname like ? OR writer like ? OR publish like ?"pstmt=ct.prepareStatement(sql);pstmt.setString(1, "%"+b.getPublish()+"%"); /将所有信息写入publish这一栏中pstmt.setString(2, "%"+b.getPublish()+"%"); /将所有信息写入publish这一栏中pstmt.setStr
35、ing(3, "%"+b.getPublish()+"%"); /将所有信息写入publish这一栏中ResultSet rs=pstmt.executeQuery();while(rs.next()Book bk=new Book();bk.setBnum(rs.getInt(1);bk.setBname(rs.getString(2);bk.setWriter(rs.getString(3);bk.setPublish(rs.getString(4);bk.setPage(rs.getInt(5);bk.setPlace(rs.getString(6
36、);al.add(bk);return al; catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();returnnull;2.6管理员地登录 管理员必须通过身份验证才能进入书籍管理页面,对书籍的管理;publicboolean managerLogin(String workid,String password)try /pstmt=ct.prepareStatement("select * from manager where workid=? ");CallableSta
37、tement cstmt = null;cstmt=ct.prepareCall(" call pro_login(?,?,?) ");cstmt.setString(1, workid);cstmt.setString(2, password);(CallableStatement) cstmt).registerOutParameter(3, oracle.jdbc.OracleTypes.CURSOR);cstmt.execute();/从输出参数中获取值ResultSet rs = (ResultSet) cstmt.getObject(3);/第3个?所代表的参数
38、ResultSetMetaData rmd =rs.getMetaData(); String str=null;while(rs.next()for(int i=0;i<rmd.getColumnCount();i+) str=rs.getString(i+1)+"" if(str.trim().equals("yes")returntrue;elsereturnfalse; catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();returnfals
39、e;六、系统的使用说明 图书馆管理员登录进入系统,即可到图书管理界面,在图书管理界面上按要求进行书籍添加,若输入不正确,系统自动显示出提示信息,修改后进行继续添加;按照管理员的意愿选择适当的查询方式(所有字段,索引号,书名,出版社等),点击需要更新的记录,进行相应操作,若选择删除,操作后会有相应的信息提示,若选择修改,则跳入修改界面,进行相应图书信息的修改;七、课程设计总结与心得 每一次课程设计都是一次不可重现的学习与实践的机会,这一次Oracle大型数据库应用的应用系统的开发也不例外。通过这一次课程设计,我们得以将我们所学的数据库原理、Oracle数据库特性、面向对象编程语言及其编程技术、软
40、件开发技术、软件工程思想、软件体系结构乃至项目管理应用到实践中去,同时也是这些理论的再一次学习与深化,也是一次工程思想的飞跃。在这一次基于Oracle应用的软件项目开发活动中,我们再一次体会到“计算机科学与技术是看不懂的,只有做才真正有所收获”的告诫。 Oracle被称之为大型的、专业数据库,广泛应用在各种大型项目中。然而,在我们的理论学习中丝毫没有领会到这一点。更可惜的是我们的课程设计无法开发大型项目,没能够感受到Oracle大型数据库区别于其他中小型数据库的特性。不过,有一点可以感受到,那就是Oracle占用的计算机资源较多,这是大型数据库不可避免的。附1:完成该系统的所有成员名单及其工作
41、人数:4人负责人:刘思工作:负责整个系统的设计与整合,查询,更新模块成员:赵倩倩工作:负责书籍删除模块,以及前台的部分工作成员:唐睿(考研)工作:负责用户的验证;成员:黄庆清(考研)负责:书籍的添加模块备注:考研的同学,由于要全心去准备考研,故完成的工作量比较少,请老师谅解;附2:系统的主要程序代码(部分主要的代码如下:)publicclass DBoracle implements DBinterface Connection ct;PreparedStatement pstmt;/实例化驱动类,创建数据库连接对象public DBoracle()try Class.forName(&quo
42、t;oracle.jdbc.driver.OracleDriver");/oracle名称还需填写ct=DriverManager.getConnection("jdbc:oracle:thin:.248:1521:orcl","orcl","orcl"); catch (ClassNotFoundException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (SQLException e) / TODO Auto-generated cat
43、ch blocke.printStackTrace(); publicboolean addBook(Book b) try pstmt=ct.prepareStatement("insert into book(bname,writer,publish,page,place)values(?,?,?,?,?)");pstmt.setString(1,b.getBname() );pstmt.setString(2, b.getWriter();pstmt.setString(3, b.getPublish();pstmt.setInt(4, b.getPage();pst
44、mt.setString(5,b.getPlace();pstmt.executeUpdate();pstmt=ct.prepareStatement("insert into bookstate(bnum,state) values(select Max(bnum)from book),'wait') ");/这里要定义触发器来解决pstmt.executeUpdate(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();returntrue;publ
45、icboolean deleteBook(Book b) try /pstmt=ct.prepareStatement("delete from bookstate where bnum=? ");pstmt=ct.prepareCall(" call pro_del(?) ");pstmt.setInt(1,b.getBnum();/pstmt.executeUpdate();/pstmt=ct.prepareStatement("delete from book where bnum=?");/pstmt.setInt(1,b.g
46、etBnum();pstmt.execute();returntrue; catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();returnfalse;public ArrayList getLibBooks(Book b, int choice) ArrayList al=new ArrayList();String sql="select * from book where "String str=null;try / 按照各种查询if (choice = 1) sql=&
47、quot;select * from book where bnum=?"pstmt = ct.prepareStatement(sql);pstmt.setInt(1, b.getBnum(); elseif (choice = 2) sql="select * from book where bname like ?"pstmt=ct.prepareStatement(sql);pstmt.setString(1, "%"+b.getBname()+"%"); elseif (choice = 3) sql="
48、select * from book where writer=?"pstmt=ct.prepareStatement(sql);pstmt.setString(1, b.getWriter(); elseif (choice = 4) sql="select * from book where publish like ?" pstmt=ct.prepareStatement(sql); pstmt.setString(1, "%"+b.getPublish()+"%"); else sql="select *
49、from book where bname like ? OR writer like ? OR publish like ?"pstmt=ct.prepareStatement(sql);pstmt.setString(1, "%"+b.getPublish()+"%"); /将所有信息写入publish这一栏中pstmt.setString(2, "%"+b.getPublish()+"%"); /将所有信息写入publish这一栏中pstmt.setString(3, "%"+b
50、.getPublish()+"%"); /将所有信息写入publish这一栏中ResultSet rs=pstmt.executeQuery();while(rs.next()Book bk=new Book();bk.setBnum(rs.getInt(1);bk.setBname(rs.getString(2);bk.setWriter(rs.getString(3);bk.setPublish(rs.getString(4);bk.setPage(rs.getInt(5);bk.setPlace(rs.getString(6);al.add(bk);return al
51、; catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();returnnull;publicboolean updateBook(Book b) try CallableStatement cstmt = null;String procedure = "call pro_update(?,?,?,?,?,?)"cstmt.setString(1,b.getBname();cstmt.setString(2,b.getWriter();cstmt.setString(3,b.g
52、etPublish();cstmt.setInt(4,b.getPage();cstmt.setString(5, b.getPlace();cstmt.setInt(6, b.getBnum();cstmt = ct.prepareCall(procedure); cstmt.executeUpdate();returntrue; catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();returnfalse;Action类(部分)publicclass AddBookAction extends
53、 ActionSupport BookForm bf;public BookForm getBf() return bf;publicvoid setBf(BookForm bf) this.bf = bf;Overridepublic String execute() throws Exception BookForm bkf=new BookForm();bkf.setBname(bf.getBname();bkf.setPage(bf.getPage();bkf.setPlace(bf.getPlace();bkf.setPublish(bf.getPublish();bkf.setWr
54、iter(bf.getWriter();boolean flag=true;String message=""Book b=new Book();int pages=0;Map addmap=new HashMap();/定义一个集合来存储出错信息if(bkf.getBname()=null|bkf.getBname().trim().equals("")flag=false;addmap.put(1,"书籍名不能为空!");if(bkf.getPage()=null | bkf.getPage().trim().equals("")flag=false;addmap.put(2,"页数不能为空!");elsetry pages=Integer.parseInt(bkf.getPage().trim(); catch (Exception e) flag=false;addmap.put(3, "页数输入格式不对!");e.printStackTrace();/测试用if(bkf.getPlace()=null | bkf.getPlace().trim().equals("")flag=false;a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 压路机操作工岗前内部考核试卷含答案
- 罐头调味工岗中应急响应考核试卷含答案
- 信息通信网络线务员岗前工作意识考核试卷含答案
- 兽医化验员持续改进知识考核试卷含答案
- 制球工岗前学习考核试卷含答案
- 织布机操作工岗中质量检验考核试卷含答案
- 安检员岗前态度考核试卷含答案
- 稀土挤压工岗位实践评估考核试卷含答案
- 2025年白山市临江市数学三年级第二学期期末调研试题含答案解析
- vb试题及答案2026深度探讨
- 电子实验室安全培训课件
- 2025年中国长寿医学与抗衰产业白皮书-
- 一带一路风险课题申报书
- 发展经济学(第二版)课件 第0-9章 绪论 - 城市化与城乡发展
- 幼儿园中班数学《家里的数字》课件
- 《协商决定班级事务》课件
- 水厂卫生知识培训资料课件
- 外科腔镜器械介绍
- 《高速铁路概论(第2版)》高职铁路专业全套教学课件
- DB31/T 1238-2020分布式光伏发电系统运行维护管理规范
- 200句记忆高中英语3500词(语法填空练习)
评论
0/150
提交评论