高校设备管理系统_第1页
高校设备管理系统_第2页
高校设备管理系统_第3页
高校设备管理系统_第4页
高校设备管理系统_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、高校设备管理系统数据库课程实训报告 1目 录1 课题内容和要求11.1课题描述11.2 课题要求12 需求分析12.1 功能需求分析12.2 数据需求分析13 系统设计33.1 功能模块设计73.2 数据库概念设计73.3 数据库逻辑设计93.4 数据库物理设计93.5 数据库表间联系94系统实现104.1 登陆模块实现104.2 修改模块实现104.3 查询模块实现104.4 添加模块实现104.5 删除模块实现105 代码调试与功能测试115.1 测试方案115.2 测试结果116 收获与体会14参考文献17附录18附录1源程序部分清单18附录1.1登陆代码183高校设备管理系统1 课题内

2、容和要求 1.1课题描述设备管理是企、事业单位中的一项主要管理工作,特别是对于企、事业单位的决策者和管理者来说,设备管理工作都是至关重要的,作为计算机应用的一部分,使用计算机对设备信息进行管理,有着手工管理所无法比拟的优点,因此要求系统能够:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等,以此来提高设备管理的工作效率,达到预期的目的,从而为用户提供充足的信息和快捷的查询手段以管理相关的设备信息。1.2 课题要求2 需求分析2.1 功能需求分析 本设备管理系统应具备对设备相关信息进行录入,删除,修改,查询,输出,折旧等基本操作,并将其数据传递到数据库中存储。使用国家标准设备分

3、类编码方法,能够实现对设备代码的维护。能够使用户方便的进行检索查询相关设备信息。能够实现对数据的备份和恢复。具体功能如下图所示:用 户 登 录折旧更新输出备份查询添加修改恢复分类检索全表查询删除图2.11. 设备的添加功能:添加新的设备,包括:设备编号、设备名称、设备类别、设备单价等。2、设备的删除功能:删除设备的信息,包括:设备编号、设备名称、设备类别、使用单位等。3、设备的修改功能:修改设备的信息,包括:修改设备编号、设备名称、设备类别、设备单价、折旧率等。4、设备的查询功能:查询设备的信息,包括:设备的编号、名称、类别、使用单位、单价、折旧率等信息。5、设备的折旧功能:对现有设备进行折旧

4、计算输出设备的现有价值。6、数据备份功能:对数据库中的数据进行备份,用来还原数据库。7、数据恢复功能:对数据库进行恢复,是数据库恢复到备份前的状态。2.2 数据需求分析2.2.1数据流图P02国家标准设备分类表P03设备使用单位代码表D05操作成功信息D06操作P01设备使用明细表A02更新、维护、查询、折旧、备份和还原数据D01验证错误信息用户登录D02登录信息A03身份验证A01输 出D03操作信息D04反馈信息图2.2 数据流图2.2.2数据字典(1)数据流的描述数据流编号: D01数据流名称: 验证信息数据流来源: 用户输入与数据库数据流去向: 系统判断数据流组成: 用户名+密码等数据

5、流量:1000/天高峰流量:3000/天数据流编号: D02数据流名称: 登录信息数据流来源: 用户输入数据流去向: 系统判断数据流组成: 用户名+密码等数据流量:1000/天高峰流量:3000/天数据流编号: D03数据流名称: 操作信息数据流来源: 用户输入数据流去向: 系统选择数据流组成: 各种功能等数据流量:2000/天高峰流量:50000/天数据流编号: D04数据流名称: 反馈信息数据流来源: 用户输入数据流去向: 系统选择数据流组成: 输出功能数据流量:2000/天高峰流量:50000/天数据流编号: D05数据流名称: 操作成功信息数据流来源: 用户输入数据流去向: 数据库数据

