




已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
操作系统课程设计报告题目文件系统模拟实验学生姓名汤园园学号200917030133专业班级网工09101班同组姓名彭丽娜郭双武娟何巧林指导教师熊齐设计时间20122132012226指导老师意见评定成绩签名日期一、设计目的该实验的目的是通过学习文件系统的模拟实验使我们能够更好的了解与掌握UNIX系统下的文件系统的基本设计原理,及UNIX系统下的基本操作方法,另外,通过这次实验能够提高我们的实践动手能力,以及团队合作分工能力。总之,该实验的主要目的是在掌握基本原理及基本方法的情况下,锻炼我们的实际操作能力。二、设计内容(1)概述为LINUX设计一个简单的二级文件系统。要求做到以下几点1、可以实现下列几条命令(至少4条)。LOGIN用户登录DIR列文件目录CREATE创建文件DELETE删除文件OPEN打开文件CLOSE关闭文件READ读文件WRITE写文件2、列目录时要列出文件名、物理地址、保护码和文件长度。3、源文件可以进行读写保护。(2)设计原理和系统总体功能框架图设计原理首先本文件系统采用两级目录,其中第一级对应于用户账户,第二级对应于用户账户下的文件。另外,为了简单本文件系统未考虑文件共享,文件系统安全以及管道文件与设备文件等特殊内容。另外该文件系统依据以下数据结构及主要函数而设计的。【1】主要的一些数据结构1I节点STRUCTINODESTRUCTINODEI_FORWSTRUCTINODEI_BACKCHARI_FLAGUNSIGNEDINTI_INO/磁盘I节点标号/UNSIGNEDINTI_COUNT/引用计数/UNSIGNEDSHORTDI_NUMBER/关联文件数,当为0时,则删除该文件/UNSIGNEDSHORTDI_MODE/存取权限/UNSIGNEDSHORTDI_UID/磁盘I节点用户ID/UNSIGNEDSHORTDI_GID/磁盘I节点组ID/UNSIGNEDINTDI_ADDRNADDR/物理块号/2磁盘I节点STRUCTDINODEUNSIGNEDSHORTDI_NUMBER/关联文件数/UNSIGNEDSHORTDI_MODE/存取权限/UNSIGNEDSHORTDI_UIDUNSIGNEDSHORTDI_GIDUNSIGNEDLONGDI_SIZE/文件大小/UNSIGNEDINTDI_ADDRNADDR/物理块号/3目录项结构STRUCTDIRECTCHARD_NAMEDIRSIZ/目录名/UNSIGNEDINTD_INO/目录号/4超级块STRUCTFILSYSUNSIGNEDSHORTS_ISIZE/I节点块块数/UNSIGNEDLONGS_FSIZE/数据块块数/UNSIGNEDINTS_NFREE/空闲块块数/UNSIGNEDSHORTS_PFREE/空闲块指针/UNSIGNEDINTS_FREENICFREE/空闲块堆栈/UNSIGNEDINTS_NINODE/空闲I节点数/UNSIGNEDSHORTS_PINODE/空闲I节点指针/UNSIGNEDINTS_INODENICINOD/空闲I节点数组/UNSIGNEDINTS_RINODE/铭记I节点/CHARS_FMOD/超级块修改标记/5用户密码STRUCTPWDUNSIGNEDSHORTP_UIDUNSIGNEDSHORTP_GIDCHARPASSWORDPWOSIZ6目录STRUCTDIRSTRUCTDIRECTDIRECTDIRNUMINTSIZE7查找内存I节点的HASH表STRUCTHINODESTRUCTINODEI_FORW8系统打开表STRUCTFILECHARF_FLAG/文件操作标志/UNSIGNEDINTF_COUNT/引用计数/STRUCTINODEF_INODE/指向内存I节点/UNSIGNEDLONGF_OFF/读/写指针/9用户打开表STRUCTUSERUNSIGNEDSHORTU_DEFAULT_MODEUNSIGNEDSHORTU_UID/用户标志/UNSIGNEDSHORTU_GID/用户组标志/UNSIGNEDSHORTU_OFILENOFILE/用户打开表/【2】主要的一些函数1、I节点内容获取函数IGET2、I节点内容释放函数IPUT3、目录创建函数MKDIR4、目录搜索函数NAMEI5、磁盘块分配函数BALLOC6、磁盘块释放函数BFREE7、分配I节点区函数IALLOC8、释放I节点区函数IFREE9、搜索当前目录下文件的函数INAME10、访问控制函数ACCESS11、显示目录和文件用函数_DIR12、改变当前目录用函数CHDIR13、打开文件函数OPEN14、创建文件函数CREATE15、读文件用函数READ16、写文件用函数WRITE17、用户登录函数LOGIN18、用户退出函数LOGOUT19、文件系统格式化函数FORMAT20、进入文件系统函数INSTALL21、关闭文件系统函数CLOSE22、退出文件系统函数HALT23、文件删除函数DELETEFORMAT开始FORMATDIR选择操作INSTALLLOGOUTHALTLOGINCHDIRMKDIRCREATWRITECLOSEDELETEEDELETEE结束(3)详细设计及少数重要编码的说明【1】头文件FILESYSH的设计它包括文件系统中的数据结构,常量,全局变量等申明。例如1I节点STRUCTINODESTRUCTINODEI_FORWSTRUCTINODEI_BACKCHARI_FLAGUNSIGNEDINTI_INO/磁盘I节点标号/UNSIGNEDINTI_COUNT/引用计数/UNSIGNEDSHORTDI_NUMBER/关联文件数,当为0时,则删除该文件/UNSIGNEDSHORTDI_MODE/存取权限/UNSIGNEDSHORTDI_UID/磁盘I节点用户ID/UNSIGNEDSHORTDI_GID/磁盘I节点组ID/UNSIGNEDINTDI_ADDRNADDR/物理块号/2常量的设置DEFINEBLOCKSIZ512DEFINESYSOPENFILE40DEFINEDIRNUM128DEFINEDIRSIZ14DEFINEPWDSIZ12DEFINEPWDNUM32DEFINENOFILE20DEFINENADDR10DEFINENHINO128/MUSTBEPOWEROF2/DEFINEUSERNUM10DEFINEDINODESIZ32【2】主函数模块MAINC其中重要部分代码PRINTF“BEGINN“PRINTF“NDOYOUWANTTOFORMATTHEDISKN“IFGETCHARYPRINTF“NFORMATWILLERASECONTEXTONTHEDISKNAREYOUSUREN“GETCHARIFCGETCHARYPRINTF“FORMATSTARTSN“FORMATIHAVE_FORMATED1PRINTF“FORMATENDEDN“ELSEPRINTF“RECEIVEDCHARCFROMSTDINN“,CPRINTF“STEP1ENDEDN“INSTALLPRINTF“STEP2ENDEDN“_DIRPRINTF“STEP3ENDEDN“LOGIN2118,“ABCD“USER_ID0PRINTF“STEP4ENDEDN“MKDIR“A2118“_DIRPRINTF“STEP51ENDEDN“CHDIR“A2118“_DIRPRINTF“STEP52ENDEDN“AB_FD1CREAT2118,“AB_FILE0C“,01777_DIRPRINTF“STEP6ENDEDN“BUFCHARMALLOCBLOCKSIZ65PRINTF“STEP7ENDEDN“WRITE2118,AB_FD1,BUF,BLOCKSIZ65PRINTF“STEP8ENDEDN“CLOSE2118,AB_FD1【3】初始化磁盘格式模块FORMATC其中的一下重要的算法/给MAIN中的密码表PWDPWDNUM填入内容/PWD0P_UID2116PWD0P_GID03STRCPYPWD0PASSWORD,“DDDD“PWD1P_UID2117PWD1P_GID03STRCPYPWD1PASSWORD,“BBBB“PWD2P_UID2118PWD2P_GID04STRCPYPWD2PASSWORD,“ABCD“PWD3P_UID2119PWD3P_GID04STRCPYPWD3PASSWORD,“CCCC“PWD4P_UID2220PWD4P_GID05STRCPYPWD4PASSWORD,“EEEE“该模块的流程图是否【4】进入文件系统模块INSTALLC其中的一下重要的算法/2INITIALIZETHEINODEHASHCHAIN/FORI0IDI_MODEDIEMPTYIPUTINODEINODEIGET1/1MAINDIRID/INODEDI_NUMBER1INODEDI_MODEDEFAULTMODE|DIDIRINODEDI_SIZE3SIZEOFSTRUCTDIRECTINODEDI_ADDR00/BLOCK0ISUSEDBYTHEMAINDIRECTORY/STRCPYDIR_BUF0D_NAME,“DIR_BUF0D_INO1STRCPYDIR_BUF1D_NAME,“DIR_BUF1D_INO1STRCPYDIR_BUF2D_NAME,“ETC“DIR_BUF2D_INO2FSEEKFD,DATASTART,SEEK_SETFWRITEDIR_BUF,1,3SIZEOFSTRUCTDIRECT,FDIPUTINODEINODEIGET2/2ETCDIRID/INODEDI_NUMBER1INODEDI_MODEDEFAULTMODE|DIDIRINODEDI_SIZE3SIZEOFSTRUCTDIRECTINODEDI_ADDR01/BLOCK1ISUSEDBYTHEETCDIRECTORY/STRCPYDIR_BUF0D_NAME,“DIR_BUF0D_INO1STRCPYDIR_BUF1D_NAME,“DIR_BUF1D_INO2STRCPYDIR_BUF2D_NAME,“PASSWORD“DIR_BUF2D_INO3FSEEKFD,DATASTARTBLOCKSIZ1,SEEK_SETFWRITEDIR_BUF,1,3SIZEOFSTRUCTDIRECT,FDIPUTINODEINODEIGET3/3PASSWORDID/INODEDI_NUMBER1INODEDI_MODEDEFAULTMODE|DIFILEINODEDI_SIZEBLOCKSIZINODEDI_ADDR02/BLOCK2ISUSEDBYTHEPASSWORDFILE/FORI5I2INICFREEFORJ0J3I,JFILSYSS_FREENICFREEJIFILSYSS_PFREENICFREEJ1FILSYSS_PINODE0FSEEKFD,BLOCKSIZ,SEEK_SETFWRITEFCLOSEFD5、进入文件系统程序INSTALL文件名INSTALLCINCLUDE“STDIOH“INCLUDE“STRINGH“INCLUDE“FILESYSH“INSTALLINTI,JINTRETURN_VALUE/0OPENTHEFILECOLUMN/IFIHAVE_FORMATED1FDFOPEN“FILESYSTEM“,“RB“ELSEFDFOPEN“FILESYSTEM“,“WRB“IFFDNULLPRINTF“NFILESYSCANNOTBELOADEDN“EXIT0PRINTF“NININSTALL,FILESYSHASBEENLOADED,FDXN“,FD/1READTHEFILSYSFROMTHESUPERBLOCK/FSEEKFD,BLOCKSIZ,SEEK_SET/FWRITE原来的代码FREAD/2INITIALIZETHEINODEHASHCHAIN/FORI0IDI_SIZE/SIZEOFSTRUCTDIRECTFORI0IDI_ADDRI,SEEK_SETFREADFSEEKFD,DATASTARTBLOCKSIZCUR_PATH_INODEDI_ADDRI,SEEK_SETIFI0FREADELSE/I1FREAD6、退出程序HALT文件名HALTCINCLUDE“STDIOH“INCLUDE“FILESYSH“HALTSTRUCTINODEINODEINTI,J/1WRITEBACKTHECURRENTDIR/CHDIR“IPUTCUR_PATH_INODE/2FREETHEU_OFILEANDSYS_OFILEANDINODE/FORI0II_INOINODEID/EXISTED/EXISTED1TEMPI_COUNTRETURNTEMPELSETEMPTEMPI_FORW/NOTEXISTED/NOTEXISTED/1CALCULATETHEADDROFTHEDINODEINTHEFILESYSCOLUMN/ADDRDINODESTARTDINODEIDSIZEOFSTRUCTDINODE/2MALLOCTHENEWINODE/NEWINODESTRUCTINODEMALLOCSIZEOFSTRUCTINODEMEMSETNEWINODE,0,SIZEOFSTRUCTINODE/3READTHEDINODETOTHEINODE/FSEEKFD,ADDR,SEEK_SETFREAD/4PUTITINTOHINODEINODEIDQUEUE/NEWINODEI_FORWHINODEINODEIDI_FORWNEWINODEI_BACKNEWINODEIFNEWINODEI_FORWNULLNEWINODEI_FORWI_BACKNEWINODEHINODEINODEIDI_FORWNEWINODE/5INITIALIZETHEINODE/NEWINODEI_COUNT1NEWINODEI_FLAG0/FLAGFORNOTUPDATE/NEWINODEI_INODINODEIDRETURNNEWINODEINTIPUTPINODE/IPUT/STRUCTINODEPINODEINTI0,INODEIDLONGADDRUNSIGNEDINTBLOCK_NUMSTRUCTINODETEMPINODEIDPINODEI_INONHINOIFPINODEI_COUNT1PINODEI_COUNTRETURN1ELSEIFPINODEDI_NUMBER0/WRITEBACKTHEINODE/ADDRDINODESTARTPINODEI_INOSIZEOFSTRUCTDINODEFSEEKFD,ADDR,SEEK_SETFWRITEFSEEKFD,ADDR,SEEK_SETFREADELSE/RMTHEINOIDEFORI0IDI_ADDRIIFREEPINODEI_INO/FREETHEINODEINTHEMEMORY/IFPINODEI_FORWNULLPINODEI_BACKI_FORWNULLELSEPINODEI_FORWI_BACKPINODEI_BACKPINODEI_BACKI_FORWPINODEI_FORWIFPINODEI_BACKPINODE/HASH表中该列剩下最后一个INODEHINODEINODEIDI_FORWNULLFREEPINODERETURN08、节点分配和释放函数IALLOC和IFREE文件名IALLFRECINCLUDE“STDIOH“INCLUDE“FILESYSH“STATICSTRUCTDINODEBLOCK_BUFBLOCKSIZ/DINODESIZSTRUCTINODEIALLOC/IALLOC/STRUCTINODETEMP_INODEUNSIGNEDINTCUR_DIINTI,COUNT,BLOCK_END_FLAGIFFILSYSS_PINODENICINOD/S_INODEEMPTY/I0COUNT0BLOCK_END_FLAG1FILSYSS_PINODENICINOD1CUR_DIFILSYSS_RINODEWHILECOUNTI_INOFILSYSS_INODEFILSYSS_PINODE/设置磁盘I节点号FSEEKFD,DINODESTARTFILSYSS_INODEFILSYSS_PINODESIZEOFSTRUCTDINODE,SEEK_SETFWRITEFILSYSS_PINODEFILSYSS_NINODE/磁盘I结点总数1,置超级块修改标志,返回FILSYSS_FMODSUPDATERETURNTEMP_INODEIFREEDINODEID/IFREE/UNSIGNEDDINODEIDFILSYSS_NINODEIFFILSYSS_PINODENICINOD/NOTFULL/FILSYSS_INODEFILSYSS_PINODEDINODEIDFILSYSS_PINODEELSE/FULL/IFDINODEID0IFINODEDI_MODEIFINODEDI_MODERETURN0CASEWRITEIFINODEDI_MODEIFINODEDI_MODEIFINODEDI_MODERETURN0CASEEXICUTEIFINODEDI_MODEIFINODEDI_MODEIFINODEDI_MODERETURN0CASEFAPPENDRETURN1CASEDEFAULTMODERETURN1DEFAULTRETURN012、显示列表函数DIR和目录创建函数MKDIR等文件名DIRCINCLUDE“STDIOH“INCLUDE“STRINGH“INCLUDE“FILESYSH“_DIR/DIR/UNSIGNEDINTDI_MODEINTI,J,ONESTRUCTINODETEMP_INODEPRINTF“NCURRENTDIRECTORYN“FORI0IDI_MODEFORJ0JDI_MODEPRINTF“BLOCKCHAINOFTHEFILE“FORJ0JDI_SIZE/BLOCKSIZ1JPRINTF“D“,TEMP_INODEDI_ADDRJPRINTF“ENDN“ELSEPRINTF“N“IPUTTEMP_INODEMKDIRDIRNAME/MKDIR/CHARDIRNAMEINTDIRID,DIRPOSSTRUCTINODEINODESTRUCTDIRECTBUFBLOCKSIZ/DIRSIZ2UNSIGNEDINTBLOCKMEMSETBUF,0,BLOCKSIZ/DIRSIZ2SIZEOFSTRUCTDIRECTDIRIDNAMEIDIRNAMEIFDIRIDNULLINODEIGETDIRIDIFINODEDI_MODEELSEPRINTF“NSISAFILENAME,IPUTINODERETURNDIRPOSINAMEDIRNAMEINODEIALLOC/INODEI_INODIRIDDIRDIRECTDIRPOSD_INOINODEI_INODIRSIZE/FILLTHENEWDIRBUF/STRCPYBUF0D_NAME,“BUF0D_INOINODEI_INOSTRCPYBUF1D_NAME,“BUF1D_INOCUR_PATH_INODEI_INOBLOCKBALLOCFSEEKFD,DATASTARTBLOCKBLOCKSIZ,SEEK_SETFWRITEBUF,1,BLOCKSIZ,FDINODEDI_SIZE2SIZEOFSTRUCTDIRECTINODEDI_NUMBER1INODEDI_MODEUSERUSER_IDU_DEFAULT_MODEINODEDI_UIDUSERUSER_IDU_UID|DIDIRINODEDI_GIDUSERUSER_IDU_GIDINODEDI_ADDR0BLOCKIPUTINODERETURNCHDIRDIRNAME/CHDIR/CHARDIRNAMEUNSIGNEDINTDIRIDSTRUCTINODEINODEUNSIGNEDSHORTBLOCKINTI,J,LOW0,HIGH0DIRIDNAMEIDIRNAMEIFDIRIDNULLPRINTF“NSDOESNOTEXISTEDN“,DIRNAMERETURNINODEIGETDIRDIRECTDIRIDD_INOIFACCESSUSER_ID,INODE,USERUSER_IDU_DEFAULT_MODEPRINTF“NTHEDIRECTORYS,PERMISSIONDENY“,DIRNAMEIPUTINODERETURN/PACKTHECURRENTDIRECTORYFORI0IDI_SIZE/BLOCKSIZ1I/BFREECUR_PATH_INODEDI_ADDRIFORI0I0BLOCKBALLOCCUR_PATH_INODEDI_ADDRIBLOCKFSEEKFD,DATASTARTBLOCKBLOCKSIZ,SEEK_SETFWRITEELSEFSEEKFD,DATASTARTCUR_PATH_INODEDI_ADDR0BLOCKSIZ,SEEK_SETFWRITECUR_PATH_INODEDI_SIZEDIRSIZESIZEOFSTRUCTDIRECTIPUTCUR_PATH_INODECUR_PATH_INODEINODE/READTHECHANGEDIRFROMDISK/J0FORI0IDI_SIZE/BLOCKSIZ1IFSEEKFD,DATASTARTINODEDI_ADDRIBLOCKSIZ,SEEK_SETFREADJBLOCKSIZ/DIRSIZ2RETURN13、文件创建函数CREAT文件名CREATCINCLUDE“STDIOH“INCLUDE“FILESYSH“CREATUSER_ID,FILENAME,MODEUNSIGNEDINTUSER_IDCHARFILENAMEUNSIGNEDSHORTMODEUNSIGNEDINTDI_ITH,DI_INOSTRUCTINODEINODEINTI,J,K,USER_PFORUSER_P0USER_PDI_SIZE/BLOCKSIZ1IBFREEINODEDI_ADDRI/TODOADDCODEHERETOUPDATETHEPOINTEROFTHESYS_FILE/FORI0IDI_UIDUSERKU_GIDINODEDI_GIDFORJ0JI_INOINODEDI_MODEUSERKU_DEFAULT_MODE|DIFILEINODEDI_UIDUSERKU_UIDINODEDI_GIDUSERKU_GIDINODEDI_ADDR0BALLOCINODEDI_SIZE0INODEDI_NUMBER1FORI0IDI_SIZEELSESYS_OFILEIF_OFF0/ALLOCTHEUSEROPENFILEITEM/FORJ0JDI_SIZE/BLOCKSIZ1IBFREEINODEDI_ADDRIINODEDI_SIZE0RETURNJ15、关闭文件函数CLOSE文件名CLOSECINCLUDE“STDIOH“INCLUDE“FILESYSH“CLOSEUSER_ID,CFD/CLOSE/UNSIGNEDINTUSER_IDUNSIGNEDSHORTCFDSTRUCTINODEINODEINTJ,KFORJ0JDI_NUMBERIRETURN_VALUEIPUTINODEIFIRETURN_VALUE1/删除目录项STRCPYDIRDIRECTDIRIDD_NAME,“DIRDIRECTDIRIDD_INO0FORDIRID1,NOWI_COUNT1,BUTTHISFILEHASNOTBEENDELETEDN“,FILENAME17、读写文件函数READ与WRITE文件名RDWTCINCLUDE“STDIOH“INCLUDE“FILESYSH“UNSIGNEDINTREADUSER_ID,FD_1,BUF,SIZEUNSIGNEDINTUSER_IDINTFD_1CHARBUFUNSIGNEDINTSIZEUNSIGNEDLONGOFFINTBLOCK,BLOCK_OFF,I,J,KSTRUCTINODEINODECHARTEMP_BUFSIZECHARTEMPTEMPTEMP_BUFFORJ0JINODEDI_SIZESIZEINODEDI_SIZEOFFBLOCK_OFFOFFBLOCKSIZBLOCKOFF/BLOCKSIZIFBLOCK_OFFSIZEDI_ADDRBLOCKBLOCKSIZBLOCK_OFF,SEEK_SETFREADBUF,1,SIZE,FDSYS_OFILEUSERKU_OFILEFD_1F_OFFSIZE/记录文件读写指针现在的偏移RETURNSIZEFSEEKFD,DATASTARTINODEDI_ADDRBLOCKBLOCKSIZBLOCK_OFF,SEEK_SETFREADTEMP,1,BLOCKSIZBLOCK_OFF,FDTEMPBLOCKSIZBLOCK_OFFFORI0IDI_ADDRBLOCK1IBLOCKSIZ,SEEK_SETFREADTEMP,1,BLOCKSIZ,FDTEMPBLOCKSIZBLOCK_OFFSIZEBLOCK_OFFBLOCKSIZ/读最后一块BLOCKINODEDI_ADDRSIZE/BLOCKSIZ1FSEEKFD,DATASTARTBLOCKBLOCKSIZ,SEEK_SETFREADTEMP,1,BLOCK_OFF,FDSYS_OFILEUSERKU_OFILEFD_1F_OFFSIZEMEMCPYBUF,TEMP_BUF,SIZERETURNSIZEUNSIGNEDINTWRITEUSER_ID,FD_2,BUF,SIZE/WRITE/UNSIGNEDINTUSER_IDINTFD_2CHARBUFUNSIGNEDINTSIZEUNSIGNEDLONGOFFINTBLOCK,BLOCK_OFFINTI,J,KSTRUCTINODEINODECHARTEMP_BUFFORJ0JDI_ADDRBLOCKBLOCKSIZBLOCK_OFF,SEEK_SETFWRITEBUF,1,SIZE,FDINODEDI_SIZESYS_OFILEUSERKU_OFILEFD_2F_OFFSIZE/记录文件大小RETU
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 IEC 61754-13:2024 CMV EN Fibre optic interconnecting devices and passive components - Fibre optic connector interfaces - Part 13: Type FC-PC connector family
- 古诗三首登鹳雀楼、静夜思、望庐山瀑布解析:小学语文教学教案
- 写景色的变化:从冬到春的作文15篇
- 生产原材料采购与库存管理表
- 应急执法考试试题及答案
- 音乐理论考试试题及答案
- 移动司机考试试题及答案
- 宜良农机考试试题及答案
- 六一典礼活动方案
- 六一古筝活动方案
- 第五单元《面积》(教学设计)-【大单元教学】三年级数学下册同步备课系列(人教版)
- 掼蛋考试试题及答案
- GA/T 2159-2024法庭科学资金数据清洗规程
- 企业风险管理-战略与绩效整合(中文版-雷泽佳译)
- 业务学习踝关节骨折
- 《医疗机构重大事故隐患判定清单(试行)》知识培训
- 浙江省杭州市2024年中考英语真题(含答案)
- 《陆上风电场工程设计概算编制规定及费用标准》(NB-T 31011-2019)
- 羽毛球社团教案(共17页)
- 下肢静脉曲张诊断及治疗进展PPT学习教案
- 装修管理规则-城市综合体---成都租户指引
评论
0/150
提交评论