




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、面向对象程序设计(C+)实验软件工程08实验一 C+程序设计基础练习1实验目的(1)学习编写简单的C+程序并掌握C+程序的基本格式与规范。(2)理解C+程序结构的特点。(3)学习C+程序基本的输入输出操作。(4)学习数据类型常量和变量以及修饰符的使用。(5)学习基本的函数定义与调用方法。(6)学习作用域运算符的功能与基本使用方法。(7)学习内存的动态分配与释放方法。(8)学习引用的概念,掌握引用的基本使用方法。2实验基本要求 (1)输入并运行所给的参考程序1,并将程序中的注释部分也输入计算机,体会和理解程序的基本格式规范。(2)编制一个完整的包含输入和输出的简单C+程序,如参考程序2和参考程序
2、3。掌握输入输出及其格式控制的基本使用方法。(3)输入并调试参考程序4和参考程序5,体会和理解内置函数与函数重载的概念与基本使用方法。 (4)输入并调试参考程序6和参考程序7。体会和理解作用域运算符的概念与基本使用方法。 (5)输入并调试参考程序8和参考程序9,体会和理解内存动态分配的概念与new、delete运算符的基本使用方法。3实验基本步骤 (1)建立一个控制台应用程序项目baseform1,向其中添加个源程序文件sumcpp。按照所给的程序代码输入到计算机中,检查和调试程序,在确认没有发现错误之后,选择【Build】【Build sum.exe】编译源程序,再选择【Build】【Exe
3、cute sum.exe】运行程序并观察输出结果。若有问题,则需要重新检查程序。说明:在C+程序中如果使用了系统提供的些功能(如cin和cout),就必须在程序的首部首先声明相关的包含这些功能的头文件(如iostream.h),否则,系统无法找到实现这些功能的代码。在C+语言中个头文件就是一个类库,类与类的预定义对象就包含在其中。所以,在使用这些类库中所包含的预定义对象时,必须在程序首部加以声明。/参考程序1/sum.cpp#include <iostream.h>int add(int a ,int b);int main() int x,y,sum; cout<<&
4、quot;Enter two numbers:"<<'n' cin>>x; cin>>y; sum=add(x,y); cout<<"The sum is:"<<sum<<'n' return 0;int add(int a,int b) int c; c=a+b; return c; 运行结果:(2)按照参考程序l的输入与调试方法,输入、检查、调试和运行参考程序2和参考程序3,掌握输入输出及其格式控制的基本使用方法。/参考程序2#include <ios
5、tream.h>int main() char name20; cout<<”Hello,your name:”; cin>>name; cout<<name;return 0;运行结果:/参考程序3#include <iostream.h>int main() int x=25; cout<<hex<<x<< <<dec<<x<< <<oct<<x<<n;运行结果:(3)按照参考程序1的输入与调试方法,输入、检查、调试和运行参考程序
6、4和参考程序5。理解内置函数与函数重载的概念与基本使用方法。/参考程序4#include <iostream.h>inline int doub(int x)return x*2;int main() for(int i=1;i<3;i+) cout<<i<<”doubled is ”<<doub(i)<<endl; cout<<”1+2 doubled is ”<<doub(1+2)<<endl;运行结果:/参考程序5#include <iostream.h>int mul(in
7、t x,int y)return x*y;int mul(int x,int y,int z)return x*y*z;void main()int a=3,b=4,c=5;cout<<a<<*<<b<<=<<mul(a,b)<<endl;cout<<a<<*<<b<<*<<c<<=<<mul(a,b,c)<<endl;(4)按照参考程序1的输入与调试方法,输入、检查、调试和运行参考程序6和参考程序7,并观察输出结果,体会和理解
8、作用域运算符的概念与基本使用方法。/参考程序6#include <iostream.h>int avar=10;main() int avar; avar=25; cout<<”avar is ”<<avar<<endl; return 0;运行结果:/参考程序7#include <iostream.h>int avar;main()int avar;avar=25; /局部变量avar:avar=10; /全局变量avar cout<<”local avar=”<<avar<<endl;cout&
9、lt;<”global avar=”<<:avar<<endl;return 0;运行结果:(5)按照参考程序1的输入与调试方法,输入、检查、调试和运行参考程序8和参考程序9,并观察输出结果,体会和理解内存动态分配的概念与new、delete运算符的基本使用方法。/参考程序8#include <iostream.h>main()int *p; /声明一个整型指针变量p p=new int; /动态分配一个int型存储区,并将首地址赋给p*p=10;cout<<*p;delete p; /撤销指针,释放p指向的存储空间return 0;运行结
10、果:/参考程序9#include <iostream.h>main() int *p; p=new int; if(!p) cout<<”allocation failuren”; return 1;*p=20;cout<<*p;delete p;return 0;运行结果:4. 实验结论:实验二 类和对象1实验目的:(1) 掌握Visual C+6.0基本操作(2) 了解C+程序运行环境;(3) 掌握简单的C+程序的开发过程(编辑、编译、连接和运行)。(4) 掌握类及其成员的定义方法;(5) 掌
11、握对象的创建方法;2实验内容:2.1按要求分析程序指出程序运行的结果:1)分析下面的程序,并给出程序运行的结果:#include<iostream.h>class changechar c1,c2;public: void set(char a)c2=(c1=a)-32); void print() cout<<c1<<" can be upwritten as "<<c2<<endl;void main()cha
12、nge a,b;a.set('a');b.set('b');a.print();b.print();运行结果:程序分析:2)分析下面的程序,并给出输出结果:#include<iostream.h>class pairchar c1,c2;public: void set(char b) c1=1+(c2=b); unsigned where_am_I() return(unsigned)this);
13、60; void print() cout<<c1<<"+"<<c2<<"t"void main()pair a,b,c;a.set('A');b.set('B');c.set('C');a.print();cout<<"is at "<<a.where_am_I()<<'n'b.print();cout<<"is at &
14、quot;<<b.where_am_I()<<'n'c.print();cout<<"is at "<<c.where_am_I()<<'n'运行结果:程序分析:2.2编写并调试程序:1)下面是一个类的测试程序,给定主函数,请写出类的定义,构成一个完整的程序,使执行程序后输出结果为:88-32=56给定的主函数为:void main() Tst t; t.init(88,32); t
15、.print();2)编程分析由主函数可知,要创建的类名为Tst,一个类对象为t,类中含有两个公有成员函数init()和print(),利用函数init()对两个私有成员数据赋值,即为减数与被减数的数值,为了程序的实现需要定义第三个成员数据作为减法之差。3)源程序#include<iostream.h>class Tst;void main() Tst t; t.init(88,32); t.print();4)运行结果88-32=565)调试情况分析
16、60;3.实验结论:实验三 类的应用1. 实验目的:1) 掌握类及成员的定义方法;2) 掌握对象的创建方法;3) 掌握对象数组、对象指针及*this指针的使用。2.实验内容:2.1 分析下面的程序,指出错误的地方原来的程序如下:Class CSample int a=2.5;Public:Int b;Void Print()cout<<a+b<<n;Void Set(int x,int y)A=x;Y=b;Void main()CSample Sam1,Sam2
17、;Sam1.Set(2,3);Sam2.Set(5,6);Sam1.Print();Sam2.Print();Cout<<sam1.a+sam2.a<<endl;Cout<<sam1.b+sam2.b<<endl;修改后的程序如下:#include<iostream.h>class csample int main() csample sam1,sam2;
18、60; sam1.Set(2,3); sam2.Set(5,6); sam1.Print(); sam2.Print(); cout<<sam1.a+sam2.a<<endl;&
19、#160; cout<<sam1.b+sam2.b<<endl; return 0; 程序运行的结果:a+b=5a+b=11792.2编写并调试程序:1)按下面要求编程 定义一个描述学生基本情况的类,数据成员包括姓名、学号、英语、数学、计算机成绩。成员函数包括设置姓名、学号和三门课程的成绩、输出数据、以及求平均值。 设计主函数,在主
20、函数里调用设置“姓名、学号和三门课程的成绩”的成员函数设置各数据调用输出数据成员函数,实现各数据的输出;调用求平均值的成员函数,求三门课的平均成绩,并输出显示。程序如下:#include<iostream.h>class student void main()
21、; 运行结果: 2)按下面要求编程定义一个满足下列要求的类CDate;a. 有三个成员数据:年、月、日;b. 有设置日期的成员函数;c. 有用格式“月日年”输出日期的成员函数;d. 有对当前日期加一天的成员。设计主函数,在主函数里创建对象;调用设置日期的成员函数,设置当天的日期;调用输
22、出日期的成员函数输出当天日期;调用对当前日期加一天的成员函数,然后再调用输出日期的成员函数,输出第二天的日期。 程序如下:#include <iostream.h>class CDatevoid main() 运行结果:3.有一个类说明如下:Class funint I,j;Public:Int s,k;Void SetData(int,int,int,int);Void print();要求:a. 完成函数SetData(int,int,int,int)的定义,该函数用于设置各成员数据;完
23、成函数void print()的定义;该函数用于输出各成员数据;b. 设计主函数,在主函数里定义两个对象:Fun s1,s2;c. 在主函数里调用SetData()成员函数,设置各个对象的数据,调用print()成员函数输出数据成员函数,实现各对象的数据的输出。程序如下:#include <iostream.h>class funint i,j;public: int s,k; void SetDat
24、a(int,int,int,int); void print();void fun:SetData(int a,int b,int c,int d) void fun:print() int main() fun s1,s2; s1.SetData(1,2,3,4); s2.SetData(5,6,7,8); &
25、#160; s1.print(); s2.print(); return 0;运行结果:3.实验总结:实验四 成员函数的重载1、实验目的及要求:1)掌握普通函数重载的方法2)掌握成员函数重载的方法2、实验内容:2.1分析下面程序,指出程序运行的结果#include<iostream.h>class ListClassint *List;unsigned nMax;unsigned nElem;public:void Init(int n=10) &
26、#160; List=new int n;nMax=n;nElem=0; int Elem(int);int &Elem(unsigned
27、n)return Listn;unsigned Elem(void)return nElem;unsigned Max(void)return nMax;void Print(void);int GetElem(int i)if (i>=0)&&(i<=nElem)return Listi;else return 0;void Destroy(void) delete nMaxList;int ListClass:Elem(int elem) if(nElem<nMa
28、x)ListnElem+=elem;return nElem;Else int *list;
29、60; list=new int nMax+1;for(int i=0;i<nElem;i+) listi=Listi;delete nMaxList;nMax+;List=list;ListnElem+=elem;return nElem;void ListClass:Print(void) &
30、#160; /输出数组内容for(int i=0;i<nElem;i+) cout<<Listi<<'t'cout<<'n'void main(void)ListClass list,list1;list.Init(10);list1.Init(20);for(int i=0;i<10;i+)
31、; list1.Elem(i);cout<<"线性表list的元素的个数为:"<<list.Elem()<<'n'cout<<"线性表list长度为:"<<list.Max()<<'n'cout<<"线性表list1的元素的个数为:"<&l
32、t;list1.Elem()<<'n'cout<<"线性表list1的长度为:"<<list1.Max()<<'n' list1.Print();list1.Elem(3u)=100;cout<<"现在线性表list1中的第三个值为:"<<list1.Elem(3u)<<'n'list1.Elem(20);list1.Elem(200);cout<<"现在线
33、性表list1中的最后一个元素为:"<<list1.GetElem(list1.Elem()-1)<<'n'list.Destroy();list1.Destroy();运行结果:2.2按下面的要求编写并调试程序:1)使用函数重载的方法定义两个重名函数,分别求出整型数的两点间距离和实型数的两点间距离。程序如下:运行结果:2)定义一个Cpoint类,用成员函数的重载实现上题的功能。并编写主函数测试。程序如下:实验结果:3)使用重载的方法编写一个求整数、和双精度数的平方数的类。并用一个主函数进行测试。程序如下:#include<iostrea
34、m.h>class Squar;void main()Squar c;cout<<"2的平方是: "<<c.squ(2)<<endl;cout<<"1.1的平方是: "<<c.squ(1.1)<<endl;cout<<"1000的平方是: "<<c.squ(1000)<<endl;运行结果:3实验总结:实验五 构造函数与析构函数1、实验目的:1)掌握构造函数和析构函
35、数定义方法;2)掌握构造函数的重载、具有默认值的构造函数的使用方法;3)加深对构造函数的特殊用途的理解。2、实验内容:21 分析程序指出程序运行的结果:1)分析下面程序中的对象传递,写出输出结果。#include<iostream.h>Using std:cout;Using std:endl;class Cylinderpublic: Cylinder() Cylinder(double r,double h); void setcylinder(double r,double
36、h); double getradius()return radius; double getheight()return height; double volume(); double surface_area();private: double radius; double height;const double PI=3.1415926;Cylinder:Cylinder(double
37、r,double h) radius=r; height=h;void Cylinder:setcylinder(double r,double h) radius=r; height=h;double Cylinder:volume() double vol; vol=PI*radius*radius*height; return vol;double Cy
38、linder:surface_area() double area; area=2*PI*radius*height+2*PI*radius*radius; return area;void main() Cylinder cylinder1(7.0,12.0),cylinder2; cylinder2.setcylinder(12.3,18.7); cout<<"the
39、 radius of cylinder1 is:t"<<cylinder1.getradius()<<endl; cout<<"the height of cylinder1 is:t"<<cylinder1.getheight()<<endl; cout<<"the volume of cylinder1 is:t"<<cylinder1.volume()<<endl;
40、 cout<<"the surfacearea of cylinder1 is:t"<<cylinder1.surface_area()<<endl; cout<<"the radius of cylinder2 is:t"<<cylinder2.getradius()<<endl; cout<<"the height of cylinder2 is:t"<
41、<cylinder2.getheight()<<endl; cout<<"the volume of cylinder2 is:t"<<cylinder2.volume()<<endl; cout<<"the surfacearea of cylinder2 is:t"<<cylinder2.surface_area()<<endl;运行结果:2) 分析下面的程序,指出程序的错误。#include&
42、lt;iostream.h>#include<stdlib.h>class Sample int i;public:int j; Sample(int x) i=x;/cout<<"i="<<i<<endl; Sample()
43、0; exit(1); cout<<"撤消"<<endl; void main() Sample a1(10),a2(20);exit(1); cout<<"撤消"<<endl;3)将下面的程序补充完整#include<iostream.h>class testpr
44、ivate: int num; double f1;public: test(); test( ); getint()return num; double getfloat()return f1;test:test() cout<<"默认初始化"<<endl;
45、; cout<<"调用构造函数1"<<endl; num =0; f1 =0.0;test: test( ) cout<<"初始化"<<endl; cout<<"调用构造函数2"<<endl;
46、60; void main() test a; test b(2,5.5);22 编写并调试程序编写一个实现两个数相减的类的测试程序,请写出类的定义,构成一个完整的程序,要求调用类的构造函数和析构函数时均有明确的输出信息。#include<iostream.h>Using std:cout;Using std:endl;class Cha int a,b;public: Cha(int,int); void print();C
47、ha:Cha(int x,int y) void Cha:print() void main() Cha t(88,32); t.print();程序运行结果:3.实验总结:实验六 对象成员1、实验目的及要求1)理解对象成员的概念2)掌握对象成员的初始化方法2、预习对象成员,对象成员的创建和使用,*this指针等相关知识。3、 实验内容1 分析调试程序指出程序运行的结果1)分析下面程序中对象传递,写出输出结果.#include<iostream.h>class
48、 Aint i;public:A(int x) i=x; int get() return i;int cube(A a)return a.get()*a.get();void main()A a1(10),a2(20);cout<<cube(a1)<<endl;cout<<cube(a2)<<endl;实验结果:2)分析对象成员的调用,写出程序结果#include<iostream.h>#include<stdio.h>class Bprivate:int a,b;public:B()B(int i,int j);voi
49、d showb();class Aprivate:B c;public:A()A(int i,int j);void showa()a=i;b=j;A:A(int i,int j):c(i,j)void A:showa()c.showb();B:B(int i,int j)a=i;b=j;void B:showb()cout<<"a="<<","<<'t'<<"b="<<endl;void main()A a1(5,6);a1.showa();实验结果:2.编
50、写程序编写一类Cpoint表示一个点的信息,在次基础上编写一个表示三角形的类tria,顶点为其对象成员,编写完整的程序输出三角形面积.#include<iostream.h>#include<math.h>class Ctria;void main()Ctria a1;a1.SetData(3,4,5);cout<<"三角形面积="<a1.Area()<<endl;输出结果:4、实验总结:实验七 成员函数和友员函数1. 实验目的1)掌握const对象,const成员函数和const成员数据的使用;2)掌握友员函数的定义和
51、使用。2实验内容:21分析程序指出程序运行的结果:#include<iostream.h>class Sample int n;public:Sample(int i) n=i;void setvalue(int i) n=i;voiddisplay() cout<<"n=z"<<n<<endl;void main()Sample s(5);s.setvalue(8);s.display();程序运行结果:2.2编写并调试程序1)编写一个程序求直角坐标中一个点到直线的距离。要求设计一个点类point,含有两个公有成员数据x和y
52、,代表点的坐标。另一个类为直线类line,它有三个私有成员数据a,d,c。分别代表直线方程ax+by+c=0的系数。在类line中设计一个友元函数distance计算一个点到直线的距离。点(x,y)到直线ax+by+c=0的距离distance的计算公式如下: distance=|ax+by+c|/sqrt(a*a+b*b)请根据下面给出的部分程序编写直线类line及其成员函数,以组成完整的程序。#include<iostream.h>#include<math.h>class pointpublic:float x,y;point(float i,float j)x=
53、i;y=j;void main()point p1(2,4);line l1(1,2,3);cout<<"distance="<<distance(p1,l1)<<endl;程序运行结果:2)编写一类Cpoint表示一个点的信息。在此基础上编写一个表示三角形的类tria,定点为其对象成员。编写完整的程序输出三角形的面积。要求用友元函数来实现三角形面积的输出。程序如下:#include<iostream.h>#include<math.h>class Cpoint public:float a1,b1;Cpoint(
54、float i,float j)a1=i;b1=j;class triadouble L1,L2,L3,s;public: double area; Cpoint A,B,C;tria(float a,float b,float c,float d,float e,float f):A( a,b),B(c,d),C(e,f)L1=sqrt(A.a1-B.a1)*(A.a1-B.a1)+(A.b1-B.b1)*(A.b1-B.b1);L2=sqrt(A.a1-C.a1)*(A.a1-C.a1)+(A.b1-C.b1)*(A.b1-C.b1);L3=sqrt(B.a1-C.a1)*(B.a1-C.
55、a1)+(B.b1-C.b1)*(B.b1-C.b1);double are()s=(L1+L2+L3)/2);area=sqrt(s*(s-L1)*(s-L2)*(s-L3);return area;friend void print(tria D);void print(tria D)cout<<"三角形面积为: "<<D.area<<'n'void main() tria D(4.0,2.0,3.0,4.0,5.0,6.0);D.are(); print(D); 程序运行结果:3实验总结:实验八 静态成员1、实验目的
56、:1)掌握静态成员数据的定义及使用;2)掌握静态成员数据的定义及使用。2、实验内容:21 分析下面的程序,指出程序运行的结果。#include<iostream.h>class Sampleint a,b;static int c;public:Sample()a=b=0;c+;void show()cout<<"a="<<a<<','<<"b="<<b<<','<<"c="<<c<<
57、endl;int Sample:c=1;void main()Sample a1,a2;a1.show();a2.show();程序运行结果如下:简要分析:1、静态成员是类的一个成员,在创建对象前就为它分配了内存空间,并且它的数值是供所有对象共享的一种特殊的成员。2、静态成员包括静态成员数据和静态成员函数。3、静态成员函数必须要有确定的值,而且必须在类体内声明一次。由于在类定义中不能对成员数据据直接进行初始化,因此必须在类体外再声明一次并进行初始化。在类体内声明时,静态成员数据和静态成员函数前都必须加关键字static,而在类体外声明时就不用再写了。22编写并调试程序。1)编写一个名为scor
58、e的类,用于统计一个班的学生成绩。其中使用一个静态成员数据totals来存储总分及一个静态成员函数re_totals()返回该总分。并编写相应的测试程序。程序编写如下:#include<iostream.h>class scoreint mark10;public: static int tals;static int num;static int re_tals()return tals;void set() int i;for(i=0;i<10;i+)cin>>marki;tals=tals+marki;num+;cout<<"The s
59、cores of the class are following: "<<endl; for(i=0;i<10;i+) cout<<marki<<' ' cout<<'n'int get_num(void)return num;int score:tals=0;int score:num=0;void main()score t;cout<<"Please input the scores of the class:"<<endl;t.set();cout
60、<<"The number of the scores is: "<<t.get_num()<<endl;cout<<"The total score of the class is: "<<t.re_tals()<<endl;程序运行结果:2)编写一个名为foball的类,用于统计一个班的学生成绩。其中使用一个静态成员数据totals来存储总分及一个静态成员函数re_totals()返回该总分。并编写相应的测试程序。程序编写如下:#include<iostream.h>
61、class foballint mark10;public:static int num;static int tals;static int re_tals()return tals;void set() int i;for(i=0;i<10;i+)cin>>marki;tals=tals+marki;num+;cout<<"The scores of the class are following: "<<endl; for(i=0;i<10;i+) cout<<marki<<' '
62、 cout<<'n'int get_num(void)return num;int foball: tals=0;int foball:num=0;void main()foball t;cout<<"Please input the scores of the class:"<<endl;t.set();cout<<"The number of the scores is: "<<t.get_num()<<endl;cout<<"The tot
63、al score of the class is: "<<t.re_tals()<<endl;程序运行结果:3、实验总结:实验九 继承1、实验目的1)掌握继承的实现方法;2)继承中常见问题的处理方法。2、实验内容2.1分析下面的程序,指出程序运行的结果1)分析下面的程序,指出程序运行的结果:1#include<iostream.h>class CBasepublic:void fn1();void CBase:fn1()cout<<"调用基类类的函数fn1()n"class CDerived:public CBase
64、public:void fn1();void CDerived:fn1()cout<<"调用派生类的函数fn1()n"void main()CDerived d1;CBase *pb=&d1;CBase &pd=d1;d1.fn1();pb->fn1();pd.fn1();2运行结果:3)分析下面的程序,指出程序运行的结果:1#include<iostream.h>class CBase1int x;public:CBase1()x=0;cout<<"调用构造函数CBase1()!n"CBase1
65、(int a)x=1;cout<<"调用构造函数CBase1(int)!n"CBase1()cout<<"调用析构函数CBase1()!n"class CBase2int y;public:CBase2()y=0;cout<<"调用构造函数CBase2()!n"CBase2(int a)y=a;cout<<"调用构造函数CBase2(int)!n"CBase2()cout<<"调用析构函数CBase2()!n"class Aint x;
66、public:A()x=0;cout<<"调用构造函数A()!n"A(int a)x=a;cout<<"调用构造函数A(int)!n"A()cout<<"调用析构函数A()!n"class CDerived:public CBase1,virtual public CBase2A a;public:CDerived()cout<<"调用构造函数CDerived()!n"CDerived(int x,int y,int z):a(x),CBase1(y),CBase2(z)cout<<"调用构造函数CDerived(int,int,int)!n"CDerived()cout<<"调用析构函数CDerived()!n"void main()CDerived *x=new CDerived;CDerived y(2,3,4);delete x;cout<<"main()函数结束!n"实验结果:2.2编写并调试程序:1)定义一个图形类,其中有保护类型的成员数据:高度和宽
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年党章党规党纪知识竞赛考试题库及答案(共190题)
- 课后服务申请书
- 医辅部工作汇报发言
- 沙糖桔树秋季嫁接方法
- 二零二五年度北京市音乐行业音乐剧演员劳动合同范本
- 项目收尾工作总结与经验教训总结报告
- 基于区块链技术的农产品溯源与智能管理平台
- 环境监测与分析技术指南
- 物联网农业智能控制系统
- 屠宰可行性研究报告
- 手机摄影教程全套课件
- 2025届宁夏银川一中高三上学期第五次月考英语试题及答案
- 基于核心素养的高中数学“教、学、评”一致性研究
- 空调原理培训课件
- 2024年国网陕西省电力有限公司招聘考试真题
- 2025届上海市虹口区初三一模英语试卷(含答案和音频)
- 2025年熊胆眼药水项目可行性研究报告
- 高中主题班会 远离背后蛐蛐课件-高二下学期人际交往主题班会
- 5.2 做自强不息的中国人 (课件)-2024-2025学年统编版道德与法治七年级下册
- 现代康复治疗
- 医疗行业以案明纪的警示教育心得体会
评论
0/150
提交评论