6、流组成: 设备信息数据流量:5000天高峰流量:15000/天数据流编号: D06数据流名称: 操作6信息数据流来源: 用户输入数据流去向: 数据库数据流组成: 国家标准设备信息数据流量:5000天高峰流量:15000/天 (2)处理逻辑描述处理逻辑编号:A01处理逻辑名称:输出信息。输出的数据流:设备明细帐信息处理频率: 10次/天处理逻辑编号:A02处理逻辑名称:功能信息。输出的数据流:设备标准信息处理频率: 10次/天处理逻辑编号:A03处理逻辑名称:验证信息。输人的数据流:用户基本信息处理频率: 10次/天 (3)数据储存描述数据存储编号:P01数据存储名称:设备使用明细信息 简述:设

7、备的基本信息数据存储组成:用户名+密码关键字:设备编号,单位编号,使用数量,折扣,单价相关联的处理:A01数据存储编号:P02数据存储名称:国家标准设备分类信息 简述:国家标准设备基本信息数据存储组成:用户名+密码关键字:设备编号,设备类别,设备名称,生产厂家,单价(元)相关联的处理:A02数据存储编号:P03数据存储名称:设备使用单位信息 简述:单位基本信息数据存储组成:用户名+密码关键字:单位编号,单位名称,单位电话,单位地址 相关联的处理:A02(4)外部实体的描述外部实体名称:用户简述:使用设备管理系统的人输入的数据流:D02输出的数据流:D01,D03外部实体名称:设备简述:国家标准

8、设备信息输入的数据流: D06以下为具体数据库中使用的表的详细信息:设备使用明细表 列 名 数据类型 长度 是否为空设备编号 char 20 否单位编号 char 20 否使用数量 int 4 是折扣 float 8 是 单价 float 8 是设备名称 char 20 是设备使用单位代码表列 名数据类型长度是否为空单位编号 char20 否单位名称 char 20 是单位电话 char 20 是单位地址 char 20 是国家标准设备分类表列 名数据类型长度是否为空设备编号 char 20 否设备类别  char 20 是设备名称 char 20 是生产厂家 char 20 是单价

9、(元) float 8 是3 系统设计3.1 功能模块设计1、登陆模块本模块实现了管理员登陆系统的功能,是系统的第一个用户的接口,通过管理员权限的区别来进入本系统,其他操作者在输入有误的情况下拒绝访问。 图3.1.1登陆界面2、总金额模块本模块实现了设备信息的录入功能,能够向设备ID、购买数量进行录入,并对设备的价格进行结算。3、 高校部门模块本模块实现了部门的信息录入,可以向表中添加删除部门信息,编辑部门信息(部门编号、部门名称、状态、人数、负责业务)4、 高校学院模块本模块实现了高校学院的信息的修改与删除,可以修改、删除、添加表中高校学院的信息(学院编号、学院姓名、状态、人数、联系电话等)

10、5、 设备管理模块本模块实现了设备管理功能,对设备进行产品的入库登记、入库记录、库存情况的记录,并查找设备检索设备的种类,对设备进行添加、修改、删除的操作。3.2 数据库概念设计设备信息表E-R图如图3.2.1所示 图3.2.1设备信息表购买记录表E-R图如图3.2.2 图3.2.2购买记录表3.3 数据库逻辑设计设备信息(设备编号,设备名称,设备类型,型号,规格,单价,数量,购买日期,生产厂家,保质期,经办人)购买记录(记录编号,设备名,类别,型号,规格,单价,数量,日期,生产厂家)3.4 数据库物理设计 图3.4.1 图3.4.2图3.4.3图3.4.43.5 数据库表间联系 图3.5.1

11、数据库表间联系4系统实现4.1登录模块 系统显示一个登陆登陆对话框,提示输入用户名和密码。 用户名:1 密码:3private void button1_Click(object sender, EventArgs e)   string str1 = textBox1.Text;    string str2 = textBox2.Text;   

12、0; if (str1 = "sa")           if (str2 = "123456789")               try       &#

