《软件工程》课程设计说明书(共31页).docx

上传人:飞****2 文档编号:13466065 上传时间:2022-04-29 格式:DOCX 页数:31 大小:1.43MB
返回 下载 相关 举报
《软件工程》课程设计说明书(共31页).docx_第1页
第1页 / 共31页
《软件工程》课程设计说明书(共31页).docx_第2页
第2页 / 共31页
点击查看更多>>
资源描述

《《软件工程》课程设计说明书(共31页).docx》由会员分享,可在线阅读,更多相关《《软件工程》课程设计说明书(共31页).docx(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上软件工程课程设计说明书设计题目:学生信息管理系统专业:计算机科学与技术班级:计科14-4班学号:姓名:李雪瑞指导教师:赵俊峰二一六年12月15日目录专心-专注-专业【摘要】在现代社会中,软件应用于多个方面。典型的软件比如有电子邮件,嵌入式系统,人机界面,办公套件,操作系统,编译器,数据库,游戏等。同时,各个行业几乎都有计算机软件的应用,比如工业,农业,银行,航空,政府部门等。这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。通过软件开发的实践训练,进一步掌握软件工程的方法和技术,提高软件开发的实际能力,培养工程设计能力和综合分析、解决问题的能

2、力。【关键词】学生信息管理系统 C语言一、 系统概述1.1设计目的由于Excel的操作复杂,需要一定的软件知识,所以导致学生信息管理随着社会信息化的脚步加快,个人的信息也呈现出多样性,这便给信息管理者造成了巨大的压力和难度,也给传统的文件信息管理模式提出了挑战。现有的学生信息(1)学生信息管理缺乏安全、便捷性。(2)工作效率低。(3)无法实现不同学院数据的复合使用。为了提高学校学生信息管理的效率和准确性,我们团队决定开发一个学生信息管理系统,希望通过信息化手段管理学生信息,实现提高效率和准确性的目的。学生成绩管理系统在提高学生成绩信息处理的效率的同时,又能为广大师生提供及时准备的学生成绩信息。

3、可使教职员工减轻工作压力,比较系统地对教务、教学上的各项服务和信息进行管理。同时,可以减少劳动力的使用,加快查询速度以及国家各部门关于信息化的步伐,使各项管理更加规范化,提高了传统教师的工作任务量。1.2系统功能可用来查询,插入,更新,删除学生信息。1.3运行环境Windows 10Visual C+ SQL Server 2008 eclipse1.8.0二、 可行性研究2.1可行性分析的目的该系统的目标是在学生信息管理中,使用计算机的网络技术、通讯技术和信息处理技术,是学生信息得以加工,依次传达及保存。系统要对使用要求不相同的用户群体设置不同的功能。管理员能有效地管理学生的信息,同事,学生

4、可以随时大量的检索查询多种信息。本系统为管理者提供了完整的管理平台,其主要功能有:(1)通过已有的学生信息库,管理学生的信息,还可以管理教师的信息,管理课程的信息,管理班级的信息;(2)可以修改学生的信息,选择课程,检索成绩等;(3)修改教师的信息,检索学生的成绩,登记授课的学生情况。可行性分析就是为了确定该系统从各个方面确定该系统在经济上、技术上、法律上的可否实现。2.2可行性分析的内容从技术可行性、资源分析、法律道德分析和效益分析来判分析一下学生信息管理系统能否实现。2.3可行性分析过程2.3.1条件假定和预定A 建议开发软件运行的最短寿命:五年B进行系统方案选择比较的期限:一周C经费来源

5、和使用限制:经费来源由学校提供;使用时应定期维护,防止系统出现高漏洞而带来些复杂问题。D法律和政策方面的限制:此软件设计合法,不存在于法律、政策相违背的现象。E硬件环境:若干台计算机F工作站:每个部门至少有一台作为工作站的PC机G操作系统:windows win7 win8等操作系统H数据库:SQL Server 20052.3.2可行性研究方法1、初步分析,构想所有必须完成的功能;2、初步需求分析:可行性分析报告、数据流图、数据字典、可行性分析报告;3、建立系统原型:修改规格说明;4、管理员,教师,学生,完善模型,明确功能和实现方法;5、系统的整体测试和修改完善。2.3.3技术可行性学生信息

6、管理系统的开发需要对管理的需求进行分析,最终通过简单的界面按钮操作实现对学生数据的增、删、改和查询操作,并将这些操作反应到数据库的操作。完成以上功能需要采用以下几个关键的技术:(1)数据库数据显示技术通过什么方式和形式把数据库中的学生数据显示到界面上供管理者查阅,目前的基本技术都是基于Sql语言的混合编程实现遍历数据库,对数据的提取,然后通过GUI编程在界面上显示。目前的界面编程和Sql语言的混合编程已经比较成熟,比如用于界面编程的有C、Java、Qt、C+等等,并且他们基本都是开源的,不会存在侵权和成本的问题。(2)数据库数据修改技术对数据库的操作基本的还是离不开Sql语言的混合编程,主要是

7、通过对按钮事件的捕捉,通过对应的Sql代码实现对数据库相关操作。(3)系统在运行和维护面临的问题系统在运行过程中,系统的用户主要是学校的信息管理人员,用户对系统使用的熟练程度会影响系统应用的效果,增加系统维护的压力。这个问题可以通过一份简单的管理人员使用说明文档来解决。在系统运行的初级阶段,可以由开发方的系统维护人员提供现场的使用指导。系统维护面临的主要问题是系统存储的学生数据量比较大,数据备份和数据安全十分重要。数据备份与恢复需要程序化、智能化。由于数据涉及到学生个人信息秘密,数据备份与恢复工作需要有信息管理人员专职负责。 2.3.4效益分析1.经济效益分析(1)提高管理者的工作效率后,使得

8、信息管理人员需求的减少,减少了额外的开支。(2)提高信息管理的便捷性,降低信息管理的要求。2.社会效益分析(1)节省了管理者的时间,降低了劳动输出量。(2)提高了学校信息化程度的形象。2.4可行性分析结果通过分析,在学生信息管理中,使用计算机的网络技术,通讯技术和信息管理技术,使学生的信息得以加工,依次传达及保存。系统要对使用要求不相同的用户群体设置不同的功能。从必要性、技术、资源、时间、社会法律等几角度的分析,学生信息管理系统项目是可行的,是可以设计的。第三章需求分析3.1编写目的为学生管理系统的开发提供可行性分析的结论,为项目是否正式立项、启动提供依据,为项目启动后的需求分析、设计、开发、

9、测试等工作提供基础依据。该系统的编写目的是提高学生成绩管理的工作效率,使人们从乏味的数据登记和统计工作中解脱出来,保证工作的准确率,为老师及同学提供充足的信息和快捷的查询手段。数据库作为计算机应用的一部分,对学生成绩查询进行管理具有手工管理无法比拟的优点,例如检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长等。这些优点能够极大地提高学生成绩查询和管理的效率。 学生管理系统在提高学生成信息处理的效率的同时,又能为广大师生提供及时准备的学生信息。可使学院教职员工减轻工作压力,比较系统地对教务、教学上的各项服务和信息进行管理。同时,可以减少劳动力的使用,加快查询速度以及国家各部门关于信息化的

10、步伐,使各项管理更加规范化,提高了传统教师的工作任务量。学生管理系统的功能主要分为:前台管理和后台管理两大功能。3.2系统功能学生管理系统的功能主要分为:前台管理和后台管理两大功能。3.2.1总目标l 实现学生信息进入系统的自动化,提高学生信息统计的实时性,减轻人工劳动强度从而节省人力成本。l 实现学生信息查询的实时性,规避信息孤岛。l 提高学生信息的畅通度,为学生以及教师提供方便。3.2.2具体目标1)前台管理系统必须具备以下功能:l 信息的录入:根据学校的特点制定相关功能,可以通过唯一的学号将学生信息录入,该功能可以充分保证各种电脑操作层次的人员均能通过学生管理系统快速的录入该学生,并为后

