




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
经济管理学院本科课程设计论文数据结构课程设计学 号: 姓 名: 班 级: 管理101 专 业: 信息管理与信息系统 系 别: 管理系 指导教师: 2011 年 12 月 30日 目录第1章 停车场管理问题- 3 -1.1需求分析- 3 -1.1.1课程设计的目的- 3 -1.1.2课程设计的任务- 3 -1.1.3软件运行和开发工具- 3 -1.1.4系统总体设计图- 3 -1.1.5基本信息- 4 -1.2概要设计- 4 -1.2.1问题定义- 4 -1.3流程图及系统测试- 5 -1.3.1进停车场- 5 -1.3.2车辆离开- 5 -1.4程序运行图- 6 -1.4.1菜单栏- 6 -1.4.2输入信息栏- 7 -1.4.3出车栏- 8 -1.4.4显示栏- 9 -1.5心得感受- 9 -第2章 运动会分数统计- 11 -2.1需求分析- 11 -2.2 概要设计- 11 -2.2.1 系统功能设计- 11 -2.2.2函数构造- 12 -2.3详细设计- 13 -2.3.1 数据类型及重要变量的定义- 13 -2.3.2函数的设计和实现- 14 -2.4测试- 18 -2.5课程设计总结- 22 -2,5,1调试中遇到的较重要问题回顾- 22 -2.5.2算法的效率及改进设想- 23 -参考文献- 24 -附录- 25 -附录1- 25 -附录2- 35 -经济管理学院本科课程设计论文第1章 停车场管理问题1.1需求分析1.1.1课程设计的目的运用数据结构编写一个C语言程序,实现对停车场的管理。只要包括:车辆到达时得信息登记,车辆离开时得信息记录及便道的车辆信息的显示功能。1.1.2课程设计的任务该系统实现以下几个功能:(1)车辆到达信息登记:包括车牌号,在停车场停放的位置等;(2)车辆离开信息记录;(3)信息显示:显示停车场内和便道内的汽车到达及位置等信息;1.1.3软件运行和开发工具1、windows2000以上操作系统2、VisualC+6.0开发环境1.1.4系统总体设计图 停车场管理系统车辆离去车辆到达 退出信息便道信息图1-11.1.5基本信息 车的车牌号,到达时信息及离开时信息。1.2概要设计使用Visual C+平台设计学生成绩管理系统的主框架。1.2.1问题定义该程序主要是为了实现对车库的管理,为实现该功能先定义了一个系统菜单:(1)添加信息 (2)查找停车信息 (3)显示全部信息 (4)显示统计数据1.3流程图及系统测试1.3.1进停车场车辆进停车场是否有车进入停车场记录信息回主菜单进入便道记录信息YN图1-2进停车场流程1.3.2车辆离开车辆进停车场是否有车进入停车场记录信息回主菜单进入便道记录信息YN 图1-3车辆离开1.4程序运行图1.4.1菜单栏 图1-4菜单栏运行图1.4.2输入信息栏 图1-5输入信息栏运行图1.4.3出车栏 图1-6出车栏运行图1.4.4显示栏 图1-7显示栏运行图1.5心得感受 开始时候的课程设计完全没有思路,感觉很迷茫,不知道从何做起。幸好在课设之前孙老师给我们做了很详细的指点,记得在大一的时候老师就提到过他,当时就给我们留下了深刻的印象。是一位很负责任的,很有耐心的好老师,我们很爱孙鸿飞老师。 课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握管理项目的开发技术是十分重要的。 回顾起此次停车场问题管理系统课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整一星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,一定把以前所学过的知识重新温故。在以后会有更多的课程设计,我们现在的努力是为了将来打好基础,赵老师很认真的对待我们的答辩,这是一种很负责任的表现,这是要让我们真正的自己动手,了解和掌握一些基本知识,在以后的工作中做到游刃有余。 这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在孙老师的辛勤指导下,终于游逆而解。同时,在孙老师的身上我学得到很多实用的知识,在此我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!第2章 运动会分数统计2.1需求分析问题描述:参加运动会有n个学校,学校编号为1n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1m,女子m+1m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m=20,n=20)。功能要求:(1)可以输入各个学校各个项目的前三名或前五名的成绩;(2)能统计各学校总分;(3)可以按学校编号或名称、学校总分、男女团体总分排序输出;(4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校;(5)数据存入文件并能随时查询;(6)规定:输入数据形式和范围:可以输入学校的名称,运动项目的名称。输出形式:有中文提示,各学校分数为整形。界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。2.2 概要设计2.2.1 系统功能设计根据运动会分数统计系统问题的分析和设计要求,可以将该系统可以分为三个模块:信息统计模块、信息输出模块、信息查询模块,其系统功能结构图如图2-1所示。(1)信息统计模实现信息的输入、统计、存档。(2)信息输出模块,实现信息的输出。(3)信息查询实现信息的查询。 图2-1 系统功能结构图2.2.2函数构造根据系统功能结构图的描述,可以构造出该系统的几个基本的函数,其方法名和功能如表2-1所示。表2-1 函数功能表函数功能void inputinformation( )输入和统计信息函数void output( )输出信息函数void inquiry( )查询信息函数void writedata( )数据存储函数void readdata( )读入数据函数2.3详细设计2.3.1 数据类型及重要变量的定义定义运动项目数据类型,用于存放运动项目,包括项目编号、项目所取名次数、名次、分数。/定义项目结点的类型typedef struct int itemnum; /项目编号 int top; /项目取名次的数目,由用户定义3或5 int range5; /名次 int mark5; /分数itemnode;定义学校数据类型,用来存储参赛学校信息,包括学校编号、学校总分、男团总分、女团总分、项目数组。/定义学校结点类型typedef structint schoolnum; /学校编号 int score; /学校总分 int mscore; /男团体总分 int wscore; /女团体总分 itemnode cm+w; /项目数组schoolnode;定义学校数组schoolnode hn。采用数组结构有利于随机的存储和查询。定义全局标志变量int flag1、flag2,分别用以标志是否已经向系统输入了信息和标志系统中是否已经存在信息。定义文件指针FILE * report,用来指向存档的文件。2.3.2函数的设计和实现在概要设计中已经对该系统涉及的抽象数据类型和函数及其功能做了说明,这里就不在对每个函数进行一一说明,只对其中比较重要的功能模块进行描述。(1)信息输入及分数统计功能void inputinformation( )为输入信息及分数统计函数。在输入信息的同时进行分数的统计。可以输入各个学校各项目前三名或前五名的成绩。在输入学校的参赛项目时,结果取前三名还是前五名自己定,用一个选择语句实现。利用swith语句前三名的分数赋为5、3、2,前五名的成绩赋为7,5、3、2、1,未取得成绩则赋为0。并统计团体总分,男团总分和女团总分。其主要功能代码如下:for(s=0;sk;s+) printf(*名次:); scanf(%d,&hi.cj.ranges); /输入所获名次信息 if(hi.cj.top=3) switch(hi.cj.ranges) case 0: hi.cj.marks=0; break; case 1: hi.cj.marks=5; break; case 2: hi.cj.marks=3; break; case 3: hi.cj.marks=2; break; else switch(hi.cj.ranges) case 0: hi.cj.marks=0; break; case 1: hi.cj.marks=7; break; case 2: hi.cj.marks=5; break; case 3: hi.cj.marks=3; break; case 4: hi.cj.marks=2; break; case 5: hi.cj.marks=1; break; hi.score=hi.score+hi.cj.marks;(2)信息输出功能void output( )为输出函数。列出一个输出目录利用swich语句使函数按学校编号输出或按学校总分、男团总分、女团总分由高到低排序输出。利用辅助数组remember和冒泡排序的方法使之按分数的由高到低输出。利用循环语句do while( )当输入2时返回输出目录,输入0是跳出循环返回主菜单。其流程图如图2-2所示。图2-2输出信息模块流程图(3)信息查询功能void inquiry( )为查询函数。列车一个查询目录利用swich 语句使函数按学校编号或项目编号查询,输出某学校的某个项目的得分情况或某个项目的前几名的学校。再利用循环语句do while( )当输入2是返回查询目录,输入0时跳出循环返回主菜单。其程序流程图如图2-3所示。图2-3 查询信息模块程序流程图(4)主函数void main( )是主函数。列出主菜单,利用switch语句调用以上函数实现各个菜单的功能。想在每次查询结束想返回主菜单进行其它项时,应在main( )函数中调用其它函数时再调用main( )函数,如:switch(choice) case 1: printf(输入信息:n);inputinformation();writedata();printf(信息已存入档案!);main(); case 2: printf(输出信息:n);if(flag1)readdata();output();main();在进入主菜单后为了确保系统中已经输入了信息,用标志标量flag1和flag2来控制循环。如果系统中没有任何信息,用户就不能选择输入或查询操作,此时会输出提示信息,并返回主菜单。直到用户输入了信息或退出系统。其实现代码如下:do printf(=欢迎使用=n); printf(nn*运动会分数统计系统*n); printf(nn*1.输入信息*n); printf(*2.输出信息*n); printf(*3.查询信息*n); printf(*4.退出系统*nnn); printf(=nn); printf(*请选择要实现步骤的编号( 请确保已经输入信息! ):nn); scanf(%d,&choice); if(choice=4)break; else if(choice=1)flag1=0; else if(report=fopen(sportsdata.txt,r)!=null )flag2=0; else system(cls); printf(nnnn系统中无任何信息!nn请先输入信息!nnnn); while(flag1 & flag2);2.4测试运行程序,进入系统主菜单。用户可以选择输入、输出、查询信息或退出系统,界面如图2-3所示。图2-3 系统主界面(1)输入信息输入1得到进入输入信息模块。根据系统提示将以下信息输入系统中:学校编号1,项目编号1,取前5名,获得1个名次,是第5名;项目编号2,取前3名,获得3个名次,分别是1、2、3名。学校编号2,项目编号1,取前5名,获得4个名次,分别是1、2、3、4名;项目编号2,取前5名,获得0个名次。输入信息后,会自动存档,并提示存档成功,然后自动返还主菜单,如图2-4所示。图2-4信息成功输入系统并存入了文档 (2)输出信息输入2进入输出信息模块,该模块分四项,分别代表一种输出方式,如图2-5所示。图2-5 输入信息模块界面用户可以按照自己的喜好,选择一种方式输入信息,输入2返回输出信息模块,输入0返回主菜单。如图79分别是按照学校编号、学校总分、女团总分输出的情况。图2-6 按学校总分输出图2-7按学校总分输出图2-8 按女团总分输出(3)查询信息输入3进入信息查询模块,该模块分为两项,如图2-7所示。图2-7 信息查询模块用户可以选择不同菜单进行查询,如图4-8和图4-9分别是按照学校编号和项目编号查询的情况。图2-8 按学校编号查询图2-9 按项目编号查询(4)退出系统在主菜单下输入4可以退出系统,并有中文提示,如图所示。图2-10 退出系统2.5课程设计总结2,5,1调试中遇到的较重要问题回顾(1)提出问题:所有输入输出内容只能在一屏内显示,学过c语言,很知道”n”是换行,”f”是换屏的,可是在这里就是无法实现。解决问题: 输入clrscr();(2)提出问题:设置选项,供用户输入选择时,当按任意键时都会跳入下一步操作,或者直接退出系统。分析问题:在供用户选择时,提供了几个选项,就写几个case语句,但是当用户输入的并不是这几个数字时,系统就不能做出正确判断。解决问题:修改case语句,添加default语句提示出错,要求重新输入。源代码如下:Default:clrscr(); /*清屏*/printf(输入错误,请重新选择); (3)提出问题:用户在系统主菜单上进行选择时,若没有输入任何初始信息,而选择输出或查询操作,系统也会做出相应操作。解决问题:增加标识变量作为循环终止变量,用来判断系统中是否已经输入了信息。若没有就提示用户先输入信息。2.5.2算法的效率及改进设想算法的效率:总的来讲,严重引响执行速度的便是查找,查找任意一个数据,便要将其所在的结构从头至尾遍历一次,耗费大量的时间。改进设想:因大部分显示均是以学校为单位,所以将以由有关人的各种信息为集合的结构改为以由有关学校的各种信息为集合的结构。2.5.3心得体会在这次上机过程中遇到过一些问题,但经过不懈努力,解决了部分,还有的现在不能解决,留待日后思考和解决。比如说在运用数据结构排序的时候,方法的选择上,总是想用时间复杂度小的算法,但结果出了问题,最后还是用了我们熟悉的选择法排序。 在编写之前,做整体规划和详细设计很重要。只有思路清晰,设计合理可行,编码才有可能有的放矢,才能更加有效的完成任务。本次集中上机实验,对我来说可以算是一次挑战,因为在理论学习中没有好好的掌握,现在要独立完成一个较复杂的程序编写,确实有一点困难。但我对于难度一向是以积极迎战的态度来面对,认真积极努力完成这次集中上机的任务。对我来说这是一次很好的机会,同时我也很好的把握了这次机会,认真的完成了此次上机学习的任务,对自己今后在程序编写方面以及文档撰写方面相信会有很大的帮助,在此也对老师安排这样一次学习表示感谢,最后希望自己在数据结构以及计算机的其他学习方面能够得到很好的提高。参考文献1李云清、杨庆红、揭安全.数据结构(C语言版)M.人民邮电大学出版社,2004.62潘彦.算法设计与分析基础M.北京:清华大学出版社,2007.13肖梦强、曲秀清.软件工程原理、方法与应用M.中国水利水电出版社,2005.104 吕凤翥.C+语言程序设计(第2版).电子工业出版社,2007.25 严蔚敏、吴伟民.数据结构(C语言版)M.清华大学出版社,2002.9附录附录1#include #include #include #include /常量定义#define MAX_STOP 5 /定义停车场最大停车数#define MAX_PLATE 10 /定义车牌号最大长度using namespace std; /使用std命名空间/定义存储汽车信息的结构体typedef struct char license_plateMAX_PLATE; /汽车牌照号码,定义为一个字符指针类型 char state; /汽车当前状态,字符p表示停放在停车位上,字符s表示停放在便道上,每辆车的初始状态用字符i来进行表示CAR;/定义模拟停车场的栈结构typedef struct CAR STOPMAX_STOP; /汽车信息的存储空间 int top; /用来指示栈顶位置的静态指针SeqStack;/定义模拟便道的队列结构typedef struct node CAR WAIT; /汽车信息的存储空间 struct node *next; /用来指示队列位置的动态指针QNode; /链队列节点的类型/定义链队列的收尾指针typedef struct QNode *front,*rear;LQueue; /将头尾指针封装在一起的链队/函数声明 int Empty_LQueue(LQueue *q); /判队空int LeaveCheck(SeqStack parking , char *license_plate); /检查离开的车是否在停车场中int QueueLength(LQueue *q); /判队长度int Out_LQueue(LQueue *&sidewalk , char *license_plate); /出队操作int StackEmpty(SeqStack parking); /判断栈是否为空int StackFull(SeqStack parking); /判断栈是否为满int StackPop(SeqStack &parking); /出栈操作int StackTop(SeqStack parking , char *license_plate); /取栈顶元素void Car_come(SeqStack &parking , LQueue *&sidewalk); /有车到来时的操作void Car_leave(SeqStack &parking , LQueue *&sidewalk); /有车离开的操作void Display(SeqStack parking); /显示停车场内的所有信息 调试时用void InitStack(SeqStack &parking); /初始化栈void InitList(LQueue *&sidewalk); /初始化队列void In_LQueue(LQueue *&sidewalk , char *license_plate); /进队操作void Input_Check(char *license_plate); /检验输入的车牌是否合法void StackPush(SeqStack &parking , char *license_plate);/进栈操作void main() /定义变量 SeqStack parking; LQueue *sidewalk = NULL; char *choice = new char; int flag = 1; /定义一个变量 判断是否退出 InitStack(parking); /初始化一个为空的停车场 InitList(sidewalk); /初始化一个为空的便道 while(flag) /运行界面及功能选择 coutt*nn; coutt*欢迎来到孙晓东的停车场*nn; coutt| 停车场模拟管理系统 |nn; coutt|-|nn; coutt| |nn; coutt| 有车到来时请按C键。 |nn; coutt| 有车要走时请按l键。 |nn; coutt| 查看停车场请按D键。 |nn; coutt| 要退出系统请按Q键。 |nn; coutt|-|nn; coutt|*nn; cout请选择操作:; gets(choice); if(1 != strlen(choice) cout请正确输入选项!; continue; else switch(*choice) case c: case C: Car_come(parking,sidewalk);break; case l: case L: Car_leave(parking,sidewalk);break; case q: case Q: flag=0;break; case d: case D: Display(parking);break; default: cout选择不正确!请重新选择!n; /有车到来时的操作 void Car_come(SeqStack &parking , LQueue *&sidewalk) char license_plateMAX_PLATE; /定义变量 cout请输入车辆的车牌号码:; Input_Check(license_plate); if(StackFull(parking) /判断停车场是否已满,满则进入便道,不满进入停车场 In_LQueue(sidewalk , license_plate); /进入便道 cout停车场已满请在便道等候,您的位置为QueueLength(sidewalk) endl; else StackPush(parking , license_plate); /进入停车场 cout请进入停车场中的parking.top+1号停车位n; / Display(parking);void Car_leave(SeqStack &parking , LQueue *&sidewalk) /有车离开时的操作 SeqStack tmpparking; /定义临时停车场 char leave_license_plateMAX_PLATE; /要离开的车牌号 char license_plateMAX_PLATE; /存放从停车场中读出来的车牌信息 InitStack(tmpparking); /初始化临时停车场 if(StackEmpty(parking) /判断停车场中是否有车 cout当前停车场中没有车n; return; /退出子函数 cout请输入要离开的车牌照:; Input_Check(leave_license_plate); cout当前停车场中有parking.top+1辆车n; if(LeaveCheck(parking , leave_license_plate) /判断车是否在停车场中 cout您的车在LeaveCheck(parking , leave_license_plate)号车位上n; /车在停车场中 while(StackTop(parking , license_plate)& (strcmp(parking.STOPparking.top.license_plate, leave_license_plate ) != 0) strcpy(parking.STOPparking.top.license_plate , license_plate); cout牌照为license_plate的车暂时退出停车场parking.top+1号位n; StackPush(tmpparking , license_plate); /停车场中的车暂时退出 进入临时停车场 StackPop(parking); /出栈 cout牌照为license_plate的车离开停车场parking.top+1号位n; StackPop(parking); /出栈 /将临时停车场中的车停回停车场 while(StackEmpty(tmpparking) != 1) StackTop(tmpparking , license_plate); StackPush(parking , license_plate ); cout牌照为license_plate的车进入停车场parking.top+1号位n; license_plate0 = 0; StackPop(tmpparking); if(parking.top+1 = MAX_STOP-1) /判断车离开前停车场是否停满 if(QueueLength(sidewalk) /如果停满则判断便道上是否有车 /便道中有车 则从便道中停入停车场 Out_LQueue(sidewalk , license_plate); /出队 StackPush(parking , license_plate); /入栈 cout在便道中牌照为license_plate的车进入停车场parking.top+1号位n; else /车不在停车场中 cout您的车不在停车场中!n;/初始化顺序栈void InitStack(SeqStack &parking) parking.top = -1;/判栈空int StackEmpty(SeqStack parking) if(parking.top = -1) return 1; else return 0;/判栈满int StackFull(SeqStack parking) if(parking.top = MAX_STOP-1) return 1; else return 0;/入栈void StackPush(SeqStack &parking , char *license_plate) parking.top+; strcpy(parking.STOPparking.top.license_plate , license_plate); parking.STOPparking.top.state = p;/出栈 返回栈顶指针int StackPop(SeqStack &parking) if(StackEmpty(parking) return 0; else return parking.top-;/取栈顶元素int StackTop(SeqStack parking , char *license_plate ) if(StackEmpty(parking) return 0; else strcpy(license_plate , parking.STOPparking.top.license_plate); return 1; /显示所有void Display(SeqStack parking) if(parking.top = -1) printf(停车场为空n); else while(parking.top != -1) cout车牌号为:parking.STOPparking.top.license_plate; cout,停在parking.top + 1 front=sidewalk-rear = NULL;/入队void In_LQueue(LQueue *&sidewalk,char *license_plate) QNode *car_on_sidewalk; car_on_sidewalk = (QNode *)malloc(sizeof(QNode); /为新节点开辟新空间 strcpy(car_on_sidewalk-WAIT.license_plate , license_plate); /将数据写入节点 car_on_sidewalk-WAIT.state = s; /写入停车信息 car_on_sidewalk-next = NULL; if(Empty_LQueue(sidewalk) /队空则创建第一个节点 sidewalk-front = sidewalk-rear = car_on_sidewalk; else /队非空插入队尾 sidewalk-rear-next = car_on_sidewalk; sidewalk-rear = car_on_sidewalk; /判队空int Empty_LQueue(LQueue *q) if(q-front = NULL) return 1; else return 0;/判队长度 返回队长int QueueLength(LQueue *q) QNode *p=q-front; int i=0; while(p != NULL) i+; p=p-next; return i; /出队 成功返回1 队空返回0int Out_LQueue(LQueue *&sidewalk,char *license_plate) QNode *car_on_sidewalk; if(Empty_LQueue(sidewalk) /如果队空返回0 return 0; car_on_sidewalk = sidewalk-front; strcpy(license_plate , car_on_sidewalk-WAIT.license_plate); /取出队头元素 if(sidewalk-front = sidewalk-rear) /队中只有一个元素 sidewalk-front = sidewalk-rear=NULL; /删除元素 else sidewalk-front = sidewalk-front-next; /队头指针后移 free(car_on_sidewalk); /释放指针 return 1; /检查离开的车是否在停车场中 返回车在停车场中位置 不在则返回0int LeaveCheck(SeqStack parking,char *
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 云南省永仁县2025年上半年事业单位公开遴选试题含答案分析
- 河北省巨鹿县2025年上半年事业单位公开遴选试题含答案分析
- 河北省邯郸县2025年上半年公开招聘城市协管员试题含答案分析
- 2025版新型排水沟清理作业服务合同范本
- 2025年环保型地下水打井工程总承包协议
- 2025年度健康产业项目策划与市场推广合同
- 2025版高压输电设备生产线技术升级采购合同
- 2025年包装箱销售与市场推广采购合同范本
- 2025年度四方融资借款合同规范版
- 2025版建筑材料运输合同范本正规范本
- DB54∕T 0275-2023 民用建筑节能技术标准
- 伤口造口护理新进展
- 神经外科术后高热患者的治疗及护理讲课件
- 中学生健康生活方式指南
- 电信转正考试题及答案
- 食堂从业人员健康管理制度
- Q-GDW10166.1-2025 输变电工程初步设计内容深度规定第1部分:110(66)kV架空输电线路
- JG/T 503-2016承插型盘扣式钢管支架构件
- 落户防离职协议书
- T/SFABA 5-2024食品配料天然度检测
- 铁路团体车票协议书
评论
0/150
提交评论