13、160;  SqlConnection myConnection = new SqlConnection(); myConnection.ConnectionString="server=localhost;uid=sa;pwd=123456789;database=device" myConnection.Open(); MessageBox.Show("登录成功");       myConn

14、ection.Close();       Form6 obj = new Form6();       obj.Show();       this.Hide();        catch (SqlException ee)  

15、;      MessageBox.Show(ee.Message);                        else        MessageBox.Show("密码不正确,请重新输入"

16、);        textBox2.Focus();                     else          MessageBox.Show("用户名不正确,请重新输入");&

17、#160;     textBox1.Focus();              private void button2_Click(object sender, EventArgs e)    this.Close();  4.2 修改模块实现用户可点击修改按钮,在对应的文本框上输入要修改的信息

18、 private void button6_Click(object sender, EventArgs e)   cur = this.BindingContextdsdevicelist, "devicelist".Position;   setState(false);  textBox2.Focus();    4.3 查询模块实现用户可点击查询按钮,在弹出的

19、对话框中输入关键字对信息进行查询 private void Form2_Load(object sender, EventArgs e)     try      mySqlConnection = new SqlConnection(); mySqlConnection.ConnectionString="server=localhost;uid=sa;pwd=1234567

20、89;database=device" DataSet myDataSet = new DataSet();    mySqlDataAdapter = new SqlDataAdapter("select * from devicelist",mySqlConnection); mySqlDataAdapter.Fill(myDataSet,"devicelist"); my

21、DataView = myDataSet.Tables"devicelist".DefaultView;             dataGridView1.DataSource = myDataView;   catch(Exception ee)    MessageBox.Show(ee.Message); &#

22、160;     private void button1_Click(object sender, EventArgs e)   myDataView.RowFilter = textBox1.Text; 4.4添加模块实现用户可点击添加按钮,在对应的文本框上输入要添加的信息 private void button5_Click(object sender, EventArgs

23、0;e)   cur = this.BindingContextdsdevicelist, "devicelist".Position; textBox1.Text = "" textBox2.Text = ""  textBox3.Text = "" textBox4.Text = "" text

24、Box1.Focus(); setState(false);4.5删除模块实现用户可点击删除按钮,系统将选定的数据删除 private void button9_Click(object sender, EventArgs e)    dsdevicelist.Tables"devicelist".Rowsthis.BindingContextdsdevicelist,"devicelist". Position.Delete();&#

25、160;sqlDataAdapter.Update(dsdevicelist,"devicelist");    5 代码调试与功能测试5.1 测试方案对各个模板进行添加修改、删除、操作。5.2 测试结果图5.2.1登陆界面图5.2.2总金额界面图5.2.3高校部门界面图5.2.4高校学院界面图5.2.5设备管理界面图5.2.6产品入库记录界面图5.2.7产品库存情况界面图5.2.8产品入库登记界面6 收获与体会 整个设计通过了软件和硬件上的调试。我想这对于自己以后的学习和工作都会有很大的帮助。在这次设计中遇到了很多实际性的问题,在实

26、际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。对于教材管理系统,其程序是比较简单的,主要是解决程序设计中的问题,而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。因此在整个设计过程中大部分时间是用在程序上面的。很多子程序是可以借鉴书本上的,但怎样衔接各个子程序才是关键的问题所在,这需要对系统的结构很熟悉。因此可以说系统的设计是软件和硬件的结合,二者是密不可分的。通过这次课程设计我也发现

27、了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。这也激发了我今后努力学习的兴趣,我想这将对我以后的学习产生积极的影响。其次,这次课程设计让我充分认识到团队合作的重要性,只有分工协作才能保证整个项目的有条不絮。另外在课程设计的过程中,当我们碰到不明白的问题时,指导老师总是耐心的讲解,给我们的设计以极大的帮助,使我们获益匪浅。因此非常感谢老师的教导。通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。我觉得作为一名软件工程专业的学生,这次课程设计

