基于java的学生选课系统--本科毕业设计论文.doc
《基于java的学生选课系统--本科毕业设计论文.doc》由会员分享,可在线阅读,更多相关《基于java的学生选课系统--本科毕业设计论文.doc(26页珍藏版)》请在咨信网上搜索。
成绩: 课程设计 (Java程序设计) 题 目 基于Java的学生选课系统 学 院 计算机与软件学院 专 业 计算机科学与技术 学号、姓名 指 导 教 师 二○一四 年 十二月十八日 基于Java的学生选课系统 摘要:课程管理系统是一个学校中不可缺少的部分。课程管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式对课程进行查询、更新、选课等,这种管理方式存在着许多缺点,如:效率低、执行速度慢。另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对选课信息进行管理,具有手工管理无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、成本低、效率高等。这些优点能够极大地提高学生选课系统的效率,也是企业、学校的科学化、正规化管理和与世界接轨的重要条件。因此,开发这样一套管理系统已成为有必要的事情。 JAVA是一门很优秀的编程语言,具有面向对象、与平台无关、安全、稳定和多线程等特点,是目前软件设计中极为健壮的编程语言。本文中介绍了用JAVA语言实现课程管理系统的全部过程。 关键词:课程管理,Java,Eclipse,SQL,JDBC 目 录 第一章 前言 1 1.1 选课背景及意义 1 1.2 学生选课系统的发展和研究现状 1 1.3 各章节内容简介 2 第二章 Java语言以及开发工具 2 2.1 Java的背景知识介绍 2 2.1.1 Java的起源 2 2.1.2 Java的特点 2 2.2 Java的开发工具 3 第三章 学生选课系统的需求分析 4 3.1 学生选课系统功能分析 4 3.2 学生选课系统总体设计 4 3.3 学生选课系统数据库需求分析 5 3.3.1 用户登陆 5 3.3.2 学生登陆 5 3.3.3 数据库的构建 5 第四章 学生选课系统的实现 6 4.1 学生选课系统程序及注释 6 4.2 系统运行环境 14 4.3 学生选课系统运行截图 15 4.3.1 登陆页面(起始页) 15 4.3.2 学生操作界面 16 第五章 系统测试与维护 19 5.1 程序测试的目的 19 5.2 程序测试的意义 19 5.3 程序测试的原则 19 5.4 程序测试的流程 20 第六章 总结与展望 21 参考文献 21 第一章 前 言 1.1选题背景及意义 随着计算机技术和网络通讯技术的飞速发展,现在国内有很多大学的选课方式由传统的选择方式转变成了网上选课,学生可以在网上选择规定范围内的课程,并且可以在网上查询成绩。无需自己去老师那一门一门查,了解自己已得多少学分还需多少学分,既节省了学生的时间,又便于学校的管理。 网上选课系统为同学提供了一个自由选择的平台,学生可以选修规定范围内的课程,查看已修学分总数,还可以修改个人信息。本系统也为教师提供了很大的方便,教师可以根据统计的人数挑选一定数量的学生,也可以直接在网上公布成绩,让学生直接在网上查询成绩。 本系统方便了学生的选课,同时便于管理,减少大量的人力资源。并且促进了学生的积极性,近而开发了网上选课系统。 1.2学生选课系统的发展和研究现状 进入21世纪以来,国内各高校都在积极推动教育体制的改革,为培养更为优秀的新世纪复合型人才做出努力。然而在80年代以前,计算机还没有在国内普及各高校学生选课都是手工完成,不仅教师的工作量大,而且学生查询和检索时也很麻烦。 80年代后期,少数高校开始实行学年学分制,学生有了一定程度的选课自由。学生在学校只需要修满学分就可以毕业,并且可以根据自己的喜好选择科目。并且随着PC机的普及,有些高校已经开始应用电脑进行日常管理工作。这时,学生选课系统诞生了。但是,这些系统大多是基于DOS或者WINDOWS的单机版本,不仅界面不友好,而且功能薄弱。各科系之间的数据交流只能借助软盘为中介,费时费力。随着高校的规模扩大,教育体制改革的深化,这类系统已经不能适应管理上的要求。 90年代后期以来,各高校纷纷建立自己的高速校园网:在技术上,客户机/服务器体系结构已经非常成熟,同时浏览器/服务器体系结构正在兴起,这些都为创建大型的学生选课系统创造了条件,满足了数据集中存放,管理运作分布执行的需求。中心数据库存放学生选课系统的相关数据,管理人员通过网络访问数据库进行业务管理;学生和任课教师可以通过浏览器查询相关数据。目前国内各高校均有自己的选课系统。 1.3各章内容简介 本论文在第一章介绍了学生选课系统的研究意义以及研究现状,突出本系统研究的必要性;第二章介绍Java语言和它的开发工具,以说明选择Java的好处;第三章进行学生选课系统的需求分析,以使系统的模块更加清楚;第四章介绍本系统各模块的功能以及它们的结构图,还有具体程序和注释以及运行结果截图;第五章是介绍了程序测试的目的、意义、原则、流程,以使每一步程序的功能清晰地跃然纸上;第六章对学生选课系统进行了总结以及对前景作了展望,使系统更加完美。 第二章 Java语言以及开发工具 有了系统制作的必要性接下来是选择开发语言和工具,由于选择的Java制作,座椅本章节将对Java进行介绍以说明选择它进行学生选课系统开发的理由,并介绍几种Java的开发工具。 2.1 Java背景知识介绍 2.1.1 Java的起源 1991年四月份,Sun的绿色计划开始着手于发展消费性电子产品,所使用的语言是C、C++、及Oak(为Java语言的前身),后因语言本身和市场的问题,使得消费性电子产品的发展无法达到当初预期的目标,再加上网络的兴起,绿色计划也因此而改变发展的方向,这已是1994年了。而这一次的改变,就是Java诞生的契机。而Java这个名字不是由几个单词的首字所组成,而是从许多程序设计师钟爱的热腾腾、香浓咖啡中产生灵感的。 2.1.2 Java的特点 Sun是要Java成为一个简单(Simple)、面向对象对象的(Object Oriented)、分布式的(Distributed)、解释的(Interpreted)、健壮的(Robust)、安全的(Secure)、结构中立的(Architecture Neutral)、可移植的(Portable)、高效能的(High Performance)、多线程的(Multithreaded)、动态的(Dynamic)的程序语言。 面向对象的思想是Java语言的重要指导思想,最主要的重点是即将要用Java编写的程序,其次才是所需要的工具;最近的即插即用(Plug and Play)亦是面向对象设计的重点。 Java与C/C++最大不同点是Java有一个指针模型(Pointer Model)来排除内存被覆盖(Overwriting Memory)和毁损数据(Corrupting Data)的可能性。总的来说Java有以下特点: 结构中立的(Architecture Neutral):一般而言,网络是由很多不同机型的机器所组合而成的,CPU和作业系统体系结构均有所不同;因此,如火如荼使一个应用程序可以在每一种机器上执行,是一个难题。所幸,Java的编译器产生一种结构中立的目标文件格式(Object File Format);这使得编译码得以在很多种处理器中执行。 可移植的(Portable):原始资料形式的大小是被指定的,例如“float”一直是表示一个32位元IEEE754浮点运算数字,因绝大多数的CPU都具有此共同特征。程序库属于系统的一部分,它定义了一些可移植的程序接口,Java本身具备有很好的可移植性。 解释的(Interpreted):Java解释器能直接地在任何机器上执行Java位元码(Bytecodes),因此在进行程序连结时,时间的节省,这对于缩短程序的开发过程,有极大的帮助。 高效能的(High Performance):Java位元码迅速地能被转换成机器码(Machine Code),从位元码转换到机器码的效能几乎与C于与C++没有分别。 多线程的(Multi threaded):Java语言具有多线程的功能,这对于交互回应能力及即时执行行为是有帮助的。 动态的(Dynamic):Java比C或C++语言更具有动态性,更能适应时刻在变的环境,Java不会因程序库的更新,而必须重新编译程序。 正如上文所述,Java是一种成熟的语言又有其他语言所不具有的特点,所以本系统采用Java编程实现。 2.2 Java的开发工具 现在常用的Java项目开发环境有:JBuilder、VisualAge for Java、Forte for Java、Visual Cafe、Eclipse、NetBeans IDE、JCreator+J2SDK、jdk+记事本、EditPlus+J2SDK等等。一般开发J2EE项目时都需要安装各公司的应用服务器(中间件)和相应的开发工具,在使用这些开发工具之前,我们最好能熟知这些软件的优点和缺点,以便根据实际情况选择应用。编程工具只是工具,为了方便人们工作而开发的,各有特点,本次学生选课系统我们选择了Ecilpse,下面对其进行介绍。 EClipse是一种可扩展的开放源代码IDE。2010年11月,IBM公司捐出价值4000万美元的源代码组建了EClipse联盟,并由该联盟负责这种工具的后续开发。集成开发环境(IDE)经常将其应用范围限定在“开发\构建和调试”的周期之中。为了帮助集成开发环境(IDE)克服目前的局限性,业界厂商合作创建了EClipse平台。EClipse允许在同一IDE中集成来自不同供应商的工具,并实现了工具之间的互操作性,从而显著改变了项目工作流程,使开发者可以专注在实际的嵌入式目标上。 EClipse框架的这种灵活性来源于其扩展点。它们是在XML中定义的一直接口,并充当插件的耦合点。扩展点的范围包括从用在常规表述过滤器中的简单字符串,到一个Java类的描述。任何EClipse插件定义的扩展点都能够被其他插件使用,反之,任何EClipse插件也可以遵从其他插件定义的扩展点。除了解由扩展点定义的接口外,插件不知道它们通过扩展点提供的服务将如火如和被使用。 利用EClipse,可以将高级设计(也许是采用UML)与低级开发工具(如应用调试器等)结合在一起。如果这些互相补充的独立工具采用EClipse扩展点彼此连接,那么当我们用调试器逐一检查应用时,UML对话框可以突出显示我们正在关注的器件。事实上,由于EClipse并不了解开发语言,所以无论Java语言调试器、还是汇编调试器都是有效的,并可以在相同的框架内同时瞄准不同的进程或节点。 EClipse的最大特点是它能接受由Java开发者自己编写的开放源代码插件,这类似于微软公司的Visual Studio和Sun微系统公司的NetBeans平台。EClipse为工具开发商提供了更好的灵活性,使他们能更好地控制自己的软件技术。这是一款非常受欢迎的Java开发工具,这国内的用户越来越多,实际上使用它Java开发人员是最多的。缺点就是较复杂,对初学者来说,理解起来比较困难。 第三章 学生选课系统的需求分析 在选择了开发工具后将对系统进行需求分析,以确保程序的结构清晰明朗,所以本章节将对学生选课系统的功能和结构进行分析,以及数据库的构建进行简单说明。 3.1学生选课系统功能分析 选课系统的核心是选课功能。学生在选课以前,必须通过系统的身份验证后,然后就可以选定自己的选修课程。当然,学生也能删除选错或者误选的课程。另外,选课系统还提供了课程查看功能。 3.2 学生选课系统总体设计 用户登陆 课程模块 学生模块 删除课程 查询课程 编辑课程 删除学生 查询学生 编辑学生 添加课程 添加学生 图3-1 学生选课系统总体设计图 3.3学生选课系统数据库需求分析 通过对学生选课系统工作内容和相关数据流程分析,根据学生选课系统的需要,以及系统功能设计的要求以及功能模块的划分,就可以设计出满足用户需求的各种实体。 该系统由登陆模块、学生模块两部分组成,其功能如下。 3.3.1 用户登陆 登陆模块包括用户名、密码的输入框,当用户名或密码输入错误时系统会报错。 3.3.2 学生登陆 学生登陆后就可依次输入所要选的课程的课程ID、课程名、学时、学分、学期、性质,提交便可选课成功,但是如果选课人数已满,那么选课便不会成功,成功的页面会提示还剩多少人可选这门课程。 3.3.3 数据库的构建 对于学生选课系统数据库,可以列出以下数据项和数据结构: 学生信息:学号、姓名 课程信息:课程ID、课程名、学时、学分、学期、性质 第四章 学生选课系统的实现 在系统的功能和结构分析完后,程序可以进行编写,本章节将对程序进行介绍,然后介绍了系统的运行环境,最后展示了程序完成后的界面截图。 4.1 学生选课系统程序及注释 public class StudentChooseCourse extends JFrame implements ActionListener { JTextField jtfSearch = new JTextField(11); String[] columnNames = new String[] { "课程ID", "课程名", "学时", "学分", "学期", "性质" }; DefaultTableModel dtmSearch = new DefaultTableModel(columnNames, 27); JTable jtSearch = new JTable(dtmSearch); JScrollPane jspSearch = new JScrollPane(jtSearch); JComboBox jcbSearch = new JComboBox(); JTextField jtfSelectedCourse = new JTextField(10); Connection con = null; PreparedStatement ps = null; ResultSet rs = null; private static String usrName; private static String passwrd; //在构造方法中添加两个参数。以便在"提交"时,将学生的身份连同所选的课程,一同记录在学生选课表中。 public StudentChooseCourse(String usrName, String passwrd) { createSearchCourse(); this.usrName = usrName; this.passwrd = passwrd; } public String getUsrName() { return usrName; } public void setUsrName(String usrName) { this.usrName = usrName; } public String getPasswrd() { return passwrd; } public void setPasswrd(String passwrd) { this.passwrd = passwrd; } //根据用户的时间,做出相应的反映 public void actionPerformed(ActionEvent e) { String str = e.getActionCommand(); //清空结果显示区中的内容,如果有的话。 if ("查询".trim().equals(str)) { int k = 1; while (k < 10) { for (int i = 1; i < 7; i++) { jtSearch.setValueAt(null, k - 1, i - 1); } k++; } //调用下面的这个方法,在数据库中进行查找,并将结果显示在表格中。 searchAvailableCourse(); } else if ("提交".equals(str)) { //processBeforeCommit()对用户选课操作进行有效性检验; //剔除无效操作:如输入无效的课程号,或已经选择了某一课程,已经选满的6学分等各种情况 boolean effect=processBeforeCommit(); //如果课程存在,且该学生具有选择该课程的资格,即effect为true,进入正式提交程序(tryCommit()) if(effect==true) {tryCommit();} } } //对用户选课操作进行有效性检验; public boolean processBeforeCommit(){ //清空原结果显示区中的内容,如果有的话。 int k = 1; while (k < 10) { for (int i = 1; i < 7; i++) { jtSearch.setValueAt(null, k - 1, i - 1); } k++; } //取得用户输入的课程号 String userInput = jtfSelectedCourse.getText().toString().trim() .toLowerCase(); //无效操作1:在数据库中的coursexx表中查询该课程号。如果不存在该课程,给出提示。 String sql = "select cno from coursexx where cno=? "; boolean flagCourseExist = false; try { ps = con.prepareStatement(sql); ps.setString(1, userInput); rs = ps.executeQuery(); flagCourseExist = rs.next(); } catch (Exception eC) { eC.printStackTrace(); } if (!flagCourseExist) { JOptionPane.showMessageDialog(null, "该课程不存在,请重新输入"); return false; } //判断该学生选修课已选课程的总学分是否小于6; //无效操作2:如果已有选课记录,并且总学分大于6学分,该学生不能在选了。 PreparedStatement ps = null; sql = "select sum(grade) " + "from (select x.sname , o,k.grade grade " + "from coursexx k join choicesxx x " + "on o=o and x.sname=?) result"; String grade =null; try { ps = con.prepareStatement(sql); ps.setString(1, usrName); rs = ps.executeQuery(); while (rs.next()) { grade = rs.getString(1); if(grade==null){grade="0";} } } catch (Exception rrr) { rrr.printStackTrace(); } System.out.println("总学分:" + grade); if (Integer.parseInt(grade) > 6) { JOptionPane.showMessageDialog(null, "你已经选满6学分,系统将退出"); this.setVisible(false); return false; } //无效操作3:课程该学生已经选择了某课程,则不能再选该课程了。 sql = "select * from choicesxx where sname=? and cno=?"; boolean flag = false; try { ps = con.prepareStatement(sql); ps.setString(1, this.getUsrName()); ps.setString(2, userInput); rs = ps.executeQuery(); flag = rs.next(); } catch (Exception eaa) { eaa.printStackTrace(); } if (flag) { JOptionPane.showMessageDialog(null, "你已经选择了该课程。请另选课程"); return false;} //如果以上无效操作都不存在,则返回true,意为这是一个准有效操作 return true; } //对有效的提交操作的进行处理 public void tryCommit() { // userInput为用户输入的课程ID. String userInput = jtfSelectedCourse.getText().toString().trim() .toLowerCase(); // if course still available(count<MAX_STUDENT),save result. // else if course not available,show Message to student. PreparedStatement ps; String sql = "select (Max-selectedCount) as RemainedCount " + "from Coursexx where cno=?"; try { ps = con.prepareStatement(sql); // 取得学生ID或名字,将课程ID存入学生选课表choicesxx ps.setString(1, userInput); rs = ps.executeQuery(); ResultSetMetaData meta = rs.getMetaData(); int cols = meta.getColumnCount(); int RemainedCount = -1; while (rs.next()) { RemainedCount = rs.getInt(1); System.out.println("RemainedCount:" + RemainedCount); } //如果该课程还有选择的名额,提示单项选课操作成功。 if (RemainedCount > 0) { // save studentId and courseId to student-course table. // this.getUsrName();userInput sql = "insert into choicesxx values(?,?)"; ps = con.prepareStatement(sql); ps.setString(1, this.getUsrName()); ps.setString(2, userInput); ps.executeUpdate(); JOptionPane.showMessageDialog(null, "选课成功: " + this.getUsrName() + " 选了" + userInput + "." + "" + " 还有 " + RemainedCount + " 人可以选该课程。"); // 更新课程中已选该课程的人数:即将可选该课程的人数减去1个人。 sql = "update CourseXX set selectedCount=selectedCount+1 where cno=?"; ps = con.prepareStatement(sql); ps.setString(1, userInput); ps.executeUpdate(); mit(); //如果该课程已经没有选择名额,提示重新选课 } } catch (Exception es) { es.printStackTrace(); try { con.rollback(); } catch (Exception ey) { ey.printStackTrace(); } } } //对用户查询课程信息,进行处理,并显示查询结果 public void searchAvailableCourse() { // 让程序自动选择连接的是Oracle或SqlServer. if (JDBCUtil.getConnection() != null) { System.out.println(JDBCUtil.getConnection()); con = JDBCUtil.getConnection(); } else { con = JDBCUtil.getConnection(); } //userInput取得用户输入的信息,selectedItem取得用户选择的查询方式 String userInput = jtfSearch.getText().toString().trim().toLowerCase(); String selectedItem = jcbSearch.getSelectedItem().toString().trim(); System.out.println("User search:" + userInput); System.out.println("selectedItem:" + selectedItem); String sql = null; //按用户查询方式,如按课程名,课程ID或学时的查询进行处理;并在表格中实现结果 try { if ("课程名".equals(selectedItem)) { sql = "select cno,cname,hour,grade,term,isNeed from CourseXX where cname = ?"; ps = con.prepareStatement(sql); ps.setString(1, userInput); } else if ("课程ID".equals(selectedItem)) { sql = "select cno,cname,hour,grade,term,isNeed from CourseXX where cno = ?"; ps = con.prepareStatement(sql); ps.setString(1, userInput); } else if ("学时".equals(selectedItem)) { sql = "select cno,cname,hour,grade,term,isNeed from CourseXX where hour = ?"; ps = con.prepareStatement(sql); ps.setInt(1, Integer.parseInt(userInput)); } else if ("学分".equals(selectedItem)) { sql = "select cno,cname,hour,grade,term,isNeed from CourseXX where grade = ?"; ps = con.prepareStatement(sql); ps.setInt(1, Integer.parseInt(userInput)); } else if ("学期".equals(selectedItem)) { sql = "select cno,cname,hour,grade,term,isNeed from CourseXX where term = ?"; ps = con.prepareStatement(sql); ps.setString(1, userInput); } System.out.println(sql); rs = ps.executeQuery(); mit(); ResultSetMetaData meta = rs.getMetaData(); int cols = meta.getColumnCount(); String result = null; int k = 1; boolean flag = false; //将查询结果以表格的形式显示出来 while (rs.next()) { for (int i = 1; i <= cols; i++) { result = rs.getString(i); System.out.println(result); jtSearch.setValueAt(result, k - 1, i - 1); } k++; flag = true; } //如果查询结果集为空,提示用户没有该课程 if (flag == false) { JOptionPane.showMessageDialog(null, "该课程不存在,请重新输入"); return; } } catch (Exception ex) { ex.printStackTrace(); try { con.rollback(); } catch (Exception er) { er.printStackTrace(); } } } //当某学生有效登录后,启动程序(将学生的登录信息也传过来,以便保存选课操作时使用) public static void main(String[] args) { //String usrName = "xuliang"; //String passwrd = "123"; new StudentChooseCourse(usrName, passwrd); } } 4.2 系统运行环境 由于本系统开发时用到SQL2012数据库、SQLJDBC、JDK1.7、Eclipse,故其运行需要一定的系统环境。解压下载好的JDBC至D:\迅雷下载\sqljdbc_4.0.2206.100_chs\sqljdbc_4.0 以及SQL2012至C:\Program Files\Microsoft SQL Server。然后要配置好环境变量,在数据库里建表,然后将Java通过JDBC连接到SQL2012等。具体操作过程参见了 4.3学生选课系统运行截图 4.3.1 登陆页面(起始页) 图4-1 登陆页面截图 输入用户名和密码并且选择用户类型即可登陆到相应用户类型的主界面。 图4-2 登陆信息错误提示截图 但是如果用户名或密码错误就会跳转到如上的提示界面。 4.3.2 学生操作界面 图4-3 带选课界面截图 登陆之后学生可以看到如上的待选课界面。 图4-4 查询课程结果截图 可以选择课程ID、课程名、学时、学分、学期、性质对课程进行查询,出现如上界面。 图4-5 选课过程截图 依次输入所要选的课程的课程ID、课程名、学时、学分、学期、性质之后,检查确认无误之后提交。 图4-6 选课成功提示界面截图 提交之后便可看到如上的选课成功的提示界面,同时还提示还有多少人可以选择这门课程。 图4-7 重复选课提示界面截图 如果重复选择了会出现如上界面提示学生已经选择了该课程 图4-8 选满学分提示界面截图 学生只能选择六个学分的课程,如果多于六个学分系统将出现如上的提示界面,并且自动退出。 第五章 系统测试与维护 管理信息系统在完成研究开发、投入正常运行之后,就进入了系统测试与维护阶段。基于Web的系统测试与传统的软件测试既有相同之处,也有不同的地方,对软件测试提出了新的挑战。基于Web的系统测试不但需要检查和验证是否按照设计的要求运行,而且还要评价系统在不同用户的浏览器端的显示是否合- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 java 学生 选课 系统 本科 毕业设计 论文
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文