




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
图书馆管理系统目 录1.引言11.1开发背景11.2可行性分析12.需求分析32.1设计要求32.2设计目的32.3功能实现42.4数据要求:43总体设计53.1设计思想53.2 数据库设计53.3处理流程73.4总体结构83.5功能分配103.6主要模块124. 核心代码实现144.1 主函数界面设计的主要源程序144.2核心模块165测试分析2751图书馆信息测试275.2插入测试285.3删除测试285.4修改测试285.5图书借阅测试285.6图书归还测试285.7图书催还测试286.课程设计总结28参考文献291.引言1.1开发背景随着社会信息量的与日俱增,作为信息存储的主要媒体之一图书,数量、规模比以往任何时候都大的多,不论个人还是图书管理部门都需要使用方便而有效的方式来管理自己的书籍。目前大部分图书馆的图书管理都处于一种馆藏图书量大,各书馆所存图书相类似,专业性图书所占比例较小,管理方法简单,图书利用率低,管理成本又高。这就要求我们在信息技术高速发展的今天,图书馆管理运用网络技术,通过信息系统的开发,在图书馆之间互通有无,有利于提高图书的利用率。在计算机日益普及的今天,对个人而言若采用一套行之有效的图书管理系统来管理自己的书籍,会方便许多。对图书管理部门而言,以前单一的手工检索已不能满足人们的要求,为了便于图书资料的管理需要有效的图书管理软件。 图书馆管理系统是一套功能比较完善的数据管理软件,具有数据操作方便高效迅速等优点。该软件采用功能强大的java语言进行开发,具有很好的可移植性,可在应用范围较广的DOS、WINDOWS系列等操作系统上使用。1.2可行性分析可行性分析是在进行初步调查后所进行的对系统开发必要性和可能性的研究,所以也称为可行性研究。可以从技术可行性,经济可行性和社会可行性三方面来论证。通过长时间的观察与实践,我认为图书馆管理系统的可行性分析如下:1.2.1.经济可行性能够准确快速的记录图书的状态,实时了解图书是否被借、是否归还、是否借出超期等信息,并且功能齐全,数据共享,操作简便,可靠性好,稳定快速,用户界面友好。图书馆管理系统是图书馆数字化管理的一个重要步骤,它实现了图书、在馆工作人员与读者信息的信息化管理,摆脱了以往的人工操作的许多不便。本系统将协助图书馆进行各项业务,方便读者的借阅、信息查询,而且,也将大大提高了图书馆信息资源的利用率,也使得读者能够更加方便的对图书进行个性化的管理。1.2.2.技术可行性图书馆管理系统的工作主要是在读者和图书馆之间架起一座桥梁,能相互沟通信息和处理信息等信息。 这一特点非常适合计算机特点,通过eclipse软件,发挥计算机的信息传输速度快、准确度高的优势。通过调查分析开发图书馆管理系统应具有的功能、性能及读者的需求,确定总体结构,利用ACCESS数据库的优势,以最简洁最容易的方法,使用java编写程序使其成为一个初级的系统软件。1.2.3运行可行性系统采用完全的图形化界面,易于管理,方便管理者查询设备信息,能够满足使用者的要求。该系统应该提供简单的操作界面,能够快速的实现查书、借书、还书功能。2.需求分析2.1设计要求1)能够存储一定数量的图书信息,并方便有效的进行相应的书籍数据操作和管理,这主要包括: a、图书信息的录入、删除及修改。 b、图书信息的多关键字检索查询。 c、图书的出借、返还。2)能够对一定数量的读者进行相应的信息存储与管理,这其中包括: a、读者信息的插入、删除及修改。 b、读者资料的统计与查询。c、读者的借书和还书信息情况3)能够对需要的图书统计结果提供列表显示输出并进行浏览。4). 能够连接数据库与图书馆软件方便进行一些管理。5). 能够实现图书馆借阅系统软件的实施。2.2设计目的一个更为完善的图书管理系统,是为了提供更为便捷与强大的信息查询功能,如图书信息,读者信息的查询;方便信息的修改,如图书信息,读者信息的修改;实现借书还书基本功能;对信息的保护手段设置仅限于与数据库的连接。系统采用完全的图形化界面,易于管理,方便管理者查询设备信息,能够满足使用者的要求。通过项目的学习和综合实训,能够熟练掌握运用Java语言进行桌面应用程序开发的基本知识和技能;熟练掌握JAVA的基本语法与数据库技术的应用;进一步熟悉ACCESS数据库的数据库管理。2.3功能实现随着图书的日益增多,传统的手工图书管理不仅工作量大,而且容易出现问题。图书管理设计的内容非常复杂而且繁多,比如拥有图书信息录入管理、读者信息管理、图书借阅管理和归还管理,图书的查询和修改等。 由于系统主要是为方便管理员定制开发的,因此针对图书管理的实际工作而言,经过了反复地论证,最终确定了图书管理系统的设计方案,图书管理系统的主要功能为:该系统主要建立一个基于C/S模式的图书管理系统,面对当今很多小型图书管理仍是人工管理带来的检索速度慢,效率低,借阅归还图书量大,图书统计工作量大,藏书不能完成及时更新的问题,该系统可以对两个不同的用户类型实现不同的功能: 1.对于图书馆工作人员能够方便的对图书信息的管理,可以增加、修改、删除图书,丰富具体图书的信息,对不同图书进行分类操作;可以根据图书书号等基本信息进行借书和还书的操作;对读者的信息进行增加、修改、删除,以及读者的的信息统计来实现对读者的管理;可以查询图书相关资料、当前借阅情况以及对一些参数的管理。 2.对于读者在本系统的应用下可实现按照各种方式(如:书名, ISBN号)查询图书馆的藏书情况,能够查询自己的借阅图书情况,也能查询自己的信息 (如学号、姓名等)和更新自己的信息以便对自己的信息进行管理。2.4数据要求:输入图书及用户的基本信息。用户查询时输出图书及用户基本信息和用户借书信息。3总体设计3.1设计思想整个系统制造的而过程中,涉及了较多java语言知识点,对于不同的数据类型、程序控制结构、数据结构作以分析和总结,并结合这个课题进行综合的应用,在一定程度上做到了对所学知识融会贯通。进一步加深、巩固了所学的专业的基本理论知识,培养了综合分析问题、解决问题的能力。在设计程序时,实现了程序的模块化、结构化。在主函数中调用各种子函数,操作界面全面简单,易操作。3.2 数据库设计3.2.1 数据库需求分析 本系统的数据库应该分为三个部分:学生信息部分、图书信息部分和综合操作部分。 3.2.2 数据库概念结构设计图书信息书号书名描述价格类型库存总量学生信息学号姓名借书信息借书序号学号借书日期归还日期书号是否归还所借数量图3.1 图书馆管理系统的数据库E-R图3.2.3数据库表设计 针对本系统的特点,在对所搜集的数据进行规范化之后,定义了如下三张表格,分别是Books表,Books_Log表,student表。通过对这三张表格的操作可以较好地完成系统设计的各项功能,三张表格之间有着不同程度的联系。3.3处理流程1)、按书名查询图书图书存在显示图书信息确定是否输入书名提示图书不存在2)、修改学生是否取消是否确实要修改显示学生信息确修改确定学生信息可编辑确定取消3.4总体结构该系统在eclipse软件环境下,主要采用java开发语言,access数据库来设计,开发过程与成果应符合软件工程术语,计算机软件产品开发文件编制指南等。 3.4.1图书管理系统总体结构图 绘制系统结构图的过程,实际上就是对系统功能模块进行分解设计的过程,即合理地将数据流程图转变为所需要的系统结构图。 系统结构图将会使读者和用户能直观的了解系统的结构模式,理解系统的各个功能的结构,能很好地方便用户使用和理解整个系统。本系统的结构图如下:图书管理系统催还还书借书修改查询删除插入查询学生浏览图书查询图书修改学生修改图书删除图书删除学生插入学生插入图书按姓名查询按学号查询按书名查询按书号查询图 功能分配1.新书入库:根据软件的功能调试出新书入库界面,根据提示输入图书编号、图书名称、图书描述、图书单价、图书类别、图书总库存量及目前库存量,然后确认是否要入库,确认入库后完成图书入库功能。2. 新的学生入库:根据软件的功能调试出新的学生入库界面,根据提示输入学生学号和学生姓名,输入完成确认是否要插入新生,确认后新生入库成功。3.删除图书:根据软件调试出的主函数界面浏览输出的图书列表,进行选择要删除的图书,选中后进行确认是否要删除,确认后完成删除图书工作。4.删除学生:根据软件调试出的主函数界面浏览输出的学生列表,进行选择要删除的学生,选中后进行确认是否要删除,确认后完成删除学生工作。5.修改图书:根据软件调试出的主函数界面并浏览输出的图书列表,选择要修改的图书,进行图书编号、图书名称、图书描述、图书单价、图书类别、图书总库存量及目前库存量等的修改,然后进行确认是否正确,完成修改图书工作。6.修改学生:根据软件调试出的主函数界面并浏览输出的学生列表,选择要修改的学生,确认修改然后对学生的姓名和学号进行修改,确认是否修改完成修改学生工作。7.按书号查询图书:根据软件调试出的主函数界面点击按书名查询,根据此界面输入要查询的书名,查看查询的书的信息情况。8.按书名查询图书:根据软件调试出的主函数界面点击按书号查询,根据此界面输入要查询的书号,查看查询的书的信息情况。9.按学号查询学生:根据软件调试出的主函数界面点击按学号查询,根据此界面输入要查询的学生的学号,查看此学号的学生的信息。10.按姓名查询学生:根据软件调试出的主函数界面点击按学生姓名查询,根据此界面输入要查询的学生的姓名,查看此姓名的学生的信息。11.浏览图书:根据软件调试出的主函数界面点击查询然后浏览图书,查看图书的详细情况。12.借书:根据软件调试出的主函数界面点击借书根据提示输入学号和姓名进行借书工作然后进行浏览该学生的借书详细信息。13.还书:根据软件调试出的主函数界面点击还书根据提示输入学号和姓名进行还书工作然后进行浏览该学生的借书详细信息,选择要还的书点击确定键归还。14.催还:根据软件调试出的主函数界面点击催还表,显示到期图书的学生信息和借阅信息。3.6主要模块3.6.1主界面3.6.2删除学生3.6.3修改学生4. 核心代码实现4.1 主函数界面设计的主要源程序public class MainJFrame extends JFrame implements ActionListener public MainJFrame() /空文件的构造方法 super(图书馆借阅系统); this.setBounds(400,300,400,300); /设置窗口位置及大小 this.setDefaultCloseOperation(EXIT_ON_CLOSE); /HIDE_ON_CLOSE 隐藏 JMenuBar menubar=new JMenuBar(); this.setJMenuBar(menubar); /菜单栏添加到框架窗口 String menustr=插入,删除,修改,查询,借书,还书,催还表; JMenu menu=new JMenumenustr.length;for(int i=0;imenu.length;i+) /菜单栏添加文件等若干菜单 menui=new JMenu(menustri); menubar.add(menui); String menuitemstr1=插入新书,插入学生; JMenuItem menuitem1=new JMenuItemmenuitemstr1.length; for(int i=0;imenuitem1.length;i+) /文件菜单添加若干菜单项 menuitem1i=new JMenuItem(menuitemstr1i); menu0.add(menuitem1i); menuitem1i.addActionListener(this); String menuitemstr2=删除图书,删除学生; JMenuItem menuitem2=new JMenuItemmenuitemstr2.length; for(int i=0;imenuitem2.length;i+) /文件菜单添加若干菜单项 menuitem2i=new JMenuItem(menuitemstr2i); menu1.add(menuitem2i); menuitem2i.addActionListener(this); String menuitemstr3=修改图书,修改学生; JMenuItem menuitem3=new JMenuItemmenuitemstr3.length; for(int i=0;imenuitem3.length;i+) /文件菜单添加若干菜单项 menuitem3i=new JMenuItem(menuitemstr3i); menu2.add(menuitem3i); menuitem3i.addActionListener(this); JMenu menu1=new JMenu(查询图书); menu3.add(menu1); JMenuItem menuitem8=new JMenuItem(按书号查询); menu1.add(menuitem8); menuitem8.addActionListener(this); JMenuItem menuitem9=new JMenuItem(按书名查询); menu1.add(menuitem9); menuitem9.addActionListener(this); JMenu menu2=new JMenu(查询学生); menu3.add(menu2); JMenuItem menuitem10=new JMenuItem(按学号查询); menu2.add(menuitem10); menuitem10.addActionListener(this); JMenuItem menuitem11=new JMenuItem(按姓名查询); menu2.add(menuitem11); menuitem11.addActionListener(this); JMenuItem menuitem4=new JMenuItem(浏览图书); menu3.add(menuitem4); menuitem4.addActionListener(this); JMenuItem menuitem5=new JMenuItem(借书); menu4.add(menuitem5); menuitem5.addActionListener(this); JMenuItem menuitem6=new JMenuItem(还书); menu5.add(menuitem6); menuitem6.addActionListener(this); JMenuItem menuitem7=new JMenuItem(催还); menu6.add(menuitem7); menuitem7.addActionListener(this); JLabel jlabel=new JLabel(,new ImageIcon(Image图书馆.jpg),JLabel.CENTER); this.getContentPane().add(jlabel,Center); this.setVisible(true); 4.2核心模块4.2.1删除学生:import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.sql.*;import java.util.*;public class DeleteStudentJFrame extends JFrame implements ActionListener private JButton button; private JPanel jpanel; private JList jlist; /列表框,显示图书目录 private String student; private String jdbcDriver;/数据库驱动 private String jdbcURL;/的数据库连接 private String dbUserName;/数据库用户名 private String dbPassword;/数据库密码 public DeleteStudentJFrame(String jdbcDriver,String jdbcURL,String dbUserName,String dbPassword) throws SQLException super(删除学生); this.setBounds(300,200,400,280); this.setDefaultCloseOperation(HIDE_ON_CLOSE); /HIDE、EXIT this.jdbcDriver=jdbcDriver; this.jdbcURL=jdbcURL; this.dbUserName=dbUserName; this.dbPassword=dbPassword; JPanel jp=new JPanel(new GridLayout(2,1); this.getContentPane().add(jp,North); JLabel jlabel=new JLabel(删除学生,JLabel.CENTER); JLabel jlabel1=new JLabel(请选择:,JLabel.LEFT); jp.add(jlabel); jp.add(jlabel1); JPanel jp2=new JPanel(); this.button=new JButton(确定); this.getContentPane().add(jp2,South); jp2.add(button); this.button.addActionListener(this); jpanel=new JPanel(); this.getContentPane().add(jpanel,Center); initLibrary(); this.setVisible(true); public DeleteStudentJFrame() throws SQLException this(sun.jdbc.odbc.JdbcOdbcDriver,jdbc:odbc:library,library,library); private Connection getConnection() throws SQLException/获取数据库的连接tryClass.forName(jdbcDriver);catch(ClassNotFoundException e)throw new SQLException(e.getMessage();return DriverManager.getConnection(jdbcURL,dbUserName,dbPassword);private void closeResultSet(Connection conn,PreparedStatement stmt,ResultSet rs)/关闭数据库ResultSet 、PreparedStatement、Connectiontryif(rs!=null)rs.close();catch(Exception e)tryif(stmt!=null)stmt.close();catch(Exception e)tryif(!conn.isClosed()conn.close();catch(Exception e)private void closeStatement(Connection conn,Statement stmt)/关闭数据库PreparedStatement、Connectiontryif(stmt!=null)stmt.close();catch(Exception e)tryif(!conn.isClosed()conn.close();catch(Exception e)public void initLibrary() throws SQLException/数据库表重置 Connection conn=null ; Statement stmt=null; /创建语句对象 ResultSet rset=null; /执行数据查询SELECT语句 ResultSetMetaData rsmd= null; try conn=getConnection() ; stmt=conn.createStatement(1004,1007); /创建语句对象 String sql=SELECT Student_ID,Student_Name FROM Student; rset=stmt.executeQuery(sql); /执行数据查询SELECT语句 rsmd= rset.getMetaData(); /返回元数据对象 int columns=rsmd.getColumnCount(); /获得列数 int rows=0; while(rset.next() /迭代遍历结果集,获得结果集总行数 rows+; this.student=new Stringrows; String results=new Stringrows; /创建二维数组保存数据结果集 rset.beforeFirst(); /移动指针到第一行之前 for(int i=0;rset.next();i+) /从前向后访问,获得每行数据 resultsi=;this.studenti=rset.getString(1); for(int j=1;j=columns;j+) resultsi+= +rset.getString(j); /获得当前行指定列的值 this.jlist=new JList(results); /所有文件名字符串显示在列表框中 jpanel.add(this.jlist); closeStatement(conn,stmt); catch(Exception e) public void actionPerformed(ActionEvent e) /单击事件处理方法 int i=this.jlist.getSelectedIndex(); /返回列表框第1个选中数据项的序号,从0开始;没有选中时返回-1 if(i!=-1) try if(JOptionPane.showConfirmDialog(this, 确实要删除学号为:+this.studenti+的学生吗?)=0) this.deleteStudent(this.studenti); this.setVisible(false); catch(SQLException e1) public void deleteStudent(String Student_ID) throws SQLException /删除学生,同时删除该学生的借阅记录,这两个操作在同一事务中Connection conn=null;PreparedStatement stmt=null;tryconn=getConnection() ; stmt=conn.prepareStatement(delete from Student where Student_ID=?);stmt.setString(1,Student_ID);stmt.executeUpdate();stmt.close();stmt=conn.prepareStatement(delete from Books_log where Student_ID=?);stmt.executeUpdate();mit();catch(SQLException e)finallycloseStatement(conn,stmt); public static void main(String arg)throws SQLException new DeleteStudentJFrame(); 4.2.2 修改学生:import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.sql.*;public class ModifyStudentJFrame extends JFrame implements ActionListenerprivate String jdbcDriver;/数据库驱动private String jdbcURL;/的数据库连接private String dbUserName;/数据库用户名private String dbPassword;/数据库密码private JButton button;private JPanel jpanel;private JList jlist; /列表框,显示图书目录private String student;public ModifyStudentJFrame(String jdbcDriver,String jdbcURL,String dbUserName,String dbPassword)throws SQLException/数据库表重置super(修改学生基本信息); this.setBounds(300,200,400,280); this.setDefaultCloseOperation(HIDE_ON_CLOSE); /HIDE、EXITthis.jdbcDriver=jdbcDriver;this.jdbcURL=jdbcURL;this.dbUserName=dbUserName;this.dbPassword=dbPassword;JPanel jp=new JPanel(new GridLayout(2,1);this.getContentPane().add(jp,North);JLabel jlabel=new JLabel(修改学生基本信息,JLabel.CENTER);JLabel jlabel1=new JLabel(请选择需要修改的学生:,JLabel.LEFT);jp.add(jlabel); jp.add(jlabel1);JPanel jp2=new JPanel();this.button=new JButton(确定);this.getContentPane().add(jp2,South);jp2.add(button);this.button.addActionListener(this); jpanel=new JPanel();this.getContentPane().add(jpanel,Center);initLibrary(); this.setVisible(true);public ModifyStudentJFrame() throws SQLException this(sun.jdbc.odbc.JdbcOdbcDriver,jdbc:odbc:library,library,library); private Connection getConnection() throws SQLException/获取数据库的连接tryClass.forName(jdbcDriver);catch(ClassNotFoundException e)throw new SQLException(e.getMessage(); return DriverManager.getConnection(jdbcURL,dbUserName,dbPassword);private void closeStatement(Connection conn,Statement stmt)/关闭数据库PreparedStatement、Connectiontryif(stmt!=null)stmt.close();catch(Exception e)tryif(!conn.isClosed()conn.close();catch(Exception e)public void initLibrary() throws SQLException/数据库表重置Connection conn=null ;Statement stmt=null; /创建语句对象ResultSet rset=null; /执行数据查询SELECT语句ResultSetMetaData rsmd= null; try conn=getConnection() ; stmt=conn.createStatement(1004,1007); /创建语句对象 String sql=SELECT Student_ID,Student_Name FROM Student; rset=stmt.executeQuery(sql); /执行数据查询SELECT语句 rsmd= rset.getMetaData(); /返回元数据对象 int columns=rsmd.getColumnCount(); /获得列数 int rows=0; while(rset.next() /迭代遍历结果集,获得结果集总行数 rows+; this.student=new Stringrows; String results=new Stringrows; /创建二维数组保存数据结果集 rset.beforeFirst(); /移动指针到第一行之前 for(int i=0;rset.next();i+) /从前向后访问,获得每行数据 resultsi=;this.studenti=rset.getString(1); for(int j=1;j=columns;j+) resultsi+= +rset.getString(j); /获得当前行指定列的值 this.jlist=new JList(results); /所有文件名字符串显示在列表框中 jpanel.add(this.jlist);closeStatement(conn,stmt);catch(Exception e)public void actionPerformed(ActionEvent e) /单击事件处理方法 int i=this.jlist.getSelectedIndex();/返回列表框第1个选中数据项的序号,从0开始;没有选中时返回-1if(i!=-1) try if(JOptionPane.showConfirmDialog(this, 确实要修改学号为:+this.studenti+ 的学生吗?)=0) new modifyStudent(String)this.studenti); this.setVisible(false); catch(SQLException e1)public static void main(String arg)throws SQLException new ModifyStudentJFrame(); 4.2.3 按书名查询图书import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.SQLException;import javax.swing.*;public class QueryBookbyNameJFrame extends JFrame implements ActionListenerprivate JTextField text;private JButton button;public QueryBookbyNameJFrame() super(按书名查阅图书); /窗口标题 this.setBounds(300,300,280,160); /设置窗口位置和尺寸 this.setResizable(false); this.setBackground(Color.lightGray); this.setDefaultCloseOperation(HIDE_ON_CLOSE); /EXIT、HIDE单击窗口关闭按钮时,结束程序运行 this.getContentPane().setLayout(new GridLayout(4,1); JLabel label1=new JLabel(按书名查阅图书,JLabel.CENTER); this.getContentPane().add(label1); JLabel label2=new JLabel(请输入要查找的书名,完成后单击确定按钮,JLabel.CENTER); this.getContentPane().add(label2); text=new JTextField(Java高级编程指南,30); this.getContentPane().add(text); JPanel panel=new JPanel(); this.get
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年西式烹调师初级考试模拟题及解析
- 二零二五年度电力设备安装工程安全教育培训合同
- 2025年度航空航天设备制造厂主体工程承包合同
- 二零二五年度场管理办公室智能安防系统设计与安装合同
- 二零二五年度餐饮服务员劳动合同创新服务模式
- 二零二五年度智能仓储物流系统区域代理商加盟代理合同
- 二零二五年度土地承包经营权纠纷调解执行合同
- 二零二五年度虚拟现实技术应用开发合同
- 七年前数学试卷
- 去年余姚中考数学试卷
- 美容外科安全应急预案范文(3篇)
- 水利工程拦水坝建设方案实例
- 新学期+心动力+课件-2025-2026学年高二上学期开学第一课主题班会
- 6G多维度切片QoS保障-洞察及研究
- 2025-2026学年外研版(三起)(2024)小学英语四年级上册教学计划及进度表
- 2025年安徽国控集团所属企业招聘7人笔试备考题库及答案解析
- 1.1认识社会生活(课件)- 2025-2026学年统编版道德与法治八年级上册
- 仓库盘盈盘亏处理方案(3篇)
- 2025年海南省警务辅助人员招聘考试(公共基础知识)历年参考题库含答案详解(5套)
- 城市道路清扫保洁协议
- 人教版二年级上册数学全册教学设计(配2025年秋新版教材)
评论
0/150
提交评论