11、续的功能提供技术上的支持。l 信息的删除:根据学校的相关条律,将辍学或者劝退的学生的信息从学生管理系统中删除,该功能可以充分保证各种电脑操作层次的人员操作,同时也是达到系统空间的充分利用。l 信息的修改:根据学生在校期间的表现,有些许挂科,重修的科目,都会实时性的进行更新,该功能必须充分保证各个电脑操作层次的人员都能进行操作,达到学生信息更改的迅速的效率。l 信息的查询:在学生需要知道自己的信息时,可以通过学生管理系统,进行查询。如:成绩,课程表,报名等等。2)后台管理系统必须具备以下功能:l 人员管理:教师,学生,游客,管理员等基本信息的登记管理。该功能将不同阶级的人分层,以便更好的管理,达

12、到管理的高效率。l 权限管理:各个人员的权限是不同的,教师可以登记学生成绩,学生可以浏览自己的信息或者修改一些基本信息,游客只能浏览信息,管理员可以修改各个信息。该功能充分保证了信息的安全性。3.2.3性能目标l 系统的操作人员需要进行一定的培养,不可盲目的修改,导致学生信息混乱。l 系统的运行的可靠性要求较高,必须保证信息不可轻易丢失,损害学生个人利益。l 系统必须可进行实时性处理,其效率比人工处理效率要高出70%。3.2.4系统图学生基本信息管理系统信息录入信息浏览信息查询信息排序信息删除信息修改信息添加退出系统输入学生的相关信息显示学生的相关信息按姓名查询按学号查询更新保存的学生信息对新