28、是很有意义的。更重要的是如何把自己平时所学的东西应用到实际中。虽然自己对于这门课懂的并不多,很多基础的东西都还没有很好的掌握,觉得很难,也没有很有效的办法通过自身去理解,但是靠着这一个多礼拜的“学习”,在小组同学的帮助和讲解下,渐渐对这门课逐渐产生了些许的兴趣,自己开始主动学习并逐步从基础慢慢开始弄懂它。我认为这个收获应该说是相当大的。一开始我们从参考书上找来了课题,但是毕竟是参考书,做到后来发现很多程序都是不完整的,这让我们伤透了脑筋。看着别的小组都弄得有模有样了,可是我们连一个课题都还没有定好。好不容易又找到了课题,可是结果还是很不尽人意。程序接线什么的都弄好了,调试也没有问题,可是就是无

29、法达到预期想要的结果。参考书毕竟只是一个参考,设计这种东西最后还是要靠自己动脑筋。然后我们大家一起齐心协力,从平时做的实验老师上课的举例书本上的知识以及老师的辅导和其他同学的帮助下终于完成了。应该说这是通过我们小组成员的共同努力和动脑完成的,虽然内容并不是很复杂,但是我们觉得设计的过程相当重要,学到了很多,收获了很多。我觉得课程设计反映的是一个从理论到实际应用的过程,但是更远一点可以联系到以后毕业之后从学校转到踏上社会的一个过程。小组人员的配合相处,以及自身的动脑和努力,都是以后工作中需要的。所以我认为这次的课程设计意义很深,和其他同学的共同学习配合努力的过程也很愉快,另外还要感谢老师的耐心辅

30、导。27参考文献1 钱雪忠,王燕玲,林挺.数据库原理及技术M.北京:清华大学出版社,2011.2 钱雪忠,罗海驰,陈国俊.数据库原理及技术课程设计M.北京:清华大学出版社,2014.附录附录1源程序部分清单附录1.1登陆代码package com.view;import com.model.LoginModel;import com.mytools.*;import com.sun.awt.AWTUtilities;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;i

31、mport java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.awt.event.MouseMotionAdapter;import javax.imageio.ImageIO;import javax.swing.*;import javax.swing.border.MatteBorder;import java.io.*;import java.util.Vector;SuppressWarnings("seri

32、al")public class Login extends JFrame implements MouseListener /全局的位置变量,用于表示鼠标在窗口上的位置static Point origin = new Point();/ 定义组件ImagePanel bkim = null;JButton min, close, loginqueding;JComboBox<String> user;JPasswordField password;String allparas = "1"SuppressWarnings("unused&

33、quot;)public static void main(String args) / TODO Auto-generated method stubLogin login1 = new Login();public void setbutton(JButton jb) jb.setContentAreaFilled(false);jb.setBorderPainted(false);jb.setFocusPainted(false);jb.addMouseListener(this);jb.setOpaque(false);/ 窗口操作控制菜单public void windowsmenu

