版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第10章文件操作1I/O設(shè)備輸入設(shè)備鍵盤、鼠標(biāo)軟盤、硬盤、光驅(qū)(以文件的形式)串行口、并行口、USB接口、網(wǎng)絡(luò)端口掃描儀、視頻采集卡、電視卡、游戲桿、話筒……輸出設(shè)備顯示器、打印機(jī)軟盤、硬盤、CD-R/DVD-R(以文件的形式)串行口、并行口、USB接口、網(wǎng)絡(luò)端口音箱……單純的輸入設(shè)備或者單純的輸出設(shè)備越來越少標(biāo)準(zhǔn)輸入輸出字符界面的操作系統(tǒng)一般都提供標(biāo)準(zhǔn)輸入與輸出設(shè)備DOS、Linux、Unix……一般情況,標(biāo)準(zhǔn)輸入就是鍵盤,標(biāo)準(zhǔn)輸出就是終端顯示器操作系統(tǒng)有能力重定向標(biāo)準(zhǔn)輸入與輸出,比如讓文件作為標(biāo)準(zhǔn)輸入,打印機(jī)作為標(biāo)準(zhǔn)輸出這種重定向程序本身是感覺不到的自來水廠DOS下的標(biāo)準(zhǔn)輸入輸出重定向程序prog如下main()
{
charc;
while((c=getchar())!='\n')
putchar(++c);
}輸入重定向prog<infile輸出重定向prog>outfile流(Stream)計(jì)算機(jī)中的流的概念一般稱為數(shù)據(jù)流,也有叫做字節(jié)流、比特流的,還有很具體的文件流、視頻流、音頻流等時(shí)光不能倒流,但計(jì)算機(jī)中的很多流都是會(huì)倒流的如果你想重新讀已經(jīng)讀過的數(shù)據(jù),或者要修改已經(jīng)寫入的數(shù)據(jù),可以發(fā)出流控(FlowControl)命令不會(huì)倒流的數(shù)據(jù)流也很多,例如網(wǎng)絡(luò)上的數(shù)據(jù)流。網(wǎng)絡(luò)和數(shù)據(jù)線等介質(zhì)只有很小的數(shù)據(jù)緩沖區(qū),沒有大量存儲(chǔ)的能力文件(File)的概念文件一般指存儲(chǔ)在外部介質(zhì)上具有名字(文件名)的一組相關(guān)數(shù)據(jù)的集合用文件可長期保存數(shù)據(jù),并實(shí)現(xiàn)數(shù)據(jù)共享程序中的文件在程序運(yùn)行時(shí)由程序在磁盤上建立一個(gè)文件,并通過寫操作將數(shù)據(jù)存入該文件;或由程序打開磁盤上的某個(gè)已有文件,并通過讀操作將文件中的數(shù)據(jù)讀入內(nèi)存供程序使用文件與流在C語言中,文件可以是磁盤文件、終端顯示器或打印機(jī)等等。程序通過打開操作把流與設(shè)備聯(lián)系起來,文件打開后,可以在程序和文件之間交換數(shù)據(jù)。程序通過關(guān)閉操作斷開流與文件的聯(lián)系。所有流的性質(zhì)都一樣。因?yàn)榱髋c設(shè)備無關(guān),所以能寫入磁盤文件的同一函數(shù)也能寫入另一設(shè)備,如控制臺(tái)終端等。但文件的能力則可能不同。例如,磁盤文件可以支持隨機(jī)存取,而鍵盤則不行。文件的存放可以建立若干目錄(文件夾),在目錄里保存文件,同一級目錄里保存的文件不能同名。對使用者而言,只要知道文件的路徑(全目錄)和文件名,就能使用該文件D:\home\Sunner\main.c
這都是托OS的福文件的格式二進(jìn)制文件是一種字節(jié)序列,沒有字符變換按照數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式存儲(chǔ)到文件如整數(shù)127,在內(nèi)存占2個(gè)字節(jié),為0000000001111111,則文件中也存儲(chǔ)為0000000001111111,占2個(gè)字節(jié)文本文件/ASCII碼文件是一種字符序列文件中存儲(chǔ)每個(gè)字符的ASCII碼如整數(shù)127在文件中占3個(gè)字節(jié),分別存放這3個(gè)字符的ASCII碼,即49,50,55文件的格式數(shù)據(jù)必須按照存入的類型讀出,才能恢復(fù)其本來面貌公開的標(biāo)準(zhǔn)格式如bmp、tif、gif、jpg和mp3等類型的文件,有大量軟件能生成和使用這些類型的文件也有不公開、甚至加密的文件格式如MicrosoftWord的doc格式就不公開,所以至今還沒有Word以外的其它軟件能完美地讀出doc文件int100 float100.0 字符串"100" 字符串"END" 640000
00 C84231303000454E4400
D╚B 10 0 E ND TEST.BIN內(nèi)容
(十六進(jìn)制)對應(yīng)的ASCII字符文件訪問文件訪問的基本模式open:打開文件,獲得對此文件的指針、引用和句柄等,以證明可以使用此文件read:讀文件。參數(shù)一般指明要讀多少字節(jié),讀到哪塊內(nèi)存。每次調(diào)用此功能,都是接著上次調(diào)用的結(jié)束位置讀。(所以是個(gè)輸入流)write:寫文件。參數(shù)一般指明把哪塊內(nèi)存的內(nèi)容寫入文件,要寫多少字節(jié)。每次調(diào)用此功能,都是接著上次調(diào)用的結(jié)束位置寫。(所以是個(gè)輸出流)close:關(guān)閉文件,表明操作結(jié)束,不再使用此文件。文件使用完畢必須關(guān)閉,否則影響系統(tǒng)性能seek:隨機(jī)控制流的當(dāng)前位置,文件定位C語言中的文件訪問下面介紹的函數(shù)均定義在<io.h>和<fcntl.h>中int
open(const
char*pathname,intaccess);int
fd=open("C:\\CONFIG.SYS",O_RDWR|O_CREAT);pathname是文件名,包含路徑。如果不含路徑,表示打開當(dāng)前目錄下的文件access是打開方式,常用為O_RDONLY、O_WRONLY、O_RDWR與O_CREAT、O_TRUNC、O_APPEND的位或運(yùn)算返回值為文件句柄(FileHandle)
,留待以后使用。如果打開失敗,返回值為-1C語言中的文件訪問int
read(inthandle, void*buf, unsigned
len);int
n_read=read(fd,buf,BUFSIZ);handle是open獲得的文件句柄buf是保存讀入內(nèi)容的內(nèi)存指針len是最大可以讀入的字節(jié)數(shù)返回值為實(shí)際讀入的字節(jié)數(shù),不可能大于len。返回0表示讀到了末尾,返回-1表示出錯(cuò)C語言中的文件訪問int
write(int
handle,
const
void*buf,
unsigned
len);int
n_write=write(fd,buf,BUFSIZ);handle是open獲得的文件句柄buf是要寫入內(nèi)容的內(nèi)存指針len是寫入多少字節(jié)返回值為實(shí)際寫入的字節(jié)數(shù),可能小于len。返回-1表示出錯(cuò)C語言中的文件訪問int
close(int
handle);intret=close(fd);handle是open獲得的文件句柄關(guān)閉成功返回0,否則返回-1C語言中的文件訪問long
lseek(int
handle,longoffset,
int
fromwhere);intpos=lseek(fd,100L,SEEK_CUR);handle是open獲得的文件句柄offset是相對fromwhere的位置偏移多少,可以為負(fù)數(shù)fromwhere可以是SEEK_SET、SEEK_CUR或SEEK_END中的一個(gè),分別表示文件頭、當(dāng)前位置和文件結(jié)尾成功返回移位后的當(dāng)前位置,從文件頭算起;否則返回-1L幾個(gè)巧妙運(yùn)用curPos=lseek(fh,0L,SEEK_CUR);fileLength=lseek(fh,0L,SEEK_END);得到文件長度錯(cuò)誤處理錯(cuò)誤處理文件錯(cuò)誤一般都是外界造成的,出錯(cuò)率很高被刪除、修改、磁盤空間滿、被其他文件打開通過判斷返回值發(fā)現(xiàn)錯(cuò)誤所有文件操作出錯(cuò)時(shí)都返回-1出錯(cuò)處理打印錯(cuò)誤信息給用戶,等待用戶的處理voidperror(constchar*s);向標(biāo)準(zhǔn)錯(cuò)誤輸出字符串s,隨后附上錯(cuò)誤的文字說明錯(cuò)誤處理——例10.1#include<stdio.h>#include<errno.h>#include<io.h>#include<fcntl.h>main(){ /*c:\abc.abc文件并不存在*/
int
fh=open("c:\\abc.abc",O_RDONLY|O_BINARY);
if(fh==-1) /*fh必然為-1*/ {
perror("Can'topenc:\\abc.abc.Error"); }}Can'topenc:\\abc.abc.Error:NosuchfileordirectoryC語言獨(dú)特的文件訪問下面介紹的函數(shù)均定義在<stdio.h>中FILE*fopen(const
char*filename,
const
char*mode);FILE*fp=fopen("C:\\CONFIG.SYS",
"rw");filename是文件名,包含路徑。如果不含路徑,表示打開當(dāng)前目錄下的文件mode是打開方式,常用為"r"、"w"、"rw"和"a",分別表示只讀、只寫、讀寫和添加返回值為指向此文件的指針,留待以后使用。如果打開失敗,返回值為NULL
mode:對應(yīng)二進(jìn)制文件對應(yīng)文本文件“r”
只讀必須是已存在的文件。“w”只寫不論該文件是否存在,都新建一個(gè)文件?!癮”
追加向文本文件尾增加數(shù)據(jù),該文件必須存在“r+”讀寫打開一個(gè)已存在的文件,用于讀寫。
“w+”
讀寫建立一個(gè)新文件,可讀可寫。“a+”
讀寫向文件尾追加數(shù)據(jù),也可讀。
“rb”“wb”“ab”“rb+”“wb+”“ab+”文件指針FILE*fp;是FILE型指針變量標(biāo)識一個(gè)特定的磁盤文件與文件相關(guān)聯(lián)的每個(gè)流都有一個(gè)FILE類型的控制結(jié)構(gòu),定義有關(guān)文件操作的信息,用戶絕對不應(yīng)修改文件指針(FilePointer)typedef
struct{
shortlevel;/*緩沖區(qū)‘滿’或‘空’的程度*/
unsignedflags;/*文件狀態(tài)標(biāo)志*/
char
fd;/*文件描述符*/
unsignedcharhold;/*如無緩沖區(qū)不讀字符*/
short
bsize;/*緩沖區(qū)的大小*/
unsignedchar*buffer;/*數(shù)據(jù)緩沖區(qū)的位置*/
unsignedchar*curp;/*指針當(dāng)前的指向*/
unsignedistemp;/*臨時(shí)文件指示器*/
shorttoken;/*用于有效性檢查*/}FILE;在stdio.h文件中定義C語言獨(dú)特的文件訪問int
fgetc(FILE*fp);int
fputc(intc,FILE*fp);char*fgets(char*s,intn,FILE*fp);int
fputs(const
char*s,FILE*fp);int
fscanf(FILE*fp,constchar*format, ...);int
fprintf(FILE*fp,const
char*format,
...);C語言獨(dú)特的文件訪問size_t
fread(void*ptr,
size_tsize,
size_tn,
FILE*fp);size_t
fwrite(const
void*ptr,
size_tsize,
size_tn,
FILE*fp);int
feof(FILE*fp);int
fseek(FILE*fp,
longoffset,
intwhence);int
fclose(FILE*fp);typedefunsignedint
size_t;兩種方式的區(qū)別open族的功能一般由OS直接提供,其使用方式也比較具有通用性,在各種語言里基本一樣fopen族的函數(shù)系包裝了open族的函數(shù),提供更強(qiáng)大的功能,但是效率略遜open族通常情況能直接反映文件的真實(shí)情況,因?yàn)樗牟僮鞫疾患俣ㄎ募娜魏谓Y(jié)構(gòu)fopen族比較適合處理文本文件,或者結(jié)構(gòu)單一的文件。會(huì)為了處理的方便而改變一些內(nèi)容從文件說開去open、read、write、close這種模式成為使用數(shù)據(jù)流的經(jīng)典模式比如網(wǎng)絡(luò)數(shù)據(jù)流操作就是使用此模式,甚至在一些平臺(tái)上可以和文件采用完全相同的函數(shù)操作seek并不是所有的流都支持網(wǎng)絡(luò)就不支持對于不能進(jìn)行流控的流,如果當(dāng)前數(shù)據(jù)不立即處理,后來流過的數(shù)據(jù)就會(huì)沖走當(dāng)前數(shù)據(jù),永遠(yuǎn)不能追回。流控成為流處理中的一個(gè)專門技術(shù)例如:
fp=fopen(“a1.txt”,”r”);fp=fopen(“d:\\sqs\\a1.txt”,”r”);fopen函數(shù)返回指向文件a1.txt的指針并賦給fp,即fp指向文件a1.txt.
若不能實(shí)現(xiàn)打開任務(wù),fopen函數(shù)將帶回一個(gè)空指針值NULL(值為0)。常用打開文件的方法為:if((fp=fopen(“a1.txt”,”r”))==NULL){
printf(“cannot
onenthisfile\n”);exit(0);}一、文件的打開:fopen函數(shù)二、文件的關(guān)閉:fclose函數(shù)例如:
fclose(fp);fclose(文件指針);關(guān)閉fp所指向的文件。把遺留在緩沖區(qū)中的數(shù)據(jù)寫入文件,實(shí)施操作系統(tǒng)級的關(guān)閉操作。同時(shí),釋放與流聯(lián)系的文件控制塊,以后可以再次使用這部分空間。fclose函數(shù)的返回值:當(dāng)順利地執(zhí)行了關(guān)閉操作,則返回值為0;如果返回值為非零值,則表示關(guān)閉時(shí)有錯(cuò)誤。一般只有驅(qū)動(dòng)器中無盤或盤空間不夠時(shí),才失敗。關(guān)閉失敗會(huì)引起數(shù)據(jù)丟失、破壞文件和程序中的隨機(jī)錯(cuò)誤多數(shù)情況下,系統(tǒng)限制同時(shí)處于打開狀態(tài)的文件總數(shù),因此,打開文件前先關(guān)閉無用文件是必要的ch=fgetc
(fp);
fgetc和
fputc函數(shù)fputc
(ch,fp);
---把字符ch寫到fp所指向的文件中去。---從指定文件讀入一個(gè)字符。該文件應(yīng)以只讀或讀寫方式打開。三、文件的字符讀寫返回值:若輸出成功,則返回輸出的字符,否則返回EOF。該文件應(yīng)以寫或讀寫方式打開。返回值:若輸入成功,則返回字符,否則返回EOF。EOF:在stdio.h中定義的常量,表示文件結(jié)束#defineEOF(-1)#include"stdio.h"#include"stdlib.h"main(){ charc; FILE*fp; if((fp=fopen("tt.txt","w"))==NULL) { printf("error!\n"); exit(0); } c=getchar(); while(c!=EOF) { fputc(c,fp); c=getchar(); } fclose(fp);}例:將鍵盤輸入的字符順序存入磁盤文件tt.txt中,輸入ctrl+z結(jié)束程序運(yùn)行結(jié)果是生成文件tt.txt;#include"stdio.h"#include"stdlib.h"main(){ charc; FILE*fp; if((fp=fopen("tt.txt","r"))==NULL) { printf("error!\n"); exit(0); } c=fgetc(fp); while(c!=EOF) { putchar(c); c=fgetc(fp); } fclose(fp);}例:從文件tt.txt中順序讀取字符并顯示出來。四、文件的數(shù)據(jù)塊的讀寫—fread和fwrite函數(shù)
函數(shù)調(diào)用成功返回count的值,否則返回-1。fwrite()函數(shù)的功能:將內(nèi)存中的一組數(shù)據(jù)寫到fp所指向的文件中。按照內(nèi)存中的存儲(chǔ)形式輸出,為二進(jìn)制文件。fwrite(buff,size,count,fp)所要寫入文件的數(shù)據(jù)在內(nèi)存中的起始地址寫入文件的每個(gè)數(shù)據(jù)項(xiàng)的字節(jié)數(shù)寫入文件的數(shù)據(jù)項(xiàng)數(shù)指向?qū)懭胛募闹羔?include"stdio.h"#include"stdlib.h"typedefstructstudentSTUD;structstudent{ intnum; charname[12];
intscore;};main(){ STUDstu;/*stu為結(jié)構(gòu)體變量*/ FILE*fp; charfilename[12];
int
i,n;
scanf("%s",filename);
if((fp=fopen(filename,"wb"))==NULL) { printf("can'topenthefile!\n"); exit(0); }
scanf("%d",&n);
fwrite(&n,4,1,fp);
for(i=0;i<n;i++) { scanf("%d%s%d",&stu.num,,&stu.score); if(fwrite(&stu,sizeof(STUD),1,fp)!=1)/*寫入一個(gè)數(shù)據(jù)項(xiàng)*/ { printf("filewriteerror!"); exit(0); } }
fclose(fp);}例1:文件的數(shù)據(jù)塊寫的操作從鍵盤輸入n個(gè)同學(xué)的學(xué)號,姓名和成績存入文件。#include"stdio.h"#include"stdlib.h"typedefstructstudentSTUD;structstudent{ intnum; charname[12];
intscore;};main(){STUDstu[30];/*stu[30]為結(jié)構(gòu)體數(shù)組*/FILE*fp;charfilename[12];
int
i,n;
scanf("%s",filename);
if((fp=fopen(filename,"wb"))==NULL){
printf("can'topenthefile!\n"); exit(0); }
scanf("%d",&n);
fwrite(&n,4,1,fp);
for(i=0;i<n;i++)
scanf("%d%s%d",&stu[i].num,stu[i].name,&stu[i].score);
fwrite(stu,sizeof(STUD),n,
fp);/*一次寫入n個(gè)數(shù)據(jù)項(xiàng)*/
fclose(fp);}fread(buff,size,count,fp)fread()函數(shù):功能:從fp所指向的文件中讀取一組數(shù)據(jù)并將其放到內(nèi)存中去。函數(shù)調(diào)用成功返回count的值,否則返回-1。待讀文件的數(shù)據(jù)在內(nèi)存中的起始地址從文件讀入的每個(gè)數(shù)據(jù)項(xiàng)的字節(jié)數(shù)從文件讀入的數(shù)據(jù)項(xiàng)數(shù)指向待讀文件的指針例2:文件的數(shù)據(jù)塊讀的操作#include"stdio.h"#include"stdlib.h"typedefstructstudentSTUD;structstudent{ intnum; charname[12]; intscore;};main(){ STUDstu;/*stu為結(jié)構(gòu)體變量*/ FILE*fp; charfilename[12]; inti,n; scanf("%s",filename); if((fp=fopen(filename,"rb"))==NULL) { printf("can'topenthefile!\n"); exit(0); } fread(&n,4,1,fp); printf("n=%d\n",n); for(i=0;i<n;i++) { if(fread(&stu,sizeof(STUD),1,fp)!=1)/*讀入一個(gè)數(shù)據(jù)項(xiàng)*/ { printf("filereaderror!"); exit(0); } printf("%d\t%s\t%d\n",stu.num,,stu.score); } fclose(fp);}#include"stdio.h"#include"stdlib.h"typedefstructstudentSTUD;structstudent{ intnum; charname[12];
intscore;};main(){ STUDstu[20];/*stu為結(jié)構(gòu)體數(shù)組*/ FILE*fp; charfilename[12];
int
i,n;
scanf("%s",filename);
if((fp=fopen(filename,"rb"))==NULL) { printf("can'topenthefile!\n"); exit(0); }
fread(&n,4,1,fp);
printf("n=%d\n",n); if(fread(stu,sizeof(STUD),n,fp)!=n)/*讀入n個(gè)數(shù)據(jù)項(xiàng)*/ { printf("filereaderror!"); exit(0); }
for(i=0;i<n;i++) {
printf("%d\t%s\t%d\n",stu[i].num,stu[i].name,stu[i].score); }
fclose(fp);}五、文件的格式化讀寫(文本文件)將輸出項(xiàng)arg1,arg2…argn按指定format格式寫入fp所指的文件中,即輸出到磁盤文件;格式:fprintf(fp,format,arg1,arg2,…,argn);格式:
fscanf(fp,format,&arg1,&arg2,…&argn);
fscanf函數(shù)
fprintf函數(shù)按指定format格式從fp所指的文件中讀取數(shù)據(jù)依次送入arg1,arg2…argn的內(nèi)存單元;
arg1,arg2,…argn(&arg1,&arg2,…&argn)輸出/輸入項(xiàng)表列
format:為格式字符串
fp:為指向fopen函數(shù)打開的文件的指針fprintf(fp,“%d,%6.2f”,i,t);將整型變量i和實(shí)型變量t的值按%d和%6.2的格式輸出到fp指向的文件中。
最好給出長度以保證讀寫統(tǒng)一fscanf(fp,“%d,%6.2f”,&i,&t);例1:文件的格式化寫操作#include"stdio.h"#include"stdlib.h"typedefstructstudentSTUD;structstudent{ intnum; charname[12];
intscore;};main(){ STUDstu;/*stu為結(jié)構(gòu)體變量*/ FILE*fp; charfilename[12];
int
i,n;
scanf("%s",filename);
if((fp=fopen(filename,"w"))==NULL) { printf("can'topenthefile!\n"); exit(0); }
scanf("%d",&n);
fprintf(fp,"%4d",n);
for(i=0;i<n;i++) { scanf("%d%s%d",&stu.num,,&stu.score);
fprintf(fp,"%6d%10s%3d",stu.num,,stu.score); }
fclose(fp);}例2:文件的格式化讀操作#incl
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年版餐廳服務(wù)員勞動(dòng)合約3篇
- 2025版?zhèn)€人間房屋抵押借款合同
- 2024年適用:住宅小區(qū)物業(yè)管理與服務(wù)合同(含維修基金使用)
- 2025年農(nóng)業(yè)出口委托種植合同范本:國際市場拓展合作框架3篇
- 二零二五年度多功能庫房租賃及增值服務(wù)合同3篇
- 2025版電力行業(yè)勞動(dòng)合同安全監(jiān)管制度范本2篇
- 新標(biāo)日初級語法
- 二零二五年度季艷離婚協(xié)議書與子女撫養(yǎng)、監(jiān)護(hù)權(quán)及財(cái)產(chǎn)分割及支付協(xié)議21篇
- 2024幼兒園保育員崗位聘用與福利待遇合同范本3篇
- 2024年簡約型民間消費(fèi)貸款協(xié)議樣式版
- 2022年人美版美術(shù)六年級上冊教案全一冊
- DB44∕T 1379-2014 化妝刷-行業(yè)標(biāo)準(zhǔn)
- 幼兒專注力訓(xùn)練-運(yùn)筆練習(xí)-連線練習(xí)-可打印(共26頁)
- 超外差調(diào)幅收音機(jī)課設(shè)報(bào)告——內(nèi)蒙古工業(yè)大學(xué)
- 3.2熔化和凝固-人教版八年級上冊課件(21張PPT)pptx
- 2017衢州新城吾悅廣場開業(yè)安保方案
- 名師工作室考核評價(jià)表.doc
- 公司宣傳品管理辦法1
- 人教版(PEP)小學(xué)英語六年級上冊各單元知識點(diǎn)歸納(三年級起點(diǎn))
- 工作分析案例
- 現(xiàn)代CMOS工藝基本流程
評論
0/150
提交評論