13、加的学生进行信息录入菜单选择信息录入:信息录入系统能够准确的录入各种信息。信息查询信息录入准确查询学生信息准确录入信息(1)关系图(2)状态转换图信息删除:信息删除系统能够删除不再在学校的学生及教师信息。信息删除删除离校师生信息(1)关系图(2)状态转换图信息修改:信息修改系统能够根据学生的活动修改学生信息。信息修改修改师生信息(1)关系图(2)状态转换图信息查询:学生信息查询系统能够准确的查询某个学生的学生信息。(1)关系图(2)状态转换图成员信息及权限管理:用户进入POS系统界面,输入ID号码,检测是管理员,学生还是教师。如果是管理员,则有增加、删除、修改、查询信息的功能;如果是学生,则有

14、查询学生成绩、修改基本信息的功能;如果是教师,则有登记授课学生情况,查询学生成绩,修改教师信息的功能。(1)关系图(2)状态转换图四、总体设计4.1总体设计的目的本系统采用面向对象方法进行分析和设计,在SQL Server 2005数据库上实现数据操作。使用纯面向对象的JAVA语言作为开发语言,使用Windows 7作为开发平台,能够很好的实现系统的开发及测试。通过这个阶段的设计将划分出组成学生信息管理系统的物理元素程序、文件、数据库、人工过程和文档等,但是在这个过程中每个物理元素仍然处于黑盒子级。同时还要在这个阶段设计软件的结构,也就是要确定系统中有那些模块组成,以及模块之间的关系。4.2总

15、体设计的内容(1) 设计并选取合适的实现学生信息管理系统的方法(2) 设计高效率的软件结构(3) 设计必要的数据库(4) 书写文档(5) 制定测试计划4.3设计过程(1) 选取合理的方案在SQL 2005的基础上先建立一个学生数据库,然后用c+程序设计语言嵌套SQL语言设计一个合理的软件程序实现对学生数据库的管理。最后要对操作界面进行优化,以及软件的操作流程和软件结构进行优化。在后期我们还要配备专业的人士为此系统进行长期的管理和维护。(2) 推荐最佳的方案省略(3) 功能分解学生信息管理系统”主要分为登录、权限管理、学生信息管理、教师信息管理、课程信息管理、账户管理等6个模块。系统主模块功能树

16、如图所示:权限管理(管理员)模块学生信息管理模块 教师信息管理模块课程信息管理模块 账户管理模块 课程信息更新模块 学生信息更新模块教师信息更新模块(4) 设计软件结构(5) 设计数据库 概念结构设计就是E-R方法的分析与设计,概念结构设计是整个数据库设计的关键。在此,将使用实体联系(E-R)模型来描述系统的概念结构,同时设计出能够满足用户需求的的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。这也实体包括各种具体的实际信息,通过相互之间的作用形成数据的流动。本程序根据上面的设计规划出的实体有:学籍实体、班级实体、年级实体、课程实体与成绩实体,学生信息管理系统数据库E-R模型,如下