34、() min = new JButton(new ImageIcon("image/Loginmin.png");min.setBounds(346, 0, 27, 21);min.setRolloverIcon(new ImageIcon("image/LoginminC.png");setbutton(min);min.setToolTipText("最小化");close = new JButton(new ImageIcon("image/Loginclose.png");close.setBounds(3

35、70, 0, 29, 21);close.setRolloverIcon(new ImageIcon("image/LogincloseC.png");setbutton(close);close.setToolTipText("关闭");bkim.add(min);bkim.add(close);/ 构造函数public Login() / 设置窗体的样式为当前系统的样式try UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName(); catch (Exception e)

36、/ TODO: handle exceptionImage loginbk = null;try loginbk = ImageIO.read(new File("image/loginbk.png"); catch (IOException e) / TODO: handle exceptione.printStackTrace();/ 窗口背景面板bkim = new ImagePanel(loginbk);bkim.setLayout(null);Vector<String> userid = LoginModel.find("select Ui

37、d from UserLogin where 1 = ?", allparas);user = new JComboBox<String>(userid);user.setEditable(true);user.setBounds(131, 145, 187, 26);user.setFont(MyFont.login);user.addMouseListener(this);JScrollPane jsp = new JScrollPane();jsp.add(user);jsp.setBounds(131, 145, 187, 26);jsp.setEnabled(t

38、rue);password = new JPasswordField(50);password.setEditable(true);password.setBounds(135, 180, 178, 25);password.setBorder(new MatteBorder(0, 0, 0, 0, Color.blue);password.setFont(MyFont.login);password.setEchoChar('*');loginqueding = new JButton(new ImageIcon("image/loginqueding.png&qu

39、ot;);loginqueding.setRolloverIcon(new ImageIcon("image/loginquedingC.png");loginqueding.setBounds(110, 253, 180, 31);setbutton(loginqueding);bkim.add(user);bkim.add(password);bkim.add(loginqueding);windowsmenu();this.setUndecorated(true);WindowMove();setOpacity();this.add(bkim);this.setSiz

40、e(400, 290);this.setVisible(true);this.setLocationRelativeTo(null);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/ 窗体移动函数public void WindowMove() /设置没有标题的窗口可以拖动this.addMouseListener(new MouseAdapter() public void mousePressed(MouseEvent e) /按下(mousePressed 不是点击,而是鼠标被按下没有抬起) origin.x = e.getX()

41、; /当鼠标按下的时候获得窗口当前的位置 origin.y = e.getY(); );this.addMouseMotionListener(new MouseMotionAdapter() public void mouseDragged(MouseEvent e) Point p =getLocation(); /当鼠标拖动时获取窗口当前位置 /设置窗口的位置 /窗口当前的位置 + 鼠标当前在窗口的位置 - 鼠标按下的时候在窗口的位置 setLocation(p.x + e.getX() - origin.x, p.y + e.getY() - origin.y); );Override

42、public void mouseClicked(MouseEvent e) / TODO Auto-generated method stubif(e.getSource() = min) setState(JFrame.ICONIFIED);if(e.getSource() = close) dispose();if(e.getSource() = loginqueding) String userid = user.getSelectedItem().toString().trim();String upassword = new String(this.password.getPass

43、word();if (userid.equals("") JOptionPane.showMessageDialog(this, "请输入用户名再登录");return;if (upassword.equals("") JOptionPane.showMessageDialog(this, "请输入密码再登录");return;if (userid.equals("admin") | upassword.equals("admin") new UserMainWindows(

44、);this.dispose();return;if (!LoginModel.checkid(userid) JOptionPane.showMessageDialog(this, "<html><br/>抱歉&nbsp<font color = 'red'>"+userid+"</font>&nbsp没有登录此系统的权限<br/>");return;if (LoginModel.checkpassword(userid, upassword) new User

45、MainWindows();else JOptionPane.showMessageDialog(this, "密码不正确,请重新输入密码");this.password.setText("");return;Overridepublic void mouseEntered(MouseEvent e) / TODO Auto-generated method stubOverridepublic void mouseExited(MouseEvent e) / TODO Auto-generated method stubOverridepublic v

46、oid mousePressed(MouseEvent e) / TODO Auto-generated method stubOverridepublic void mouseReleased(MouseEvent e) / TODO Auto-generated method stub/ 窗口淡入淡出函数public void setOpacity() / 窗口设置淡入淡出代码段AWTUtilities.setWindowOpacity(Login.this, 0f);ActionListener lisener = new ActionListener() float alpha = 0

47、;Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubif (alpha < 0.9) AWTUtilities.setWindowOpacity(Login.this, alpha+=0.1);else AWTUtilities.setWindowOpacity(Login.this, 1);Timer source = (Timer) e.getSource();source.stop();/ 设置线程控制new Timer(50, lisener).start();附

48、录1.2 用户界面部分代码package com.view;import com.mytools.*;import com.sun.awt.AWTUtilities;import java.awt.*;import java.awt.event.*;import java.io.File;import javax.imageio.*;import javax.swing.*;SuppressWarnings("serial")public class UserMainWindows extends JFrame implements ActionListener, Mous

49、eListener, WindowListener,ItemListener /全局的位置变量,用于表示鼠标在窗口上的位置static Point origin = new Point(); / 用于获得窗口的大小final static int width=Toolkit.getDefaultToolkit().getScreenSize().width;final static int height=Toolkit.getDefaultToolkit().getScreenSize().height;ImagePanel im = null;/ 主窗体背景面板JPanel jTop, jM

50、enu, jMenu1, jControl;/ 窗口控制菜单JLabel omenu, min, max1, close;JToggleButton max;/ 窗口菜单JLabel shoukuan, empmanager, mebmanager, product, salcount, pagemanager;JPanel conjp;CardLayout card;public static void main(String args) / TODO Auto-generated method stub/UserMainWindows T = new UserMainWindows();/

51、 窗体移动函数public void WindowMove() /设置没有标题的窗口可以拖动this.addMouseListener(new MouseAdapter() public void mousePressed(MouseEvent e) /按下(mousePressed 不是点击,而是鼠标被按下没有抬起) origin.x = e.getX(); /当鼠标按下的时候获得窗口当前的位置 origin.y = e.getY(); );this.addMouseMotionListener(new MouseMotionAdapter() public void mouseDragge

52、d(MouseEvent e) Point p =getLocation(); /当鼠标拖动时获取窗口当前位置 /设置窗口的位置 /窗口当前的位置 + 鼠标当前在窗口的位置 - 鼠标按下的时候在窗口的位置 setLocation(p.x + e.getX() - origin.x, p.y + e.getY() - origin.y); );/ 优化定义菜单labelpublic JLabel CreateMenuLabel(JLabel jlb, String name, JPanel who) jlb = new JLabel(name, JLabel.CENTER);jlb.setFon

53、t(MyFont.TopMenu);jlb.addMouseListener(this);jlb.setForeground(Color.black);who.add(jlb);return jlb;/ 主界面左侧菜单栏定义public void initTopMenu() jMenu = new JPanel(new GridLayout(1, 6);jMenu.setPreferredSize(new Dimension(int)(width*0.55), 62);jMenu.setOpaque(false);String nameStrings = "总金额", &q

54、uot;高校部门", "高校学院", "设备管理", "", ""shoukuan = CreateMenuLabel(shoukuan, nameStrings0, jMenu);shoukuan.setForeground(Color.yellow);shoukuan.setName("shoukuan");empmanager = CreateMenuLabel(empmanager, nameStrings1, jMenu);empmanager.setName("e

55、mpmanager");mebmanager = CreateMenuLabel(mebmanager, nameStrings2, jMenu);mebmanager.setName("mebmanager");product = CreateMenuLabel(product, nameStrings3, jMenu);product.setName("product");salcount = CreateMenuLabel(salcount, nameStrings4, jMenu);salcount.setName("salc

56、ount");pagemanager = CreateMenuLabel(pagemanager, nameStrings5, jMenu);pagemanager.setName("pagemanager");/ 为了方便布局使用的空面板jMenu1 = new JPanel();jMenu1.setPreferredSize(new Dimension(40, 62);jMenu1.setOpaque(false);/ 顶层窗口右侧窗口控制菜单public void initTopControl() jControl = new JPanel(new GridLayout(1, 4);jControl.setPreferredSize(new Dimension(140, 62);jControl.setOpaque(false);omenu = new JLabel(new ImageIcon("image/omenu.png");omenu.addMouseListener(this);omenu.setToolTipText("更多");min = new JLabel(new ImageIcon("image/min.png");min.addMouseListener(thi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论