




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、#include<stdio.h> #include<string.h> #include<stdlib.h> #define MEM_D_SIZE 1024*1024 /總磁盤空間為1M#define DISKSIZE 1024/磁盤塊的大小1K#define DISK_NUM 1024/磁盤塊數(shù)目1K#define FATSIZE DISK_NUM*sizeof(struct fatitem)/FAT表大小#define ROOT_DISK_NO FATSIZE/DISKSIZE+1/根目錄起始盤塊號(hào)#define ROOT_DISK_SIZE size
2、of(struct direct)/根目錄大小#define DIR_MAXSIZE 1024/路徑最大長(zhǎng)度為1KB#define MSD 5/最大子目錄數(shù)5#define MOFN 5/最大文件深度為5#define MAX_WRITE 1024*128/最大寫入文字長(zhǎng)度128KB struct fatitem /* size 8*/ int item; /*存放文件下一個(gè)磁盤的指針*/ char em_disk; /*磁盤塊是否空閑標(biāo)志位 0 空閑*/ ; struct direct /*-文件控制快信息-*/ struct FCB char name9; /*文件/目錄名 8位*/ ch
3、ar property; /*屬性 1位目錄 0位普通文件*/ int size; /*文件/目錄字節(jié)數(shù)、盤塊數(shù))*/ int firstdisk; /*文件/目錄 起始盤塊號(hào)*/ int next; /*子目錄起始盤塊號(hào)*/ int sign; /*1是根目錄 0不是根目錄*/ directitemMSD+2; ; struct opentable struct openttableitem char name9; /*文件名*/ int firstdisk; /*起始盤塊號(hào)*/ int size; /*文件的大小*/ openitemMOFN; int cur_size; /*當(dāng)前打文件的
4、數(shù)目*/ ; struct fatitem *fat; /*FAT表*/ struct direct *root; /*根目錄*/ struct direct *cur_dir; /*當(dāng)前目錄*/ struct opentable u_opentable; /*文件打開表*/ int fd=-1; /*文件打開表的序號(hào)*/ char *bufferdir; /*記錄當(dāng)前路徑的名稱*/ char *fdisk; /*虛擬磁盤起始地址*/ void initfile(); void format(); void enter(); void halt(); int create(char *name
5、); int open(char *name); int close(char *name); int write(int fd,char *buf,int len); int read(int fd,char *buf); int del(char *name); int mkdir(char *name); int rmdir(char *name); void dir(); int cd(char *name); void print(); void show(); void initfile() fdisk = (char *)malloc(MEM_D_SIZE*sizeof(char
6、); /*申請(qǐng) 1M空間*/ format(); void format() int i; FILE *fp; fat = (struct fatitem *)(fdisk+DISKSIZE); /*計(jì)算FAT表地址,引導(dǎo)區(qū)向后偏移 1k)*/ /*-初始化FAT表-*/ fat0.item=-1; /*引導(dǎo)塊*/ fat0.em_disk='1' for(i=1;i<ROOT_DISK_NO-1;i+) /*存放 FAT表的磁盤塊號(hào)*/ fati.item=i+1; fati.em_disk='1' fatROOT_DISK_NO.item=-1; /*
7、存放根目錄的磁盤塊號(hào)*/ fatROOT_DISK_NO.em_disk='1' for(i=ROOT_DISK_NO+1;i<DISK_NUM;i+) fati.item = -1; fati.em_disk = '0' /*-*/ root = (struct direct *)(fdisk+DISKSIZE+FATSIZE); /*根目錄的地址*/ /*初始化目錄*/ /*-指向當(dāng)前目錄的目錄項(xiàng)-*/ root->directitem0.sign = 1; root->directitem0.firstdisk = ROOT_DISK_N
8、O; strcpy(root->,"."); root->directitem0.next = root->directitem0.firstdisk; root->perty = '1' root->directitem0.size = ROOT_DISK_SIZE; /*-指向上一級(jí)目錄的目錄項(xiàng)-*/ root->directitem1.sign = 1; root->directitem1.firstdisk = ROOT_DISK_NO; strc
9、py(root->,"."); root->directitem1.next = root->directitem0.firstdisk; root->perty = '1' root->directitem1.size = ROOT_DISK_SIZE; if(fp = fopen("disk.dat","wb")=NULL) printf("Error:n Cannot open file n"); re
10、turn; for(i=2;i<MSD+2;i+) /*-子目錄初始化為空-*/ root->directitemi.sign = 0; root->directitemi.firstdisk = -1; strcpy(root->,""); root->directitemi.next = -1; root->perty = '0' root->directitemi.size = 0; if(fp = fopen("disk.dat"
11、;,"wb")=NULL) printf("Error:n Cannot open file n"); return; if(fwrite(fdisk,MEM_D_SIZE,1,fp)!=1) /*把虛擬磁盤空間保存到磁盤文件中*/ printf("Error:n File write error! n"); fclose(fp); void enter() FILE *fp; int i; fdisk = (char *)malloc(MEM_D_SIZE*sizeof(char); /*申請(qǐng) 1M空間*/ if(fp=fopen(
12、"disk.dat","rb")=NULL) printf("Error:nCannot open filen"); return; if(!fread(fdisk,MEM_D_SIZE,1,fp) /*把磁盤文件disk.dat 讀入虛擬磁盤空間(內(nèi)存)*/ printf("Error:nCannot read filen"); exit(0); fat = (struct fatitem *)(fdisk+DISKSIZE); /*找到FAT表地址*/ root = (struct direct *)(fdis
13、k+DISKSIZE+FATSIZE);/*找到根目錄地址*/ fclose(fp); /*-初始化用戶打開表-*/ for(i=0;i<MOFN;i+) strcpy(u_,""); u_opentable.openitemi.firstdisk = -1; u_opentable.openitemi.size = 0; u_opentable.cur_size = 0; cur_dir = root; /*當(dāng)前目錄為根目錄*/ bufferdir = (char *)malloc(DIR_MAXSIZE*sizeof
14、(char); strcpy(bufferdir,"Root:"); void halt() FILE *fp; int i; if(fp=fopen("disk.dat","wb")=NULL) printf("Error:nCannot open filen"); return; if(!fwrite(fdisk,MEM_D_SIZE,1,fp) /*把虛擬磁盤空間(內(nèi)存)內(nèi)容讀入磁盤文件disk.dat */ printf("Error:nFile write error!n"); fcl
15、ose(fp); free(fdisk); free(bufferdir); return;int create(char *name) int i,j; if(strlen(name)>8) /*文件名大于 8位*/ return(-1); for(j=2;j<MSD+2;j+) /*檢查創(chuàng)建文件是否與已存在的文件重名*/ if(!strcmp(cur_dir->,name) break; if(j<MSD+2) /*文件已經(jīng)存在*/ return(-4); for(i=2;i<MSD+2;i+) /*找到第一個(gè)空閑子目錄*/ i
16、f(cur_dir->directitemi.firstdisk=-1) break; if(i>=MSD+2) /*無(wú)空目錄項(xiàng)*/ return(-2); if(u_opentable.cur_size>=MOFN) /*打開文件太多*/ return(-3); for(j=ROOT_DISK_NO+1;j<DISK_NUM;j+) /*找到空閑盤塊 j 后退出*/ if(fatj.em_disk='0') break; if(j>=DISK_NUM) return(-5); fatj.em_disk = '1' /*將空閑塊置為
17、已經(jīng)分配*/ /*-填寫目錄項(xiàng)-*/ strcpy(cur_dir->,name); cur_dir->directitemi.firstdisk = j; cur_dir->directitemi.size = 0; cur_dir->directitemi.next = j; cur_dir->perty = '0' /*-*/ fd = open(name); return 0; int open(char *name) int i, j; for(i=2;i<MSD+2;i
18、+) /*文件是否存在*/ if(!strcmp(cur_dir->,name) break; if(i>=MSD+2) return(-1); /*-是文件還是目錄-*/ if(cur_dir->perty='1')return(-4); /*-文件是否打開-*/ for(j=0;j<MOFN;j+) if(!strcmp(u_,name) break; if(j<MOFN) /*文件已經(jīng)打開*/ return(-2); if(u_ope
19、ntable.cur_size>=MOFN) /*文件打開太多*/ return(-3); /*-查找一個(gè)空閑用戶打開表項(xiàng)-*/ for(j=0;j<MOFN;j+) if(u_opentable.openitemj.firstdisk=-1) break; /*-填寫表項(xiàng)的相關(guān)信息-*/ u_opentable.openitemj.firstdisk = cur_dir->directitemi.firstdisk; strcpy(u_,name); u_opentable.openitemj.size = cur_dir-&
20、gt;directitemi.size; u_opentable.cur_size+; /*-返回用戶打開表表項(xiàng)的序號(hào)-*/ return(j); int close(char *name) int i; for(i=0;i<MOFN;i+) if(!strcmp(u_,name) break; if(i>=MOFN) return(-1); /*-清空該文件的用戶打開表項(xiàng)的內(nèi)容-*/ strcpy(u_,""); u_opentable.openitemi.firs
21、tdisk = -1; u_opentable.openitemi.size = 0; u_opentable.cur_size-; return 0; int write(int fd, char *buf, int len) char *first; int item, i, j, k; int ilen1, ilen2, modlen, temp; /*-用 $ 字符作為空格 # 字符作為換行符-*/ char Space = 32; char Endter= 'n' for(i=0;i<len;i+) if(bufi = '$') bufi = S
22、pace; else if(bufi = '#') bufi = Endter; /*-讀取用戶打開表對(duì)應(yīng)表項(xiàng)第一個(gè)盤塊號(hào)-*/ item = u_opentable.openitemfd.firstdisk; /*-找到當(dāng)前目錄所對(duì)應(yīng)表項(xiàng)的序號(hào)-*/ for(i=2;i<MSD+2;i+) if(cur_dir->directitemi.firstdisk=item) break; temp = i; /*-存放當(dāng)前目錄項(xiàng)的下標(biāo)-*/ /*-找到的item 是該文件的最后一塊磁盤塊-*/ while(fatitem.item!=-1) item =fatitem.
23、item; /*-查找該文件的下一盤塊-*/ /*-計(jì)算出該文件的最末地址-*/ first = fdisk+item*DISKSIZE+u_opentable.openitemfd.size%DISKSIZE; /*-如果最后磁盤塊剩余的大小大于要寫入的文件的大小-*/ if(DISKSIZE-u_opentable.openitemfd.size%DISKSIZE>len) strcpy(first,buf); u_opentable.openitemfd.size = u_opentable.openitemfd.size+len; cur_dir->directitemte
24、mp.size = cur_dir->directitemtemp.size+len; else for(i=0;i<(DISKSIZE-u_opentable.openitemfd.size%DISKSIZE);i+) /*寫一部分內(nèi)容到最后一塊磁盤塊的剩余空間(字節(jié))*/ firsti = buf i; /*-計(jì)算分配完最后一塊磁盤的剩余空間(字節(jié)) 還剩下多少字節(jié)未存儲(chǔ)-*/ ilen1 = len-(DISKSIZE-u_opentable.openitemfd.size%DISKSIZE); ilen2 = ilen1/DISKSIZE; modlen = ilen1%D
25、ISKSIZE; if(modlen>0) ilen2 = ilen2+1; /*-還需要多少塊磁盤塊-*/ for(j=0;j<ilen2;j+) for(i=ROOT_DISK_NO+1;i<DISK_NUM;i+)/*尋找空閑磁盤塊*/ if(fati.em_disk='0') break; if(i>=DISK_NUM) /*-如果磁盤塊已經(jīng)分配完了-*/ return(-1); first = fdisk+i*DISKSIZE; /*-找到的那塊空閑磁盤塊的起始地址-*/ if(j=ilen2-1) /*-如果是最后要分配的一塊-*/ for(
26、k=0;k<len-(DISKSIZE-u_opentable.openitemfd.size%DISKSIZE)-j*DISKSIZE;k+) firstk = bufk; else/*-如果不是要最后分配的一塊-*/ for(k=0;k<DISKSIZE;k+) firstk =bufk; fatitem.item = i; /*-找到一塊后將它的序號(hào)存放在上一塊的指針中-*/ fati.em_disk = '1' /*-置找到的磁盤快的空閑標(biāo)志位為已分配-*/ fati.item = -1; /*-它的指針為 -1 (即沒(méi)有下一塊)-*/ /*-修改長(zhǎng)度-*/
27、 u_opentable.openitemfd.size = u_opentable.openitemfd.size+len; cur_dir->directitemtemp.size = cur_dir->directitemtemp.size+len; return 0; int read(int fd, char *buf) int len = u_opentable.openitemfd.size; char *first; int i, j, item; int ilen1, modlen; item = u_opentable.openitemfd.firstdisk;
28、 ilen1 = len/DISKSIZE; modlen = len%DISKSIZE; if(modlen!=0) ilen1 = ilen1+1; /*-計(jì)算文件所占磁盤的塊數(shù)-*/ first = fdisk+item*DISKSIZE; /*-計(jì)算文件的起始位置-*/ for(i=0;i<ilen1;i+) if(i=ilen1-1) /*-如果在最后一個(gè)磁盤塊-*/ for(j=0;j<len-i*DISKSIZE;j+) bufi*DISKSIZE+j = firstj; else /*-不在最后一塊磁盤塊-*/ for(j=0;j<len-i*DISKSIZE
29、;j+) bufi*DISKSIZE+j = firstj; item = fatitem.item; /*-查找下一盤塊-*/ first = fdisk+item*DISKSIZE; return 0; int del(char *name) int i,cur_item,item,temp; for(i=2;i<MSD+2;i+) /*-查找要?jiǎng)h除文件是否在當(dāng)前目錄中-*/ if(!strcmp(cur_dir->,name) break; cur_item = i; /*-用來(lái)保存目錄項(xiàng)的序號(hào),供釋放目錄中-*/ if(i>=MSD+2
30、) /*-如果不在當(dāng)前目錄中-*/ return(-1); if(cur_dir->directitemcur_perty!='0') /*-如果刪除的(不)是目錄-*/ return(-3); for(i=0;i<MOFN;i+) /*-如果文件打開,則不能刪除,退出-*/ if(!strcmp(u_,name) return(-2); item = cur_dir->directitemcur_item.firstdisk;/*-該文件的起始盤塊號(hào)-*/ while(item!=-1) /*-
31、釋放空間,將FAT表對(duì)應(yīng)項(xiàng)進(jìn)行修改-*/ temp = fatitem.item; fatitem.item = -1; fatitem.em_disk = '0' item = temp; /*-釋放目錄項(xiàng)-*/ cur_dir->directitemcur_item.sign = 0; cur_dir->directitemcur_item.firstdisk = -1; strcpy(u_opentable.openitemcur_,""); cur_dir->directitemcur_item.next = -1
32、; cur_dir->directitemcur_perty = '0' cur_dir->directitemcur_item.size = 0; return 0; int mkdir(char *name) int i,j; struct direct *cur_mkdir; if(!strcmp(name,".") return(-4); if(!strcmp(name,".") return(-4); if(strlen(name)>8) /*-如果目錄名長(zhǎng)度大于 8位-*/ return(-1
33、); for(i=2;i<MSD+2;i+) /*-如果有空閑目錄項(xiàng)退出-*/ if(cur_dir->directitemi.firstdisk=-1) break; if(i>=MSD+2) /*-目錄/文件 已滿-*/ return(-2); for(j=2;j<MSD+2;j+) /*-判斷是否有重名-*/ if(!strcmp(cur_dir->,name) break; if(j<MSD+2) /*-如果有重名-*/ return(-3); for(j=ROOT_DISK_NO+1;j<DISK_NUM;j+
34、) /*-找到空閑磁盤塊 j 后退出-*/ if(fatj.em_disk='0') break; if(j>=DISK_NUM) return(-5); fatj.em_disk='1' /*-將該空閑塊設(shè)置為已分配-*/ /*-填寫目錄項(xiàng)-*/ strcpy(cur_dir->,name); cur_dir->directitemi.firstdisk=j; cur_dir->directitemi.size=ROOT_DISK_SIZE; cur_dir->directitemi.next=j;
35、 cur_dir->perty='1' /*-所創(chuàng)目錄在虛擬磁盤上的地址(內(nèi)存物理地址)-*/ cur_mkdir=(struct direct *)(fdisk+cur_dir->directitemi.firstdisk*DISKSIZE); /*-初始化目錄-*/ /*-指向當(dāng)前目錄的目錄項(xiàng)-*/ cur_mkdir->directitem0.sign=0; cur_mkdir->directitem0.firstdisk=cur_dir->directitemi.firstdisk; strcpy(cur_mk
36、dir->,"."); cur_mkdir->directitem0.next=cur_mkdir->directitem0.firstdisk; cur_mkdir->perty='1' cur_mkdir->directitem0.size=ROOT_DISK_SIZE; /*-指向上一級(jí)目錄的目錄項(xiàng)-*/ cur_mkdir->directitem1.sign=cur_dir->directitem0.sign;cur_mkdir->direc
37、titem1.firstdisk=cur_dir->directitem0.firstdisk; strcpy(cur_mkdir->,"."); cur_mkdir->directitem1.next=cur_mkdir->directitem1.firstdisk; cur_mkdir->perty='1' cur_mkdir->directitem1.size=ROOT_DISK_SIZE; for(i=2;i<MSD+2;i+) /*-子目錄都初始
38、化為空-*/ cur_mkdir->directitemi.sign=0; cur_mkdir->directitemi.firstdisk=-1; strcpy(cur_mkdir->,""); cur_mkdir->directitemi.next=-1; cur_mkdir->perty='0' cur_mkdir->directitemi.size=0; return 0; int rmdir(char *name) int i,j,item; stru
39、ct direct *temp_dir; /*-檢查當(dāng)前目錄項(xiàng)中有無(wú)該目錄-*/ for(i=2;i<MSD+2;i+) if(!strcmp(cur_dir->,name) break; if(i>=MSD+2) /*-沒(méi)有這個(gè)文件或目錄-*/ return(-1);if(cur_dir->perty!='1')/*-刪除的不是目錄-*/ return(-3); /*-判斷要?jiǎng)h除的目錄有無(wú)子目錄-*/ temp_dir=(struct direct *)(fdisk+cur_dir->
40、directitemi.next*DISKSIZE); for(j=2;j<MSD+2;j+) if(temp_dir->directitemj.next!=-1) break; if(j<MSD+2) /*-有子目錄或文件-*/ return(-2); /*-找到起始盤塊號(hào),并將其釋放-*/ item=cur_dir->directitemi.firstdisk; fatitem.em_disk='0' /*-修改目錄項(xiàng)-*/ cur_dir->directitemi.sign=0; cur_dir->directitemi.firstdi
41、sk=-1; strcpy(cur_dir->,""); cur_dir->directitemi.next=-1; cur_dir->perty='0' cur_dir->directitemi.size=0; return 0; void dir() int i; for(i=2;i<MSD+2;i+) if(cur_dir->directitemi.firstdisk!=-1) /*-如果存在子目錄-*/ printf("%st",cu
42、r_dir->); if(cur_dir->perty='0') /*-文件-*/ printf("%dttn",cur_dir->directitemi.size); else printf("t<目錄>tn"); int cd(char *name) int i,j,item; char *str; char *temp,*point,*point1; struct direct *temp_dir; temp_dir=cur_dir; str
43、=name; if(!strcmp("",name) cur_dir = root; strcpy(bufferdir,"Root:"); return 0; temp = (char *)malloc(DIR_MAXSIZE*sizeof(char);/*-最長(zhǎng)路徑名字分配空間-*/ for(i=0;i<(int)strlen(str);i+) tempi=stri; tempi='0' for(j=0;j<MSD+2;j+) /*-查找該子目錄是否在當(dāng)前目錄中-*/ if(!strcmp(temp_dir->dire
44、,temp) break; free(temp);/*釋放申請(qǐng)的臨時(shí)空間*/ /if(temp_dir->perty!='1') /*-打開的不是目錄-*/ /return(-2); if(j>=MSD+2) /*-不在當(dāng)前目錄-*/ return(-1); item=temp_dir->directitemj.firstdisk; /*-當(dāng)前目錄在磁盤中位置-*/ temp_dir=(struct direct *)(fdisk+item*DISKSIZE); if(!strcmp(".&quo
45、t;,name) if(cur_dir->directitemj-1.sign!=1) /*-如果上級(jí)目錄不是根目錄-*/ point=strchr(bufferdir,''); /查找字符串bufferdir中首次出現(xiàn)字符 的位置while(point!=NULL) point1=point+1; /*-減去''所占的空間,記錄下次查找的起始地址-*/ point=strchr(point1,''); *(point1-1)='0' /*-將上一級(jí)目錄刪除-*/ else /if(name0 !='') b
46、ufferdir = strcat(bufferdir,""); /*-修改當(dāng)前目錄-*/ bufferdir = strcat(bufferdir,name); cur_dir=temp_dir; /*-將當(dāng)前目錄確定下來(lái)-*/ return 0; void show() printf("%s>",bufferdir); void print() printf("*n");printf("*文件系統(tǒng)設(shè)計(jì)*n"); printf("*t命令格式說(shuō)明*n"); printf("*t
47、cd 目錄名更改當(dāng)前目錄*n"); printf("*tmkdir 目錄名創(chuàng)建子目錄*n"); printf("*trmdir 目錄名刪除子目錄*n"); printf("*tdir顯示當(dāng)前目錄的子目錄*n"); printf("*tcreate 文件名創(chuàng)建文件*n"); printf("*tdel 文件名刪除文件*n"); printf("*topen 文件名打開文件*n"); printf("*tclose 文件名關(guān)閉文件*n"); prin
48、tf("*tread讀文件*n"); printf("*twrite寫文件*n"); printf("*texit退出系統(tǒng)*n"); printf("*n"); void main() FILE *fp; char ch; char a100; char code1110; char name10; int i,flag,r_size; char *contect; contect = (char *)malloc(MAX_WRITE*sizeof(char); if(fp=fopen("disk.dat
49、","rb")=NULL) printf("You have not format,Do you want format?(y/n)"); scanf("%c",&ch); if(ch='y') initfile(); printf("Successfully format! n"); else return; enter();print(); show(); strcpy(code0,"exit"); strcpy(code1,"create"); strcpy(code2,"open"); strcpy(code3,"close"); strcpy(code4,"write"); strcpy(code5,"read"); strcpy(code6,"del"); s
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 輔導(dǎo)資料軟件設(shè)計(jì)師考試試題及答案
- 理解軟件設(shè)計(jì)中的設(shè)計(jì)原則與模式應(yīng)用試題及答案
- 自動(dòng)化測(cè)試策略實(shí)施試題及答案
- 跨領(lǐng)域合作中的戰(zhàn)略與風(fēng)險(xiǎn)試題及答案
- 網(wǎng)絡(luò)流程標(biāo)準(zhǔn)化試題及答案
- 2025年軟考網(wǎng)絡(luò)管理員模擬練習(xí)試題及答案
- 2025年網(wǎng)絡(luò)管理員考試建議及試題及答案
- 用戶界面設(shè)計(jì)中的可用性測(cè)試方法的試題及答案
- 風(fēng)險(xiǎn)管理的實(shí)踐案例取向試題及答案
- 法學(xué)概論中的重要案例試題及答案
- 血液凈化標(biāo)準(zhǔn)操作規(guī)程 2021 版
- 婚戀平臺(tái)合同協(xié)議書
- 保護(hù)患者隱私權(quán)醫(yī)療AI技術(shù)的倫理要求與實(shí)踐
- 權(quán)益配置與代理關(guān)系的成本效益分析
- 新課標(biāo)(水平三)體育與健康《籃球》大單元教學(xué)計(jì)劃及配套教案(18課時(shí))
- DL∕T 5210.6-2019 電力建設(shè)施工質(zhì)量驗(yàn)收規(guī)程 第6部分:調(diào)整試驗(yàn)
- 設(shè)備(材料)供應(yīng)招標(biāo)文件范本
- 220千伏線路無(wú)人機(jī)放線施工組織設(shè)計(jì)
- (完整版)培訓(xùn)學(xué)校電話話術(shù)(初中)
- 大貓英語(yǔ)分級(jí)閱讀 二級(jí)2 Let's go shopping 課件
- 自密實(shí)混凝土的設(shè)計(jì)與實(shí)踐-C30自密實(shí)混凝土配合比設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論