




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、面向对象程序设计课程实验指导书LIAOCHENG UNIVERSITY面向对象程序设计实验指导书聊城大学计算机学院2011年3月37目录面向对象程序设计课程实验教学大纲1实验一C+对C的扩充1基本信息1实验预习1实验过程2实验数据和实验结果记录8实验结果分析8实验二类和对象8基本信息8实验预习8实验过程9实验数据和实验结果记录13实验结果分析13实验三继承和组合13基本信息13实验预习13实验过程14实验数据和实验结果记录19实验结果分析19实验四多态、友元、 虚函数、模板19基本信息19实验预习19实验过程20实验数据和实验结果记录37实验结果分析37实验五课程设计37基本信息37实验预习3
2、7实验过程38实验数据和实验结果记录38实验结果分析38面向对象程序设计课程实验教学大纲课程名称:面向对象程序设计英文名称:Object Oriented Programming设置形式:非独立设课课程模块:专业核心课实验课性质:专业基础实验课程编号:609324课程负责人:王玉亭大纲主撰人:王玉亭大纲审核人:左风朝一、学时、学分 课程总学时:72实验学时:24课程学分:3二、适用专业及年级计算机科学与技术、信息管理与信息系统、电子商务、软件工程、网络工程三年级三、课程目标与基本要求面向对象程序设计是计算机技术专业的一门必修课程,面向对象软件开发方法是吸收了软件工程领域有益概念和有效的方法而发
3、展起来的一种软件开发方法,它集抽象性、封装性、继承性和多态性于一体,可以帮助人们开发出模块化、数据抽象程度高的,体现信息隐蔽、可复用、易修改、易扩大等特性的程序。本课程主要介绍面向对象程序设计的方法和C+语言的基本概念以及基本Windows编程技术,其中以C+语言中的面向对象机制为主。学习者在学习过程中可以通过大量的程序实例和相关练习,逐步掌握C+的面向过程和面向对象的功能,从而掌握面向对象程序设计的基本知识和基本技能。在学习本课程中,只有通过大量的上机实验,才能使学生更好的掌握面向对象程序设计的方法,提高学生运用C+语言和面向对象思想进行编程来解决实际问题的能力。课程目标: 使学生把在理论课
4、程中所学知识融会贯通,在培养学生理论联系实际、实际动手能力的同时,着重培养学生思考问题、解决问题的能力和创造能力。面向对象程序设计实验教学中一贯提倡以学生为主体、教师为主导,充分发挥学生的主观能动性。基本要求: 本课程实验要求学生通过对各部分实验的具体操作练习,能够熟练的掌握C+的基本内容,包括控制结构、基本数据类型、表达式、函数、指针和引用、类与对象的概念以及封装、继承和多态等面向对象程序设计的基础理论,在这些基础理论的基础上,掌握初步的Windows编程技术,包括消息传递机制、MFC应用程序框架、文档视图结构等。通过实验还要培养学生实事求是、踏实细致、严肃认真的科学态度和克服困难、坚韧不拔
5、的工作作风,以及科学、良好的实验素质和习惯。四、主要仪器设备装有C+集成开发环境的微型计算机。五、实验项目及教学安排序号实验项目名称实验基本方法和内容项目 学时项目类型每组人数教学 要求1C+对C的扩充使用集成开发环境开发简单C+程序;通过编写求斐波那契数列的第n项和前n项之和等简单程序,学习C+中的各种程序控制结构;通过解决Josephus问题,学习C+中各种运算符的功能、优先级和结合性;编写一个复杂的程序来学习自定义头文件的方法,学会调试多文件程序;分析五子棋游戏程序,学习指针的基本用法;编写简单程序学习动态内存的分配和释放,理解内存泄漏的危害。4基础1必修2类和对象分析完整的Person
6、类的定义,学习类和对象的概念、定义和使用方法;实现一个带有头结点的单链表,学习用类和对象解决实际问题。6基础1必修3继承和组合分析完整的Person类和Employee类的定义,学习继承和派生概念;利用继承和组合的概念实现一个计算图形面积的类库。6基础1必修4多态、友元、 虚函数、模板利用抽象类设计一个计算图形面积的类库,学习动态联编的概念;分析Complex类的实现,理解重载运算符的意义;实现分数类,学习重载运算符方法,理解C+中的异常处理机制;用类模板实现一个带有头结点的单链表。6基础1必修5课程设计学习Windows程序的消息处理机制和编程模式,分析设计自动取款机模拟系统,学习面向对象编
7、程方法的思想,练习用面向对象编程方法解决实际问题。2综合1选修六、考核方式及成绩评定根据学生实验出勤情况、实验态度、实验报告成绩、实验考核成绩等评定实验成绩。 实验报告(含实验理论)占实验成绩的30%,实验技能(含实验态度)占实验成绩的30%,实验考核占实验成绩的40%。最终实验成绩占该课程考核总成绩的2030%。七、实验教科书、参考书1实验教科书自编实验指导书。 2实验参考书实验一C+对C的扩充基本信息实验课程:面向对象程序设计设课形式:非独立课程学分:2实验项目:C+对C的扩充项目类型:基础项目学时:4实验预习实验目的和要求:1、了解在面向过程程序设计中C+对C语言的扩充与增强,并善于在编
8、写程序过程中应用这些新的功能;2、熟悉在Eclipse集成开发环境下编辑、编译、连接和运行C+程序的方法;3、熟悉C+程序的结构和编程方法。实验内容和原理或涉及的知识点:1、验证大于等于4小于等于10000的偶数均可分解微量素数之和,并打印分解形式。2、编写程序进行模拟仿真。在码头酒馆和游船之间搭了一条长20米,宽4米的跳板,醉酒的船员和游客回艇时必须通过这个跳板。通过跳板时,有三种可能的结果:向前走,回到游船上休息,不再出来;转身回到酒馆,重新开始喝酒,不再出来;左右乱晃,落入水中淹死。果醉酒者每次走一步,一步走1米。而且他们向前走的概率是0.7,向左走、向右走和向后走的概率各为0.1。现在
9、假设开始时他们都是站在酒馆的门口,编写程序模拟出若干个醉酒者的最终行为结果。3、编写程序解决Josephus问题。Josephus问题是说,一群小孩围坐成一圈,现在任意取一个数n,从当前编号为一的孩子开始数起,依次数到n(因为围成了一圈,所以可以不停的数下去),这时被数到n的孩子离开,然后圈子缩小一点。如此重复进行,小孩数不断减少,圈子也不断缩小。最后所剩的那个小孩就是胜利者。请找出这个胜利者。4、编写程序实现五子棋棋游戏。五子棋的规则为:双方各执一色棋子,轮流下子(将子放在棋盘的任一未下子的点上),直到有一方的棋子有5个排成一线(无论是横、竖还是斜均可),则棋局结束,该方胜利。实验条件:1、
10、装有Windows操作系统的微型计算机;2、Eclipse集成开发环境和CDT插件;3、MinGW编译环境。实验设计方案:1、熟悉在Eclipse集成开发环境下编辑、编译、连接和运行C+程序的方法。2、借助流程图对程序进行“自顶向下、逐步求精”的结构化分析。3、熟悉C+中const、引用、new、delete的用法。4、利用“筛法”生成素数表。5、实现模拟仿真要利用随机值函数。实验过程1、根据实验预习阶段的实验设计方案,编写应用程序。参考代码如下。#include <iostream>#include <cmath>const int M = 10001;/ 定义验证范
11、围/ 函数 CreatPrimeList(): 生成素数表void CreatPrimeList(int *PrimeList, int n)int i, j;/ 将PrimeList的各元素设置为从0开始的正整数for (i = 0; i < n; i = i + 1)PrimeListi = i;/ 分别从表中去掉已经确定的各素数的倍数(将其置为0) i = 2;while (i <= sqrt(n)for (j = i + 1; j < n; j = j + 1)if (PrimeListj != 0 && PrimeListj % PrimeListi
12、 = 0)PrimeListj = 0;/ 确定下一个素数的位置 i = i + 1;while (PrimeListi = 0)i = i + 1;/ 函数 NextPrimeNumber(): 求下一个素数 int NextPrimeNumber(int p, int *PrimeList)p = p + 1;while (PrimeListp = 0)p = p + 1;return PrimeListp;/ 主函数: 在从4到M的范围内验证哥德巴赫猜想int main()int PrimeListM; / 说明存放素数表的数组int x, p; / 变量x: 偶数, p: 素数/ 建立
13、素数表CreatPrimeList(PrimeList, M);/ 对从4到M的所有偶数验证哥德巴赫猜想x = 4;while (x < M)/ 检查偶数减去一个素数后的剩余部分是否仍为素数p = PrimeList2;while (p <= x / 2 && PrimeListx - p = 0)p = NextPrimeNumber(p, PrimeList);/ 输出检查结果if (p > x / 2) / 找到了一个不能分解为两个素数和的偶数std:std:cout << "Great discovery: Goldbach is
14、 wrong!" << std:endl;else / PrimeListx-p0, 分解成功std:std:cout << "The even number " << x << "=" << p << " + " << x - p<< std:endl;/ 检查下一个偶数x = x + 2;return 0;2、根据实验预习阶段的实验设计方案,编写应用程序。参考代码如下。#include <iostream>#inc
15、lude <ctime>#include <cmath>#include <cstdlib>const int SHIP = 1;const int BAR = 2;const int WATER = 3;/一个醉酒者行为的模拟仿真int drunkard()int x = -10; /记录醉酒者的x坐标,开始时在酒馆门口int y = 0; /记录醉酒者的y坐标,开始时在跳板的中央int step = 0; /记录醉酒者一共走了多少步while (abs(x) <= 10 && abs(y) <= 2)switch (rand(
16、) % 10)case 0: /向左走y = y - 1;break;case 1: /向右走y = y + 1;break;case 2: /向后走x = x - 1;break;case 3: /向前走case 4:case 5:case 6:case 7:case 8:case 9:x = x + 1;step = step + 1;if (x < -10)std:std:cout << "After " << step<< " steps, the man returned to the bar and drunk
17、 again"<< std:endl;return BAR;elseif (x > 10)std:cout << "After " << step << " steps, the man returned to the ship"<< std:endl;return SHIP;elsestd:cout << "After " << step << " steps, the man dropped into the
18、water"<< std:endl;return WATER;/反映若干个醉酒者最终行为的模拟仿真的主函数int main()srand(time(0); /初始化随机种子int drunkardnumber; /醉酒者总数int shipnumber = 0; /到达船上的人数int barnumber = 0; /返回酒馆的人数int waternumber = 0; /掉进水中的人数std:cout << "Please input the number of drunkard" << std:endl;std:cin &
19、gt;> drunkardnumber;for (int i = 0; i < drunkardnumber; i = i + 1)switch (drunkard()case SHIP:shipnumber = shipnumber + 1;break;case BAR:barnumber = barnumber + 1;break;case WATER:waternumber = waternumber + 1;break;std:cout << "*" << std:endl;std:cout << "Of a
20、ll the " << drunkardnumber << " drunkards:" << std:endl;std:cout << shipnumber << " returned to the ship" << std:endl;std:cout << barnumber << " went to the bar and drunk again" << std:endl;std:cout << wat
21、ernumber << " dropped into the water" << std:endl;return 0;3、根据实验预习阶段的实验设计方案,编写应用程序。参考代码如下。#include <iostream>int main()const int Total = 7; /小孩总数,可以改动。int ChooseNum; /用户随机选取的数int boyTotal; /表示小孩的数组for (int i = 0; i < Total; i+)boyi = i + 1; /给小孩编号std:cout << &qu
22、ot; Please input the number which is to be eliminated: "std:cin >> ChooseNum; /用户随机输入一个剔除的数std:cout << " Before eliminating, the boys are:" << std:endl;for (i = 0; i < Total; i+)std:cout << boyi << "t"std:cout << std:endl;int k = 1; /第k
23、个离开的小孩int n = -1; /数组下标,下一个为0表示从第一个孩子开始数数while (true)/在圈中开始剔除for (int j = 0; j < ChooseNum;)n = (n + 1) % Total;if (boyn != 0) /如果该小孩还在圈中,则参加计数j+;if (k = Total) /如果已经全部剔除完成,则跳出循环break;boyn = 0;std:cout << "After " << k << " times elimination, the boys left are:&qu
24、ot;<< std:endl;for (i = 0; i < Total; i+)if (boyi != 0)std:cout << boyi << "t"std:cout << std:endl;k+;/ break语句跳转至此,输出胜利者编号std:cout << "The No." << boyn << " boy is the winner." << std:endl;return 0;4、根据实验预习阶段的实验设计方案,编写
25、应用程序。参考代码如下。#include <iostream>#include <cstdlib>const int M = 7; /规定棋盘大小const int N = 5; /玩几子棋void InitChess(char*);void HumanMove(char*);void ComputerMove(char*);void ShowChess(char*);char WinCheck(char*);int main()char *chess = new charM * M;if( NULL = chess )return 0;char done;std:co
26、ut<<"-Game of Chess-"<<std:endl;std:cout<<"Human against the stupid computer"<<std:endl;done ='*'InitChess(chess);doShowChess(chess);HumanMove(chess);done = WinCheck(chess); /检查是否有赢家if(done!= '*')break; /如有赢家,则跳出循环ComputerMove(chess);done =
27、 WinCheck(chess); /检查是否有赢家while(done= '*');ShowChess(chess); /显示棋局最终状态if(done='H')std:cout<<"Human won!"<<std:endl;elsestd:cout<<"Computer won!"<<std:endl;delete chess;return 0;/初始化棋盘void InitChess(char *chess)for (int i = 0; i < M; i+)f
28、or (int j = 0; j < M; j+)chessi + M * j = '*'/下棋人的落子void HumanMove(char *chess)int x, y;std:cout << "Enter X,Y coordinates for your move: "std:cin >> x >> y;std:cout << std:endl;x-;y-;if (chessx + M * y != '*')std:cout << "Invalid move,
29、 try again." << std:endl;HumanMove(chess);elsechessx + M * y = 'H'/计算机落子void ComputerMove(char *chess)int i, j;for (i = 0; i < M; i+)for (j = 0; j < M; j+)if (chessi + M * j = '*')break;if (chessi + M * j = '*')break;if (i * j = M * M)std:cout << "
30、Diamond cut diamond" << std:endl;exit(0);elsechessi + M * j = 'C'/在屏幕上显示棋局void ShowChess(char *chess)for (int i = 0; i < M; i+)for (int j = 0; j < M; j+)std:cout << chessi + M * j << "t"std:cout << std:endl << std:endl;/检查是否有赢家char WinCheck(
31、char *chess)for (int i = 0; i < M; i+)for (int j = 0; j < M; j+)char t = chessi + M * j;int count = 1;for (int a = i + 1, b = j + 1;chessa + M * b = t && a < M && b < M; a+, b+)count+;if (count >= N)return t;count = 1;for (a = i, b = j + 1; chessa + M * b = t &&
32、; b < M; b+)count+;if (count >= N)return t;count = 1;for (a = i + 1, b = j; chessa + M * b = t && a < M; a+)count+;if (count >= N)return t;count = 1;for (a = i + 1, b = j - 1; chessa + M * b = t && a < M && b >= 0;a+, b-)count+;if (count >= N)return t;ret
33、urn '*'实验数据和实验结果记录根据程序运行情况如实记录实验结果。实验结果分析1、分析生成素数表的“筛法”。2、分析机构化程序设计方法。3、写出自己的心得体会。实验二类和对象基本信息实验课程:面向对象程序设计设课形式:非独立课程学分:3实验项目:类和对象项目类型:基础项目学时:6实验预习实验目的和要求:1、掌握声明类的方法,类和类的成员的概念以及定义对象的方法。2、初步掌握用类和对象编制基于对象的程序。3、学习检查和调试基于对象的程序。4、掌握类的构造函数和析构函数的概念和使用方法。5、掌握对象数组、对象的指针及其使用方法。实验内容和原理或涉及的知识点:1、用类实现顺序栈。
34、2、用类实现循环队列栈。3、实现一个带有头结点的单链表,该链表可以插入整型元素。实验条件:1、装有Windows操作系统的微型计算机;2、Eclipse集成开发环境和CDT插件;3、MinGW编译环境。实验设计方案:1、熟悉C+程序中源文件的组织方式。2、首先分析类的属性和行为,然后通过封装实现类。3、实现栈时,考虑栈容量的自动增长问题。实验过程1、根据实验预习阶段的实验设计方案,编写应用程序。参考代码如下。/Stack.h的内容#ifndef STACK_H_#define STACK_H_class Stackint *m_Elem;int m_nTop;const int m_nSize
35、;public:Stack(int size) :m_nTop(0), m_nSize(size)m_Elem = new intsize;Stack()delete m_Elem;bool IsEmpty()return m_nTop = 0;bool IsFull()return m_nTop = m_nSize;bool Push(int e);bool Pop(int &e);#endif /* STACK_H_ */Stack.cpp的内容#include "Stack.h"bool Stack:Push(int e)if (IsFull()return
36、false;elsem_Elemm_nTop = e;+m_nTop;return true;bool Stack:Pop(int &e)if (IsEmpty()return false;else-m_nTop;e = m_Elemm_nTop;return true;2、根据实验预习阶段的实验设计方案,编写应用程序。参考代码如下。/Queue.h的内容#ifndef QUEUE_H_#define QUEUE_H_class Queueint front, rearint *data;const int size;public:Queue(int s) :front(0), rea
37、r(0), size(s)data = new intsize + 1;bool IsEmpty()return rear = front;bool IsFull()return (rear+1)%(size+1) = front;bool EnQueue( int v );bool DeQueue( int &v );Queue()delete data;#endif /* QUEUE_H_ */Queue.cpp的内容#include "Queue.h"bool Queue:EnQueue(int v)if (IsFull() = true)return fal
38、se;elsedatarear = v;rear = (rear + 1) % (size + 1);return true;bool Queue:DeQueue(int &v)if (IsEmpty() = true)return false;elsev = datafront;front = (front + 1) % (size + 1);return true;3、根据实验预习阶段的实验设计方案,编写应用程序。参考代码如下。/list.h的内容#ifndef LIST_H_#define LIST_H_#include <iostream>#include <
39、cstddef>class List /定义整型链表类private:class Nodepublic:Node(const int &data = 0, Node *next = NULL) :m_nData(data), m_pNext(next)Node *m_pNext; /指向下一个结点的指针成员int m_nData; /指向本结点数据的指针成员;public:List(); /构造函数List(); /析构函数bool Append(const int &e, int index = 0); /在inedex位置后增加节点bool Prepend(const
40、 int &e, int index = 1); /在inedex位置前增加节点bool Remove(int &e, int index = 1); /删除inedex位置处的节点bool Find(int &e, int index = 1); /查找inedex位置处的节点void PrintList(); /打印链表protected:Node *m_pFirst; /头节点;#endif /* LIST_H_ */List.cpp的内容#include "List.h"List:List() /构造函数m_pFirst = new Node
41、();List:List() /构造函数Node * p = m_pFirst;Node * q;while (NULL != p) /寻找inedex位置前一个节点q = p;p = p->m_pNext;delete q;bool List:Append(const int &e, int index) /在inedex位置后增加节点if (index < 0)return false;Node *p = m_pFirst;int i = 0;while (NULL != p && i < index) /寻找inedex位置处节点+i;p = p
42、->m_pNext;if (NULL = p)return false;Node *q = new Node(e, p->m_pNext);p->m_pNext = q;return true;bool List:Prepend(const int &e, int index) /在inedex位置前增加节点if (index < 1)return false;Node *p = m_pFirst;int i = 0;while (NULL != p && i < index - 1) /寻找inedex位置前一个节点+i;p = p-&g
43、t;m_pNext;if (NULL = p)return false;Node *q = new Node(e, p->m_pNext);p->m_pNext = q;return true;bool List:Remove(int &e, int index) /删除inedex位置处的节点if (index < 1)return false;Node *p = m_pFirst;int i = 0;while (NULL != p && i < index - 1) /寻找inedex位置前一个节点+i;p = p->m_pNext;
44、if (p = NULL | NULL = p->m_pNext)return false;Node *q = p->m_pNext;p->m_pNext = q->m_pNext;e = q->m_nData;delete q;return true;bool List:Find(int &e, int index) /查找inedex位置处的节点if (index < 1)return false;Node *p = m_pFirst;int i = 0;while (NULL != p && i < index) /寻找i
45、nedex位置处节点+i;p = p->m_pNext;if (NULL = p)return false;e = p->m_nData;return true;void List:PrintList() /打印链表Node *p = m_pFirst->m_pNext;while (NULL != p) /寻找inedex位置处节点std:cout << p->m_nData << 't'p = p->m_pNext;std:cout << std:endl;/main.cpp的内容int main()List
46、 l;l.Append(1);l.Prepend(10);int s;l.Find(s, 2);l.Remove(s, 2);l.PrintList();return 0;实验数据和实验结果记录根据程序运行情况如实记录实验结果。实验结果分析1、分析C+程序原文件的组织方式。2、分析new和delete的用法。3、对抽象技术和封装技术进行分析。4、写出自己的心得体会。实验三继承和组合基本信息实验课程:面向对象程序设计设课形式:非独立课程学分:3实验项目:继承和组合项目类型:基础项目学时:6实验预习实验目的和要求:1、了解继承在面向对象程序设计中的重要作用。2、进一步理解继承与派生的概念。3、掌握
47、通过继承派生出一个新的类的方法。4、了解虚基类的作用和用法。5、掌握类的组合。实验内容和原理或涉及的知识点:1、上机分析实例程序,理解继承的概念。2、上机分析实例程序,理解继承下构造函数和析构函数的执行顺序。3、声明一个Shape(形状)基类,它有两个派生类:Circle(圆)和Square(正方形)。要求:(1)根据给出的圆心坐标和半径计算圆的面积;(2)根据给出的正方形中点坐标和一个顶点坐标计算正方形的面积。提示:Shape类的数据成员包括中心点的坐标,Circle类中新增一个数据成员,即圆的半径,Square类新增一个顶点的坐标。4、编程实现单件模式,理解静态成员。5、某出版系统发行图书
48、和磁带,利用继承设计管理出版物的类。要求如下:建立一个基类Publication存储出版物的标题title、出版物名称name、单价price及出版日期date。用Book类和Tape类分别管理图书和磁带,它们都从Publication类派生。Book类具有保存图书页数的数据成员page,Tape类具有保存播放时间的数据成员playtime。每个类都有构造函数、析构函数,且都有用于从键盘获取数据的成员函数inputData(),用于显示数据的成员函数display()。实验条件:1、装有Windows操作系统的微型计算机;2、Eclipse集成开发环境和CDT插件;3、MinGW编译环境。实验
49、设计方案:1、进一步熟悉C+程序中源文件的组织方式。2、首先分析类之间的继承组合,然后实现类。实验过程1、上机分析下面程序,理解继承的概念。/头文件person.h的内容#include <iostream>#include <cstring>class Personprivate:char m_strName20;int m_nAge;int m_nSex;public:Person(); /构造函数Person(const char *name, int age, char sex); /构造函数Person(const Person &p); /拷贝构造函
50、数Person() /析构函数std:cout << "Now destroying the instance of Person" << std:endl;void SetName(const char *name);void SetAge(int age);void setSex(char sex);const char* GetName() const;int GetAge() const;char GetSex() const;void ShowMe() const;/源程序文件person.cpp的内容:#include "per
51、son.h"Person:Person() :m_nAge(0), m_nSex(0) /构造函数strcpy(m_strName, "XXX");Person:Person(const char *name, int age, char sex) :m_nAge(age), m_nSex(sex = 'm' ? 0 : 1) /构造函数strcpy(m_strName, name);Person:Person(const Person &p) :m_nAge(p.m_nAge), m_nSex(p.m_nSex) /拷贝构造函数strcp
52、y(m_strName, p.m_strName);void Person:SetName(const char *name)strcpy(m_strName, name);void Person:SetAge(int age)m_nAge = age;void Person:setSex(char sex)m_nSex = sex = 'm' ? 0 : 1;const char* Person:GetName() constreturn m_strName;int Person:GetAge() constreturn m_nAge;char Person:GetSex()
53、 constreturn (m_nSex = 0 ? 'm' : 'f');void Person:ShowMe() conststd:cout << GetName() << 't' << GetAge() << 't' << GetSex() << 't'/头文件employee.h的内容:#include "person.h"class Employee: public Person /雇员类定义char m_strDept20; /工作部门float m_fSalary; /月薪public:Employee();Emp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 发票管理办法封存
- 冲压油管理办法
- 企业打车管理办法
- 公司清欠管理办法
- 收据在管理办法
- 价格管控管理办法
- 公路扬尘管理办法
- 2026届河北省廊坊市5月份中考押题数学预测卷含解析
- 2024(副高)高级卫生资格考试卫生管理副高卫生高级职称真题及答案
- 2025年度企业员工安全生产培训计划
- NB-T10394-2020光伏发电系统效能规范
- (高清版)JTGT 5214-2022 在用公路桥梁现场检测技术规程
- A01食用菌生产概述
- ISO 15609-1 金属材料焊接工艺规程及评定-焊接工艺规范中文版
- 王川同教授:中国文学界的泰斗级人物
- 充电宝材料分析报告
- 风湿免疫疾病与心脑血管疾病的关系
- 仓库租赁合同主要条款
- 现代汉语语料库词频表CorpusWordlist
- 工厂仓管职责培训课件
- 上海同济大学附属存志学校八年级上册期末数学模拟试卷含详细答案
评论
0/150
提交评论