




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 客户管理系统 学 院 XXX 专 业XXX 班 级 学 号 姓 名 指导教师 教师职称 年月日 2 目录 目录 摘要 0 引言 1 系统需求分析 2 总体设计 1 项目规划 2 系统功能结构 3 设计目标 3 系统设计 1 开发及运行环境 2 数据库设计 4 技术准备 1 数据库的封装 2 封装 ADO 数据库的代码分析 5 主要功能模块设计 1 主窗体 2 客户信息 3 联系人信息 4 联系人信息查询 附录 A 参考文献 附录 B 数据表 摘要 摘要 科技的发展 时代的进步 市场经济的竞争也越发激烈与残酷 在竞争中客户作为市场的 最最要的资源 早已成为市场营销的核心 企业间谁拥有的客户多 谁就在竞争中占有绝对的 优势 在市场经济竞争如此激烈的环境之下 企业要想立于不败之地 就必须和与之生存发展 息息相关的客户 建立起良好的关系 在现有客户资源的基础之上 维护好和老客户的关系 并且不断的发展新的客户 用企业高品质的产品 优质的服务 良好的信誉树立企业在客户心 目中的良好形象 并以客户需求为己任 不断的创新与发展自身的产品 以满足客户新需求 并规范企业内部的客户资源的管理方式 提升企业的客户服务质量 计算机管理系统满足了企 业对自身客户资源管理的新要求 减少了客户资源管理过程中的浪费的大量人力 物力和财力 等 关键词 客户管理系统 0 引言 本系统具有完善的基础信息维护和客户信息维护功能 并增置了客户服务模块 满足了客 户日常管理的需求 强大的数据查询及图表分析功能 帮助企业能够及时根据分析结果进行新 规划和方案 以适应变化万千的消费市场 客户管理系统后台数据库采用 SQL Server 2000 数据 库 以保证数据的安全 高效和稳定 前台采用 Microsoft 公司的 Visual C 6 0 作为主要的开 发工具 其可与 SQL Server 2000 数据库无缝链接 1 系统需求分析 通过调查 要求系统需要有以下功能 详细全面记录并管理客户信息和联系人信息 方便实用的数据查询功能 能够根据客户的反馈得出相应的处理方法 做到快速 及时 对客户和企业进行分类 方便管理 设置业务往来的商品数量统计功能 通过计算机控制电话呼叫用户 2 总体设计 2 1 项目规划 客户管理系统所涉及的信息非常的全面 主要由基础信息维护 客户信息维护 客户服务 信息查询 系统管理和帮助信息等几个功能模块组成 规划系统功能模块如下 基础信息维护模块 基础信息维护模块主要包括区域信息设置 企业性质设置 企业类型设置 企业资信设置 客户级别设置和客户满意程度设置 6 部分 客户信息维护模块 客户信息维护模块主要包括客户信息 联系人信息 业务往来 客户呼叫中心 4 个部分 客户服务模块 客户服务模块主要包括客户反馈 客户投诉 2 个部分 信息查询模块 信息查询模块主要包括客户信息查询 联系人信息查询 客户反馈满意度查询和客户投诉 满意度查询 系统管理模块 系统管理模块主要包括操作员设置 密码修改 帮助信息模块 帮助信息模块主要包括关于 帮助 2 个部分 2 2 2 系统功能结构 客户管理系统的功能结构如图 1 所示 图 1 客户管理系统功能架构图 2 3 设计目标 本系统属于典型的数据库管理系统 是针对中小型企业生产管理开发设计的 实现进一步 的计算机化的管理 通过本系统可以达到以下目标 灵活的运用表格批量输入数据 使信息传递更快捷 系统采用良好的人机对话模式 界面设计美观友好 信息查询灵活 方便 快捷 准 确 数据存储安全可靠 键盘操作 快速响应 实现各种查询及打印等 操作员可以随时修改自己的口令 管理员可以设置操作员的权限 对用户输入的数据 系统进行严格的数据检验 尽可能排除人为的错误 数据保密性强 为每个用户设置权限级别 系统运行稳定 安全可靠 3 系统设计 3 1 开发及运行环境 系统开发平台 Visual C 6 0 数据库管理系统软件 SQL Server 2000 运行平台 Windows xp Windows 2000 分辨率 最佳效果 800 600 3 2 数据库设计 本系统数据库采用 SQL Server 2000 数据库 系统数据库名称为 db SCGL 数据库 3 db SCGL 中包含 19 张数据表 下面分别给出数据表概要说明和主要数据表的结构 1 数据表概要说明 从读者角度出发 使读者对本系统后台的数据库中数据表有一个更清晰的认识 在此特设 计一个数据库中数据表列表 该数据表列表包含系统所有数据表 如图 2 所示 图 2 数据表列表 2 主要数据表的结构 数据库中的数据表请参见附录 B 4 技术准备 4 1 数据库的封装 调用数据库的方式有很多 主要有 DAO ODBC ADO 但使用起来比较灵活的是 ADO 直接引用 ADO 的方法是在头文件 StdAfx h 中加入如下代码 import E Program Files Common Files System ado msado15 dll no namespace rename EOF adoEOF rename BOF adoBOF 然后在要用的 ADO 的类中加入两个指针的定义就可以应用 ADO 了 ConnectionPtr m pConnection RecordsetPtr m pRecordset 4 2 封装 ADO 数据库的代码分析 对 ADO 的封装主要是将引用 ADO 的代码加到自定义的类中 并引用头文件 StdAfx h 即可 对 ADO 进行封装的代码如下 头文件 ADO H 声明如下 import C Program Files Common Files System ado msado15 dll no namespace rename EOF adoEOF class ado public 4 ConnectionPtr m pConnection RecordsetPtr m pRecordset public ado virtual ado void close bool MovePrevious 向上移动 bool MoveLast 最后一条 bool MoveNext 向下移动 bool MoveFirst 最后一条 int GetRecordCount 获得记录个数 bool Open CString srecordset UINT adCmd void GetErrors com error eErrors 获得错误信息 CString GetFieldValue CString Field 获得字段值 bool Move int nRecordNum 移动记录 void ExecuteSQL CString SQL 执行SQL语句 void rstOpen CString TSQL 打开记录集 实现文件 ADO CPP 原代码如下 构造函数 直接实现数据库的连接 ado ado CoInitialize NULL ADO是基于COM技术要进行初始化 try m pConnection CreateInstance uuidof Connection bstr t strConnect Provider SQLOLEDB SERVER 127 0 0 1 Database db client uid sa pwd m pConnection Open strConnect 0 catch com error e AfxMessageBox e Description 利用连接指针打开数据库 这样的方式打开的记录集 无法回滚 可以打开空记录集 bool ado Open CString srecordset UINT adCmd try 5 m pRecordset m pConnection Execute bstr t srecordset NULL adCmd catch com error return false return true 用于返回记录集的个数 int ado GetRecordCount int nCount 0 try m pRecordset MoveFirst catch return 0 if m pRecordset adoEOF return 0 while m pRecordset adoEOF m pRecordset MoveNext nCount nCount 1 m pRecordset MoveFirst return nCount 这个函数用来获取执行 SQL 语句时的出错信息 void ado GetErrors com error eErrors ErrorsPtr pErrors m pConnection GetErrors if pErrors GetCount 0 MessageBox NULL eErrors ErrorMessage 错 误 MB OK MB ICONEXCLAMATION else for int i 0 iGetCount i 如果有多条语句 将用这个循环输出所有错误 6 bstr t desc pErrors GetItem long i GetDescription MessageBox NULL desc 错 误 MB OK MB ICONEXCLAMATION 用记录的指针打开一个记录集 但打开空记录集时返回错误 如果出错就转向用连接打开 记录集 void ado rstOpen CString TSQL try bstr t bstrSQL TSQL AllocSysString m pRecordset CreateInstance uuidof Recordset m pRecordset Open bstrSQL IDispatch m pConnection adOpenDynamic adLockOptimistic adCmdText catch com error e m pRecordset m pConnection Execute bstr t TSQL NULL adCmdText 获取记录集指定列的值 CString ado GetFieldValue CString Field variant t Thevalue CString temp Thevalue m pRecordset GetCollect bstr t Field if Thevalue vt VT EMPTY Thevalue vt VT NULL temp else temp char bstr t Thevalue temp TrimRight temp TrimLeft return temp 7 指向记录集的游标向上移一条 bool ado MovePrevious try m pRecordset MovePrevious catch com error e AfxMessageBox e Description return false return true 指向记录集的游标移到指定行处 bool ado Move int nRecordNum try if m pRecordset BOF m pRecordset MoveFirst m pRecordset Move nRecordNum catch com error e AfxMessageBox e Description return false return true 指向记录集的游标向下移一条 bool ado MoveNext try m pRecordset MoveNext 8 catch com error e AfxMessageBox e Description return false return true 将指向记录集的游标移到顶部 bool ado MoveFirst try m pRecordset MoveFirst catch com error e AfxMessageBox e Description return false return true 将指向记录集的游标移到尾部 bool ado MoveLast try m pRecordset MoveLast catch com error e AfxMessageBox e Description return false return true 用指向连接的指针执行 SQL 语句 如果 SQL 语句有语法错误 就返回响应的错误 void ado ExecuteSQL CString TSQL try m pConnection Execute bstr t TSQL NULL adCmdText 9 catch com error e AfxMessageBox e Description 关闭指针连接 void ado close m pRecordset Close m pConnection Close m pRecordset NULL m pConnection NULL CoUninitialize 5 主要功能模块设计 5 1 主窗体 主窗体主要是对客户管理系统的各个模块进行调用 主要有菜单调用和工具栏调用两种 如图 3 所示 图 3 主窗体运行效果 10 1 菜单设计 1 首先要用到工作区窗口 默认情况下工作区窗体是打开的 如果没打开可以从菜单中 选择 View Workspace 此时工作区窗体会弹出 具体如图 4 所示 图 4 工作区窗口 2 工作区选项卡有三个选项卡 如图 4 所示 资源选项卡是 VC 的资源管理器 它的功 能是可以实现添加或删除 Windows 的位图 图标 对话框等资源 要用资源选项卡 请单击资 源选项卡 3 添加菜单 可以鼠标右键单击 Menu 文件夹 出现菜单后选择 Insert Menu 就会出现菜 单编辑器 要想在菜单内添加文字就双击如图 4 所示的虚线框 弹出如图 5 所示菜单属性对话 框 Menu Item Properties 工作区窗口 11 图 4 工作区选项卡及菜单编辑器 图 5 菜单属性窗口 4 设置菜单文本 可以在 Caption 标题 编辑框内输入即可 关闭属性窗体后一个菜单 项就生成了 所有的菜单项都是照这样的方法重复完成的 最后生成如图 6 所示的系统执行时 的菜单 还有另一种生成菜单的方法 主要是利用 WindowApi 函数进行文本编辑 具体方法请 参照 Windows98 程序设计 一书 图 6 系统执行时的菜单效果 2 工具栏设计 工具栏资源可以利用 VC 自带的 ToolBar 编辑器生成 也可以采用 MFC 提供的 CToolBarCtrl 类动态生成 这里我们用语句动态生成 工具栏的生成将主要用到 CToolBarCtrl 类 的 Create 方法来创建工具栏 其原型如下 BOOL Create DWORD dwStyle const RECT 文件选项卡 资源选项卡 类选项卡 菜单编辑器虚线框 在这里输入汉字 12 dwStyle 是工具栏的风格和样式 主要有 WS CHILD 子窗体 WS VISIBLE 可见 和 WS DISABLED 不可见 还有以 CCS 开头 8 种样式 但在这 8 种样式中最长常用到的只有 CCS TOP 把工具栏放在顶部 其它请参考 MSDN 下面给出一个在程序中用到生成工具栏的实例代码 toolbar Create WS CHILD WS VISIBLE CRect 0 0 0 0 this ID TOOLBAR this 是指向其父窗体的指针 ID TOOLBAR是在Resource h 中定义的资源标识 工具栏上的按钮主要是对数据结构 TBBUTTON 进行赋值来实现的 下面给出一个具体赋值 的代码 button 0 dwData 0 button 0 fsState TBSTATE ENABLED button 0 fsStyle TBSTYLE BUTTON button 0 idCommand ID ADD button 0 iString toolbar AddStrings pString fsState 确定按钮的状态 fsStyle 确定按钮的风格 dwData 可以是用户定义的数据 idCommand 是按下按钮后要执行命令的标识 通常是菜单项的 ID 值 iString 是在按钮上显示文 字 主要是通过 CtoolBarCtrl 类的 AddStrings 方法加入的 pString 是 TCHAR 的指针 iBitmap 是在按钮上显示的图片的编号 通常是图形列表 CImageList 的序号 这里应该提示大家 button 数组开始编号是基于 0 的 iBitmap 选择图形列表的标号也是基于 0 的 如果要在工具栏中添加分隔符 就要使 button 0 fsStyle TBSTYLE SEP 因为分隔符也是 一个按钮 并且此时 button 0 idCommand 必须为 0 工具栏中的按钮图片是通过 CimageList 类的进行导入的 CimageList 类的 Create 方法原形 如下 BOOL Create int cx int cy UINT nFlags int nInitial int nGrow 由于 CimageList 类比较简单 一些参数请参照 MSDN 我这里只给一个具体实例 在程序中的图象列表是通过如下代码实现的 imagelist Create 32 32 ILC COLOR32 ILC MASK 0 0 创建了类对象还不行 还要往类中导入图片 实现的方法主要是通过全局函数 LoadIcon 将 图标加载到程序中 其主要参数只有一个就是图标文件 这里就不在多说了 ILC COLOR32 是设 置图标的颜色深度 ILC MASK 是设置是否非图标区使用透明色 3 状态条的设计 状态栏主要使用 CStatusBarCtrl 类来生成 该类 Create 方法原型为 BOOL Create DWORD dwStyle const RECT WS CHILD 和 WS VISIBLE 是一般窗体控件通用的样式 使用的次数很多 程序中经常使用工具栏和状态栏 下面给出在对话框初始化函数中生成工具栏和状态栏的 代码 具体代码如下 BOOL khmain OnInitDialog CDialog OnInitDialog 13 int weith 2 weith 1 150 weith 0 500 statebar Create WS CHILD WS VISIBLE CRect 0 0 0 0 this ID STATU statebar SetParts 3 statebar SetText 长春市明日科技有限公司 0 0 imagelist2 Create 32 32 ILC COLOR32 ILC MASK 0 0 imagelist2 Add LoadIcon AfxGetResourceHandle MAKEINTRESOURCE IDI ICON12 Add函数是 向图象列表中添加图表 imagelist2 Add LoadIcon AfxGetResourceHandle MAKEINTRESOURCE IDI ICON13 imagelist2 Add LoadIcon AfxGetResourceHandle MAKEINTRESOURCE IDI ICON14 imagelist2 Add LoadIcon AfxGetResourceHandle MAKEINTRESOURCE IDI ICON15 imagelist2 Add LoadIcon AfxGetResourceHandle MAKEINTRESOURCE IDI ICON16 imagelist2 Add LoadIcon AfxGetResourceHandle MAKEINTRESOURCE IDI ICON20 toolbar2 EnableAutomation toolbar2 Create WS CHILD WS VISIBLE CRect 0 0 0 0 this ID TOOLBAR2 toolbar2 SetImageList int i 以下就是对TBBUTTON结构进行赋值 赋值完成后工具栏的按钮就实现了 for i 0 i 7 i button i dwData 0 button i fsState TBSTATE ENABLED button i fsStyle TBSTYLE BUTTON button 0 idCommand ID KHXX button 0 iBitmap 0 button 1 idCommand ID lxrxx button 1 iBitmap 1 button 2 idCommand ID KHHJ button 2 iBitmap 2 button 3 idCommand ID KHFK button 3 iBitmap 3 button 4 idCommand ID KHTS button 4 iBitmap 4 button 5 idCommand ID EXITSYS button 5 iBitmap 5 14 CString s TCHAR pString 这个指针取得生成工具栏按钮的字符串 for i 0 iSetWindowPos for int nCount 1 nCount SetWindowPos m nNumOfPages 0 用来设置指定对话框资源在 Tab 控件中的位置 void CTabSheet SetRect int m CRect tabRect itemRect int nX nY nXc nYc GetClientRect GetItemRect 0 nX itemRect left nY itemRect bottom 1 nXc tabRect right itemRect left 2 nYc tabRect bottom nY 2 for int nCount 0 nCount SetWindowPos m pPages m SetWindowPos 在 Tab 控件中显示对话框 void CTabSheet Show for int i 0 i Create m IDD i this InsertItem i m Title i m pPages 0 ShowWindow SW SHOW for i 1 i ShowWindow SW HIDE SetRect 在 Tab 控件中显示指定对话框 void CTabSheet Show int n for int i 0 i Create m IDD i this InsertItem i m Title i for i 0 i ShowWindow SW HIDE 19 m pPages n ShowWindow SW SHOW SetRect n SetCurSel n 用户单击 Tab 控件时 将焦点设置在对话框上 void CTabSheet OnLButtonDown UINT nFlags CPoint point CTabCtrl OnLButtonDown nFlags point if m nCurrentPage GetCurFocus m pPages m nCurrentPage ShowWindow SW HIDE m nCurrentPage GetCurFocus m pPages m nCurrentPage ShowWindow SW SHOW 通过 Tab 控件在窗体中设置选项卡 int CTabSheet SetCurSel int nItem if nItem m nNumOfPages return 1 int ret m nCurrentPage if m nCurrentPage nItem m pPages m nCurrentPage ShowWindow SW HIDE m nCurrentPage nItem m pPages m nCurrentPage ShowWindow SW SHOW CTabCtrl SetCurSel nItem m nNumOfPages 0 return ret 获得 Tab 控件当前用户选择的分页项 int CTabSheet GetCurSel return CTabCtrl GetCurSel 5 3 联系人信息查询 1 实现目标 实现查询功能 可以查询联系人的编号 企业的名称 联系人的姓名等字段 最后将查询 20 出来的结果显示在列表中 程序运行结果如图 12 所示 图 12 联系人信息查询 2 设计步骤 1 设计类 qlxr 基类为 CDialog 2 定义文本框的成员变量 给资源 IDC EDIT1 加变量 和列表框的成员变量 给资源 IDC LIST1 加变量 主要成员变量列表如表 2 所示 这里没有给出所有成员变量 具体请参照程序原代码 表 2 主要资源属性设置 资源 ID类型变量描述 IDC COMBO1CComboBoxm com1查询条件 IDC COMBO2CComboBoxm com2查询条件 IDC EDIT1CEditm edit1输入查询信息 IDC LIST1CListCtrlm list显示查询结果 3 代码分析 联系人人信息查询文件 Qlxr ccp 的主要代码如下 对话框的初始化程序代码如下 BOOL qlxr OnInitDialog CDialog OnInitDialog this m com1 AddString 联系人编号 this m com1 AddString 企业名称 this m com1 AddString 联系人姓名 this m com1 AddString 联系人性别 this m com1 AddString 年龄 this m com1 AddString 职位 this m com1 AddString 办公电话 this m com1 AddString 电子邮件 21 this m com1 AddString 手机 this m com2 AddString like this m com2 AddString m list SetExtendedStyle LVS EX GRIDLINES LVS EX FULLROWSELECT LVS EX HEADERDRAGDROP LVS EX ONECLICKACTIVATE m list InsertColumn 0 联系人编号 m list InsertColumn 1 企业名称 m list InsertColumn 2 联系人姓名 m list InsertColumn 3 联系人性别 m list InsertColumn 4 年龄 m list InsertColumn 5 职位 m list InsertColumn 6 办公电话 m list InsertColumn 7 电子邮件 m list InsertColumn 8 手机 m list SetColumnWidth 0 100 设置列表框列的宽度 m list SetColumnWidth 1 100 m list SetColumnWidth 2 100 m list SetColumnWidth 3 100 m list SetColumnWidth 4 100 m list SetColumnWidth 5 100 m list SetColumnWidth 6 100 m list SetColumnWidth 7 100 m list SetColumnWidth 8 100 this loadlist return TRUE return TRUE unless you set the focus to a control EXCEPTION OCX Property Pages should return FALSE void qlxr OnButton2 this EndDialog true 实现查询功能 当文本框和选择列表框都为空是 出现提示 void qlxr OnButton1 m list DeleteAllItems ado rst CString sql edit1 com1 com2 this m edit GetWindowText edit1 this m com2 GetWindowText com2 22 this m com1 GetWindowText com1 if edit1 IsEmpty AfxMessageBox 请输入 return if com1 IsEmpty AfxMessageBox 请输入 return if com2 IsEmpty AfxMessageBox 请输入 return sql Format select from tb Client lxrxx where s s s ssel com2 edit1 rst Open sql adCmdText int recordcount rst GetRecordCount int ii for ii 1 ii recordcount ii m list InsertItem ii 1 m list SetItemText ii 1 0 rst GetFieldValue lxrxx id m list SetItemText ii 1 1 rst GetFieldValue lxrxx qymc m list SetItemText ii 1 2 rst GetFieldValue lxrxx xm m list SetItemText ii 1 3 rst GetFieldValue lxrxx xb m list SetItemText ii 1 4 rst GetFieldValue lxrxx nl m list SetItemText ii 1 5 rst GetFieldValue lxrxx zw m list SetItemText ii 1 6 rst GetFieldValue lxrxx bgdh m list SetItemText ii 1 7 rst GetFieldValue lxrxx Email m list SetItemText ii 1 8 rst GetFieldValue lxrxx sj rst Move ii rst close 程序运行中对话框被打开后 列表框数据的初始化 void qlxr loadlist ado rst rst Open select from tb Client lxrxx adCmdText int recordcount rst GetRecordCount int ii 23 for ii 1 ii recordcount ii m list InsertItem ii 1 m list SetItemText ii 1 0 rst GetFieldValue lxrxx id m list SetItemText ii 1 1 rst GetFieldValue lxrxx qymc m list SetItemText ii 1 2 rst GetFieldValue lxrxx xm m list SetItemText ii 1 3 rst GetFieldValue lxrxx xb m list SetItemText ii 1 4 rst GetFieldValue lxrxx nl m list SetItemText ii 1 5 rst GetFieldValue lxrxx zw m list SetItemText ii 1 6 rst GetFieldValue lxrxx bgdh m list SetItemText ii 1 7 rst GetFieldValue lxrxx Email m list SetItemText ii 1 8 rst GetFieldValue lxrxx sj rst Move ii rst close 此函数用来将用户在 ComboBox 控件的选择转换成 SQL 语句所需的字段名称 void qlxr OnSelchangeCombo1 switch m com1 GetCurSel case 0 ssel lxrxx id break case 1 ssel lxrxx qymc break case 2 ssel lxrxx xm break case 3 ssel lxrxx xb break case 4 ssel lxrxx nl break case 5 ssel lxrxx zw break case 6 ssel lxrxx bgdh 24 break case 7 ssel lxrxx Email break case 8 ssel lxrxx sj break 附录 A 参考文献 1 Visual Basic精彩编程200例 机械工业出版社 赛奎春 高春艳等 2003年1月 2 Visual Basic数据库开发实例解析 机械工业出版社 刘志铭 高春艳等 2003年8月 3 V
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新质生产力:热议背后的深层动因
- 9.20全国爱牙日护牙健齿健康科普课件
- 加快新质生产力的发展方向
- 2025年免疫学免疫细胞生物学答案及解析
- 医患关系类型研究
- 2025年普外科常见手术并发症处理模拟分析卷答案及解析
- 2025年妇产科子宫肌瘤微创手术操作规范模拟考试答案及解析
- 2025年内分泌科糖尿病并发症防治答案及解析
- 2025年儿童心理学儿童行为障碍评估测试答案及解析
- 老师三年个人进展方案
- 高纯镁砂的生产技术及生产现状
- 急性会厌炎护理查房
- 混凝土模板工程验收表(含续表)GDAQ2090202
- GB/T 29466-2023板式热交换器机组
- 多模态大模型技术演进及研究框架
- 中国教育史全套
- GB/T 818-2000十字槽盘头螺钉
- GB/T 31298-2014TC4钛合金厚板
- 口腔科中医临床诊疗技术
- 老年肌肉衰减综合征肌少症培训课件
- 中学生物学教学技能与实践课件
评论
0/150
提交评论