




免费预览已结束,剩余15页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
题目3 “媒体库管理系统设计”1、问题描述图书馆中的资料很多,如果能分类对其资料流通进行管理,将会带来很多方便,因此需要有一个媒体库管理系统。图书馆共有三大类物品资料:图书、视频光盘、图画。这三类物品共同具有的属性有:编号、标题、作者、评级(未评级,一般,成人,儿童)等。其中图书类增加出版社、ISBN号、页数等信息;视频光盘类增加出品者的名字、出品年份和视频时长等信息;图画类增加出品国籍、作品的长和宽(以厘米计,整数)等信息。2、功能要求(1)添加物品:主要完成图书馆三类物品信息的添加,要求编号唯一。当添加了重复的编号时,则提示数据添加重复并取消添加;当物品库已满,则提示不能再添加新的数据。(2)查询物品可按照三种方式来查询物品,分别为:按标题查询:输入标题,输出所查询的信息,若不存在该记录,则提示“该标题不存在!”;按编号查询:输入编号,输出所查询的信息,若不存在该记录,则提示“该编号不存在!”;按类别查询:输入类别,输出所查询的信息,若不存在记录,则提示“该类别没有物品!”;(3)显示物品库:输出当前物品库中所有物品信息,每条记录占据一行。(4)编辑物品:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。(5)删除物品:主要完成图书馆物品信息的删除。如果当前物品库为空,则提示“物品库为空!”,并返回操作;否则,输入要删除的编号,根据编号删除该物品的记录,如果该编号不在物品库中,则提示“该编号不存在”。(6)统计信息输出当前物品库中总物品数,以及按物品类别,统计出当前物品中各类别的物品数并显示。(7)物品存盘:将当前程序中的物品信息存入文件中。(8)读出物品:从文件中将物品信息读入程序。3、问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤: (1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系; (3)根据问题描述,设计系统的类层次; (4)完成类层次中各个类的描述; (5)完成类中各个成员函数的定义; (6)完成系统的应用模块; (7)功能调试; (8)完成系统总结报告。 暨南大学本科实验报告专用纸课程名称 C+ 程序设计 成绩评定 实验项目名称 媒体库管理系统 指导教师 实验项目编号 课程设计 实验项目类型 设计 实验地点 学生姓名 学号 学院 系 专业 实验时间 2010年 月 日 1程序设计目的通过设计、实现一个媒体库管理系统,熟悉面向对象的设计思想;进一步熟悉、掌握STL中有关数据类型及其使用方法,泛型编程的风格。STL是一种新的程序设计思想泛型化设计,它是标准模版库,是一个具有工业强度的,高效的C+程序库。从实现层次上看,整个STL是以一种类型参数化方式实现的2系统设计要求在这个课程设计中,你需要设计并实现一个继承体系以管理图书馆中流通的物品:图书、视频光盘以及图画。你需要设计一个名为 Medium (媒体)的基类以表示所有流通物品的公共属性;然后从 Medium 类派生出 Book, Video(视频光盘), Painting(图画) 三个派生类。2.1 基类描述在这个应用中,每一个物品都有:编号,标题,作者(标题和作者都可能包含空格),评级(具体分为:未评级、一般、成人和儿童四种类型),借出状态(可用,已借出)四个属性。因此,基类 Medium 应具有这四个数据成员,其访问权限为受保护;此外,基类Medium还具有如下成员函数:从标准输入流中读取物品信息的函数;从文件中读取物品信息的函数;输出信息到标准输出流的函数。2.2 继承类描述Book类 相比基类,Book类增加了出版社的名字,ISBN号(可简单认为是一个由 0-9,-,A-Z 构成的字符串),出版年份和书的页数这四个数据成员。Video类 相比基类,Video类增加了出品者的名字,出品年份和视频时长(以分钟计,整数)这三个数据成员。Painting类 相比基类,Painting类增加了出品国籍,作品的长与宽(以厘米计,整数)这三个数据成员。2.3 MediaLib(多媒体函数库)类 2.3.1 MediaLib类及menu(菜单类) 成员函数设计一个名为 MediaLib 的类,在其构造函数中从一个数据文件中读入信息,此数据文件的名字应该由用户提供而不是由程序员自己假设。此类应具有如下方法:增加新物品,删除物品,修改物品,显示整个媒体库中的物品,显示媒体库中的部分物品。换言之,媒体库中所有物品的信息存在于硬盘中的某个文件中,当一个 MediaLib 对象被创建时将该媒体库文件中的所有物品信息读入内存中。在内存中,物品信息有可能被修改,在程序退出时所有物品信息又被写回至硬盘(这里所有物品信息被写回至硬盘只是功能上的描述;从效率着眼,仅仅写回发生了改变的信息的实现策略更好,但是需要考虑新增纪录、删除纪录、修改记录的处理,比较复杂,有兴趣的同学可以尝试这种策略)。因为具有插入、删除功能,实现 MediaLib 类的时候应该使用STL中的 list 类作为底层容器。MediaLib 类还具有一个名为menu的成员函数以显示如下功能表:1. 新增一个物品;2. 删除物品;3. 修改物品信息;4. 显示满足搜索条件的物品;5. 退出。2.3.2 menu 成员函数新增物品:提示用户输入物品的相关信息,除标题外其余信息都有默认值。删除物品:利用下述搜索功能列出待删除的物品后将这些物品从媒体库中删除。修改物品信息:利用下述搜索功能列出待修改的物品后对这些物品的全部或部分进行修改。显示满足搜索条件的物品:譬如,显示所有的Book,按照作者名排序。实现此功能时需要提供进一步的子功能菜单以便用户指定查询条件和排序依据。查询时只针对一类物品(Book,Video,Painting),且至多涉及该类别物品的两个属性;对于年份(出版年份、出品年份),书籍页数,视频时长和作品长度、宽度可以进行范围查询。查询结果的排序依据可以是被查询的某类物品的任何属性,但用户最多只能按照重要性的不同指定两个排序依据;每个排序依据都有升序、降序之分。注意:在显示物品信息时必须比较合理,譬如适时地清空整个屏幕;假如信息超出一屏则显示必须暂停,待用户指示继续后再继续显示;输出的信息中应加上适当的空白以方便阅读。退出:当选择“退出”时,整个媒体库,包括已作的修改,必须写回到数据文件中。输入说明:在程序一开始提示用户输入数据文件的名字。输入的具体格式参见提供的示例文件。但教师在测试时会用一个很大的数据文件进行测试,因此不要对物品的数目做任何假定。2.4 界面要求界面需要设计良好、便于使用但又不过分花哨!3系统功能模块图 3.1 主要功能 能够打开用户指定的文本文件,并将数据读入。对于文件中的物品信息,能提供一系列操作:新增一个物品、删除物品、修改物品信息、显示满足搜索条件的物品。 能够将用户操作完毕后的文件进行保存到指定文件名的文本文件中。3.2 系统功能模块图 4程序实现思路4.1 分析系统中各个对象之间的相互关系及其属性和行为 4.1.1 对象 识别系统中的对象 媒体库、BOOK、VIDEO、PAINTING 对象间的关系整体 部分关系 4.1.2 对象的属性 媒体库属性: 若干BOOK、VEDIO、PAINTING 类型的物品 多项关于以上物品的操作 BOOK、VEDIO、PAINTING 类型的物品的属性: 单个物品 多项关于该种类物品的信息4.1.3 对象的行为 BOOK、VIDEO、AINTING 类型的物品的行为 相应类型物品的信息输入 相应类型物品的信息输出 物品信息从文件中控制台读入 物品信息输出到文件中控制台 媒体库的行为 打开一个文件读入其中的相关物品信息 增加若干物品 对其中的物品进行查找 对其中的物品进行删除 对其中的物品进行修改 显示媒体库中所有物品信息 退出媒体库并保存媒体库信息4.2 各类的描述 4.2.1 程序模块图 4.2.2 基类Medium 定义class Mediumfriend class MediaLib(多媒体函数库);friend class Media_info;public:Medium()Medium(std:ifstream&);Medium(std:istream);virtual std:string get_category()return 0; /获得类型/virtual是用于修改方法或属性的声明virtual std:string get_title()return title;/获得标题virtual std:string get_author()return author;/获得作者virtual std:string get_rank()return rank;/获得评级virtual std:string get_state()return state;/获得状态(是否在馆)virtual std:string get_press()return 0;virtual std:string get_ISBN()return 0;virtual std:string get_pub_year()return 0;virtual std:string get_pages()return 0;virtual std:string get_producer()return 0;virtual std:string get_pro_year()return 0;virtual std:string get_vedio_duration()return 0;virtual std:string get_nationality()return 0;virtual std:string get_length()return 0;virtual std:string get_width()return 0; virtual std:istream& read_infor(std:istream&); /从标准输入流中读取物品信息virtual std:ifstream& read_infor(std:ifstream&); /从文件中读取物品信息virtual std:ostream& put_out(std:ostream& ); /输出信息到标准输出流的函数virtual std:ofstream& put_out(std:ofstream&); /输出信息到文件中virtual Medium* clone() const return new Medium(*this);protected:std:string title; /标题std:string author; /作者std:string rank; /评级std:string state; /状态; 函数描述该类开始定义三个构造函数其中有一默认构造函数,用来构造Medium型的数据结构;接着是 15个get_XX( )函数,用来获取成员信息;然后是4个操作函数,用来从文件控制台输入输出数据;最后是 clone( )函数,用来创建一个新对象,并是这个对象包含的值是原先对象的值的副本(后文的类中的clone( )函数功能一样)。 4.2.3 BOOK、VIDEO、AINTING 类(以BOOK类为例) BOOK类定义class Book:public Mediumpublic:Book()Book(std:istream& is)read_infor(is);Book(std:ifstream& fin)read_infor(fin);std:string get_category()std:string s=BOOK;return s;Book* clone() constreturn new Book(*this);std:string get_press()return press; std:string get_ISBN()return ISBN; std:string get_pub_year() return pub_year; std:string get_pages() return pages; std:istream& read_infor(std:istream&);std:ifstream& read_infor(std:ifstream&);/从文件中读取物品信息的函数std:ostream& put_out(std:ostream& );std:ofstream& put_out(std:ofstream&); /输出信息到文件中private:std:string press; /出版社std:string ISBN; /ISBN号std:string pub_year; /出版年份std:string pages; /页数; 函数描述 BOOK 、VIDEO、PAINTING类均为Medium 类的继承类,包含基类的所有成员。较之基类中成员函数的定义,BOOK类中定义了三个构造函数,其中一个默认构造函数,然后是为了获取 press、ISBN、pub_year、pages 等私有成员数据的对应get_XX( ) 函数,此外,还有4个读入输出函数。 std:string get_category() std:string s=BOOK; return s; 用来给出BOOK类型数据类型,使得用户能够访问到。由于在输入时通过std:istream& Media_info:read(std:istream& is) Media_info类中的用于数据读入的成员函数,在读入数据时对物品的类型进行判断,因而在把数据读入到对应的BOOK 、VIDEO、PAINTING 类型中时,并没有将相应的类型读入并存储,所以,在定义这三个类时,需要一个get_category( ) 另行给出类型。 除了类的构造函数,应该将其他成员函数定义为 vitual 函数,使得函数调用时,能够调用到正确的函数。 std:ifstream& Book:read_infor(std:ifstream& fin) Medium:read_infor(fin); getline(fin,press);getline(fin,ISBN);getline(fin,pub_year);getline(fin,pages);return fin; 该函数用来读取 BOOK 类型的数据。其中Medium:read_infor(fin) 为 Medium 类中的读入函数,用来读入物品的公共成员。 std:ostream& Book:put_out(std:ostream& os ) Medium:put_out(os); ospressendlISBNendlpub_yearendlpagesput_out(os);else throw std:runtime_error(uninitialized library-data);std:ofstream& put_out(std:ofstream& of)if(cp) return cp-put_out(of);else throw std:runtime_error(uninitialized library-data);std:string category() /获得类型if(cp) return cp-get_category();else throw std:runtime_error(uninitialized library-data);std:string title() /获得标题if(cp) return cp-get_title();else throw std:runtime_error(uninitialized library-data);std:string author() /获得作者if(cp) return cp-get_author();else throw std:runtime_error(uninitialized library-data);std:string rank()/获得评级if(cp) return cp-get_rank();else throw std:runtime_error(uninitialized library-data);std:string state()/获得状态(是否在馆if(cp) return cp-get_state();else throw std:runtime_error(uninitialized library-data);std:string press() if(cp) return cp-get_press();else throw std:runtime_error(uninitialized library-data);std:string ISBN()if(cp) return cp-get_ISBN();else throw std:runtime_error(uninitialized library-data);std:string pub_year() if(cp) return cp-get_pub_year();else throw std:runtime_error(uninitialized library-data);std:string pages()if(cp) return cp-get_pages();else throw std:runtime_error(uninitialized library-data);std:string producer()if(cp) return cp-get_producer();else throw std:runtime_error(uninitialized library-data);std:string pro_year()if(cp) return cp-get_pro_year();else throw std:runtime_error(uninitialized library-data);std:string vedio_duration()if(cp) return cp-get_vedio_duration();else throw std:runtime_error(uninitialized library-data);std:string nationality()if(cp) return cp-get_nationality();else throw std:runtime_error(uninitialized library-data);std:string length()if(cp) return cp-get_length();else throw std:runtime_error(uninitialized library-data);std:string width()if(cp) return cp-get_width();else throw std:runtime_error(uninitialized library-data);private:Medium* cp; 函数描述Media_info 类为一句柄类,含有一个私有成员 Medium* cp ,cp 可以指向任意一个以Medium 类为基类的继承类的数据类型。该类含有4个构造函数,一 Media_info& operator=( )函数,一虚析构函数,接下来为4个读入输出函数,最后为15个 get_XX( ) 函数。std:ifstream& Media_info:read(std:ifstream& fin)cp=0; /如果cp已有指向,先删除已有的指向 std:string str=;getline(fin,str); /得到记录的类型if(str=BOOK)cp=new Book;cp-read_infor(fin);else if(str=VIDEO)cp=new Vedio;cp-read_infor(fin);else if(str=PAINTING)cp=new Painting; cp-read_infor(fin);getline(fin,str); return fin; 该函数用来读入物品信息,通过一Medium 型指针,经过物品类型判断,创建对应的BOOK、VIDEO、PAINTING 类型,然后将数据相应的读入到创建的对象中。在读入物品信息时,调用了cp 的成员函数 read_info 函数。Media_info:Media_info(const Media_info& s):cp(0)if(s.cp) cp=s.cp-clone();Media_info& Media_info:operator=(const Media_info& s)if(&s!=this)delete cp; if(s.cp) cp=s.cp-clone(); else cp=0; return *this; 在复制构造函数中,我们先把 cp 初始化为0。然后有条件的调用 clone 函数:如果有东西能复制的话,我们就调用 clone 函数。否则,cp 就依然等于0。 4.2.4 MediaLib 类class MediaLibpublic:MediaLib() MediaLib(std:ifstream&);/此类应具有如下方法( 操作):int menu(std:list&);/菜单,显示操作void Add_object(std:list& ); /(成员函数)增加新物品void Delete_object(std:list&);/删除物品,修改物品,显示媒体库中的物品。换言之,媒体库中所有void Modify_object( ); /修改物品信息;void Search_object(std:list& );/显示满足搜索条件的物品;void Output_object(std:list& media1); /显示媒体库中所有物品及其相关信息;void Exit( ); /退出/按某种属性搜索的子程序void S_title(std:list&); /按标题搜索void S_author(std:list&);/按作者搜索void S_rank(std:list&); /按评级搜索void S_state(std:list&); /按状态搜索/以下为BOOK类型的具体属性搜索void S_press(std:list&); /按出版社搜索void S_pub_year(std:list&);/按出版年份搜索void S_ISBN(std:list&); /按ISBN号搜索void S_pages(std:list&); /按页数搜索/以下为VEDIO类型的具体属性搜索void S_producer(std:list&);/按出品人搜索void S_pro_year(std:list&);/按出品年份搜索void S_vedio_duration(std:list&);/按视频时长搜索/以下为PAINTING类型的具体属性搜索void S_nationality(std:list&);/按出品国籍搜索void S_length(std:list&);/按作品长度搜索void S_width(std:list&);/按作品宽度搜索void collate(std:vector&);/排序函数,根据用户指定的属性进行排序std:list media; 函数描述 该类包含2个构造函数,7个与操作相关的函数,14个属性搜索函数。MediaLib:MediaLib(std:ifstream& fin) /打开用户指定的文件,从中获取数据 std:string file_name;coutfile_name; /获得文件名 const char* s=file_name.data();fin.open(s);string shr ;Media_info media_cp;bool t=true; while(true)/将类型的物体的数据读入并保存 t=media_cp.read(fin); media.push_back(media_cp); if(t=false)break; delete media_cp.cp; 该函数用来从文件中读入若干物品信息。首先需要用户给出需要打开的文件名,然后通过 fin输入流将数据逐个读入。然后每读入一个物品信息,便删除相应的指针,否则,将会出现读入错误或者文件中的物品信息不能全部读入。int MediaLib:menu(std:list& media1)/菜单,显示操作MediaLib OK;OK.media=media;coutendlendlendl;cout请选择要进行的操作: endlendl;cout1.新增物品 endlendl;cout2.删除物品 endlendl;cout3.修改物品信息 endlendl;cout4.显示满足搜索条件的物品endlendl;cout5.显示所有物品 endlendl;cout6.退出 endlch;system(pause);system(cls);switch(ch)case 1:Add_object(media);menu(OK.media);break;case 2:OK.Delete_object(OK.media);menu(OK.media);break;case 3:Modify_object();menu(OK.media);break;case 4:OK.Search_object(OK.media);menu(OK.media);break;case 5:OK.Output_object(OK.media);menu(OK.media);break;case 6:Exit();break;media=OK.media;return 0; MediaLib:menu 函数功能为显示给用户一个系统相关功能菜单,是用户根据该功能菜单进行相关操作。该函数首先使用简单的标准输出 cout ,呈现出一个可选的操作界面,然后通过 switch结构对多个case 进行选择,通过 case 中的相关操作函数,实现功能表中显示的功能。在该函数中还使用了 system(pause);system(cls) 语句来实现系统的停顿与清屏功能,使得输出了改菜单界面后,一旦选择了想要进行的操作,便进行“换页”。 MediaLib:Add_object 函数:通过调用 media_cp.read(cin),将相应类型的物体的数据读入并保存,然后将其压入media_cp 中,即放入媒体库。添加完毕,还须经 delete media_cp.cp 语句将使用的指针删除,已免影响以后的读入操作。 MediaLib:Search_object 函数:由媒体库中的物品种类将该函数分成三部分,然后分别对BOOK、VIDEO、PAINTING 类型的物品进行搜索。首先,由类似 if(type=BOOK) 语句将搜索的物品限定在某一类型的范围内。然后根据用户需要是否需要进一步搜索,提供该类型物品跟多的搜索依据(即不同的属性),该部分又使用 switch 函数,给出相应的 case 以及 case中调用的类似 S_title 的一系列函数对属性进行搜索。在得到搜索的物品后,通过调用 collate 函数对搜索结果升序排序后输出。 MediaLib:Delete_object 函数:要删除一个物品,首先要从媒体库中搜索到该物品。所以,该函数首先调用 MediaLib:Search_object 函数搜索物品,然后再搜索的物品中删除物品。 MediaLib:Modify_object 函数:修改一个物品信息,可以将该物品的所有信息先从媒体库中删除,然后再将新的物品信息增加到媒体库。 MediaLib: Output_object 函数:该函数功能为输出当前媒体库中的全部物品及其相关的全部信息。 MediaLib:Exit 函数:该函数功能为保存文件。即在经过多次操作后,将媒体库中的资料保存到用户指定的文件中。基本使用一 ofstream 类型的输出流即可达到目的。 void MediaLib:S_title(std:list& medium) /按标题搜索cout请输入你要搜索的物品标题:endl;std:string obj;cin.clear();cin.sync();getline(cin,obj); /读入给定的标题 std:list right; /存储搜索后的物品 for(std:list:iterator iter=medium.begin(); iter!=medium.end();+iter) if(*iter).title()=obj) right.push_back(*iter); medium=right; 此为该类中一系列的属性搜索函数,即根据该属性搜索满足条件的物品。4.3 比较函数 为实现该媒体库系统的按给定的顺序输出功能,定义了一系列类似的比较、输出函数。 以下为一排序函数(部分代码):根据用户指定的属性进行排序void MediaLib:collate(std:vector& Media)system(pause);system(cls);coutBOOK 请选择输出时的排序依据:endl;coutA.标题 B.作者 C.评级 D.状态endl;coutE.出版社 F.ISBN号 G.出版年份 H.页数endl;cout*endl;coutVEDIO 请选择输入时排序依据:endl;coutA.标题 B.作者 C.评级 D.状态endl;coutI.出品人 J.出品年份 K.视频时长 endl;cout*endl;coutPAINTING 请选择输入时排序依据:endl;coutA.标题 B.作者 C.评级 D.状态endl;coutL.出品国籍 M.长度 N.宽度 endl;cout*endl;coutQ.不需要(再)排序,退出排序endlendl;int cl=1;while(cl)cout请选择(共有:A-D BOOK:E-H VIDEO:I-J PAINTING:L-N 退出并输出:Q)ch;system(pause);system(cls);switch(ch)case A:sort(Media.begin(),Media.end(),compare_ascend_title);cl=1;break; 该函数首先给出一显示界面,显示出给用户提供的属性,然后使用 switch 函数,通过不同的 case ,达到排序的目的。bool compare_ascend_title( Media_info& s1, Media_info& s2) return s1.title() 删除 添加如图12 所示,根据提示,选择进一步搜索的依据属性。“9”号功能后会输出当前搜索结果,如图11。图 11 图 12 增加操作如 1 号功能显示。做完此操作,将会返回到操作菜单,由于修改物品功能中需要用到搜索与删除操作,所以,在此处的运行演示中,略去 2 号、4 号功能的操作步骤,直接进入 5 号功能。5 号功能为显示媒体库中的所有物品。选择该项功能,将会输出当前媒体库中的信息。图 13 最后为退出操作。完成文件保存。根据提示输入你想要将数据保存到的文件的名字,可自己再重新创建一文件,也可为打开的文件。图 146课程设计心得 通过本次课程设计,对本学期C+课程习得的知识进行了一次综合运用,巩固了所学。而本次课程设计与现实联系比较紧密,综合性也比较强,锻炼了独立思考并解决问题的能力。课程设计分为两个阶段,对于处理问题比较有层次性,即逐步深入;而课程要求也对本次试验有一定的引导作用。完成了本次试验,对于其他编程项目,不论简单、复杂,也比较容易理解、接受、尝试、解决。 虽然,本次试验的完成比较顺利,但仍遇到许多的问题。 阶段一时,要求编写程序测试 Medium 类、BOOK 类、VIDEO 类、PAINTING 类,结果通过调试、运行,结果输出时,每个物品信息输出的末尾均会出现一串相同的数字,当然,数字并不是每个时候都是同一串,但同一次输出数字相同。该问题并未解决,猜测可能是访存时出了差错,没能验证。见图15图 15阶段二,调试程序,有一问题的描述类似乱码,不理解,只能大概知道大约哪里出了错,或者是这个错误与那几个函数有关系。上网查过解决办法,也与同学交流过,仍没能解决,后来检查类时,发现类中声明的一构造函数没有在对应的源程序中给出定义。所以,有些错误是很难理解的,但只要编写时能够仔细,便能或多或少地减少错误。 阶段二,遇到的问题比较多。调试好程序之后的运行阶段,经过多次运行,发现程序对文件中的数据读入达不到预期效果,每次读入,只能读入一个物品的信息便不再继续读入。原本按照课本上的读入思路与代码,不成功。之后发现,根据提供
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 法人调解协议书
- 反担保协议书
- 2025年上海房地产买卖合同范本
- 2025租房合同协议书
- 2025综合咨询委托合同
- 赞赞协议书辅助
- 2025年临时工劳动合同
- 合作社入股协议书
- 2025家政服务居间合同范本
- 2025商场店铺租赁合同范本参考
- 2024版中国宪法课件
- 《食品厂员工绩效方案》
- 工程人员驻场服务方案
- 汽车智能技术与应用 教案全套 朱升高 项目1-10 智能网联汽车技术介绍- 车载嵌入式操作系统应用
- 产品方案设计模板
- 企业合规经营规范手册
- 骨与关节运动学基础-运动链(康复护理技术)
- 2.2中国的气候季风气候特殊天气和气象灾害课件八年级地理上学期
- GB/T 4706.74-2024家用和类似用途电器的安全第74部分:缝纫机的特殊要求
- 2024版民间借款抵押合同范本完整版
- DL 5190.5-2019 电力建设施工技术规范 第5部分:管道及系统
评论
0/150
提交评论