已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
聿膆蚁袅羅膅莁蚈袁膄蒃袄螇芃薆蚆肅芃芅袂羁节莈蚅袇芁薀袀袃芀蚂螃膂艿莂薆肈芈蒄螁羄芇薆薄袀莇芆螀螆莆莈薂肄莅蒁螈肀莄蚃薁羆莃莃袆袂莂蒅虿膁莂薇袄肇莁蚀蚇羃蒀荿袃衿肆蒂蚆螅肅薄袁膃肅莄蚄聿肄蒆罿羅肃薈螂袁肂蚀薅膀肁莀螀肆膀蒂薃羂腿薅蝿袈腿芄薂螄膈蒇螇膃膇蕿蚀聿膆蚁袅羅膅莁蚈袁膄蒃袄螇芃薆蚆肅芃芅袂羁节莈蚅袇芁薀袀袃芀蚂螃膂艿莂薆肈芈蒄螁羄芇薆薄袀莇芆螀螆莆莈薂肄莅蒁螈肀莄蚃薁羆莃莃袆袂莂蒅虿膁莂薇袄肇莁蚀蚇羃蒀荿袃衿肆蒂蚆螅肅薄袁膃肅莄蚄聿肄蒆罿羅肃薈螂袁肂蚀薅膀肁莀螀肆膀蒂薃羂腿薅蝿袈腿芄薂螄膈蒇螇膃膇蕿蚀聿膆蚁袅羅膅莁蚈袁膄蒃袄螇芃薆蚆肅芃芅袂羁节莈蚅袇芁薀袀袃芀蚂螃膂艿莂薆肈芈蒄螁羄芇薆薄袀莇芆螀螆莆莈薂肄莅蒁螈肀莄蚃薁羆莃莃袆袂莂蒅虿膁莂薇袄肇莁蚀蚇羃蒀荿袃衿肆蒂蚆螅肅薄袁膃肅莄蚄聿肄蒆罿羅肃薈螂袁肂蚀薅膀肁莀螀肆膀蒂薃羂腿薅蝿袈腿芄薂螄膈蒇螇膃膇蕿蚀聿膆蚁袅羅膅莁蚈袁膄蒃袄螇芃薆蚆肅芃芅袂羁节莈蚅袇芁薀袀袃芀蚂螃膂艿莂薆肈芈蒄螁羄芇薆薄袀莇芆螀螆莆莈薂肄莅蒁螈肀莄蚃薁羆莃莃袆袂莂蒅虿膁莂薇袄肇莁蚀蚇羃蒀荿袃衿肆蒂蚆螅肅薄袁膃肅莄蚄聿肄蒆罿羅肃薈螂袁肂蚀薅膀肁莀螀肆膀蒂薃羂腿薅蝿袈腿芄薂螄膈蒇螇膃膇蕿蚀聿膆蚁袅羅膅莁蚈袁膄蒃袄螇芃薆蚆肅芃芅袂羁节莈蚅袇芁薀袀袃芀蚂螃膂艿莂薆肈芈蒄螁羄芇薆薄袀莇芆螀螆莆莈薂肄莅蒁螈肀莄蚃薁羆莃莃袆袂莂蒅虿膁莂薇袄肇莁蚀蚇羃蒀荿袃衿肆蒂蚆螅肅薄袁膃肅莄蚄聿肄蒆罿羅肃薈螂袁肂蚀薅膀肁莀螀肆膀蒂薃羂腿薅蝿袈腿芄薂螄膈蒇螇膃膇蕿蚀聿膆蚁袅羅膅莁蚈袁膄蒃袄螇芃薆蚆肅芃芅袂羁节莈蚅袇芁薀袀袃芀蚂螃膂艿莂薆肈芈蒄螁羄芇薆薄袀莇芆螀螆莆莈薂肄莅蒁螈肀莄蚃薁羆莃莃袆袂莂蒅虿膁莂薇袄肇莁蚀蚇羃蒀荿袃衿肆蒂蚆螅肅薄袁膃肅莄蚄聿肄蒆罿羅肃薈螂袁肂蚀薅膀肁莀螀肆膀蒂薃羂腿薅蝿袈腿芄薂螄膈蒇螇膃膇蕿蚀聿膆蚁袅羅膅莁蚈袁膄蒃袄螇芃薆蚆肅芃芅袂羁节莈蚅袇芁薀袀袃芀蚂螃膂艿莂薆肈芈蒄螁羄芇薆薄袀莇芆螀螆莆莈薂肄莅蒁螈肀莄蚃薁羆莃莃袆袂莂蒅虿膁莂薇袄肇莁蚀蚇羃蒀荿袃衿肆蒂蚆螅肅薄袁膃肅莄蚄聿肄蒆罿羅肃薈螂袁肂蚀薅膀肁莀螀肆膀蒂薃羂腿薅蝿袈腿芄薂螄膈蒇螇膃膇蕿蚀聿膆蚁袅羅膅莁蚈袁膄蒃袄螇芃薆蚆肅芃芅袂羁节莈蚅袇芁薀袀袃芀蚂螃膂艿莂薆肈芈蒄螁羄芇薆薄袀莇芆螀螆莆莈薂肄莅蒁螈肀莄蚃薁羆莃莃袆袂莂蒅虿膁莂薇袄肇莁蚀蚇羃蒀荿袃衿肆蒂蚆螅肅薄袁膃肅莄蚄聿肄蒆罿羅肃薈螂袁肂蚀薅膀肁莀螀肆膀蒂薃羂腿薅蝿袈腿芄薂螄膈蒇螇膃膇蕿蚀聿膆蚁袅羅膅莁蚈袁膄蒃袄螇芃薆蚆肅芃芅袂羁节莈蚅袇芁薀袀袃芀蚂螃膂艿莂薆肈芈蒄螁羄芇薆薄袀莇芆螀螆莆莈薂肄莅蒁螈肀莄蚃薁羆莃莃袆袂莂蒅虿膁莂薇袄肇莁蚀蚇羃蒀荿袃衿肆蒂蚆螅肅薄袁膃肅莄蚄聿肄蒆罿羅肃薈螂袁肂蚀薅膀肁莀螀肆膀蒂薃羂腿薅蝿袈腿芄薂螄膈蒇螇膃膇蕿蚀聿膆蚁袅羅膅莁蚈袁膄蒃袄螇芃薆蚆肅芃芅袂羁节莈蚅袇芁薀袀袃芀蚂螃膂艿莂薆肈芈蒄螁羄芇薆薄袀莇芆螀螆莆莈薂肄莅蒁螈肀莄蚃薁羆莃莃袆袂莂蒅虿膁莂薇袄肇莁蚀蚇羃蒀荿袃衿肆蒂蚆螅肅薄袁膃肅莄蚄聿肄蒆罿羅肃薈螂袁肂蚀薅膀肁莀螀肆膀蒂薃羂腿薅蝿袈腿芄薂螄膈蒇螇膃膇蕿蚀聿膆蚁袅羅膅莁蚈袁膄蒃袄螇芃薆蚆肅芃芅袂羁节莈蚅袇芁薀袀袃芀蚂螃膂艿莂薆肈芈蒄螁羄芇薆薄袀莇芆螀螆莆莈薂肄莅蒁螈肀莄蚃薁羆莃莃袆袂莂蒅虿膁莂薇袄肇莁蚀蚇羃蒀荿袃衿肆蒂蚆螅肅薄袁膃肅莄蚄聿肄蒆罿羅肃薈螂袁肂蚀薅膀肁莀螀肆膀蒂薃羂腿薅蝿袈腿芄薂螄膈蒇螇膃膇蕿蚀聿膆蚁袅羅膅莁蚈袁膄蒃袄螇芃薆蚆肅芃芅袂羁节莈蚅袇芁薀袀袃芀蚂螃膂艿莂薆肈芈蒄螁羄芇薆薄袀莇芆螀螆莆莈薂肄莅蒁螈肀莄蚃薁羆莃莃袆袂莂蒅虿膁莂薇袄肇莁蚀蚇羃蒀荿袃衿肆蒂蚆螅肅薄袁膃肅莄蚄聿肄蒆罿羅肃薈螂袁肂蚀薅膀肁莀螀肆膀蒂薃羂腿薅蝿袈腿芄薂螄膈蒇螇膃膇蕿蚀聿膆蚁袅羅膅莁蚈袁膄蒃袄螇芃薆蚆肅芃芅袂羁节莈蚅袇芁薀袀袃芀蚂螃膂艿莂薆肈芈蒄螁羄芇薆薄袀莇芆螀螆莆莈薂肄莅蒁螈肀莄蚃薁羆莃莃袆袂莂蒅虿膁莂薇袄肇莁蚀蚇羃蒀荿袃衿肆蒂蚆螅肅薄袁膃肅莄蚄聿肄蒆罿羅肃薈螂袁肂蚀薅膀肁莀螀肆膀蒂薃羂腿薅蝿袈腿芄薂螄膈蒇螇膃膇蕿蚀聿膆蚁袅羅膅莁蚈袁膄蒃袄螇芃薆蚆肅芃芅袂羁节莈蚅袇芁薀袀袃芀蚂螃膂艿莂薆肈芈蒄螁羄芇薆薄袀莇芆螀螆莆莈薂肄莅蒁螈肀莄蚃薁羆莃莃袆袂莂蒅虿膁莂薇袄肇莁蚀蚇羃蒀荿袃衿肆蒂蚆螅肅薄袁膃肅莄蚄聿肄蒆罿羅肃薈螂袁肂蚀薅膀肁莀螀肆膀蒂薃羂腿薅蝿袈腿芄薂螄膈蒇螇膃膇蕿蚀聿膆蚁袅羅膅莁蚈袁膄蒃袄螇芃薆蚆肅芃芅袂羁节莈蚅袇芁薀袀袃芀蚂螃膂艿莂薆肈芈蒄螁羄芇薆薄袀莇芆螀螆莆莈薂肄莅蒁螈肀莄蚃薁羆莃莃袆袂莂蒅虿膁莂薇袄肇莁蚀蚇羃蒀荿袃衿肆蒂蚆螅肅薄袁膃肅莄蚄聿肄蒆罿羅肃薈螂袁肂蚀薅膀肁莀螀肆膀蒂薃羂腿薅蝿袈腿芄薂螄膈蒇螇膃膇蕿蚀聿膆蚁袅羅膅莁蚈袁膄蒃袄螇芃薆蚆肅芃芅袂羁节莈蚅袇芁薀袀袃芀蚂螃膂艿莂薆肈芈蒄螁羄芇薆薄袀莇芆螀螆莆莈薂肄莅蒁螈肀莄蚃薁羆莃莃袆袂莂蒅虿膁莂薇袄肇莁蚀蚇羃蒀荿袃衿肆蒂蚆螅肅薄袁膃肅 计算机网络课程设计报告学号:0705010225姓名:李海波指导老师:刘桂开完成日期:2010.9.14课程设计题目:网络聊天程序的设计与实现了解socket通信的原理,在此基础上编写一个聊天程序。课程设计内容1、tcp/ip协议与winsock网络程序接口的关系winsock不是一种网络协议,它只是一个网络编程接口,也就是说,它不是协议,但是它可以访问很多种网络协议,它实质上是一些协议的封装。现在的winsock已经基本上实现了与协议无关。使用winsock可以调用多种协议的功能。实际上winsock是tcp/ip协议的一种封装,可以通过调用winsock的接口函数来调用tcp/ip的各种功能,例如可以使用wincock的接口函数send()来调用tcp/ip的发送数据功能。2、tcp/ip协议的相关知识tcp/ip协议包含的范围非常的广泛,他是一种四层协议,包含了各种硬件、软件需求的定义。tcp/ip协议确切的说法应该是tcp/udp/ip协议。udp协议,是一种保护消息边界的,不保障可靠数据的传输。tcp协议,是一种流传输的协议。它提供可靠的、有序的、双向的、面相连的传输。保护消息边界,就是指传输协议把数据当做一条独立的消息在网上传输,接收端只能接受独立的消息。也就是说存在保护消息边界,接收端一次只能接收发送端发出的一个数据包。而面向流则是指无保护消息保护边界的,如果发送端连续发送数据,接收端有可能在一次接收动作中,会接受两个或者更多的数据包。udp协议的保护消息边界使得每一个消息都是独立的。而流传输,却把数据当做一串数据流,它不认为数据是一个一个消息。所以有很多人在使用tcp协议通讯的时候,并不清楚tcp是基于流的传输,当连续发送数据的时候,他们时常会认识tcp会丢包。其实不然,因为当他们使用的缓冲区足够大时,他们有可能会一次接收到两个甚至更多的数据包,而很多人往往会忽视这一点,只分析检查了一个数据包,而已经接收的其他数据包却被忽略了3、winsock的函数int wsastarup(word wversionrequested,lpwsadata lpwsadata);wversiongrequested是我们要求使用的winsock的版本。这个函数可以初始化winsock。socket socket(int a,int tupe,int protocol);创建套接字函数。套接字是winsock通讯的核心。winsock通讯的所有数据传输,都是通过套接字来完成的,套接字包含了两个信息,一个是ip地址,一个是port端口号,使用这两个信息,就可以通过绑定函数来实现这种联系。int bind(socket s,const struct sockaddr far*name,int namelen);绑定函数。通过绑定函数来实现把自己的通讯地址跟创建的套接字创建联系。函数中的struct sockaddr_instuct sockaddr_in;short sin_family;u_shortsin_port;struct in_addrsin_addr;char sin_sero8;包含了需要建立连接的本地地址,包括地址族、ip和端口信息。sin_family字段必须把它设为af_inet,这是告诉winsock使用的是地址族。sinprot就是要用来通讯的端口号。sin_addr就是要用来通讯的ip地址信息。int listen(socket s,int backlog);监听函数把套接字转成监听模式。int accept(socket s,struct sockaddr far*addr,int far* addrlen);用于接收客户端的请求。int connect(socket s,const struct sockaddr far*name,int namelen);用于连接客户端。int send(socket s,char far* buf,int len,int flags);int recv(socket s,char far* buf,int len,int fags);用来接受和发送数据,因为tcp连接时双向的。int shutsown(socket s,int how);关闭套接字的指定功能。int closesocket(socket s);用来关闭套接字句柄。int函数如果调用失败的话,返回的都是socket_error。课程设计步骤一、 sockets(套接字)编程有三种,流式套接字,数据报套接字,原始套接字;基于tcp的socket编程是采用的流式套接字。在这个程序中,将两个工程添加到一个工作区,要连接一个ws2_32.lib的库文件。二、 服务器端编程的步骤:1. 加载套接字库,创建套接字;2. 绑定套接字到一个ip和一个端口上;3. 将套接字设置为监听模式等待连接请求;4. 用返回的套接字进行通信,进入聊天部分直到结束;5. 返回,等待另一个连接请求;6. 关闭套接字,关闭加载的套接字库。三、 客户端编程的步骤:1. 加载套接字库;2. 向服务器发送连接请求;3. 和服务器进行通信,直到结束;4. 关闭套接字,关闭加载的套接字库。四、 流程图a) 客户端端程序流程图开始加载套接字库创建套接字绑定套接字向服务器发送申请向客户端发送信息接收客户端信息继续发送?关闭连接关闭套接字库是否结束b) 服务器端程序流程图开始加载套接字库创建套接字绑定套接字向服务器发送申请向客户端发送信息接收客户端信息继续发送?关闭连接关闭套接字库是否结束等待连接否是调试过程在编程过程中出现的问题很多,在这里我不能一一描述,我只把在课程设计过程中出现比较频繁,产生困扰比较大的几个问题在这里进行描述。1、没有加载相应的库文件因为vc中socket的编程需要加载一个名为ws_32.lib的库文件才能成功的加载头文件,并成功的调用函数进行socket的编程。如果没有加载库文件,就会提示许多不认识的名字,即所有的socket函数都别认为是未定义变量。2、活动过程的切换因为这次编程,我第一接触建立工作区。在工作区里建立服务器和客户端的两个工程。而在debug和build的时候都必须把当前工程切换为活动工程。由于以前没有接触过,我长期编译着服务器的代码,却一直没有成果生成客户端的代码。而当同时运行两个客户端时就会出现不可预料的错误,困扰我很久。3、scanf(“%d”,&a);这次我饱受这个简单语句的煎熬。因为我的程序中有某个scanf语句遗漏了取地址符“&”。可是程序在debug过程中没有提示错误。但是运行的时候就会发生莫名错误,无法得到预期的结果。发送方发送的数据不正确,接收方接受的也是乱字符。可是我一遍遍检查程序始终没有发现这个细小错误。最后我不得不把所有的代码删掉,重新输入了一次。4、太多的goto语句本来我想做一个功能比较完善的程序。程序中不断运用大量的goto语句。而出人预料的事,在我完成程序的时候却发现程序总是产生不知名错误。可是大量goto语句导致我逻辑非常的混乱,代码可阅读性几乎没有。我自己都无法很好的查找错误。最后,我只好放弃了所有的代码。而这个时候已经临近课程设计结束,我只好做了一个最简单的程序来完成课程设计。这个教训我会记住,提高程序可阅读性并非空穴来风。课程设计结果及结果分析程序生成的可执行文件server和client可以正常的运行。并且双方可以进行任意的信息交换,并且可以在要结束对话时结束彼此的对话。结束对话后,两人的连接断开。但是在聊天的过程中只能由客户端先发送信息给服务器。而且对话过程必须是一人一句的进行,没有能实现信息任意发送的即时性。本来在程序的最初规划的时候,我本来打算实现接收和发送信息的同时进行和即时性。可是由于两次编程的失败,导致我在最后没有充裕的时间来完成最初的规划。而课程设计的最后检测来临,我只好做了一个相对简单的程序来完成这次课程设计的课业要求。由于客户端和服务端的聊天函数只是一个简单的while语句,所以导致了只能单对单通信的尴尬局面。心得体会应指导老师要求,这次课程设计必须使用c语言进行winsocket的编程。通过编写聊天程序,我理解和掌握了计算机网络的基本工作原理及其工作过程。对socket的功能和使用方法及其工作原理有了初步的了解,对c语言编程有了更深层次的了解。通过对winsocket的使用,让我了解了套接字计算机网络编程和信息交换的基本流程和基本方法。虽然我知道我对winsocket的了解很少,但是正所谓“师傅领进门,修行在个人”。人们大部分的知识的获取途径并不是直接通过老师传授的,而是在大量的日后实践运用中发现问题和解决问题的过程中不断地自己获取的。现在我已经对winsocket的基本体系有所掌握,相信在日后的学习生活中我可以逐渐熟练地掌握它的多种应用。这次编程使用c语言让我发现了我自己在c语言编程中的很多问题。老师的话让我感触颇深,在学校要学本领。在学校,我们要用最基本的,最笨拙的方法来完成课程设计,这样我们就可以跟家牢固的,更加熟练地掌握技术的原理。这次编程中,我发现由于对c语言的长期没有复习,已经遗忘了很多部分。温故而知新,是我这次课程设计在c语言方面的收获。编程中,我曾经尝试使用mfc 编程,来建立可视化界面。但是由于在此之前没有接触过mfs编程,而且我们时间又非常的紧迫。在面临大量问题无法解决的情况下,我只好选择了放弃mfc。这不失为此次课程设计我个人的一大遗憾。最后感谢老师给我们这次课程设计的机会,让我可以在实际编程中,灵活的运用在网络课本中学来的知识。加深了我对计算机网络工作原理的了解。附录:服务器代码#include#includevoid main()word wversionrequested=1;wsadata wsadata;int err;int c=1;socket server,client;char sendbuf50;char receivebuf50;wversionrequested=makeword(1,1);err=wsastartup(wversionrequested,&wsadata);if(err!=0)printf(初始化失败!); return;if(lobyte(wsadata.wversion)!=1|hibyte(wsadata.wversion)!=1) wsacleanup();return;server= socket(af_inet,sock_stream,0);sockaddr_in cliaddr;sockaddr_in seraddr;seraddr.sin_addr.s_un.s_addr=htonl(inaddr_any);seraddr.sin_port=htons(6000);seraddr.sin_family=af_inet;bind(server,(sockaddr*)&seraddr,sizeof(seraddr);listen(server,5);int clen=sizeof(sockaddr);client =accept(server,(sockaddr*)&cliaddr,&clen);while(c!=0)recv(client,receivebuf,50,0);printf(客户端说:%sn,receivebuf);printf(我说: );gets(sendbuf);send(client,sendbuf,50,0);printf(继续发送输入1,停止发送输入0n);scanf(%d,&c);closesocket(client);客户端代码:#include#includevoid main()word wversionrequested;wsadata wsadata;int err;char sendbuf50;char receivebuf50;wversionrequested=makeword(1,1);err=wsastartup(wversionrequested,&wsadata);if(err!=0)return;if(lobyte(wsadata.wversion)!=1|hibyte(wsadata.wversion)!=1) wsacleanup();return;sockaddr_in cliaddr;cliaddr.sin_addr.s_un.s_addr=inet_addr(127.0.0.1);cliaddr.sin_family=af_inet;cliaddr.sin_port=htons(6000);printf(请输入你要发送的内容n);connect(client,(sockaddr*)&cliaddr,sizeof(sockaddr);while(c!=0)printf(我说: );gets(sendbuf);send(client,sendbuf,strlen(sendbuf)+1,0);recv(client,receivebuf,50,0);printf(服务器发的数据:%sn,receivebuf);printf(继续发送输入1,否则输入0n);scanf(%d,&c);closesocket(client);wsacleanup(); 莀螀肆膀蒂羆羂腿薅蝿袈腿螇薂芇膈蒇袇膃膇蕿蚀聿膆蚁袅羅膅莁蚈袀芄蒃袄腿芃薆蚆肅芃蚈袂肁节蒈蚅羇芁薀羀袃芀蚂螃膂艿莂羈肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈薂膄莅薁螈肀莄蚃蚁羆莃莃袆袂莂蒅虿膁莁薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅肃薈螂袁肂蚀羈膀膁莀螀肆膀蒂羆羂腿薅蝿袈腿螇薂芇膈蒇袇膃膇蕿蚀聿膆蚁袅羅膅莁蚈袀芄蒃袄腿芃薆蚆肅芃蚈袂肁节蒈蚅羇芁薀羀袃芀蚂螃膂艿莂羈肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈薂膄莅薁螈肀莄蚃蚁羆莃莃袆袂莂蒅虿膁莁薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅肃薈螂袁肂蚀羈膀膁莀螀肆膀蒂羆羂腿薅蝿袈腿螇薂芇膈蒇袇膃膇蕿蚀聿膆蚁袅羅膅莁蚈袀芄蒃袄腿芃薆蚆肅芃蚈袂肁节蒈蚅羇芁薀羀袃芀蚂螃膂艿莂羈肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈薂膄莅薁螈肀莄蚃蚁羆莃莃袆袂莂蒅虿膁莁薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅肃薈螂袁肂蚀羈膀膁莀螀肆膀蒂羆羂腿薅蝿袈腿螇薂芇膈蒇袇膃膇蕿蚀聿膆蚁袅羅膅莁蚈袀芄蒃袄腿芃薆蚆肅芃蚈袂肁节蒈蚅羇芁薀羀袃芀蚂螃膂艿莂羈肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈薂膄莅薁螈肀莄蚃蚁羆莃莃袆袂莂蒅虿膁莁薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅肃薈螂袁肂蚀羈膀膁莀螀肆膀蒂羆羂腿薅蝿袈腿螇薂芇膈蒇袇膃膇蕿蚀聿膆蚁袅羅膅莁蚈袀芄蒃袄腿芃薆蚆肅芃蚈袂肁节蒈蚅羇芁薀羀袃芀蚂螃膂艿莂羈肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈薂膄莅薁螈肀莄蚃蚁羆莃莃袆袂莂蒅虿膁莁薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅肃薈螂袁肂蚀羈膀膁莀螀肆膀蒂羆羂腿薅蝿袈腿螇薂芇膈蒇袇膃膇蕿蚀聿膆蚁袅羅膅莁蚈袀芄蒃袄腿芃薆蚆肅芃蚈袂肁节蒈蚅羇芁薀羀袃芀蚂螃膂艿莂羈肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈薂膄莅薁螈肀莄蚃蚁羆莃莃袆袂莂蒅虿膁莁薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅肃薈螂袁肂蚀羈膀膁莀螀肆膀蒂羆羂腿薅蝿袈腿螇薂芇膈蒇袇膃膇蕿蚀聿膆蚁袅羅膅莁蚈袀芄蒃袄腿芃薆蚆肅芃蚈袂肁节蒈蚅羇芁薀羀袃芀蚂螃膂艿莂羈肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈薂膄莅薁螈肀莄蚃蚁羆莃莃袆袂莂蒅虿膁莁薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅肃薈螂袁肂蚀羈膀膁莀螀肆膀蒂羆羂腿薅蝿袈腿螇薂芇膈蒇袇膃膇蕿蚀聿膆蚁袅羅膅莁蚈袀芄蒃袄腿芃薆蚆肅芃蚈袂肁节蒈蚅羇芁薀羀袃芀蚂螃膂艿莂羈肈芈蒄螁羄莇薆羇袀莇虿螀膈莆莈薂膄莅薁螈肀莄蚃蚁羆莃莃袆袂莂蒅虿膁莁薇袄肇蒁蚀蚇羃蒀荿袃衿葿蒂蚆芇蒈蚄袁膃蒇螆螄聿蒆蒆罿羅肃薈螂袁肂蚀羈膀膁莀螀肆膀蒂羆羂腿薅蝿袈腿螇薂芇膈蒇袇膃膇蕿蚀聿膆蚁袅羅膅莁蚈袀
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025夜景旅游行业市场系统观察及文化体验与消费升级策略分析报告
- 2025基因检测样本与静脉生物特征库联动伦理审查
- 2025在线教育平台商业模式转型与政策合规发展研究报告
- 2025商业航天行业竞争格局分析及发展趋势与投融资策略研究报告
- 美甲美发合伙合同范本
- 2025年新能源汽车充电市场产业链上下游协同发展报告
- 销售配送蛋糕合同范本
- 2025年新能源汽车车路协同通信技术产业生态链构建与优化报告
- 鼻咽癌创新治疗药行业2026-2030年产业发展现状及未来发展趋势分析研究
- 广东省深圳市龙岗区华中师范大学龙岗附中2024-2025学年九年级上学期期中英语试题(含答案)
- 高中英语新课标3000词汇表(新高考)
- 宣传物料印刷合同范本3篇
- 2025年黑龙江省交通投资集团招聘笔试参考题库含答案解析
- 医院2025年人才工作总结和2025年工作计划
- 初中生心理健康家长会
- 手术室与科室沟通内容
- 【MOOC】健康传播:基础与应用-暨南大学 中国大学慕课MOOC答案
- 幼儿园课件-中班科学课件:《种子在哪里》
- 人音版七年级音乐上册教案全册
- 基于人工智能的供应链物流优化合同
- 20以内的加法口算练习题4000题 205
评论
0/150
提交评论