毕业设计(论文)-基于JAVA个人通讯录管理系统开发和设计.doc_第1页
毕业设计(论文)-基于JAVA个人通讯录管理系统开发和设计.doc_第2页
毕业设计(论文)-基于JAVA个人通讯录管理系统开发和设计.doc_第3页
毕业设计(论文)-基于JAVA个人通讯录管理系统开发和设计.doc_第4页
毕业设计(论文)-基于JAVA个人通讯录管理系统开发和设计.doc_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

毕 业 论 文题 目:基于JAVA个人通讯录管理系统开发和设计 专 业: 班 级: 姓 名: 学 号: 指导教师: 日 期: 64摘要本文介绍了一个简单实用的个人通讯录管理系统java工程,详细描述了本人在编程时候的编程思想和在MyEclipse 6.5中调试运行的步骤,简明扼要地介绍了整个工程的功能和实用方法。这个个人通讯录管理系统含有添加、删除、查找等基本功能,同时也添加了一些有趣的小功能支持背景图片的更换。在程序中完成了与数据库的通信,并同样可以对数据库进行添加、查找、删除等功能。关键词:个人通讯录管理系统、添加、删除、查找、数据库目录摘要21 绪论41.1 设计目的41.2 设计内容42 程序要求53 算法分析63.1 程序总体设计思想63.2 程序设计总体框图63.3 程序详细设计74 调试过程105 体会186 参考文献19附录(源程序)201 Demonstrationaction.java202 Demonstrationframe.java223 Dlframe.java234 Dlframeaction.java255 Fdframe.java266 Fdactionframe.java287 Fdkeep.java318 Fdkeepaction.java329 Frameaction.java3510 Image.java3711 Loginframe.java3712 LoginIn.java3913 Myaddress.java4214 Panelframe.java4415 Panelframeaction.java5116 Revisionmovement.java5617 Revisionpassword.java5818 Year.java591 绪论1.1 设计目的本课程设计是java语言学习中很重要的实践性环节之一,是在学习完java课程后进行的一次全面的综合练习旨在巩固和加深我们对java语言的基本知识的理解和掌握,掌握java语言编程和程序调试的基本技能,利用java语言进行基本的软件设计,掌握书写程序设计说明文档的能力,提高运用java语言解决实际问题的能力。1.2 设计内容在设计一个完整的系统中,我从系统的管理员登录界面开始做,另外依据相关要求,对系统增加了数据库支持(Microsoft Access做的数据库),还有对数据库里的数据进行增加、删除、显示所有记录、查询记录、导出备份数据库文件。另外为了界面美观,增加了系统主界面背景界面图片的支持。为了保证数据库的安全,在系统中设立了管理员权限,即只有被允许的用户才可以进入该系统。2 程序要求设计一个通讯录管理软件,要求如下:增加记录、删除记录、显示所有记录、查询记录、文件备份、退出。通讯录记录信息包括:姓名,电话,email等。(1)通讯录的每一条信息包括姓名,单位,电话!(可用数组或数据库);(2)输入功能:可以一次完成若干条信息的输入;(3)显示功能:完成全部通讯录信息的显示(一屏最多显示10条,超过十条应能够自动分屏显示);(4)查找功能:完成按姓名查找通讯信息;(5)删除功能:完成按姓名删除通讯信息;(6)应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!3 算法分析3.1 程序总体设计思想个人通讯录件的功能模块有:(1)提供登陆界面,方便用户进入,满足需求;(2)添加:可以添加通讯录记录,依次输入姓名、性别、出生日期、移动电话、固定电话、MSN/QQ、公司地址、E-Mail地址、家庭住址、组别、备注后,会提示是否继续添加;(3)显示:可以以表格形式输出所有通讯录里的记录;(4)查询:可以用姓名查询;(5)修改:输入欲修改的那个人的名字后,再依次输入姓名、性别、出生日期、移动电话、固定电话、MSN/QQ、公司地址、E-Mail地址、家庭住址、组别、备注即可完成修改;(6)删除:可以直接删除多余的通讯录记录;(7)帮助:可以在帮助里面修改用户密码;(8)导出数据库:可以将数据库以文本txt格式导出。程序分为多个小模块,通过调用实现各种功能,增强了程序的可建设性。3.2 程序设计总体框图个人通讯录管理系统设计的总体框图如图3-1:程序开始菜单界面面登陆界面功能界面增加界面查找界面修改界面程序结束进入功能总体功能数据功能显示功能图3-1 个人通讯录管理系统设计的总体框图3.3 程序详细设计该程序共有18个类,也分别创建了18个java源程序文件,以下按照文件名字母排序先后解释(在设计软件MyEclipse工程排序也是如此),另外在此只是简要介绍相关源程序所实现的功能,程序截图参见调试,源程序参见附录:Demonstrationaction.java文件做的是功能表中“编辑查找全部”的功能,使用此项功能的时候,在点击“显示查询结果”后,让界面显示出全部数据库中的内容;点击“退出全部查询”的时候退出该功能。Demonstrationframe.java文件做的就是“编辑查找全部”的界面,上面有标题、文字显示框和两个控制按钮“显示查询结果”和“退出全部查询”。Dlframe.java文件做的是“编辑删除”的界面,有一个文字输入框(提供按名字来删除),和两个控制按钮“删除”和“放弃”。Dlframeaction.java文件做的是“编辑删除”的相关功能,当输入名字之后会进行查找删除,若在数据库中含有当前名字的数据则删除该条数据并显示“删除成功”,否则显示“未找到该项”。点击“放弃”即退出删除功能。Fdframe.java文件做的是“编辑查询”的界面,提供按名字搜索,有一个文字输入框,和两个控制按钮“查询”和“撤销”。Fdframeaction.java文件做的是“编辑查询”的相关功能,输入需要查询的姓名之后,如若在数据库中有符合的数据后,则显示查询结果,并弹窗显示“查询结束”;如若没有对应的数据,则弹窗显示“没有记录”。点击“撤销”则退出查询功能。Fdkeep.java文件做的是“文件导出数据库”的界面,有一个文字输入框提供输入导出的数据库的完整路径,两个控制按钮“save”和“give up”。Fdkeepaction.java文件做的是“文件导出数据库”的相关功能,输入了完整路径之后,会启动Microsoft Office Access导出数据库;如若路径错误,则会弹窗显示“路径错误!”。点击“give up”后则退出界面。Frameaction.java文件做的是主界面的相关功能选择。主界面有三个大选项,文件、编辑和帮助。其中文件包括导入数据库和退出,编辑包括删除、添加、按姓名查找和查找全部,帮助则是修改管理员密码。Image.java文件是使主界面支持背景图片的切换,使用的是工程文件夹Images下的U.jpg。支持任意大小的图片。Loginframe.java文件做的是主界面的登录界面。即在程序以java Application运行后需要进行用户登录的界面,提供用户名和密码的文本输入框和两个控制按钮“certain”和“cancel”。LoginIn.java文件做的是登录界面的相关功能,对输入的用户名与密码和数据库进行匹配,如若正确则弹窗显示“登录成功”,否则弹窗显示“用户名或密码错误”。Myaddress.java文件做的是定义了一个公共类Myaddress,并定义了主函数是调用这个Myaddress的公共类。Panelframe.java文件做的是“编辑添加”的界面,提供给用户向数据库添加新数据,有对于姓名、性别、出生日期、移动电话、固定电话、MSN/QQ、公司地址、E-Mail地址、家庭住址、组别、备注等信息录入的文本输入框。以及最后的两个控制按钮“保存”和“取消”。Panelframeaction.java文件做的是“编辑添加”的相关功能。在界面中输入相关信息后,点击保存则系统向数据库存入信息,点击取消则将信息丢弃。同时还确保信息的相关性,例如控制了出生日期是使用了日期控件的使用等等。Revisionmovement.java文件做的是“帮助修改密码”的相关功能。首先验证用户输入的原始密码是否正确,然后接受用户输入的6位以上的新密码,存入数据库并修改密码信息。Revisionpassword.java文件做的是“帮助修改密码”的界面。界面包括两个旧密码和新密码的文本输入框,和两个控制按钮“保存”和“取消”。Year.java文件做的是在出生日期里面的日期控件,对平年闰年的区分,然后对各个月不同日期做了相关定义。4 调试过程调试是一耳光程序员最基本的技能,其重要性甚至超过学习一门语言。不会调试的程序员就意味着他即使会一门语言,却不能编写出任何好的软件。这是当初我最开始接触C语言的时候让我感受很深的一句话,我当时很不能理解如果调试真的这么重要,为什么在我们的课本里面却找不到相关的内容,甚至一些相当经典的教材里面也没有对其进行大篇幅的介绍。直到自己开始写了一些大一点的程序,才发现有时候自己最初设计程序在一些细节上的新颖想法是那么的可笑,带来的只是无穷无尽的错误和威胁。程序编写完成就应该调试自己所完成的程序,以减少程序中的bug。以下是我的程序调试以及运行过程截图。说明:本程序的运行环境是MyEclipse 6.5,经验证在Eclipse中运行会产生错误“Column not Found”,但是最开始我是在MyEclipse中完成的程序,我也就没有去就针对Eclipse进行更改,Linux的环境虚拟机我没有安装,所以不知道在虚拟机Linux下是否能够正常运行。打开MyEclipse 6.5软件,导入Workspace,如图4-1:图4-1 编程环境截图右键点击工程,选择“Run asJava Application”,成功运行,出现用户登录界面,输入用户名“wj”,密码“123”,如图4-2:图4-2 个人通讯录登入界面点击“certain”,登录成功,点击确定,进入个人通讯录管理系统 ,如图4-3:图4-3 个人通讯录管理系统主界面点击左上角的“文件导出数据库”,如图4-4:图4-4 导出数据库输入完整路径之后点击“save”就可以以文本格式保存数据库,例如我们就按照提示输入路径,则数据库的备份文件如图4-5:图4-5 保存的数据库文件点击“文件退出”则退出了个人通讯录管理系统。接下来是对数据库进行添加、编辑、查找、删除等功能。故先看看数据库的原文件。注:本数据库是由Microsoft Office Access 2007创建,如若计算机里面没有Access,编译环境会对Access驱动的设置报错!数据库如图4-6:图4-6 原始数据库选择“编辑添加”对数据库进行添加操作。输入如下信息,如图4-7:图4-7 信息添加界面点击“保存”将新加的信息加入数据库,系统会告知“添加成功”。如图4-8:图 4-8 系统信息添加界面重新查看数据库,可以发现新添加的信息已经加入了数据库。如图4-9:图4-9 添加信息后的数据库部分截图由上面操作可以知道,添加功能正常。选择“编辑删除”,按照提示输入删除的用户名,如图4-10,就假设我们删除刚才添加的信息:图4-10 删除记录点击“删除”后,则系统会提示“删除成功”,如图4-11:图4-11 删除成功重新查看数据库,发现刚才添加的信息已经被成功删除,如图4-12:图4-12 成功删除后的数据库通过以上的删除操作可以知道,系统的删除功能也是可以正常运行的。点击“文件按姓名查找”,输入所需要查找的用户名,如图4-13:图4-13 查找记录点击“查询”,系统会对数据库进行查找,并提示“查找结束”,如图4-14:图4-14 查找结束并会弹窗显示所查找的结果,如图4-15:图4-15 查找结果以上步骤只能说明是正确输入了数据库中包含的数据,如若数据库中未含有被查找的内容,则系统也应该做出正确的反应。如图4-16,查找数据库中没有的信息:图4-16 输入数据库中没有的用户名点击“查询”之后,则系统提示“没有记录”,如图4-17:图4-17 查找错误的消息提示以上通过了正确查找和错误两方面充分论证了查找功能的正常运行。点击文件“编辑查找全部”,则会弹出一个空白的查找结果界面,这是因为在程序设计中默认的是不显示所得的信息,如图4-18:图4-18 查找全部界面然后点击“显示查询结果”,即可显示出全部查询结果。如图4-19:图4-19 查找全部结果另外本系统还有一个功能,更改当前用户的密码。点击“帮助修改密码”,显示修改密码界面,如图4-20:图4-20 修改密码界面分别输入当前的旧密码和所更改的新密码,如图4-21:图4-21 输入旧密码和新密码点击“保存”即可成功修改密码,并可以修改数据库。如图4-22:图4-22 密码修改成功消息查看数据库中的表userpass,新密码已经更改成功,如图4-23:图4-23 数据库中的新密码显示另外需要注意的是,修改的新密码是需要该系统重启生效。即退出后重新运行该工程才能使新密码生效。至此,个人通讯录管理系统的调试运行全部完成。5 体会这次的程序实设计实验是对我们进入大学以来学习程序设计语言结果的一次大检验。自己动手,自己发现和解决问题。发现了自己的许多不足。平时没有掌握好的知识在这次实验中彻底暴露出来,经过不断思考,不断查阅资料和上机运行,解决其中大部分问题,当然还存在一些问题没有解决。我相信在以后的学习能够解决好它们。但是,收获还是不小的,我不仅对Java的操作有了进一步的掌握,还了解到了程序设计的书写风格及其注释的格式。6 参考文献1 王克宏. Java技术教程(基础篇).清华人学出版社,20022 古大龙. 软件开发的形式化方法.高等教育出版社,20053陈强. Java程序设计.北京:人民邮电出版社,20014侯捷. Java编程思想.第2版.北京:机械工业出版社,20025Herbert Schildt. Java2参考大全.北京:清华大学出版社,2002附录(源程序)1 Demonstrationaction.javapackage myaddressbody;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.Date;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;import javax.swing.JButton;public class Demonstrationacction implements ActionListener public void actionPerformed(ActionEvent e) if (JButton) e.getSource().getText().equals(显示查询结果) String dburl = jdbc:odbc:driver=Microsoft Access Driver (*.mdb);DBQ=main.mdb;String sql;Connection con;Statement stmt;String nm, sx, mp, ph, em, ca, ha, nb, gp, lbMQ, all;boolean bdr;Date bd;try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch (java.lang.ClassNotFoundException e2) System.err.print(ClassNotFoundException:);System.err.println(e2.getMessage();try con = DriverManager.getConnection(dburl, , );stmt = con.createStatement();sql = SELECT*FROM address;ResultSet ws = stmt.executeQuery(sql);while (ws.next() nm = ws.getString(1);sx = ws.getString(2);bd = ws.getDate(3);mp = ws.getString(4);ph = ws.getString(5);ca = ws.getString(6);em = ws.getString(7);ha = ws.getString(8);gp = ws.getString(9);nb = ws.getString(10);lbMQ = ws.getString(11);all = 姓名: + nm + 性别: + sx + 生日: + bd+ 移动电话: + mp + 固定电话: + ph + MSN/QQ:+ lbMQ + 公司地址: + ca + EMail: + em+ 家庭地址: + ha + 组别 + gp + 备注: + nb+ n;Demonstrationaframe.lbdem.append(all);stmt.close();con.close(); catch (Exception ex)System.out.println(Exception: + ex.getMessage();if (JButton) e.getSource().getText().equals(退出全部查询) Demonstrationaframe.lbdem.setText();Demonstrationaframe.demFrame.setVisible(false);2 Demonstrationframe.javapackage myaddressbody;import java.awt.BorderLayout;import java.awt.TextArea;import javax.swing.JButton;import javax.swing.JDialog;import javax.swing.JLabel;import javax.swing.JPanel;public class Demonstrationaframe static JDialog demFrame;static TextArea lbdem;static JButton demok, demgp;public Demonstrationaframe() demFrame = new JDialog(Myaddress.myFrame, 查找全部数据, true);demFrame.setLocationRelativeTo(null);demFrame.setLayout(new BorderLayout();JLabel labeldem = new JLabel(如下为全部查询结果 :);demok = new JButton(显示查询结果);demgp = new JButton(退出全部查询);demok.addActionListener(new Demonstrationacction();demgp.addActionListener(new Demonstrationacction();lbdem = new TextArea(10, 80);JPanel p7 = new JPanel();JPanel p8 = new JPanel();JPanel p9 = new JPanel();p7.add(labeldem);p9.add(demok);p9.add(demgp);p8.add(lbdem);demFrame.add(North, p7);demFrame.add(Center, p8);demFrame.add(South, p9);demFrame.pack();demFrame.setVisible(true);3 Dlframe.javapackage myaddressbody;import java.awt.GridLayout;import java.awt.TextField;import javax.swing.JButton;import javax.swing.JDialog;import javax.swing.JLabel;import javax.swing.JPanel;public class Dlframe static JDialog delFrame;static TextField lbDel;static JButton delok, delgp;/* * param args */public Dlframe() delFrame = new JDialog(Myaddress.myFrame, 删除记录, true);delFrame.setLocationRelativeTo(null);delFrame.setLayout(new GridLayout(2, 0);JLabel labelDel = new JLabel(输入所要删除的用户名:);JButton delok = new JButton(删除);JButton delgp = new JButton(放弃);lbDel = new TextField(10);delok.addActionListener(new Dlframeaction();delgp.addActionListener(new Dlframeaction();JPanel p7 = new JPanel();JPanel p8 = new JPanel();p7.add(labelDel);p7.add(lbDel);p8.add(delok);p8.add(delgp);delFrame.add(p7);delFrame.add(p8);delFrame.pack();delFrame.setVisible(true);4 Dlframeaction.javapackage myaddressbody;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.Statement;import javax.swing.JButton;import javax.swing.JOptionPane;public class Dlframeaction implements ActionListener public void actionPerformed(ActionEvent e) String dburl = jdbc:odbc:driver=Microsoft Access Driver (*.mdb);DBQ=main.mdb;String sql;Connection con;Statement stmt;Dlframe.delFrame.setVisible(false);if (JButton) e.getSource().getText().equals(删除) String nn = Dlframe.lbDel.getText();try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch (java.lang.ClassNotFoundException e2) System.err.print(ClassNotFoundException:);System.err.println(e2.getMessage();try con = DriverManager.getConnection(dburl, , );stmt = con.createStatement();sql = delete from address where 姓名= + + nn + ;stmt.executeUpdate(sql);JOptionPane.showMessageDialog(null, 删除成功);stmt.close();con.close(); catch (Exception ex) System.out.println(Exception: + ex.getMessage();Dlframe.lbDel.setText();if (JButton) e.getSource().getText().equals(放弃) Dlframe.delFrame.setVisible(false);5 Fdframe.javapackage myaddressbody;import java.awt.GridLayout;import java.awt.TextField;import javax.swing.JButton;import javax.swing.JDialog;import javax.swing.JLabel;import javax.swing.JPanel;public class Fdframe static JDialog findFrame;static JButton findok, findgp;static TextField lbFind;static String mm,n; static boolean mq;/* * param args */public Fdframe() findFrame = new JDialog(Myaddress.myFrame, 查找记录, true);findFrame.setLocationRelativeTo(null);findFrame.setLayout(new GridLayout(2, 0);JLabel labelFind = new JLabel(输入所要查询的用户名:);findok = new JButton(查询);findgp = new JButton(撤消);lbFind = new TextField(10);findok.addActionListener(new Fdframeacction();findgp.addActionListener(new Fdframeacction();JPanel p4 = new JPanel();JPanel p6 = new JPanel();p4.add(labelFind);p4.add(lbFind);p6.add(findok);p6.add(findgp);findFrame.add(p4);findFrame.add(p6);findFrame.pack();findFrame.setVisible(true);6 Fdactionframe.javapackage myaddressbody;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;import javax.swing.JButton;import javax.swing.JOptionPane;public class Fdframeacction implements ActionListener public void actionPerformed(ActionEvent e) Fdframe.findFrame.setVisible(false);String dburl = jdbc:odbc:driver=Microsoft Access Driver (*.mdb);DBQ=main.mdb;String sql;Connection con;Statement stmt;Myaddress.myFrame.setVisible(false);Myaddress.myFrame.getContentPane().removeAll();Myaddress.myFrame.getContentPane().add(new Panelframe();Myaddress.myFrame.pack();Myaddress.myFrame.setVisible(true);if (JButton) e.getSource().getText().equals(查询) Fdframe.findFrame.setVisible(false);Fdframe.mm = Fdframe.lbFind.getText();int temp = 1;try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch (java.lang.ClassNotFoundException e2) System.err.print(ClassNotFoundException:);System.err.println(e2.getMessage();try con = DriverManager.getConnection(dburl, , );stmt = con.createStatement();sql = Select * from address where 姓名= + + Fdframe.mm+ ;ResultSet rs = stmt.executeQuery(sql);String np,year,day,month;while (rs.next() Fdframe.n=rs.getString(1);Panelframe.lbName.setText(Fdframe.n);Panelframe.sex.select(rs.getString(2);np = rs.getString(3)+a;year=np.substring(0, 4);month=np.substring(5, 7);day=np.substring(8, 10);Panelframe.BirthdayYear.select(year);Panelframe.BirthdayMonth.select(month);Panelframe.BirthdayDay.select(day);Panelframe.lbMobilephone.setText(rs.getString(4);Panelframe.lbTelephone.setText(rs.getString(5);Panelframe.lbCompany.setText(rs.getString(6);Panelframe.lbMail.setText(rs.getString(7);Panelframe.lbaddress.setText(rs.getString(8);Panelframe.Group.select(rs.getString(9);Panelframe.lbNote.setText(rs.getString(10);Panelframe.lbMsnOrQQ.setText(rs.getString(11);temp = 0;stmt.close();con.close(); catch (Exception ex) System.out.println(Exception: + ex.getMessage();if (temp = 1) JOptionPane.showMessageDialog(null, 没有记录);Myaddress.myFrame.setVisible(false);Myaddress.myFrame.getContentPane().removeAll();Myaddress.myFrame.getContentPane().add(new Image();Myaddress.myFrame.pack();Myaddress.myFrame.setVisible(true);JOptionPane.showMessageDialog(null, 查找结束);Fdframe.lbFind.setText();if (JButton) e.getSource().getText().equals(撤消) Fdframe.findFrame.setVisible(false);7 Fdkeep.javapackage myaddressbody;import java.awt.GridLayout;import java.awt.TextField;import javax.swing.JButton;import javax.swing.JDialog;import javax.swing.JLabel;import javax.swing.JPanel;public class Fdkeep static TextField lbSave;static JDialog fdsave;static JButton saveok, savegp;/* * param args */public Fdkeep() fdsave = new JDialog(Myaddress.myFrame, 导出数据, true);fdsave.setLocationRelativeTo(null);fdsave.setLayout(new GridLayout(2, 0);JLabel labelSave = new JLabel(输入保存的完整的路径:);JLabel labele1 = new JLabel(例如:D: + + w.text);saveok = new JButton(save);savegp = new JButton(give up);lbSave = new TextField(10);saveok.addActionListener(new Fdkeepacction();savegp.addActionListener(new Fdkeepacction();JPanel p9 = new JPanel();JPanel p10 = new JPanel();p9.add(labelSave);p9.add(lbSave);p9.add(labele1);p10.add(saveok);p10.add(savegp);fdsave.add(p9);fdsave.add(p10);fdsave.pack();fdsave.setVisible(true);8 Fdkeepaction.javapackage myaddressbody;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.FileWriter;import java.io.IOException;import java.sql.Connection;import java.sql.Date;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;import javax.swing.JButton;import javax.swing.JOptionPane;public class Fdkeepacction implements ActionListener public void actionPerformed(ActionEvent e) String dburl = jdbc:odbc:driver=Microsoft Access Driver (*.mdb);DBQ=main.mdb;String sql;Connection con;Statement stmt;if (JButton) e.getSou

温馨提示

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

评论

0/150

提交评论