版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、#include #include #include #include #define BLOCKSIZE 1024#define SIZE 1024000#define END 65535#define FREE 0#define ROOTBLOCKNUM 2#define MAXOPENFILE 10typedef struct FCB/unsignedchar filename8; char exname3;unsigned char attribute;/文件屬性,0 目錄文件char reserve10; unsigned short time; unsigned short dat
2、a;1 數(shù)據(jù)文件unsigned short;unsigned long length;fcb;typedef struct FATunsigned short id;fat;typedef struct USEROPENfcb openfileMAXOPENFILE;char dirMAXOPENFILE80;/用來(lái) count;useropen;每個(gè)打開(kāi)文件的目錄名typedef struct BLOCK0/*引導(dǎo)塊內(nèi)容*/char information200;/賦值 50 時(shí)本身已經(jīng)越界unsigned char *startblock;/虛擬磁盤(pán)上數(shù)據(jù)區(qū)開(kāi)始位置block0;/以上定
3、義新的類(lèi)型名以方便下面代碼輸入unsigned char *myvhard;useropen *openfilelist;char currentdir80; unsigned char* startp;void initsys();/系統(tǒng)初始化:創(chuàng)建虛盤(pán)和格式化虛盤(pán) void format();/格式化之后填充初始內(nèi)容void startsys(); void exitsys();void create();/創(chuàng)建文件或目錄open(char *filename);void close(fd);void mywrite(fd,char *buff);fd,char *buff);/文件內(nèi)容v
4、oid myread(void deletefile(char *filename);void ls();void listopenfile();void cd(char *dirname);/系統(tǒng)初始化:創(chuàng)建虛盤(pán)和格式化虛盤(pán) void initsys()myvhard=(unsigned char *)malloc(SIZE);/申請(qǐng)分配內(nèi)存空間,起始地址 myvhard memset(myvhard,0,SIZE);/這一段空間設(shè)置為 0format();/調(diào)用格式化函數(shù)進(jìn)行高級(jí)格式化void format()/格式化函數(shù)FILE *fp; time_t *now;struct tm *n
5、owtime; unsigned char *p; fat *fat1,*fat2;fcb *root; i,a;block0 *b0;now=(time_t *)malloc(sizeof(time_t);p=myvhard; b0=(block0 *)p;strcpy(b0-information,Myfilesystem,ver0.01,blocksizeis1K,wholesizeis1000K,emulate FAT16,Max open file number is 10);/寫(xiě)入磁盤(pán)信息/prf(n %s,b0-information); p+=BLOCKSIZE;fat1=(f
6、at *)(p);fat2=(fat *)(p+BLOCKSIZE*2); fat1-id=END;fat2-id=END; fat1+; fat2+;fat1-id=END; fat2-id=END; fat1+; fat2+;fat1-id=END; fat2-id=END; fat1+; fat2+;fat1-id=END; fat2-id=END; fat1+; fat2+;fat1-id=END; fat2-id=END; fat1+; fat2+;fat1-id=6; fat2-id=6; fat1+; fat2+;fat1-id=END; fat2-id=END; fat1+;
7、fat2+;for(i=7;ifilename,.); strcpy(root-exname,di); root-attribute=40; time(now);nowtime=localtime(now);root-time=nowtime-tm_hour*2048+nowtime-tm_min*32+nowtime-tm_sec/2;root-data=(nowtime-tm_year-80)*512+(nowtime-tm_mon+1)*32+nowtime-tm_mday;root-=5;root-length=2*sizeof(fcb);root+;strcpy(root-filen
8、ame,.); strcpy(root-exname,di); root-attribute=40; time(now); nowtime=localtime(now);root-time=nowtime-tm_hour*2048+nowtime-tm_min*32+nowtime-tm_sec/2;root-data=(nowtime-tm_year-80)*512+(nowtime-tm_mon+1)*32+nowtime-tm_mday;root-=5;root-length=2*sizeof(fcb);root+; for(i=2;ifilename0=0;a =BLOCKSIZE*2
9、/sizeof(fcb); fp=fopen(c:myfsys,w);b0-startblock=p+BLOCKSIZE*4; fwrite(myvhard,SIZE,1,fp); fclose(fp);free(myvhard);/格式化之后填充初始內(nèi)容 void startsys()FILE *fp;/指針 fp 指向 FILE 類(lèi)型的對(duì)象i;openfilelist=(useropen *)malloc(sizeof(useropen);/申請(qǐng)分配內(nèi)存空間,記住打開(kāi)了哪些文件memset(openfilelist,0,sizeof(useropen);/將申請(qǐng)到的數(shù)據(jù)賦值為 0,。fp=
10、fopen(c:myfsys,r);/以只讀的方式打開(kāi)文件,保證上次退出文件系統(tǒng)保存的修改下次還可以用。myvhard=(unsigned char *)malloc(SIZE);/這個(gè)是真正的文件系統(tǒng),申請(qǐng) SIZE 個(gè)字節(jié)大小的空間memset(myvhard,0,SIZE);/對(duì)數(shù)組賦值fread(myvhard,SIZE,1,fp);/把 c:myfsys 的所有內(nèi)容讀入 myvhard 里面strcpy(openfilelist-openfile0.filename,root); strcpy(openfilelist-openfile0.exname,di);openfilelis
11、t-openfile0.attribute=168;openfilelist-openfile0.time=(fcb *)(myvhard+5*BLOCKSIZE)-time; openfilelist-openfile0.data=(fcb *)(myvhard+5*BLOCKSIZE)-data;openfilelist-openfile0.=(fcb *)(myvhard+5*BLOCKSIZE)-;openfilelist-openfile0.length=(fcb *)(myvhard+5*BLOCKSIZE)-length;openfilelist-count=1; strcpy(
12、currentdir,root);strcpy(openfilelist-dir0,currentdir);/第一次進(jìn)入文件系統(tǒng),默認(rèn)是在根目錄,這些就是做了這些/對(duì)空的,方便已經(jīng)打開(kāi)文件的信息進(jìn)行初始化,就是對(duì) openfilelist 進(jìn)行操作,讓他們是再打開(kāi)文件的時(shí)候進(jìn)行for(i=6;istartblock;/用 startp文件的地址文件系統(tǒng)第一個(gè)可以新fclose(fp);/安全關(guān)閉 c:myfsys,因?yàn)橛猛晁藇oid exitsys()FILE *fp; fp=fopen(c:myfsys,w); fwrite(myvhard,SIZE,1,fp); free(myvhard
13、); free(openfilelist);fclose(fp);/這個(gè)是退出文件系統(tǒng)的時(shí)候,要把的修改保存到文件/所以,重新打開(kāi)那個(gè)文件,把 myvhard 的所有東西全部寫(xiě)入文件,然后把 myvhard/然后再把那個(gè)申請(qǐng)的真正寫(xiě)入硬盤(pán)保存下來(lái)了打開(kāi)的文件的結(jié)構(gòu)掉,最后安全關(guān)閉 c:myfsys,算是/創(chuàng)建文件或目錄 void create()time_t *now;struct tm *nowtime; char current8;fcb *freefcb,*updir,*p;i,j,k,m,flag,b;unsigned short index;fat *fat1,*fat2,*fatc
14、urrent1,*fatcurrent2; now=(time_t *)malloc(sizeof(time_t); if(openfilelist-count=MAXOPENFILE)prf(open too many files!n); return;flag=0; for(i=80;i=0;i-)if(currentdiri=) flag+;if(flag=2)break; i+;for(j=0;currentdiri!=;i+,j+)currentj=currentdiri;currentj=0; for(i=0;iopenfilei.attribute & 8)=8) break;f
15、at1=(fat *)(myvhard+BLOCKSIZE);index=openfilelist-openfilei.;freefcb=(fcb *)(myvhard+openfilelist-openfilei.*BLOCKSIZE);for(m=0;mopenfilei.length/BLOCKSIZE+1;m+)for(j=0;jfilename0=0) break;freefcb+;if(j=32)freefcb=(fcb *)(myvhard+fat1index.id); index=fat1index.id;if(strcmp(currentdir,root)!=0)updir=
16、(fcb *)(myvhard+openfilelist-openfilei. if(j=openfilelist-openfilei.length/32)*BLOCKSIZE);for(k=0;kopenfilei.length/32;j+)if(strcmp(updir-filename,.)=0)break;updir+;fat1=(fat *)(myvhard+BLOCKSIZE); fat2=(fat *)(myvhard+BLOCKSIZE*3); for(m=7;mid=FREE)break;fat1+;fat2+;fatcurrent1=(fat *)(myvhard+BLOC
17、KSIZE); fatcurrent2=(fat *)(myvhard+BLOCKSIZE*3);index=openfilelist-openfilei.while(fatcurrent1index.id!=END)index=fatcurrent1index.id; if(m=SIZE/BLOCKSIZE)prf(cant creat filen); return;fatcurrent1index.id=m; fatcurrent2index.id=m; fatcurrent1m.id=END; fatcurrent2m.id=END; for(k=0;klength/32;k+);if(
18、strcmp(updir-filename,currentdir)=0)break;updir+;fat1=(fat *)(myvhard+BLOCKSIZE); fat2=(fat *)(myvhard+BLOCKSIZE*3); for(m=0;mid=FREE)break;fat1+;fat2+;fat1-id=END; fat2-id=END;updir=(fcb *)(myvhard+openfilelist-openfilei. updir-length+=sizeof(fcb);updir+;updir-length+=sizeof(fcb); updir-;*BLOCKSIZE
19、);for(k=0;kopenfilei.length/32;j+)if(strcmp(updir-filename,.)=0)break;updir+;updir=(fcb *)(myvhard+updir-*BLOCKSIZE); for(k=0;klength/32;k+)if(strcmp(updir-filename,currentdir)=0)break;updir+;updir-length+=sizeof(fcb);elseupdir=(fcb *)(myvhard+openfilelist-openfilei.updir-length+=sizeof(fcb); updir+
20、;updir-length+=sizeof(fcb);*BLOCKSIZE);fat1=(fat *)(myvhard+BLOCKSIZE);fat2=(fat *)(myvhard+BLOCKSIZE*3); for(m=0;mid=FREE)break;fat1+;fat2+;fat1-id=END; fat2-id=END;openfilelist-openfilei.length+=sizeof(fcb); prf(please input filename:); scanf(%s,freefcb-filename);prf(please input filetype:); scanf
21、(%s,freefcb-exname); freefcb-attribute=0; if(strcmp(freefcb-exname,di)=0)freefcb-attribute +=8;p=(fcb *)(myvhard+m*BLOCKSIZE); strcpy(p-filename,.);strcpy(p-exname,di); p-attribute=40; time(now);nowtime=localtime(now);p-time=nowtime-tm_hour*2048+nowtime-tm_min*32+nowtime-tm_sec/2;p-data=(nowtime-tm_
22、year-80)*512+(nowtime-tm_mon+1)*32+nowtime-tm_mday;p-=m;p-length=2*sizeof(fcb);p+;strcpy(p-filename,.);strcpy(p-exname,di); p-attribute=40; time(now);nowtime=localtime(now);p-time=nowtime-tm_hour*2048+nowtime-tm_min*32+nowtime-tm_sec/2;p-data=(nowtime-tm_year-80)*512+(nowtime-tm_mon+1)*32+nowtime-tm
23、_mday;p-=openfilelist-openfilei.;p-length=2*sizeof(fcb);freefcb-length=2*sizeof(fcb);prf(is this file readonly?(1 or 0); scanf(%d,&b);if(b=1)freefcb-attribute +=128;prf(is this file hide?(1 or 0); scanf(%d,&b);if(b=1)freefcb-attribute +=64;prf(is this file system?(1 or 0); scanf(%d,&b);if(b=1)freefc
24、b-attribute +=32;time(now); nowtime=localtime(now);freefcb-time=nowtime-tm_hour*2048+nowtime-tm_min*32+nowtime-tm_sec/2;freefcb-data=(nowtime-tm_year-80)*512+(nowtime-tm_mon+1)*32+nowtime-tm_mday;freefcb-=m;if(freefcb-attribute & 8)!=8)freefcb-length=0; open(freefcb-filename);void ls()i,l;fcb *curre
25、nt; for(i=0;iopenfilei.attribute & 8)=8) break;/找到第一個(gè)打開(kāi)的文件或者文件夾,因?yàn)槭沁B續(xù)保存,所以只要找到第一個(gè)就行current=(fcb *)(myvhard+openfilelist-openfilei.*BLOCKSIZE);/定位到第一個(gè)文件或者文件夾的開(kāi)始位置l=openfilelist-openfilei.length/sizeof(fcb);/計(jì)算打開(kāi)了幾個(gè)文件或者文件夾 for(i=0;ifilename,current-exname,current-time/2048,(current-time%2048)/32,(curr
26、ent-time%32)*2,current-data/512current-data%32,current-length);,current-data%512/32,/把文件或者文件夾信息顯示出來(lái),信息是保存在文件的 fcb 里面的void listopenfile()i;for(i=0;icount;i+)prf(%d.%s%s.%sn,i,openfilelist-diri,openfilelist-openfilei.filename,openfilelist-openfilei.exname);/這個(gè)就是把保存信息的打開(kāi)的文件顯示出來(lái),不包括文件夾,openfilelist 就是之前
27、說(shuō)的,申請(qǐng)來(lái)open(char *filename)i,m,j,index,flag;fat *fat1;fcb *nowfile; flag=0;if(openfilelist-count=MAXOPENFILE)prf(open too many files!n); return -1;/就是打開(kāi)的文件太多了,就好比快遞太多,一個(gè)人不好拿,所以不拿了 for(i=0;iopenfilei.attribute & 8)=8) break;/假如卷標(biāo)屬性存在,則跳出。fat1=(fat *)(myvhard+BLOCKSIZE);index=openfilelist-openfilei.;no
28、wfile=(fcb *)(myvhard+openfilelist-openfilei.*BLOCKSIZE);/計(jì)算 fat1 的位置,然后再計(jì)算第一個(gè)可以用的空閑空間,最后,根據(jù)可用的位置加上文件塊大小進(jìn)行偏移,找到當(dāng)前文件夾的物理位置for(m=0;mopenfilei.length/BLOCKSIZE+1;m+)for(j=0;jfilename,filename)=0)/就是簡(jiǎn)單的比較文件名相不相等,如果相等,這個(gè)就成立flag=1; break;nowfile+;/在當(dāng)前文件夾下搜索文件,找到尾或者找到了就跳出 if(j=32)nowfile=(fcb *)(myvhard+fa
29、t1index.id); index=fat1index.id;/如果找不到,就把現(xiàn)場(chǎng)給恢復(fù),拉屎要擦干凈不是if(flag=0)prf(file %s doesnt existn,filename); return -1;/直接結(jié)束函數(shù),不往后面走了。/擦干凈了,要走人了不是strcpy(openfilelist-openfileopenfilelist-count.filename,nowfile-filename); strcpy(openfilelist-openfileopenfilelist-count.exname,nowfile-exname); openfilelist-op
30、enfileopenfilelist-count.attribute=nowfile-attribute; openfilelist-openfileopenfilelist-count.time=nowfile-time;openfilelist-openfileopenfilelist-count.data=nowfile-data;openfilelist-openfileopenfilelist-count.=nowfile-;openfilelist-openfileopenfilelist-count.length=nowfile-length;strcpy(openfilelis
31、t-diropenfilelist-count,currentdir); openfilelist-count+;listopenfile();return openfilelist-count-1;/把找到的文件夾信息保存下來(lái),算是完成了,切換目錄,即 cd/然后返回一個(gè)下標(biāo),是下次可以保存打開(kāi)文件信息的位置的下標(biāo)void close(i;fd)if(fd=openfilelist-count)prf(file doesnt existn); return;/那個(gè) fd 是要關(guān)閉文件的下標(biāo),如果下標(biāo)大于我最大的設(shè)置,屬于接 return;for(i=fd;icount-1;i+)的,所以,直
32、strcpy(openfilelist-openfilei.filename,openfilelist-openfilei+1.filename);strcpy(openfilelist-openfilei.exname,openfilelist-openfilei+1.exname); openfilelist-openfilei.attribute=openfilelist-openfilei+1.attribute; openfilelist-openfilei.time=openfilelist-openfilei+1.time;openfilelist-openfilei.data=
33、openfilelist-openfilei+1.data;openfilelist-openfilei.=openfilelist-openfilei+1.;openfilelist-openfilei.length=openfilelist-openfilei+1.length;strcpy(openfilelist-diri,openfilelist-diri+1);openfilelist-count-;/相當(dāng)于群的數(shù)目,要減掉/把找到的文件夾信息保存下來(lái)/寫(xiě)文件 void mywrite(fd,char *buff)unsigned char *p;i,j,newid,index,s
34、ize1,size2,size; fcb *temp;/設(shè)置文件控制塊 fat *fat1,*fat2;/char dir10,*q; if(fd=openfilelist-count)prf(file doesnt existn); return;/假如下標(biāo)超過(guò)設(shè)置的最大值,文件不存在 if(openfilelist-openfilefd.attribute&8)=8)prf(file is a dirfile cant writen); return;/寫(xiě)文件只能寫(xiě)到表示文件的地方,文件夾只能放東西,把寫(xiě)好的東西放進(jìn)去,不能直接寫(xiě)/寫(xiě)入的文字長(zhǎng)度需要增加一個(gè)數(shù)據(jù)塊if(openfileli
35、st-openfilefd.length/BLOCKSIZE !=(openfilelist-openfilefd.length+strlen(buff)/BLOCKSIZE)fat1=(fat *)(myvhard+BLOCKSIZE);fat2=(fat *)(myvhard+3*BLOCKSIZE); for(i=7;iid=FREE)break;fat1+;fat2+;if(i=SIZE/BLOCKSIZE)prf(the hard disk is fulln); return;fat1-id=END; fat2-id=END; newid=i-1;fat1=(fat *)(myvha
36、rd+BLOCKSIZE); fat2=(fat *)(myvhard+BLOCKSIZE*3);index=openfilelist-openfilefd.;/找到文件的頭位置 while(fat1index.id!=END)index=fat1index.id;/從頭順藤摸瓜到尾 fat1index.id=newid;fat2index.id=newid;/把新的文件進(jìn)去size1=BLOCKSIZE-openfilelist-openfilefd.length%BLOCKSIZE;size2=strlen(buff)-size1;p=myvhard+index*BLOCKSIZE+ope
37、nfilelist-openfilefd.length%BLOCKSIZE; for(j=0;jsize1;j+)*p=buffj; p+;/把輸入緩沖區(qū)的內(nèi)容寫(xiě)入文件,然后把 p 移到新的可用位置p=myvhard+newid*BLOCKSIZE; for(j=0;jopenfilefd.while(fat1index.id!=END)index=fat1index.id;p=myvhard+index*BLOCKSIZE+openfilelist-openfilefd.length%BLOCKSIZE;/找到文件最后一塊,通常是含有零頭那一塊for(j=0;j length;/將 buff
38、 里面的內(nèi)容寫(xiě)入EOF,表示文件結(jié)束。然后重新定位新的 fcb for(q=openfilelist-dirfd;*q!=0;q+)if(*q!=)dirj=*q; j+;elsedirj=0; for(i=0;ifilename)=0) break;temp+;塊,然后進(jìn)行封裝處理,p=0,即寫(xiě)入temp=(fcb *)(myvhard+temp-size=temp-length; j=0;*BLOCKSIZE);for(i=0;iopenfilefd.filename,temp-filename)=0)break; temp+;temp-length+=strlen(buff);openf
39、ilelist-openfilefd.length=strlen(buff);/文件內(nèi)容void myread(fd,char *buff)unsigned char *p;n,index,i,length,j,k; fat *fat1;fat1=(fat *)(myvhard+BLOCKSIZE);index=openfilelist-openfilefd.;p=myvhard+openfilelist-openfilefd.*BLOCKSIZE;n=openfilelist-openfilefd.length/BLOCKSIZE+1;length=openfilelist-openfile
40、fd.length; k=0;for(i=0;in;i+)for(j=0;jBLOCKSIZE &k length;j+,k+)buffk=*p; p+;p=myvhard+BLOCKSIZE*(fat1index.id); index=fat1index.id;buffk=0;/進(jìn)入 dirname 目錄void cd(char *dirname)i,index,j,k,length,count,m,n; unsigned char *p;char *updir; fcb *nowfile;fat *fat1; count=0;updir = (char*)malloc(sizeof(cha
41、r) * 80);for(i=0;icount;i+)if(openfilelist-openfilei.attribute & 8)=8)break;if(i=openfilelist-count)prf(dir doesnt existn); return;fat1=(fat *)(myvhard+BLOCKSIZE); index=openfilelist-openfilei.;p=myvhard+openfilelist-openfilei.*BLOCKSIZE;nowfile=(fcb *)p;length=openfilelist-openfilei.length; for(j=0
42、;jopenfilei.length/sizeof(fcb);j+)if(j!=0 & j%32=0)nowfile=(fcb *)(myvhard+fat1index.id); index=fat1index.id;elseif(strcmp(nowfile-filename,dirname)=0 & (nowfile-attribute & 8)=8) break;nowfile+;if(j=openfilelist-openfilei.length/sizeof(fcb)prf(dir doesnt existn); return;if(strcmp(dirname,.)!=0 & st
43、rcmp(dirname,.)!=0)strcpy(openfilelist-openfileopenfilelist-count.filename,nowfile-filename); strcpy(openfilelist-openfileopenfilelist-count.exname,nowfile-exname); openfilelist-openfileopenfilelist-count.attribute=nowfile-attribute; openfilelist-openfileopenfilelist-count.time=nowfile-time;openfile
44、list-openfileopenfilelist-count.data=nowfile-data;openfilelist-openfileopenfilelist-count.=nowfile-;openfilelist-openfileopenfilelist-count.length=nowfile-length;strcpy(openfilelist-diropenfilelist-count,currentdir); openfilelist-count+;else if(strcmp(dirname,.)=0 & strcmp(currentdir,root)!=0)/root/
45、count=0; for(k=80;k0;k-)if(currentdirk= & count=2) break;else if(currentdirk=) count+;updir0 = currentdirk; k+;for(n=1;(kopenfileopenfilelist-count.filename,updir+1); strcpy(openfilelist-openfileopenfilelist-count.exname,nowfile-exname); openfilelist-openfileopenfilelist-count.attribute=nowfile-attr
46、ibute; openfilelist-openfileopenfilelist-count.time=nowfile-time;openfilelist-openfileopenfilelist-count.data=nowfile-data;openfilelist-openfileopenfilelist-count.=nowfile-;openfilelist-openfileopenfilelist-count.length=nowfile-length;updirn=currentdirk; updirn+1=0;strcpy(openfilelist-diropenfilelist-count,updir);openfilelist-count+;if(strcmp(currentdir,root)=0 strcmp(dirname,.)=0)/;/root/&(strcmp(dir
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 光纜并購(gòu)趨勢(shì)分析-深度研究
- 智能化生產(chǎn)對(duì)競(jìng)爭(zhēng)的影響-深度研究
- 收費(fèi)收據(jù)財(cái)務(wù)管理創(chuàng)新-深度研究
- 保險(xiǎn)業(yè)數(shù)字化轉(zhuǎn)型-深度研究
- 農(nóng)業(yè)物聯(lián)網(wǎng)創(chuàng)新-深度研究
- 智能切片需求分析-深度研究
- 智能合約智能合約-深度研究
- 建筑節(jié)能與保溫材料的協(xié)同效應(yīng)-深度研究
- 智能制造技術(shù)創(chuàng)新-深度研究
- 2025年廣西理工職業(yè)技術(shù)學(xué)院高職單招數(shù)學(xué)歷年(2016-2024)頻考點(diǎn)試題含答案解析
- 山東省桓臺(tái)第一中學(xué)2024-2025學(xué)年高一上學(xué)期期中考試物理試卷(拓展部)(無(wú)答案)
- 中華人民共和國(guó)保守國(guó)家秘密法實(shí)施條例培訓(xùn)課件
- 管道坡口技術(shù)培訓(xùn)
- 2024年全國(guó)統(tǒng)一高考英語(yǔ)試卷(新課標(biāo)Ⅰ卷)含答案
- 2024年認(rèn)證行業(yè)法律法規(guī)及認(rèn)證基礎(chǔ)知識(shí) CCAA年度確認(rèn) 試題與答案
- 皮膚儲(chǔ)存新技術(shù)及臨床應(yīng)用
- 外研版七年級(jí)英語(yǔ)上冊(cè)《閱讀理解》專(zhuān)項(xiàng)練習(xí)題(含答案)
- 2024年遼寧石化職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)必考題
- 上海市復(fù)旦大學(xué)附中2024屆高考沖刺模擬數(shù)學(xué)試題含解析
- 幼兒園公開(kāi)課:大班健康《國(guó)王生病了》課件
- 小學(xué)六年級(jí)說(shuō)明文閱讀題與答案大全
評(píng)論
0/150
提交評(píng)論