




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
指导老师评阅成绩表指导老师评阅成绩表 学习与工作 态度 30 选题的价值与 意义 10 文献综 述 10 研究水平与设 计能力 20 课程设计说明说 论 文 撰写质量 20 学术水平与创 新 10 总分 指导老师签名 年 月 日 课程设计答辩记录及评价表课程设计答辩记录及评价表 学生 讲述情况 教师主要 提问记录 IP 地址是怎么判断合不合法的 怎么把 FORM 的名字改了 字体大小和颜色的改变是怎么实现的 Encoding UTF8 GetBytes 编码是怎么实现的 为什么要用这个 正则表达式的 和 有什么区别 学生回答 问题情况 1 调用函数 public static bool CheckIPAddress string IP 来完成的 IP 验证 2 在 Form 的属性里面修改 Text 就可以了 3 添加 menuStrip1 控件 添加字体项目 调用设置方法就可以完成了 4 用这个编码可以把汉字编码 5 0 9 3 4 的意思是匹配 0 9 之间的数至少三次之多四次 也就是说整则表达式的 表示匹配一个 表示匹配多少次 评价参考标准 评分项目 分 值优良中及格差 评分总分 选题的价值与意义 1098764 文献综述 1098764 研究水平与设计能力 201917151310 课程设计说明书 论 文 撰写质量 201917151310 学术水平与创新 1098764 答辩评分 答辩效果 302825221915 是否同意论文 设计 通过答辩 同意 不同意 答辩小组成员签名 答辩小组组长签名 年 月 日 课程设计成绩评定表课程设计成绩评定表 评分项目评分比例分数 课程设计总 分 成绩汇总 指导老师评分 50 答辩小组评分 50 成成 都都 信信 息息 工工 程程 学学 院院 课课 程程 设设 计计 题目 异步题目 异步 TCP 简单通信程序简单通信程序 作者姓名 作者姓名 纪纪 红红 班班 级 级 信息安全信息安全 0808 级四班级四班 学学 号 号 20081221272008122127 指指导导教教师师 林宏刚林宏刚 日日 期 期 20112011 年年 6 6 月月 2121 日日 作者签名 摘摘 要要 随着计算机网络技术的飞速发展 比如基于互联网的信息发布 通信 数 据共享等等 网络技术越来越受到人们的重视 它已逐渐渗入我们生活的各个 层面 网络聊天工具在丰富的网络生活中也扮演了重要的角色 随着计算机网 络技术的发展 很多政府机构 企业 学校 都是先以一个统一的局域网联结 在一起 再分别接入 INTERNET 因此基于局域网的即时通信工具 就这样应运 而生了 所以本系统主要完成了在局域网内的简单异步聊天功能 并在 WINDOWS 平台上加以了实现 程序分为客户端和服务器端两个程序 用多线程实 现不同的并行任务 并进行了人性化的界面设计 使用起来更加简单方便 并 且功能十分合理 又易于扩展以及个性化定制 本文通过局域网聊天系统来具 体共享内存实现进程间的数据交换 利用 windows 消息机制实现进程间的同步 两种机制结合使用 关键词关键词 异步聊天 局域网 即时通信 客户端 服务端 多线程 进程同 步 1 引言引言 1 1 1 课题背景 1 1 2 国内外现状 1 1 3 本课题研究的迫切性 2 1 4 本课题的研究作用 2 1 5 本文的主要工作 2 2 TCP 异步聊天系统需求分析及开发工具异步聊天系统需求分析及开发工具 2 2 1 系统目标 2 2 2 系统应具备的基本功能 3 2 3 1 运行环境 3 2 3 2 C 网络编程技术介绍 3 2 3 3Visual Studio 开发环境介绍 4 3 系统总体结构设计系统总体结构设计 5 3 1 基本简介 5 3 2 系统功能模块设计 5 3 2 1 客户端 5 3 2 2 服务器端 6 4 系统流程实现系统流程实现 7 4 1 系统设计流程 7 4 2 详细设计 7 5 系统测试与分析系统测试与分析 16 5 1 测试 16 结论结论 16 参考文献参考文献 17 第 0 页 共 22 页 1 1 引言引言 1 1 课题背景课题背景 近年来 随着全球信息化进程的不断发展 网络也在飞速发展 出于高效 快速地处理各种事务的目的 越来越多的企业在其内部使用局域网来进行工作 在内部局域网的帮助下 企业得以简化信息流程 提高信息交换的速度 从而 提高工作效率 然而 随着企业规模的扩大 业务量的增加 在局域网上运行 的应用越来越多 如知识库 网络会议 数据库应用和数据的同步与备份等 这些应用对局域网的信息吞吐 处理能力的要求也越来越高 这些在企业内部 原有局域网设计之初未曾考虑到的新情况的出现使得局域网不堪重负 容易发 生信息阻塞 此时 局域网不但不能提高生产效率 反而成为企业发展的瓶颈 为了解决上述矛盾 人们提出了许多方法 提升网络带宽及增加服务器的 吞吐能力是解决此矛盾的一种方法 然而 从企业运行的成本方面考虑 无论 是单纯地提升网络带宽或增加服务器的吞吐能力都不能从根本上解决局域网资 源紧张的问题 对旧有局域网的大规模硬件改造反而会增加企业的负担 本系统是一种基于 Socket 的局域网通信工具的设计与实现方法 基于 Socket 的局域网通信软件可以为企业原有的局域网提供一种良好 安全 快速 的通信机制 它的实现无需对企业原有的局域网硬件进行任何改动 具有实现 成本低廉的优点 它的使用能有效地降低局域网通信负荷 提高局域网的使用 效率 可以很好地解决企业内部局域网的各种通信需求 基于 Socket 的局域网聊天工具是此类局域网通信软件的具体实例之一 它 很好地诠释了 Socket 通信的原理 并且在企业内部通信 教学 讨论等应用中 都具有一定的实用价值 它具有信息收发速度快 保密性好 占用网络带宽资 源低 占用服务器吞吐能力低 易于编程实现等优点 基于 Socket 的局域网通信软件应用范围广阔 不但可以处理传统的通信需 求 而且也能扩展以适应新型的网络应用 如网络教育 数据影音传输等 拥 有广泛的应用前景 1 2 国内外现状国内外现状 基于局域网的即时通信工具 实际上是互联网即时通信工具的一个小规模 版本 广域网上的即时通信工具 如今一般采用 UDP 或者 TCP 协议体系来实 现 开发技术已经比较成熟 比如较早的 ICQ MSN Messanger Yahoo 通这 第 1 页 共 22 页 些国外开发的产品 还有国产的有名的 QQ 新浪 UC LAVA LAVA 等 这些 工具统统都实现了广域网上的即时通信 尽管都是即时通信 实现了即时聊天 以及文件传输的主要功能 但是也各有各的特色 比如 ICQ 的巨大客户群 MSN 的个性化表情 YAHOO 通的易操作性等 而 QQ 也具有一个相当方便的 屏幕截图功能 另外就是 所有上述软件都实现了网络即时的视频 语音聊天 功能 这些软件 在使用方面各有特色 在实现方面也各有所长 但基于这些 产品正在商业运营阶段 其实现方式属于商业机密 具体细节不可能得知 但 是它在大的方面无非就是各种利用各种平台上的网络通信接口 建构基于下层 TCP IP 或者 UDP IP 协议的软件产品 在局域网内 这些功能的实现跟广域网 相比更加简单 因为局域网的网络结构本身比广域网要复杂 但是又可以借些 理解网络协议 以及网络通信工具的实现原理 所以仍然极具研究价值 1 3 本课题研究的本课题研究的迫切性迫切性 随着计算机网络技术的发展 很多政府机构 企业 学校 都是先以一个 统一的局域网联结在一起 再分别接入 INTERNET 因此基于局域网的即时通信 工具 就这样应运而生了 所以本系统主要完成了在局域网内的简单异步聊天 功能 并在 WINDOWS 平台上加以了实现 程序分为客户端和服务器端两个程序 1 4 本课题的研究本课题的研究作用作用 所以本系统主要完成了在局域网内的简单异步聊天功能 并在 WINDOWS 平 台上加以了实现 程序分为客户端和服务器端两个程序 用多线程实现不同的并 行任务 并进行了人性化的界面设计 使用起来更加简单方便 并且功能十分 合理 又易于扩展以及个性化定制 本文通过局域网聊天系统来具体共享内存 实现进程间的数据交换 利用 windows 消息机制实现进程间的同步 两种机制 结合使用 1 5 本文的主要工作本文的主要工作 本文主要工作是设计一个基于 WINDOWS 平台的局域网即时聊天工具 然 后阐述本软件的功能 特点及使用方法 并详细阐述开发本软件所用的相关技 术 具体分析本软件的各个模块的功能及实现方法 说明本软件的设计思想及 方法 第 2 页 共 22 页 2 TCP2 TCP 异步聊天系统需求分析及开发工具异步聊天系统需求分析及开发工具 2 1 系统目标系统目标 1 用户端之间的信息发送 本程序需要实现的最基本的功能 2 在线用户主机名列表的维护 3 在 C S 模式中 服务器与客户端是相互依赖的 4 操作简单 界面简洁美观 有背景 有字体设置 有表情选择等 2 2 系统应具备的基本功能系统应具备的基本功能 启动服务器端启动客户端 等待客户的连接请求 向服务器端发送连接请 求 接收客户端的连接请求 发送 welcome 聊天 2 32 3 开发环境及工具开发环境及工具 2 3 1 运行环境运行环境 Windows 系统在装有 Visual studio2005 及以上版本的系统 2 3 2 C 网络编程技术介绍网络编程技术介绍 NET 提供了两个用于网络编程的名空间 System Net 和 System Net Sockets 这些类和方法可以帮助我们进行网络编程 通过网络进行通信 通信可以是面向连 第 3 页 共 22 页 接的 也可以是面向无连接的 既可以采用数据流模式 也可以采用数据报的模式 广泛使用的 TCP 协议用基于数据流的通信 而 UDP 协议用于基于数据报的通信 System Net Sokcets Socket 是 System Net Sockets 名空间下面一个非常重要的类 每一个套接字的实例都有一个本地的和一个远程的端点附加在上面 本地的端点 包括了当前套接字实例的连接信息 NET 还提供了其它的一些类用于我们进行网络编程 像 IPEndPoint IPAddress SocketException 等等 NET 支持同步和异步两种在客户机和服务器 之间的通信方式 NET 提供了不同的方法用于支持这两种类型的通信 同步的方 法工作在阻塞模式 方法在工作完成之前是不返回的 但是异步的方法工作在非阻 塞模式 但是立即返回的 可能在操作完成之前 Dns 类位于 S 名空间下 它用于创建和发送一个请求用于从 DNS 服务器 获取一个主机服务器的信息 当然 在访问 DNS 之前 机器必须首先要连接到网络 上 当在一台独立的机器上执行 DNS 查询时 由于无法连接到 DNS 服务器 就会 产生一个 Systm Net SocketException 异常 这个类的所有成员方法都是静态的 这 个类中最重要的方法是 public static IPHostEntry GetHostByAddress string address 地址应该是一个用点开的正确的 IP 地址 这个方法返回一个 IPHostEntry 实例 它包括了主机的信息 如果 DNS 服务器不可用 这个方法将产生一个 SocketException 异常 public static string GetHostName 这个方法返回本地机器的 DNS 服务器名称 public static IPHostEntry Resolve string hostname 这个方法解析 一个 DNS 主机名称或 IP 地址为一个 IPHostEntry 实例 主机名称应该是一个用 点分开的 IP 地址 如 127 0 0 1IPHostEntry 类 IPHostEntry 类是一个容器类 它 包含 INTERNET 上主机的地址信息 这个类不是线程安全的 下面是这个类的几 个重要成员 AddressList 属性 该属性给出一个 IPAddress 的数组 可以获取或设 置与主机关联的 IP 地址列表 Aliases 属性 该属性用于获取或设置与主机关联 的别名列 ManualResetEvent 允许线程通过发信号互相通信 通常 此通信涉及一个线程在其他线程 进行之前必须完成的任务 当一个线程开始一个活动 此活动必须完成后 其他线程才能 开始 时 它调用 Reset 以将 ManualResetEvent 置于非终止状态 此线程可被视为控制 ManualResetEvent 调用 ManualResetEvent 上的 WaitOne 的线程将阻止 并等待信号 当控制线程完成活动时 它调用 Set 以发出等待线程可以继续进行的信号 并释放所有等 待线程 一旦它被终止 ManualResetEvent 将保持终止状态 直到它被手动重置 即对 WaitOne 的调用将立即返回 可以通过将布尔值传递给构造函数来控制 ManualResetEvent 的初始状态 如果初始状态处于终止状态 为 true 否则为 false 2 3 3Visual Studio 开发环境介绍开发环境介绍 Visual Studio 2005 和 NET Framework 2 0 将在应用程序开发的所有方面取 得大幅进展 首先 Visual Studio 2005 根据开发人员个人的需要调整软件开 发体验 设置新的开发人员工作效率标准 这一 个性化工作效率 将在开发环 境和 NET Framework 类库中提供相应的功能 以帮助开发人员在最少的时间 内克服其最为紧迫的困难 其次 Visual Studio 2005 使开发人员能够通过与 第 4 页 共 22 页 Microsoft Office System 和 SQL Server 2005 的更好集成 在更广泛的应用 程序开发方案中应用现有的技能 最后 Visual Studio 2005 将提供一组新的 工具和功能 以满足目前大规模企业的应用程序开发需要 3 3 系统总体结构设计系统总体结构设计 3 1 基本简介基本简介 1 首先启动服务器端和客户端 2 服务器端开始监听 3 客户端开始连接 4 服务器端接收客户端的连接请求 5 建立连接 6 开始聊天 7 加入了表情 字体 颜色等的设计 第 5 页 共 22 页 3 2 系统功能模块设计系统功能模块设计 3 2 1 客户端客户端 第 6 页 共 22 页 3 2 2 服务器端服务器端 第 7 页 共 22 页 4 4 系统流程实现系统流程实现 4 1 系统设计流程系统设计流程 服务器端 用 socket 方法建立套接字 用 bind 方法把套接字与本 地地址绑定 用 Listen 方法准备好连接 用 accept 方法接受连接 并等待 client 端连接 如连接已建立 accept 返 回新的套接字 用 Receive 和 send 方法在 套接字上做数据交换 进行连接 数据交换 Shutdown 方法用于释放连 接 关闭套接字 服务结束 用 socket 方法建立套接字 用 connect 方法把套接字 与 server 端相连 用 Receive 和 send 方法在 套接字上做数据交换 Shutdown 方法用于释放连 接 关闭套接字 服务结束 客户端 4 2 详细设计详细设计 一 服务器端 开始监听 开始服务器 第 8 页 共 22 页 private void button2 Click object sender EventArgs e 侦听客户连接请求 Thread myThread new Thread new ThreadStart AcceptConnection myThread Start button2 Enabled false button3 Enabled true private void AcceptConnection IPAddress ip Dns GetHostAddresses Dns GetHostName IPAddress ip IPAddress Any listener new TcpListener ip 58888 listener Start while isExit false try allDone Reset 应用在异步操作完成时调用的回调方法 AsyncCallback callback new AsyncCallback AcceptTcpClientCallBack listBoxStatus Invoke setlistboxcallback 开始等待连接 开始接受客户端的连接 listener BeginAcceptTcpClient callback listener allDone WaitOne 使当前进程挂起 知道接收到客户的连接 catch Exception e listBoxStatus Invoke setlistboxcallback e Message break 异步操作完成时调用的回调方法 private void AcceptTcpClientCallBack IAsyncResult iar try allDone Set 设置无信号状态的事件 TcpListener mylistener TcpListener iar AsyncState 异步接收传入的连接 并建立新的 TcpClient 对象处理信息 TcpClient client mylistener EndAcceptTcpClient iar listBoxStatus Invoke setlistboxcallback 已接受客户连接 client Client RemoteEndPoint 第 9 页 共 22 页 comboBox1 Invoke setcomboboxcallback client Client RemoteEndPoint ToString DataReadWrite datareadwrite new DataReadWrite client clientlist Add datareadwrite SendString datareadwrite welcome datareadwrite ns BeginRead datareadwrite read 0 datareadwrite read Length ReadCallBack datareadwrite catch Exception e listBoxStatus Invoke setlistboxcallback e Message return 从客户端读取信息处理的异步回调方法 private void ReadCallBack IAsyncResult iar try DataReadWrite datareadwrite DataReadWrite iar AsyncState int recv datareadwrite ns EndRead iar richTextBox1 Invoke setrichtextboxcallback string Format 0 1 datareadwrite client Client RemoteEndPoint System Text Encoding UTF8 GetString datareadwrite read 0 recv if isExit false datareadwrite InitReadArray datareadwrite ns BeginRead datareadwrite read 0 datareadwrite read Length ReadCallBack datareadwrite catch Exception e listBoxStatus Invoke setlistboxcallback e Message 向客户端发送数据的方法 private void SendString DataReadWrite datareadwrite string str try datareadwrite write System Text Encoding UTF8 GetBytes str r n datareadwrite ns BeginWrite datareadwrite write 0 datareadwrite write Length new AsyncCallback SendCallBack datareadwrite 第 10 页 共 22 页 datareadwrite ns Flush listBoxStatus Invoke setlistboxcallback string Format 向 0 发送 1 datareadwrite client Client RemoteEndPoint str catch Exception e listBoxStatus Items Add e Message 发送回调函数 private void SendCallBack IAsyncResult iar DataReadWrite datareadwrite DataReadWrite iar AsyncState try datareadwrite ns EndWrite iar catch Exception e listBoxStatus Invoke setlistboxcallback e Message comboBox1 Invoke removecomboboxcallback datareadwrite 移出客户 private void RemoveComboBoxItems DataReadWrite datareadwrite int index clientlist IndexOf datareadwrite comboBox1 Items RemoveAt index 状态显示 private void SetListBox string str listBoxStatus Items Add str listBoxStatus SelectedIndex listBoxStatus Items Count 1 listBoxStatus ClearSelected 接收客户端信息 private void SetReceiveText string str richTextBox1 AppendText str 添加客户 private void SetComboBox object obj 第 11 页 共 22 页 comboBox1 Items Add obj 发送数据 private void button1 Click object sender EventArgs e int index comboBox1 SelectedIndex if index 1 MessageBox Show 请先选择接收方 再单击发送 else string s1 服务器端 comboBox2 SelectedItem 对你说 string s2 richTextBox2 Text string sendstring s1 s2 DataReadWrite obj DataReadWrite clientlist index SendString obj sendstring 调用 SendString 方法发送数据 richTextBox2 Clear string selfstring 你对 0 comboBox2 SelectedItem 说 s2 r n richTextBox1 AppendText selfstring 服务器停止 private void button3 Click object sender EventArgs e isExit true allDone Set button2 Enabled true button3 Enabled false private void 字体 ToolStripMenuItem Click object sender EventArgs e FontDialog fontDialog new FontDialog fontDialog Color richTextBox1 ForeColor fontDialog AllowScriptChange true fontDialog ShowColor true if fontDialog ShowDialog DialogResult Cancel richTextBox1 SelectionFont fontDialog Font richTextBox1 SelectionColor fontDialog Color richTextBox2 SelectionFont fontDialog Font richTextBox2 SelectionColor fontDialog Color 第 12 页 共 22 页 private void Form1 Load object sender EventArgs e comboBox2 Items Add 笑着地 comboBox2 Items Add 高兴地 comboBox2 Items Add 含情脉脉地 comboBox2 Items Add 微笑地 comboBox2 Items Add 幸福地 comboBox2 Items Add 有点脸红地 comboBox2 Items Add 使劲安慰地 comboBox2 Items Add 自言自语地 comboBox2 Items Add 差点要哭地 comboBox2 Items Add 嚎啕大哭地 comboBox2 Items Add 一把鼻涕地 comboBox2 Items Add 不怀好意地 comboBox2 Items Add 神秘兮兮地 comboBox2 Items Add 不知所措地 comboBox2 Items Add 笑着地 二 服务器端 验证输入的 IP 地址是否符合标准 public static bool CheckIPAddress string IP string pattern d 1 2 1 d 2 2 0 4 d 25 0 5 3 d 1 2 1 d 2 2 0 4 d 25 0 5 System Text RegularExpressions Regex regex new System Text RegularExpressions Regex pattern if regex Match IP Success return true else return false private void buttonConnect Click object sender EventArgs e if CheckIPAddress textBoxIP Text true 第 13 页 共 22 页 client new TcpClient AddressFamily InterNetwork IPAddress IP Dns GetHostAddresses Dns GetHostName IPAddress ip IPAddress Parse textBoxIP Text AsyncCallback connectCallBack new AsyncCallback ConnectCallBack allDone Reset client BeginConnect ip 58888 connectCallBack client listBoxStatus Invoke setlistboxcallback string Format 本机终结点 0 client Client LocalEndPoint listBoxStatus Invoke setlistboxcallback 开始与服务器连接 allDone WaitOne else MessageBox Show Ip 地址输入错误 private void ConnectCallBack IAsyncResult iar allDone Set try client TcpClient iar AsyncState client EndConnect iar listBoxStatus Invoke setlistboxcallback string Format 与服务器 0 连接成 功 client Client RemoteEndPoint ns client GetStream DataRead dataRead new DataRead ns client ReceiveBufferSize ns BeginRead dataRead msg 0 dataRead msg Length ReadCallBack dataRead catch Exception e listBoxStatus Invoke setlistboxcallback e Message return private void ReadCallBack IAsyncResult iar try DataRead dataRead DataRead iar AsyncState int recv dataRead ns EndRead iar richTextBox1 Invoke setRichTextBoxReceiveCallBack 第 14 页 共 22 页 System Text Encoding UTF8 GetString dataRead msg 0 recv if isLive false dataRead new DataRead ns client ReceiveBufferSize ns BeginRead dataRead msg 0 dataRead msg Length ReadCallBack dataRead catch Exception e listBoxStatus Invoke setlistboxcallback e Message private void SendData string str try byte bytesdata System Text Encoding UTF8 GetBytes str r n ns BeginWrite bytesdata 0 bytesdata Length new AsyncCallback SendCallBack ns ns Flush catch Exception e listBoxStatus Items Add e Message private void SendCallBack IAsyncResult iar try ns EndWrite iar catch Exception e listBoxStatus Invoke setlistboxcallback e Message private void SetListBox string str listBoxStatus Items Add str listBoxStatus SelectedIndex listBoxStatus Items Count 1 listBoxStatus ClearSelected 第 15 页 共 22 页 private void SetRichTextBoxReceive string str richTextBox1 AppendText str private void Form1 FormClosing object sender FormClosingEventArgs e isLive true allDone Set private void button1 Click object sender EventArgs e string s1 comboBox3 SelectedItem 对你说 string s2 richTextBox2 Text string sendstring s1 s2 SendData sendstring richTextBox2 Clear string selfstring 你对服务器 comboBox3 SelectedItem 说 s2 r n richTextBox1 AppendText selfstring private void 字体 ToolStripMenuItem Click object sender EventArgs e FontDialog fontDialog new FontDialog fontDialog Color richTextBox1 ForeColor fontDialog AllowScriptChange true fontDia
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025非住宅小区房屋买卖合同协议书范本
- 2025关于实习协议、就业协议和劳动合同的差异与对比
- 2025专业技术人员劳动合同书范本
- 项目投资的风险管理
- 金牌组长能力培养体系
- 河南省九师联盟2024-2025学年高二下学期5月联考历史试卷
- 人教版小学语文三年级下册第一单元测试题
- 老年内科患者护理体系
- 海南大学微生物试题总结模版
- 电信外线员工作总结模版
- 电机学II知到智慧树章节测试课后答案2024年秋广东工业大学
- 抑郁症与rTMS治疗
- DB23T 3630-2023黑龙江省超低能耗建筑节能工程施工质量验收标准
- 吊篮安装安全技术交底
- T-CBIA 009-2022 饮料浓浆标准
- 2025届高三地理一轮复习课件第二部分+4.2区域发展对交通运输布局的影响
- 《快速时尚品牌》课件
- 2024中华人民共和国学前教育法详细解读课件
- 无人机在应急救灾领域下的应用
- 中华护理学会团体标准-气管切开非机械通气患者气道护理
- 数字经济学-课件 第1章 数字经济学基础
评论
0/150
提交评论