面向对象程序设计课程设计论文.doc_第1页
面向对象程序设计课程设计论文.doc_第2页
面向对象程序设计课程设计论文.doc_第3页
面向对象程序设计课程设计论文.doc_第4页
面向对象程序设计课程设计论文.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

课 程 设 计 报 告课程名称:面向对象程序设计课程设计任课教师:尹剑伟设计题目:网络聊天室所学专业:信息管理与信息系统(二年制)班级学号:0916150320学生姓名:黄萌萌报告完成日期: 2016 年 01 月 10日一、题目描述及功能要求实现的是局域网中的聊天功能,运行服务程序后,服务器创建成功,然后使服务器对某一个设定的端口处于监听状态,当有客户端请求建立连接时,服务器就可接受请求,建立连接!这样服务器和客户端就可相互发送消息,实现聊天功能!1服务端主要功能:l 服务端等待多客户连接(守护进程)。l 服务端与客户端建立连接。l 服务端与客户端交互信息。l 服务端与客户端断开连接。l 服务端更新客户列表。2客户端主要功能:l 客户端登录。l 客户端与服务端建立连接。l 客户端与服务端交互信息。l 客户端与服务端断开连接。l 客户端更新客户列表。二、系统设计1功能设计启动客户端主界面聊天下线按钮输入界面清屏按钮发送按钮图1 聊天室功能结构图2界面设计图2 聊天窗口界面3技术原理网络连接: 方法:TCP/IP协议叫做传输控制/网际协议,它是Internet国际互联网络的基础。 TCP/IP是网络中使用的基本的通信协议。 虽然从名字上看TCP/IP包括两个协议,传输控制协议(TCP)和网际协议(IP),但TCP/IP实际上是一组协议,它包括上百个各种功能的协议,如:远程登录、文件传输和电子邮件等,而TCP协议和IP协议是保证数据完整传输的两个基本的重要协议。通常说TCP/IP是Internet协议族,而不单单是TCP和IP。 介绍方法:客户端步骤: 1.创建Socket。根据指定的IP地址或端口号构造Socket类对象。如服务器端响应,则建立客户端到服务器的通信线路。 2.打开连接到Socket的输入/出流。使用getInputStream()方法获得输入流,使用getOutputStream()方法获得输出流。 3.按照一定的协议对Socket进行读/写操作。通过输入流读取服务器放入线路的信息(但不能读取自己放入线路的信息),通过输出流将信息写入线程。 4.关闭Socket。断开客户端到服务器的连接,释放线路 。服务器端步骤: 1.创建ServerSocket。 2.使用accept()产生一个Socket用于与客户端Socket通信。多线程: 方法一:继承Thread类 建立thread的子类,并覆盖run()方法(thread实现了Runnable接口)对象.start(); /开始线程方法二:实现Runnable接口(常用)建立一个类实现Runnable接口,完成run()方法Runnable p = new 类名();Thread t = new Thread(p);t.start(); /开始线程4类说明 XX类静态属性int PORT=8000端口号为8000Int count=3面板上的按钮为3个实例属性Lable lableTitle标签静态方法Piblic static void main主方法实例方法void send(String)向服务端发送信息。Public void run()实现线程Public void inList列表5难点及其解决方法(1)如何使服务器端保留并区别与客户端的socket连接?与N个客户端相连的话;服务器都有一个对应的socket;也就是N个 。为什么TCP的C/S应用中,服务器程序要先于客户端程序执行 因为客户端要连接服务器之前先要知道服务器的IP地址和端口号 而且这个端口号是处于监听状态的.(2) 如何使客户端更新列表信息?一、服务器端写一个WEBSERVICE的回调方法,在客户端调用,只接返回服务器所更新的列表就行了。二、在客户端用一个文件存,并指定时间将文件以XML格式发送给服务器端保持更新。三、系统实现1源代码见附件。客户端 ChatClient.javaimport javax.swing.*;import java.awt.*;import java.awt.event.*;import java.io.*;import .*;public class ChatClient extends JFrame implements ActionListenerJTextArea getArea =new JTextArea(收发信息:n);JLabel gLabel=new JLabel(请输入:);JTextArea sendArea =new JTextArea();JButton clickButton = new JButton(发送);JButton clickButton1 = new JButton(下线);JButton clickButton2 = new JButton(清屏);JMenuBar jmb = new JMenuBar();JMenu fontMenu = new JMenu(字体);JMenuItem colorMenu = new JMenu(颜色);JMenuItem redMenuItem=new JMenuItem(红色);JMenuItem blueMenuItem=new JMenuItem(蓝色);JMenuItem greenMenuItem=new JMenuItem(绿色);JMenuItem blackMenuItem=new JMenuItem(黑色);JTextArea textDemo=new JTextArea();Socket s = null;boolean bConnected = false;BufferedReader in = null;PrintWriter out = null;String msg;public ChatClient()super(客户端); this.setSize(410,385); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container container = getContentPane(); container.setLayout(null); /创建并向框架添加多行文本 container.add(getArea); getArea.setBounds(0,0,390,200); container.add(gLabel); gLabel.setBounds(0,202,150,20); container.add(sendArea); sendArea.setBounds(0,222,390,50); container.add(clickButton); container.add(clickButton1); container.add(clickButton2); clickButton.setBounds(300,270,70,50); clickButton1.setBounds(180,270,70,50); clickButton2.setBounds(60,270,70,50); clickButton.addActionListener(this); setJMenuBar(jmb); jmb.add(fontMenu); fontMenu.add(colorMenu); fontMenu.addSeparator(); colorMenu.add(redMenuItem); colorMenu.add(blueMenuItem); colorMenu.add(greenMenuItem); colorMenu.add(blackMenuItem); getContentPane().add(textDemo); redMenuItem.addActionListener(this); blueMenuItem.addActionListener(this); greenMenuItem.addActionListener(this); blackMenuItem.addActionListener(this);public static void main(String args) throws IOExceptionChatClient test = new ChatClient();test.setVisible(true);test.start();public void start() throws IOExceptionconnect();new Thread(new RecvThread().start();while(true)out.flush();if(msg.equalsIgnoreCase(exit) break;disconnect();public void actionPerformed(ActionEvent e) if(e.getSource() instanceof JButton) msg=sendArea.getText(); out.println(msg);/向服务器发送数据 sendArea.setText(); if (e.getActionCommand().equals(红色) getArea.setForeground(Color.red); if (e.getActionCommand().equals(蓝色) getArea.setForeground(Color.blue); if (e.getActionCommand().equals(绿色) getArea.setForeground(Color.green); if (e.getActionCommand().equals(黑色) getArea.setForeground(Color.black);public void connect() try s = new Socket(, 8888);bConnected = true;in = new BufferedReader(new InputStreamReader(s.getInputStream();out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(s.getOutputStream(),true);getArea.append(上线!n); catch (IOException e) getArea.append(上线!n);e.printStackTrace();System.exit(0);public void disconnect() try bConnected = false;out.close();in.close();s.close();getArea.append(关闭连接成功!n); catch (IOException e) getArea.append(关闭连接失败!n);e.printStackTrace();class RecvThread implements Runnable public void run() try while(bConnected) String str = in.readLine();getArea.append(str+n); catch (IOException e) /e.printStackTrace(); 服务器ChatServer.Javaimport javax.swing.*;import java.awt.*;import java.awt.event.*;import java.io.*;import .*;import java.util.ArrayList;import java.util.List;public class ChatServer extends JFrameJTextArea seArea =new JTextArea();public static final int PORT = 8888;boolean started = false;ServerSocket ss = null;List clientList = new ArrayList();public static void main(String args) throws IOExceptionChatServer test = new ChatServer();test.setVisible(true);test.start();public ChatServer()super(服务器信息); this.setSize(400,300); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container container = getContentPane(); container.setLayout(new BorderLayout(); /创建并向框架添加多行文本 container.add(seArea,BorderLayout.CENTER); public void start() throws IOExceptionss = new ServerSocket(PORT);started = true;seArea.append(开始服务!n);while(started) Socket s = ss.accept();seArea.append(a client connected: +s+n);Client c = new Client(s);new Thread(c).start();clientList.add(c);ss.close();class Client implements Runnable private Socket s;private boolean bConnected = false;BufferedReader in = null;PrintWriter out = null;public Client(Socket s) this.s = s;bConnected = true;public void send(String str) try out.println(str); catch (Exception e) clientList.remove(this);seArea.append(移除失效连接!);public void run() try in = new BufferedReader(new InputStreamReader(s.getInputStream();out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(s.getOutputStream(),true);while(bConnected) String str = in.readLine();seArea.append(str+n);for(int i=0; iclientList.size(); i+) Client c = clientList.get(i);c.send(str);/*if(str.equalsIgnoreCase(exit)System.out.println(1111);/clientList.remove(this);elsefor(int i=0; iclientList.size(); i+) Client c = clientList.get(i);c.send(str);*/ catch (EOFException e) System.out.println(Client closed!+EOFException);/e.printStackTrace(); catch (SocketException e) System.out.println(Client closed!+SocketException);e.printStackTrace(); catch (IOException e) e.printStackTrace(); finally try if(out != null) out.close();if(in != null) in.close();if(s != null) s.close(); catch (IOException e1) e1.printStackTrace();4、 总结 1、我感觉学习java应该是循环渐进,有始有终,按部就班,脚踏实地。java是一门有着阶梯性的一们语言,如果要学习它。我觉得最好还是按照java的学习体系,先学习什么,在学习什么,只有这样,我们在学习中才会遇到更少的麻烦。java是一门更倾向于网络的语言。不要上来就学习JSP,这样不好,因为这没有基础。在以后的学习中很可能遇到很多的麻烦,这就不好了。2、信心,恒心,毅力是最重要的。这是我们必须具备的心理素质。要是学习这门语言开始的时候很有兴趣,遇到苦难就退缩,这样最终会放弃学习java,没有经历风雨怎么见彩虹。编程就是有的时候就是那么这么人。会遇到很多的困惑。但是一旦你弄懂了,或者是你把问题解决了,你会感到很兴奋,编程的快乐就在此 了。呵呵3、多看看一些资料,多多的向高手请教,这样才好。要学会总结和领会,当然,学习java一个人有一个人的想法,也有自己的独特学习方法。总之适合自己的就是最好的。附1、代码清单客户端Client.javaimport javax.swing.*;import java.awt.*;import java.awt.event.*;import java.io.*;import .*;import java.awt.Color;import java.util.Date;import java.text.SimpleDateFormat;public class Client extends JFrame implements ActionListener,RunnableJPanel p1;JLabel b1;JTextField jt;JButton b2;JButton b3;JTextArea jt1;JScrollPane jscrollPanel;JPanel p2;JTextField j1;JButton jb;private int port=8888;private Socket client;BufferedReader cin;PrintWriter out;Thread cc;SimpleDateFormat m=new SimpleDateFormat(MM月dd日-hh:mm); public Client()super(网络聊天客户端);p1=new JPanel();p1.setBackground(new Color(245,211,211);b1=new JLabel(昵称);jt=new JTextField(10);b2=new JButton(进入窗口);b2.addActionListener(this);p1.add(b1);p1.add(jt);p1.add(b2);add(p1,BorderLayout.NORTH);jt1=new JTextArea();jt1.setBackground(new Color(245,211,211);jscrollPanel=new JScrollPane(jt1,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);add(jscrollPanel,BorderLayout.CENTER);p2=new JPanel(); p2.setBackground(new Color(245,211,211); j1=new JTextField(30);jb=new JButton(发送);b3=new JButton(退出);jb.addActionListener(this);b3.addActionListener(this);p2.add(j1);p2.add(jb);p2.add(b3);add(p2,BorderLayout.SOUTH);setVisible(true);setBounds(500,60,500,300);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);public void actionPerformed(ActionEvent e)if(e.getSource()=b2)if(login(jt.getText()cc=new Thread(this);cc.start();else if(e.getSource()=b3)cc=null;if(out!=null)out.println(exit);System.exit(0);else if(e.getSource()=jb)if(cc!=null)out.println(j1.getText();jt1.append(+j1.getText()+nt);j1.setText(null);public boolean login(String p)Date dat=new Date(); String s=m.format(dat);tryclient=new Socket(localhost,port);cin=new BufferedReader(new InputStreamReader(client.getInputStream();out=new PrintWriter(client.getOutputStream(),true);out.println(p);String aa=cin.readLine();if(aa.equals(ok)jt1.append(s+ 已连接聊天服务器+nt);return true;elsejt1.append(s+ 服务器连接失败+nt);return false;catch(Exception e)return false;public void run()String aa=;trywhile(aa=cin.readLine()!=null& cc!=null)Date dat=new Date(); String s=m.format(dat);if(aa.equals(服务器退出)jt1.append(s+t服务器未响应,请重新连接n);break;elsejt1.append(s+t服务器发送:+aa+n);cin.close();out.close();client.close(); catch(Exception e) public static void main(String args)Client a=new Client();服务器Server.Javaimport javax.swing.*;import java.awt.*;import java.awt.event.*;import java.io.*;import .*;import java.util.Date;import java.awt.GridLayout;import java.text.SimpleDateFormat;public class Server extends JFrame implements ActionListener,RunnableJPanel p1;JButton b1;JButton b2;JButton b3;JButton b4;/四个按钮:运行,中断,清空,退出,最上面JTextArea jt1;JScrollPane jscrollPanel;/一个文本区JPanel p2;JTextField j1;JButton jb;/发送消息区JScrollPane left;JTextArea showClient;private int port=8888;private ServerSocket server;private Socket client;BufferedReader cin;PrintWriter out;Thread ss;/网络连接SimpleDateFormat m=new SimpleDateFormat(n+MM月dd日-hh:mm); public Server()super(网络聊天服务器);p1=new JPanel();p1.setLayout(new GridLayout(1,2);b1=new JButton(启动);b2=new JButton(退出);b3=new JButton(清空);b4=new JButton(中断);b1.addActionListener(this);b2.addActionListener(this);b4.addActionListener(this);p1.add(b1);p1.add(b2);p1.add(b3);p1.add(b4);add(p1,BorderLayout.SOUTH);jt1=new JTextArea(欢迎来到张郁鑫的聊天窗口!);jt1.setBackground(new Color(245,211,211);jscrollPanel=new JScrollPane(jt1,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);/添加滚动条add(jscrollPanel,BorderLayout.CENTER);setVisible(true);setBounds(500,60,500,300);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);public void actionPerformed(ActionEvent e)/实现ActionEvent接口中的actionPerformed方法Date dat=new Date(); String s=m.format(dat);if(e.getSource()=b1)try server=new ServerSocket(port);catch(Exception pp)ss=new Thread(this);/线程启动ss.start();b1.setEnabled(false);jt1.append(s+tttt服务器已启动n);else if(e.getSource()=b2)ss=null;if(out!=null)out.println(服务器退出);System.exit(0);else if(e.getSource()=jb) if(ss!=null)dat=new Date(); s=m.format(dat);out.println(j1.getText();jt1.append(s+t服务器发送:+j1.getText()+n);j1.setText(null);public void run()while(true)tryclient=server.accept();OtherThread qq=new OtherThread(client);Thread s=new Thread(qq);s.start();catch(Exception aa)class OtherThread implements RunnableSocket s;OtherThread(Socket y)s=y;public void run()while(true)trycin=new BufferedReader(new InputStreamReader(s.getInputStream();/字节流转化为字符流out=new PrintWriter(s.getOutputStream(),true);/true及时发送消息String userName=cin.readLine();jt1.append(nt+userName+加入n);/显示在文本框里信息out.println(ok);/向客户发送消息String aa=;while(s!=null)aa=cin.readLine();if(aa.equals(exit)break;else jt1.append(t+userName+aa+n);catch(Exception aa)public static void main(String args)Server a=new Server();袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁

温馨提示

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

评论

0/150

提交评论