




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C 语言课程设计姓名:徐宗博学号: *班级: 061092指导教师:曹老师2011年6月25日目录第一章:实习内容1.1(2)1.2(3)第二章:程序流程图第三章:函数模块介绍3.1(6)3.2(8)3.3(12)3.4(12)第四章:实习总结(16)第五章:实习体会(17)附录:参考文献(19)源代码(19)第一章:实习内容1.1 实习内容简介学生通讯录管理系统1. 可实现信息的添加、删除,可按学号、姓名查询;2. 学生信息必须包含学号、姓名、学院、专业、籍贯。地址、电话号码;3. 必须有注释。2011 年 6 月 20 日至 27 日,共 8 个半天。信息楼 301曹雪莲1. 程序可完成信
2、息的添加,可按学号、姓名分别查询;2. 程序可按姓名、学号分别删除,并在删除前显示删除学生的全部信息;按姓名删除,若出现同名情况,会依次出现系统提示是否删除,可选择删除或跳过;3.在程序文件夹中有一“学生信息库”的 txt 文件,可查看学生系统里全部学生信息;4. 设置有一个恢复区系统,可输出、查询删除的信息,并在可同文件夹中“删除信息库”的 txt 文件中查看删除信息;总体结构如下:1.2 程序代号说明代号说明结构体 student结构体 stu全局变量num学号inf学生信息,包含左结构体n链表节点数量student 全部信息name姓名next本类型结构体指针rhead恢复区链表头指针a
3、cademy学院searchnum目标个数major专业province省份address地址phone电话号码函数add增加delet删除 (按姓名或学号 )search查找search_num搜索学号search_name搜索姓名print输出链表上信息print1输出链表上单个节点的信息save以二进制格式储存数据txtsave以文本格式储存数据crete从二进制文件中读取信息,建立链表deletinput将删除信息导入恢复区链表system管理系统主要程序recover恢复区系统主要程序此外,局部变量的含义比较固定:head链表头指针,若与rhead 一同出现则代表管理系统链表头指针s
4、elect、input为选择的值filename文件名第二章:程序流程图程序流程图:本次实习我的思路就是, 先从二进制文件中读取信息, 形成链表, 对链表进行基本操作,如输出、添加、删除、查找。程序结束时将链表保存在二进制文件和文本文件中。管理系统流程图:运行管理系统部分时,先从文件“ information.xls ”中读取数据(若无该文件则创建文件),构建链表;后续操作都是对于链表进行操作,如添加、查找、删除、输出等; 离开该部分时则保存链表里的信息到已存在的“ information.xls”,并以 ASCII 形式存储至“学生信息库.txt”,方便检查。恢复区系统流程图:恢复区系统思路
5、与管理系统思路类似,连函数调用都是一样的,二进制文件名为“ dinformation.xls ” , 文本文件名为“删除信息库 .txt ”。具体函数模块功能将在第三章中具体介绍。第三章:函数模块介绍程序分为管理系统和恢复区系统两部分和读取文件、 存储文件四部分, 以下分别介绍。3.1 读取文件、存储文件读取文件该函数模块 ( 程序名为 creat ) 于管理系统或恢复区系统运行前运行,目的是读取二进制文件信息,构建链表;若无目标文件,则创建文件。返回值为头指针。函数主体为: struct stu *p1,*p2;struct stu *head;while(fread(&(p1-inf),L
6、EN,1,fp)/读取数据n=n+1;/若读取数据成功节点数加一if(n=1) head=p1;/给头结点赋值else p2-next=p1;/加新的结构体p2=p1;p1=(struct stu *)malloc(LENS);fclose(fp);p2-next=NULL;/尾结点处指针置0return(head);存储文件该函数模块分为两部分,以二进制形式存储链表信息(程序名为save )和以文本形式存储(程序名为 txtsave )。二进制形式文件是为了读取文件,优点是快速;文本文件是为了方便检查,优点是明确可见。无返回值。二进制形式存储程序为:void save(struct stu
7、*head,char filename20)/存储链表信息FILE *fp;struct stu *p;p=head;fp=fopen(filename,wb);/以二进制方式打开文件while(p!=NULL)&fwrite(&(p-inf),LEN,1,fp)/写入文件p=p-next;fclose(fp);/ 其中 head 为链表头指针, filename 为存储文件名,在主函数中已有定义。存储在文本文件程序为:void txtsave(struct stu *head,char filename20)/以文本形式将链表输入文件FILE *fp;struct stu *p;p=head
8、;fp=fopen(filename,w);/以文本形式打开while(p!=NULL)/链表不到尽头不停止fprintf(fp,%ld,(p-inf).num);/向文本文件中写入数据fprintf(fp,%10s,(p-inf).name);fprintf(fp,%10s,(p-inf).academy);fprintf(fp,%10s,(p-inf).majoy);fprintf(fp,%10s,(p-inf).province);fprintf(fp,%10s,(p-inf).address);fprintf(fp,%20sn,(p-inf).phone);p=p-next;3.2 管
9、理系统模块管理系统 ( 名为 system) 主要有四个函数功能部分, 分别为添加、 删除、查找、输出,以下依次介绍:添加该模块函数名为 add,无返回值,参数为链表头指针,功能为向已建立的链表中从键盘上输入信息。函数主体为:struct stu *p1,*p2;/建立结构体指针p2=head;p1=(struct stu *)malloc(LENS);/printf(n学号 ( 输入数值请小于输入信息32756) :);scanf(%d,&(p1-inf).num);printf(n姓名: );scanf(%s,(p1-inf).name);printf(n学院: );scanf(%s,(p
10、1-inf).academy);printf(n专业: );scanf(%s,(p1-inf).majoy);printf(n省份: );scanf(%s,(p1-inf).province);printf(n地址: );scanf(%s,(p1-inf).address);printf(n电话号码: );scanf(%s,(p1-inf).phone);while(p2-next)!=NULL)/移动指针到链表尾p2=p2-next;p2-next=p1; /移动指针p2=p1;p2-next=NULL;删除函数名为 delet ,返回值为指向结构体的链表头指针,参数为链表头指针,可按姓名和
11、学号删除。若按姓名删除时,为防止同名情况,则查询到一个目标,就显示出信息,并提示是否删除。1. 按学号查找的函数主体为:printf(请输入拟删除学生学号:n);long snum=0;scanf(%ld,&snum);struct stu *p1,*p2;p1=head;while(snum!=p1-inf.num&p1-next!=NULL)/p1指向的学号不是要找的节点,并且后面还有节点 p2=p1;p1=p1-next;/p1 if(snum=p1-inf.num)/后移找到目标print1(p1);deletinput(p1);/print1()为输出相应指针指向的节点信息 dele
12、tinput()为向恢复区系统链表输入信息的函数,在后续3.3 中会提及if(p1=head)head=p1-next;/若p1指向头节点,将第二个节点位置赋予headelse p2-next=p1-next;/ 否则将下一结点位置赋给前一节点位置 n-;else printf(该学生不存在 );return(head);2. 按姓名查找(包含同名情况):int select=0,count=0;/selet选择删除与否 ,count 代表删除次数char sname20;/定义要搜的名字struct stu *p1,*p2;p1=head,p2=head;printf(请输入学生姓名:n);
13、scanf(%s,sname);/输入学号while(p1!=NULL)/历遍链表if(strcmp(sname,)=0)/ 与目标名字是否一致,相同为0print1(p1);/若符合姓名条件,显示信息printf(删除该生信息?n 删除选 1n 按其它键不删除n);/保证达到目标姓名时显示学生信息,可选择不删除scanf(%d,&select);if(select!=1)p2=p1;p1=p1-next;continue;/else不删除就再次循环n-;deletinput(p1);count+;/删除数加一if(p1=head) head=p1-next;/else
14、p2-next=p1-next;/删除信息更改指针,绕过目标p2=p1;p1=p1-next;if(count=0) printf(该生信息不存在);/若未删除则视为未发现目标学生return(head);查找函数名为 search ,参数为链表头指针,无返回值。其中查找可按姓名与学号进行查找,若找到目标即出现在屏幕;若出现同名情况,则依次显示。查找与删除函数语句类似,但是删除要求目标的前一个节点的指针与目标节点的指针都能知道;而查找要求则低多了。因为这个原因,在加上我是先写的查找,所以删除中未调用查找函数。按学号查找函数主体如下:long snum;/定义要查询学号变量printf(请输入学
15、号: n);scanf(%ld,&snum);/输入学号while(p!=NULL)/历遍链表p=search_num(p,snum);/ 此为调用函数,效果是查找到与目标相同的信息然后返回相应指针if(p!=NULL) print1(p);/若查找到目标,输出else break;p=p-next;/传递指针,继续按姓名查找函数主体如下:char sname20;/定义要查询姓名的变量printf(请输入姓名: n);scanf(%s,sname);/输入姓名while(p!=NULL)p=search_name(p,sname);/与上文中 search_num类似,返回同名目标的指针if
16、(p!=NULL) print1(p);/else break;p=p-next;/传递指针若查找到目标,输出输出函数名为print,参数为链表头指针head,无返回值。函数作用就是沿链表依次输出学生信息。函数主体为:printf( 全体学生数据如下:n );if (n=0) printf( 无学生信息 ); return ; / 若节点为 0则返回structstu *p;p=head;while (p!=NULL) / 循环输出printf(printf(printf(printf(printf(printf(printf(n 学号 %d ,(p-inf).num);n 姓名 %s ,(p
17、-inf).name);n 学院 %s ,(p-inf).academy);n 专业 %s ,(p-inf).majoy);n 省份 %s ,(p-inf).province);n 地址 %s ,(p-inf).address);n 电话号码 %sn ,(p-inf).phone);p=p-next;3.3 恢复区系统模块恢复区系统(其名为recover )是为了显示被删除信息而建立的,在函数运行之初便建立了恢复区链表,头指针设为rhead ,与管理系统头指针head 相区别。并且, rhead 被设为全局变量,方便被函数调用。恢复区系统主要有查找、输出功能,其功能模块基本调用管理系统的函数,
18、所以不再赘述。而恢复区的输入函数,即管理区删除信息时将信息输入恢复区链表的函数,上文已提及,即 deletinput, 此为连接恢复区与管理系统的桥梁,只不过是单行的。函数为:void deletinput(struct stu *p)/将删除信息导入恢复区链表,p为要删除信息的指针struct stu *p1,*p2;p1=rhead;/恢复区链表头节点位置while(p1-next!=NULL)/指针置于链表尾端p1=p1-next;p2=p1;p1=(struct stu *)malloc(LENS);/复制结构体信息p1-inf.num=p-inf.num;strcpy(p1-inf.
19、name,);strcpy(p1-inf.academy,p-inf.academy);/复制字符数组,以下类似strcpy(p1-inf.majoy,p-inf.majoy);strcpy(vince,vince);strcpy(p1-inf.address,p-inf.address);strcpy(p1-inf.phone,p-inf.phone);p2-next=p1;p1-next=NULL;/链表尾设为 NULL以上程序函数模块基本介绍完毕,由于篇幅有限,很多函数模块只摘录了主体,若仍有疑惑处,可参考附录中的源代码。3.4
20、功能展示主界面:管理系统:void system()添加:void add(struct stu *head)可连续添加查找:void search(struct stu *head)删除:struct stu *delet(struct stu *head)按学号删除:按姓名查询,可面对重名情况:输出:void print(struct stu *head)恢复区系统菜单:void recover()文本形式保存:void save(struct stu *head,char filename20)删除信息导入恢复区链表:void deletinput(struct stu *p)第四章:实
21、习总结本次实习,我制作了两个版本的程序,一个是简版,一个是升级版。其实,简版就是管理系统,升级版在简版的基础上还包含了恢复区系统。这也算是实现了程序的升级吧,安全性方面算是达标了。本次实习的不足主要有:1实用性不足。程序中学生信息定义的是长整型,故范围有限,不能大于32756,否则就会溢出; 如果定义为无符号的长整, 也不过翻一番而已, 并未增添多少位, 我校学号可是有 11 位。但这样方便比较给变量赋值, 并且在查找中已有查找姓名字符串的应用了,用长整型丰富了查找类型;其实完全可以定义学号为字符型数组,虽说浪费空间,但是方便输入较长数值,且比较也很方便,可以直接调用查找姓名字符串的函数。2程
22、序中函数模块利用率不高,除了读取、存储、查找、输出这四个模块被两个系统调用外, 其他删除、 添加只有管理系统用到; 倒是 print1 这么一个输出单一节点信息的程序被调用多次;3函数模块十分庞大,很多程序语句充斥在其中,没有很好的分成几部分子函数,方便调用,这也导致了函数调用率不高;4因为思路原因,程序中有三个全局变量,不利于程序的移植,可移植性不高;5程序中查找模块与删除模块没有结合好,导致在删除中又查找了一遍;说到底还是目标不一样,查找函数只要求目标节点的指针,而删除函数要前一个节点和目标节点的指针,而且链表是单向的,知道后一个节点但不能知道前一个节点。若用双向链表,那样就可以将删除与查
23、找较好的结合在一起了。6恢复区只有查找、输出功能,没有恢复与删除功能,如此只能添加不能删除,恢复区文件会越来越大; 因为时间问题没有建立恢复函数, 其实建立也不难,只是会与恢复区导入函数类似,再增加一全局变量而已;7使用链表所以未排序。如果要给链表排序,可以在插入信息时就按顺序插入,但是这势必增加程序运行负担,而且效率不高,因为链表是单向的。可以用二叉树,如果那样的话效率就高多了,但是二叉树我还不会。8. 程序视图就是 C 语言的黑框,没有美观可言。 C+的视图好一些,我也想过用 C+编译一个窗口, 然后在程序中调用。 但是 C+还没学会, 而且在调试程序的过程中遇到一些困难让我遗忘了这个想法
24、,曾看程序看到凌晨两点,所以想法没有实践。9. 在软件技术普及的今天,做个数据库已是小菜一碟,很到软件可以使用,如 Microsoft Office Access ,并且功能极其强大,比我花了几天时间做出来的高级不知多少倍。与那些专业程序相比,我的这程序不值一提,也就是练习练习C 语言而已。第五章:实习感受此次实习在一个凉爽的夏日开始,这在武汉极反常。因为我们考试基本考完了,只剩下一门英语了,所以实习时间比较充裕。实习的题目也不算太难,思路很清晰,总共三步走:1. 读取文件; 2.表; 3. 保存文件。操作的主体是链表,原以为会很轻松,但还是遇到很多问题,以前上课时从未想到过。处理链经历过基本
25、一天都在看程序的时间,我发现我懂的太少,要学的太多。对文件的操作我一直都没注意,现在才发现其乐无穷;以前觉得链表很难,现在轻松写出程序。学习与实践果然是不可分割的。实习中,大家八仙过海各显神通,用链表是比较传统的,而且节省内存,有的用数组,这也可以理解,方便使用,排序便利;有的直接用文件C 语句查询、删除,让我大开眼界,文件还能这么用!在写报告时看到一篇用指针数组做的程序,相当有意思。发现水平还是不够,同学可以用C 语言编出一个比较漂亮的界面,还可以随意调用文件操作,实在让人赞叹不已。此次实习加强了我对链表的理解,很多以前迷糊的概念得到了明确,亦让我感到 C语言强大之处,直接操作内存,实在很暴
26、力。一句诗概括此次实习, “山重水复疑无路,柳暗花明又一村”;如今 C 语言实习已然结束,但是对于计算机语言的学习决不能放松,“雄关漫道真如铁,而今迈步从头越”。现在的世界是信息化的,我们现在对于Matlab 的要求也很大,C语言也是其基础。路漫漫其修远兮,吾将上下而求索。感谢曹老师抽出时间将 C 语言实习提前和这八天来的指导,同时亦感谢大家这些天来的支持与帮助,此外额外感谢武汉夏天罕见的凉爽天气,感谢生活。附录参考书目1. 谭浩强着 C 语言程序设计2005 年 7 月第 3 版 298-299 、 300、 302-303 、338 页2. 吴煌坚学长的实习报告源代码#include#in
27、clude#include#define NULL 0#define LEN sizeof(struct student)#define LENS sizeof(struct stu)struct student/学生信息结构体long num;/学生学号char name20;/学生姓名char academy20;/学院char majoy10;/专业char province10;/省份char address20;/地址char phone11;/电话号码;struct stu/带学生信息结构体的链表单位struct student inf; struct stu *next;/后续链
28、表地址;int n;/记录节点个数int searchnum;/搜索个数,保证未搜索到时可显示没搜到struct stu *rhead;/方便全局调用恢复区链表structstu *creat(charfilename120)/创建链表,从文件中读取数据,返回头指针struct stu *head;/链表头指针struct stu *p1,*p2;/指针变量p1=p2=(struct stu *)malloc(LENS);FILE *fp;/打开文件读取数据if(fp=fopen(filename1,rb)=NULL)/若文件不存在则建立文件printf(暂无任何学生信息n);fp=fopen
29、(filename1,wb+);/建立文件fclose(fp);p1-next=NULL;return(p1);else /读取文件信息,建立链表n=0;/此时无结点head=p1;while(fread(&(p1-inf),LEN,1,fp)n=n+1;if(n=1) head=p1;/else p2-next=p1;/p2=p1;给头结点赋值加新的结构体p1=(struct stu *)malloc(LENS);fclose(fp);p2-next=NULL;/尾结点处指针置0return(head);void save(struct stu *head,char filename20)/
30、存储链表信息FILE *fp;struct stu *p;p=head;fp=fopen(filename,wb);/以二进制方式打开文件while(p!=NULL)&fwrite(&(p-inf),LEN,1,fp)/写入文件p=p-next;fclose(fp);void deletinput(struct stu *p)/将删除信息导入恢复区链表struct stu *p1,*p2;p1=rhead;/恢复区链表头节点位置while(p1-next!=NULL)/指针置于链表尾端p1=p1-next;p2=p1;p1=(struct stu *)malloc(LENS);/复制结构体信息
31、p1-inf.num=p-inf.num;strcpy(,);strcpy(p1-inf.academy,p-inf.academy);strcpy(p1-inf.majoy,p-inf.majoy);strcpy(vince,vince);strcpy(p1-inf.address,p-inf.address);strcpy(p1-inf.phone,p-inf.phone);p2-next=p1;p1-next=NULL;void txtsave(struct stu *head,char filename20
32、)/以文本形式将链表输入文件FILE *fp;struct stu *p;p=head;fp=fopen(filename,w);/以文本形式打开while(p!=NULL)/链表不到尽头不停止fprintf(fp,%ld,(p-inf).num);/向文本文件中写入数据fprintf(fp,%10s,(p-inf).name);fprintf(fp,%10s,(p-inf).academy);fprintf(fp,%10s,(p-inf).majoy);fprintf(fp,%10s,(p-inf).province);fprintf(fp,%10s,(p-inf).address);fpr
33、intf(fp,%20sn,(p-inf).phone);p=p-next;void print1(struct stu *p)/输出单个学生结构体信息printf(nprintf(nprintf(nprintf(nprintf(nprintf(nprintf(n学号 %d,(p-inf).num);姓名 %s,(p-inf).name);学院 %s,(p-inf).academy);专业 %s,(p-inf).majoy);省份 %s,(p-inf).province);地址 %s,(p-inf).address);电话号码 %sn,(p-inf).phone);struct stu *se
34、arch_name(struct stu *p,char sname20)/按姓名搜索while(p!=NULL)if(strcmp(sname,)=0) +searchnum;return(p);/若查找到目标,返回指针p=p-next;if(searchnum=0) printf(没有该学生信息);return(NULL);/返回 NULL以保证返回值struct stu *search_num(struct stu *p,long snum)/按学号搜索while(p!=NULL)if(snum=(p-inf.num) +searchnum;return(p);/若查
35、找到目标,返回指针p=p-next;if(searchnum=0) printf(没有该学生信息);return(NULL);/返回 NULL以保证返回值void add(struct stu *head)/添加信息int input=1;/给输入按钮赋初值struct stu *p1,*p2;/建立结构体指针p2=head;while(input!=0)printf(请选择: n 输入 0 返回主菜单 n 输入 1 继续 n);scanf(%d,&input);/输入按钮赋值if(input=0) break;/判断是否返回主菜单if(n=0) /链表无节点,给*head 填充数据print
36、f(n学号(输入数值请小于32756):);scanf(%d,&(head-inf).num);printf(n姓名: );scanf(%s,(head-inf).name);printf(n学院: );scanf(%s,(head-inf).academy);printf(n专业: );scanf(%s,(head-inf).majoy);printf(n省份: );scanf(%s,(head-inf).province);printf(n地址: );scanf(%s,(head-inf).address);printf(n电话号码: );scanf(%s,(head-inf).phone
37、);n+;p2-next=NULL;continue;/增加节点,节点数n 加 1,同时跳出此次循环,进入下一次p1=(struct stu *)malloc(LENS);/输入信息printf(n学 号 (输入数 值请小于32756) :);scanf(%d,&(p1-inf).num);printf(n姓名: );scanf(%s,(p1-inf).name);printf(n学院: );scanf(%s,(p1-inf).academy);printf(n专业: );scanf(%s,(p1-inf).majoy);printf(n省份: );scanf(%s,(p1-inf).prov
38、ince);printf(n地址: );scanf(%s,(p1-inf).address);printf(n电话号码: );scanf(%s,(p1-inf).phone);while(p2-next)!=NULL)/移动指针到链表尾p2=p2-next;p2-next=p1; /移动指针p2=p1;p2-next=NULL;n+;/节点数加 1void search(struct stu *head)/搜索信息searchnum=0;if(n=0) printf(此时无数据 );return;/struct stu *p;p=head;printf(请输入拟搜索信息:n);printf(按
39、姓名查找请按1n 按学号查找请按int input=0;scanf(%d,&input);/导入分类节点数为2n);/0 状态分类查找if(input=1)/按姓名查找char sname20;printf(请输入姓名: n);scanf(%s,sname);/输入姓名while(p!=NULL)p=search_name(p,sname);if(p!=NULL) print1(p);/若查找到目标,输出else break;p=p-next;/传递指针else if(input=2)/按学号查找long snum;printf(请输入学号: n);scanf(%ld,&snum);/输入学号
40、while(p!=NULL)p=search_num(p,snum);if(p!=NULL) print1(p);/else break;p=p-next;/传递指针若查找到目标,输出else printf(输入错误);return;struct stu *delet(struct stu *head)/删除信息if(n=0) printf(无学生信息 );return(head);int input=0;/选择变量 : 学号、姓名printf( 按姓名删除请按 1n 按学号删除请按 2n);/ 分类删除 scanf(%d,&input);if(input=2)/按学号删除(学号默认唯一)pr
41、intf(请输入拟删除学生学号:n);long snum=0;scanf(%ld,&snum);struct stu *p1,*p2;p1=head;while(snum!=p1-inf.num&p1-next!=NULL)/p1指向的学号不是要找的节点,并且后面还有节点 p2=p1;p1=p1-next;/p1 if(snum=p1-inf.num)/ 后移找到目标print1(p1);deletinput(p1);if(p1=head)head=p1-next;/若 p1 指向头节点,将第二个节点位置赋予 headelse p2-next=p1-next;/ 否则将下一结点位置赋给前一节点
42、位置 n-;else printf(该学生不存在 );return(head);else if(input=1)/按姓名删除(姓名可以重复)int select=0,count=0;/ char sname20;选择删除与否struct stu *p1,*p2;p1=head,p2=head;printf(请输入学生姓名:n);scanf(%s,sname);/输入学号while(p1!=NULL)/历遍链表if(strcmp(sname,)=0)print1(p1);/若符合姓名条件,显示信息printf(删除该生信息?n 删除选 1n 按其它键不删除n);/保证达到目
43、标姓名时显示学生信息,可选择不删除scanf(%d,&select);if(select!=1)p2=p1;p1=p1-next;continue;/不删除就再次循环elsen-;deletinput(p1);count+;/删除数加一if(p1=head) head=p1-next;/else p2-next=p1-next;/删除信息更改指针,绕过目标p2=p1;p1=p1-next;if(count=0) printf(该生信息不存在);/若未删除则视为未发现目标学生return(head);else printf(输入错误 );return(head);void print(struct stu *head)/输出全部数据数据printf(全体学生数据如下:n);if(n=0) printf(无学生信息 );return;/若节点为0 则返回struct stu *p;p=head;while(p!=NULL)/循环输出printf(n学号 %d,(p-inf).num);printf(n姓名 %s,(p-inf).name);printf(n学院 %s,(p-inf).academy);printf(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年北京市房山区北京版六年级下册期末测试英语试卷(含答案)
- 及物动词和不及物动词辨析高频考点 专题练 2026年中考英语复习备考(含答案)
- 特色的民族风课件
- 1.9 有理数的乘法-数学华东师大版(2024)七年级上册随堂小练(含答案)
- 钾肥干燥轮球输送系统工艺考核试卷及答案
- 小型起重机防腐工艺规范考核试卷及答案
- 蔬菜酱渍工艺考核试卷及答案
- 2025年焊工特种作业操作证考试试卷(中级)模拟题库(附答案+解析)
- 2025年焊工考试高分题库及完整答案详解(名师系列)
- 2025年焊工比武考试题及答案
- 烟草物流培训课件
- 部编版小学四年级语文上册教学计划及教学进度表
- 2025年乡村医生考试题库(基础医学知识)历年真题与解析试题卷
- 高速公路笔试试题及答案
- 剪映剪辑教学课件
- 麦当劳营销策略分析及对策建议定稿
- 全陪导游工作流程
- 2025年七年级上册生物知识点总结样本(2篇)
- 变化与更新-2025中国家居家装行业发展研究报告-树懒生活fine-202501
- 主要施工机械设备、劳动力、设备材料投入计划及其保证措施
- 4S店企业职业卫生培训
评论
0/150
提交评论