17、图所示:(5.1)数据库和数据表的建立学生信息表表名称标识:Student表数据来源:新生信息录入模块进行录入教师信息表表名称标示:teacher表教师信息录入课程信息表表名标示:course表课程信息录入学生课程信息表表名称标识:Studentcourse表学生成绩录入表教师-课程信息表表名称标示:teacher-course表教师和所授课程信息4.4总体设计的结果通过本阶段的设计,得到一个较为合理的软件结构。模块化分的合适,同时本结构有清晰的层次结构,各个层次的人士都能理解本软件的结构。各个模块有较好的独立性,软件由一组完成相对独立的子功能的模块组成,这些模块之间接口的关系较为简单。我们运

18、用了自顶向下逐步求精方法。同时我们运用在数据库设计方面的知识,对我们需要的数据库进行了设计。设计步骤:(1)概念设计(2)逻辑设计(3)物理设计(4)数据库实施。我们得到一个初步的学生信息关系系统的数据库。五、编码实现5.1编码实现的目的 编码是将软件设计结果翻译成用某种程序设计语言书写的程序,是对设计的进一步具体化。编码为计算机中的数据与实际处理的信息之间建立联系,提高的。编码风格是指编程遵循的基本原则。良好的编码风格有利于弥补语言的缺陷,编写出高质量的软件。包括程序内部的文档、数据说明、语句构造、输入/输出、效率等方面的问题。 选择一种编程语言的理论标准:(这里选择Java)1)有理想的模

19、块化机制;2)可读性好的控制结构和数据结构;3)便于调试和提高软件可靠性;4)编译程序发现程序错误的能力强;5)有良好的独立编译机制。5.2编码的工具使用java编写程序, Eclipse5.3编码过程根据详细设计中的程序流程图分模块编写程序,然后再组装起来。编码过程中涉及到的类:SimpleStudentManager 主函数类DLFrame 登陆界面类 ManagerFrane 管理员界面类 StudentFrame 学生界面类 SM 学生信息管理的类 SAdd 用于学生信息管理中增加或修改某条记录的界面的类 SSelect 用于学生基本信息管理中查询时输入学号的界面的类(1)登录界面模块

20、:学生信息管理系统可由管理员和学生两种身份的人使用。管理员和学生身份登录所能操作的功能有很大的区别。mport javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;class DLFrame extends JFrame implements ActionListener, ItemListener / 登录界面JPanel p1 = null;JPanel p2 = null;JPanel p3 = null;JLabel userName = new JLabel(用户:);JTextField

21、 txtUser = new JTextField();JLabel password = new JLabel(密码:);JPasswordField txtPwd = new JPasswordField(6);JLabel role = new JLabel(角色:);JComboBox cbrole = new JComboBox();JButton btnLogin = new JButton(登录);JButton btncz = new JButton(重置);JButton btnCancel = new JButton(取消);JLabel imageLabel;Icon i

22、mage;static int OK = 1;static int CANCEL = 0;int actionCode = 0;Connection con = null;Statement stmt = null;ResultSet rs = null;int qxian = 0;public DLFrame() / 构造方法super(登录界面);p1 = new JPanel();p2 = new JPanel();p3 = new JPanel();cbrole.addItem(管理员);cbrole.addItem(学生);image = new ImageIcon(pictures

23、t.jpg);imageLabel = new JLabel(image);p1.add(imageLabel);this.setLayout(new FlowLayout();this.setBounds(100, 100, 246, 345);p2.setLayout(new GridLayout(4, 2);p2.add(userName);p2.add(txtUser);p2.add(password);p2.add(txtPwd);p2.add(role);p2.add(cbrole);p3.add(btnLogin);p3.add(btncz);p3.add(btnCancel);

24、this.add(p1);this.add(p2);this.add(p3);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.show();btnLogin.addActionListener(this);cbrole.addItemListener(this);btncz.addActionListener(this);btnCancel.addActionListener(this);public void connDB() / 连接数据库try Class.forName(

25、com.microsoft.sqlserver.jdbc.SQLServerDriver); catch (ClassNotFoundException e) e.printStackTrace();try con = DriverManager.getConnection(jdbc:sqlserver:/localhost:1433; DatabaseName=student,sa, 123);stmt = con.createStatement(); catch (SQLException e) e.printStackTrace();public void closeDB() / 关闭连

26、接try stmt.close();con.close(); catch (SQLException e) e.printStackTrace();public void itemStateChanged(ItemEvent e) if (e.getStateChange() = ItemEvent.SELECTED) JComboBox jcb = (JComboBox) e.getSource();qxian = jcb.getSelectedIndex();public void actionPerformed(ActionEvent e) Object source = e.getSo

27、urce();String un = null;String pw = null;boolean success = false;/ 用于判断是否登录成功if (source = btnLogin) if (txtUser.getText().equals() | txtPwd.getText().equals() / 判断是否输入了用户名和密码JOptionPane.showMessageDialog(null, 登录名和密码不能为空!); else this.connDB();try rs = stmt.executeQuery(select * from unpw where qx=+

28、qxian);while (rs.next() un = rs.getString(un).trim();pw = rs.getString(pw).trim();if (txtUser.getText().equals(un) if (txtPwd.getText().equals(pw) actionCode = OK;this.setVisible(false);if (qxian = 0) new ManagerFrane();/ 进入管理员界面if (qxian = 1) new StudentFrame();/ 进入学生界面success = true;break; else JO

29、ptionPane.showMessageDialog(null, 密码错误!);txtPwd.setText();success = true;if (!success) JOptionPane.showMessageDialog(null, 登录名错误!);txtUser.setText();txtPwd.setText(); catch (SQLException e1) e1.printStackTrace(); else if (source = btncz) txtUser.setText();txtPwd.setText(); else if (source = btnCance

30、l) System.exit(0);(2)学生信息管理模块编码:import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;class SAdd extends JFrame implements ActionListener, ItemListener / 用于学生信息管理中增加或修改某条记录的界面JLabel lsno = new JLabel(学号:);JLabel lsname = new JLabel(姓名:);JLabel lssex = new JLabel(性别:);JLabe

31、l lsage = new JLabel(年龄:);JLabel lsdept = new JLabel(院系:);JTextField tsno = new JTextField(14);JTextField tsname = new JTextField(14);JComboBox cbssex = new JComboBox();JTextField tsage = new JTextField(14);JComboBox cbsdept = new JComboBox();JButton btnOK = new JButton( 确 定 );JButton btnCancel = ne

32、w JButton( 取 消 );JPanel p = new JPanel();Connection con = null;Statement stmt = null;ResultSet rs = null;String xb = 男;String yx = 计科系;boolean isNewsm = true;/ 用于判断是否显示学生管理的界面public SAdd(String xb, String yx) / 构造方法this.xb = xb;this.yx = yx;this.setTitle(增加);this.setBounds(200, 200, 220, 210);if (xb

33、.trim().equals(男) cbssex.addItem(男);cbssex.addItem(女); else cbssex.addItem(女);cbssex.addItem(男);if (yx.trim().equals(计科系) cbsdept.addItem(计科系);cbsdept.addItem(物理系);cbsdept.addItem(数学系);cbsdept.addItem(外语系);if (yx.trim().equals(物理系) cbsdept.addItem(物理系);cbsdept.addItem(计科系);cbsdept.addItem(数学系);cbsde

34、pt.addItem(外语系);if (yx.trim().equals(外语系) cbsdept.addItem(外语系);cbsdept.addItem(计科系);cbsdept.addItem(物理系);cbsdept.addItem(数学系);if (yx.trim().equals(数学系) cbsdept.addItem(数学系);cbsdept.addItem(计科系);cbsdept.addItem(物理系);cbsdept.addItem(外语系);p.setLayout(new FlowLayout(FlowLayout.LEFT);p.add(lsno);p.add(ts

35、no);p.add(lsname);p.add(tsname);p.add(lsage);p.add(tsage);p.add(lssex);p.add(cbssex);p.add(lsdept);p.add(cbsdept);p.add(btnOK);p.add(btnCancel);this.add(p);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);cbssex.addItemListener(this);cbsdept.addItemListener(this);btnOK.addActionListener(this);btn

36、Cancel.addActionListener(this);this.show(); public void connDB() / 连接数据库try Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver); catch (ClassNotFoundException e) e.printStackTrace();try con = DriverManager.getConnection(jdbc:sqlserver:/localhost:1433; DatabaseName=student,sa, 123);stmt = con

37、.createStatement(); catch (SQLException e) e.printStackTrace();public void closeDB() / 关闭连接try stmt.close();con.close(); catch (SQLException e) e.printStackTrace();public void insertst() / 插入记录String xh = null;String xm = null;int nl = 0;xh = tsno.getText();xm = tsname.getText();try nl = Integer.par

38、seInt(String) tsage.getText();if (this.getTitle() = 修改) / 如果是修改记录,先删除再增加try this.connDB();int rs1 = stmt.executeUpdate(delete from s where sno=+ xh + ); catch (SQLException e) e.printStackTrace();String str = insert into s values( + xh + , + xm + , + nl+ , + xb + , + yx + );this.connDB();/ 连接数据库try

39、stmt.executeUpdate(str);JOptionPane.showMessageDialog(null, this.getTitle() + 成功!,提示, JOptionPane.INFORMATION_MESSAGE, new ImageIcon(menu4.gif);this.setVisible(false); catch (SQLException e) JOptionPane.showMessageDialog(null, 学号已存在!);tsno.setText(); catch (NumberFormatException e) / 判断年龄是否为数字JOptio

40、nPane.showMessageDialog(null, 年龄必须是整数!);tsage.setText();isNewsm = false;if (this.getTitle() = 增加) / 如果是增加记录,对应的用户表中也增加一条记录try stmt.executeUpdate(insert into unpw values( + xh + ,+ xh + , + 1 + ); catch (NullPointerException e) catch (SQLException e) / e.printStackTrace(); public void actionPerformed

41、(ActionEvent e) if (e.getActionCommand() = 确 定 ) this.insertst();if (isNewsm) new SM().display();isNewsm = true;if (e.getActionCommand() = 取 消 ) this.setVisible(false);new SM().display(); public void itemStateChanged(ItemEvent e) / 下拉框的监听if (e.getStateChange() = ItemEvent.SELECTED) JComboBox jcb = (

42、JComboBox) e.getSource();if (jcb.getSelectedItem() = 男)| (jcb.getSelectedItem() = 女) xb = (String) jcb.getSelectedItem(); else yx = (String) jcb.getSelectedItem();六、代码测试6.1代码测试的目的测试阶段的根本目标是尽可能多地发现并排除软件中潜藏的错误,最终把一个高质量的软件系统交给用户使用。测试决不能证明软件是正确的,也不能证明错误的不存在,它只能证明错误的存在。6.2 测试工具(方法)静态测试动态测试(白盒测试 黑盒测试)集成测试

43、回归测试确认测试如果已经知道了产品应该具有的功能,可以通过测试来检验是否每个功能都能正常使用称为黑盒测试。黑盒测试技术包括:等价划分、边界值分析、错误推测。这里采用的是黑盒测试6.3 测试过程1) 模块测试因为我们只是实现了两个模块,所以只测试登录界面和学生信息管理模块。测试登录模块:用非法的用户名和非法的密码测试界面是否会出现错误,测测试结果是当出现非法的用户名和错误的密码时系统会及时的通知登录者输入错误。所以测试通过。测试学生信息管理模块:在这里我们输入错误的学号、和非法字符的姓名等属性时系统提示出错并且提示重新输入。 6.4测试结果测试的结果证明实现了学生信息管理系统的部分要求,登陆界面,对学生信息的录入。证明我们的模块是有一定的可靠性和可用性。主界面管理员登录

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