版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第10章文件讀寫教學提示:存儲在變量和數組〔即內存〕中的數據是臨時的,這些數據在程序運行結束后會消失,而文件可以用來永久地保存大量的數據。如果有些數據需要反復使用或永久保存,應該考慮使用文件來完成。教學要求:本章要掌握文件在讀寫之前必須翻開,讀寫結束必須關閉。文件可按只讀、只寫、讀寫、追加四種操作方式翻開,同時還必須指定文件的類型是二進制文件還是文本文件。文件可按字節(jié),字符串,數據塊為單位讀寫,文件也可按指定的格式進行讀寫。文件內部的位置指針可指示當前的讀寫位置,移動該指針可以對文件實現隨機讀寫。10.1 文件概述與文件指針所謂“文件〞是指一組相關數據的有序集合。我們在前幾章中已屢次接觸使用過文件,例如源程序文件、目標文件、可執(zhí)行文件、庫文件(頭文件)等。10.1.1文件分類文件通常是駐留在外部介質(如磁盤等)上的,在使用時才調入內存中來。C語言把文件看作是由一個個字符〔字節(jié)〕的數據順序組成的。它把數據看作是連續(xù)的字符〔字節(jié)〕流,這樣它對文件的存取實際上是以字符〔字節(jié)〕為單位的。輸入輸出的數據流的開始和結束只受程序的控制而不受特定符號〔比方回車換行符〕的控制。也就是說,C語言在輸出數據到文件中時,并不會自動增加回車換行符以示結束,在輸入時也不會以讀入回車換行符作為數據的間隔。10.1.1文件分類從用戶的角度看,文件可分為普通文件和設備文件兩種。根據文件的存儲形式,可分為ASCII碼文件和二進制文件兩種:(1)ASCII文件也稱為文本文件,這種文件在磁盤中存放時每個字符對應一個字節(jié),用于存放對應的ASCII碼。例如一個整型數據1234在文本文件中占4個字節(jié)。我們用Windows自帶的記事本軟件翻開該類型文件能讀懂文件中的內容。(2)二進制文件是按二進制的編碼方式來存放文件的。例如一個整型數據230在二進制文件中占2個字節(jié)。10.1.2文件類型指針在C語言中要使用文件,必須用一個指針變量指向一個文件,這個指針稱為文件指針。通過文件指針就可對它所指的文件進行各種操作。定義文件指針的一般形式為:FILE*指針變量標識符;其中FILE必須為大寫,它是在頭文件stdio.h中定義的一個結構體,該結構體中含有文件名、文件狀態(tài)和文件當前位置等信息,我們編程時不必關心FILE結構的細節(jié)。例如:FILE*fp;表示定義了一個名為fp的文件指針。如果變量fp已被正確賦值,那么可以根據結構變量fp所提供的信息找到一個文件并實施對該文件的操作。習慣上把fp稱為指向一個文件的指針。10.2 文件的翻開與關閉使用文件必須遵循“先翻開,再對文件進行讀寫操作,最后關閉文件〞的原那么。在C語言中,對文件的這些操作都可以由庫函數來完成,對用到的庫函數的聲明包含在文件stdio.h中,因此在編程中要操作文件時,要使用頭文件包含命令#include“stdio.h〞。10.2.1 文件的翻開所謂翻開文件,實際上是獲得文件的各種有關信息,并使文件指針指向該文件,以便進行下一步操作。C語言提供了函數fopen來翻開文件。其使用格式為:文件指針名=fopen(文件名,使用文件方式);其中,“文件指針名〞必須是已被說明為FILE類型的指針變量;“文件名〞是將被翻開的文件的文件名,通常是字符串常量或字符串數組〔注意路徑的分隔符應使用“\\〞〕;“使用文件方式〞是指文件的類型和操作要求,是一個由一對雙引號括起來的字符串,共有12種,具體的符號表示和含義見表10-1。文件使用方式含義“rt”打開一個已經存在的文本文件,只能讀取數據“wt”打開一個文本文件,只能寫入數據。若文件不存在,則自動建立一個新文件接受寫入的數據;若文件存在,則刪除文件中原有內容,并接受寫入的數據(覆蓋)“a”打開一個已經存在的文本文件,只能寫入數據并且追加在文件的尾部“r+”打開一個已經存在的文本文件,可以讀取數據,也可以寫入數據“w+”打開一個文本文件,可以讀取數據,也可以寫入數據。若文件不存在,則自動建立一個新文件接受寫入的數據;若文件存在,則刪除文件中原有內容,并接受寫入的數據(覆蓋)“a+”打開一個已經存在的文本文件,可以讀取數據,也可以寫入數據(追加在文件的尾部)“rb”打開一個已經存在的二進制文件,只能讀取數據“wb”打開一個二進制文件,只能寫入數據。若文件不存在,則自動建立一個新文件接受寫入的數據;若文件存在,則刪除文件中原有內容并接受寫入的數據(覆蓋)“ab”打開一個已經存在的二進制文件,只能寫入數據(追加在文件的尾部)“rb+”打開一個已經存在的二進制文件,可以讀取數據,也可以寫入數據“wb+”打開一個二進制文件,可以讀取數據,也可以寫入數據。若文件不存在,則自動建立一個新文件接受寫入的數據;若文件存在,則刪除文件中原有內容,并接受寫入的數據(覆蓋)“ab+”打開一個已經存在的二進制文件,可以讀取數據,也可以寫入數據(追加在文件的尾部)fopen翻開文件例如:FILE*fpTa;fpTa=fopen("c:\\cprogram\\abc","rb");/*反斜線“\\〞中的第一個表示轉義字符*/其意義是翻開C驅動器磁盤的cprogram子目錄下的文件abc,這是一個二進制文件,只允許按二進制方式進行讀操作。又如:FILE*fp;fp=fopen("mytest1.txt","r");其意義是在當前目錄下翻開文件mytest1.txt,只允許進行“讀〞操作,并使fp指向該文件。10.2.2 文件關閉函數在使用完一個文件以后,應該將該文件關閉,以防止它再被調用或喪失數據。“關閉〞就是使文件指針變量不再指向該文件,也就是文件指針變量與該文件“斷開〞,此后不能通過該指針對原來與其相聯系的文件進行讀、寫操作〔除非再次翻開該文件,使文件指針變量重新指向該文件〕。fclose()函數用來關閉一個已經由fopen()函數翻開的文件,正常完成關閉文件操作時,fclose函數返回值為0,有錯誤發(fā)生那么返回非零值。其調用的一般形式為:fclose(文件指針);例如:fclose(fp);10.3 文件位置指針的有關函數在文件內部有一個位置指針,用來指向文件的當前讀寫字節(jié)。在文件翻開時,該位置指針總是指向文件的第一個字節(jié)。使用下面章節(jié)介紹的fgetc等函數對文件進行讀寫后,該位置指針將自動向后移動。但文件指針和文件內部的位置指針不是一回事。文件指針是指向整個文件的,須在程序中定義說明,只要不重新賦值,文件指針的值是不變的。文件內部的位置指針用以指示文件內部的當前讀寫位置,每讀寫一次,該指針均自動向后移動,它不需在程序中定義說明,而是由系統自動設置的。順序讀寫和隨機讀寫文件的讀寫方式分為順序讀寫和隨機讀寫。(1)順序讀寫即讀寫文件只能從頭開始,順序讀寫各個數據。但在實際問題中常要求只讀寫文件中某一指定的局部,為了解決這個問題可移動文件內部的位置指針到需要讀寫的位置,再進行讀寫,這種讀寫稱為隨機讀寫。(2)隨機讀寫可以通過利用系統函數去主動移動文件內部的位置指針來實現。這樣的函數主要有兩個,即rewind函數和fseek函數。實現隨機讀寫的關鍵是要按要求移動位置指針,這稱為文件的定位。在移動位置指針之后,即可用后面介紹的任一種讀寫函數進行讀寫。由于一般是讀寫一個數據據塊,因此常用fread和fwrite函數。rewind函數rewind函數的功能是把文件內部的位置指針移到文件首。其調用形式為:rewind(文件指針);“文件指針〞指向被移動的文件。fseek函數fseek函數用來移動文件內部位置指針,其調用形式為:fseek(文件指針,位移量,起始點);其中:“文件指針〞指向被移動的文件。“位移量〞表示移動的字節(jié)數,要求位移量是long型數據,以便在文件長度大于64KB時不會出錯。當用常量表示位移量時,要求加后綴“L〞?!捌鹗键c〞表示從何處開始計算位移量,規(guī)定的起始點有三種:文件首,當前位置和文件尾。起始點表示符號數字表示文件首SEEK_SET0當前位置SEEK_CUR1文件末尾SEEK_END2例如:fseek(fp,100L,0);/*將文件位置指針移到離文件頭100個字節(jié)處*/fseek(fp,20L,1);/*將文件位置指針從當前位置后移20個字節(jié)的位置*/fseek(fp,-10L,SEEK_END);/*將文件位置指針從文件末尾前移10個字節(jié)的位置*/注意:fseek函數一般用于二進制文件。在文本文件中由于要進行轉換,往往計算的位置會出現錯誤。
ftell函數:用來得到流式文件中的當前位置,用相對于文件開頭的位移量來表示。如返回-1L那么表示出錯。例如:longa;a=ftell(fp);
文件結束檢測函數feof函數feof()判斷文件是否處于文件結束位置,如文件結束,那么返回值為1,否那么為0。其調用格式為:feof(文件指針);說明:文件結束標志EOF(每個文件末有一結束標志EOF,值為-1)只適用于判斷文本文件是否結束。而函數feof()那么對文本文件和二進制文件都適用。10.4 讀寫文件
10.4.1 字符讀寫函數fgetc和fputc是以字符(字節(jié))為單位的讀寫函數。每次可從文件讀出或向文件寫入一個字符。字符輸入/出函數所處理的文件可以是文本文件,也可以是二進制文件。
10.4.2 字符串讀寫函數fgets和fputs處理的文件一般是文本文件,讀寫的數據以字符串為單位。10.4.3 數據塊讀寫函數fread和fwtrite用于整塊數據的讀寫函數??捎脕碜x寫一組數據,如一個數組、一個結構變量的值等。10.4.4 格式化讀寫函數fscanf和fprintf與前面使用的scanf和printf函數的功能相似,都是格式化讀寫函數。兩者的區(qū)別在于fscanf函數和fprintf函數的讀寫對象不是鍵盤和顯示器,而是磁盤文件。
讀字符函數fgetcfgetc函數的功能是從指定的文件中讀取一個字符,函數調用的一般形式為:字符變量=fgetc(文件指針);例如:ch=fgetc(fp);其意義是從翻開的文件fp中讀取一個字符并送入字符變量ch中。對于fgetc函數的使用有以下幾點說明:(1)在fgetc函數調用中,讀取的文件必須是以讀或讀寫方式翻開的。(2)讀取字符的結果也可以不向字符變量賦值,例如fgetc(fp);但是讀出的字符不能保存。(3)文件內部的位置指針在文件翻開時總是指向文件的第一個字節(jié)。使用fgetc函數后,該位置指針將向后移動一個字節(jié)。因此可連續(xù)屢次使用fgetc函數來讀取多個字符?!纠?0.1】將C盤根目錄下的文本文件test1.txt的內容在屏幕上輸出。#include<stdio.h>main(){FILE*fp;/*定義了文件指針fp*/charch;if((fp=fopen("c:\\test1.txt","r"))==NULL)/*以讀文本文件方式翻開并使fp指向該文件*/{printf("\nCannotopenfile,strikeanykeytoexit!");getchar();exit(1);}ch=fgetc(fp);/*先讀出一個字符,然后進入循環(huán)*/while(ch!=EOF)/*判斷文件是否結束*/{putchar(ch);/*把該字符顯示在屏幕上*/ch=fgetc(fp);/*再讀入下一字符*/}fclose(fp);printf(“\n〞);}本例程序的功能是從文件中逐個讀取字符,并在屏幕上顯示。如翻開文件出錯,給出提示并退出程序。只要讀出的字符不是文件結束標志EOF,就把該字符顯示在屏幕上,再讀入下一字符。每讀一次,文件內部的位置指針向后移動一個字符,文件結束時,該指針指向EOF。執(zhí)行本程序將顯示文件c:\test1.txt的所有內容。寫字符函數fputc()fputc函數的功能是把一個字符寫入指定的文件中,如寫入成功那么返回寫入的字符,否那么返回一個EOF,可用此來判斷寫入是否成功。函數調用形式為:fputc(字符量,文件指針);/*字符量是待寫入的字符常量或變量*/例如:fputc('x',fp);其意義是把字符‘x’寫入fp所指向的文件的位置指針的當前位置中。每寫入一個字符,文件內部位置指針向后移動一個字節(jié)。
被寫入的文件可以用寫、讀寫、追加方式翻開。【例10.2】將從鍵盤上輸入的一些字符〔以“*〞作為結束〕寫入c盤根目錄下名為test2.txt的文本文件中。#include"stdio.h"main(){FILE*p; charch; if((p=fopen("c:\\test2.txt","w"))==NULL) {printf("Filecannotopen!\n"); exit(0); } printf("Pleaseinput,endinputwith*character:"); while((ch=getchar())!='*') fputc(ch,p); fclose(p); printf("Writeover!\n"); }程序運行結束后,可以在c盤根目錄下翻開test2.txt查看其內容。思考一下,如果在寫入完畢后想馬上把剛剛輸入的內容打印在屏幕上該如何實現?字符串輸入/出函數字符串輸入/出函數所處理的文件一般是文本文件,讀寫的數據以字符串為單位。1. 讀字符串函數fgets功能是從指定的文件中讀一個字符串到字符數組中.函數調用的形式為:fgets(字符數組名,n,文件指針);其中n是一個正整數。該函數表示從文件中讀出n-1個字符〔如在讀滿n-1個字符之前就遇到了換行符或EOF,那么讀出提前結束〕,并在讀取的最后一個字符后加上串結束標志'\0'。fgets函數的返回值是字符數組的首地址。讀取字符串后文件位置指針也自動后移假設干個位置。例如:fgets(str,n,fp);意義是從fp所指的文件中讀出n-1個字符送入字符數組str中?!纠?0.3】從test2.txt文件中讀入8個字符組成一個字符串。#include<stdio.h>main(){FILE*fp;chararr[20];if((fp=fopen("c:\\test2.txt","r"))==NULL){printf("\nCannotopenfile,strikeanykeyexit!");getchar();exit(1);}fgets(arr,9,fp);printf("\n%s\n",arr);fclose(fp);}本例定義了一個字符數組str共20個字節(jié),在以讀文本文件方式翻開文件string后,從中讀出8個字符送入str數組,在第9個數組元素str[8]內加上'\0',然后在屏幕上顯示輸出str數組存放的字符串。輸出的八個字符正是例10.2的前八個字符。2. 寫字符串函數fputsfputs函數的功能是向指定的文件寫入一個字符串〔不寫入字符串結束標記'\0'〕,當成功寫入一個字符串后,文件的位置指針會自動后移,函數返回值為0;否那么,返回EOF〔符號常量,其值為-1〕。其調用形式為:fputs(字符串,文件指針);其中字符串可以是字符串常量,也可以是字符數組名或指針變量。例如:fputs(“a1b2〞,fp)是把字符串“a1b2〞寫入fp所指的文件之中。【例10.4】在文件test2.txt中追加一個不超過20個字符的字符串。#include<stdio.h>main(){FILE*fp;charch,st[21];intcount;if((fp=fopen("c:\\test2.txt","a+"))==NULL){printf("Cannotopenfilestrikeanykeyexit!");getchar();exit(1);}printf("inputastring:\n");gets(st);/*輸入不超過20個字符的字符串暫放入數組st中*/fputs(st,fp);rewind(fp);/*文件內部位置指針移到文件的開始位置*/printf(“\nAllofthisfileis:\n〞);ch=fgetc(fp);while(ch!=EOF){putchar(ch);ch=fgetc(fp);}printf("\n");fclose(fp);}本例要求在test2.txt文件末添加一個字符串,因此,在程序第7行以追加讀寫文本文件的方式翻開文件test2.txt。然后輸入字符串暫放入數組st中,并用fputs函數把該串寫入文件test2.txt。后在程序中用rewind函數把文件內部位置指針移到文件首,再進入循環(huán)逐個顯示當前文件中的全部內容。要注意用scanf(“%s〞,st)和gets(st)輸入字符串時的不同。思考:如果不用EOF,而是用feof()來判斷文件結束,上述陰影局部程序該如何改寫?數據塊讀寫函數fread和fwtriteC語言還提供了用于整塊數據的讀寫函數??捎脕碜x寫一組數據,如一個數組、一個結構變量的值等。讀數據塊函數調用的一般形式為:fread(buffer,size,count,fp);寫數據塊函數調用的一般形式為:fwrite(buffer,size,count,fp);其中:
size表示每個數據塊的字節(jié)數。
count表示要讀寫的數據塊塊數。fp表示文件指針。buffer是一個指針。
fread(buffer,size,count,fp)的功能是從fp所指向文件的位置指針的當前位置讀取count塊數據〔每個數據所占的字節(jié)數為size〕,共組成count塊長度為size的數據存入butter所指定的內存空間中,當正確的讀取了count塊數據后,文件內部指針會自動后移count*size個字節(jié)的位置,假設數據存入正確,那么返回count值,否那么返回NULL〔符號常量,其值為0〕。例如:fread(fa,4,5,fp);其意義是從fp所指的文件中,每次讀4個字節(jié)(一個實數)送入實型數組fa中,連續(xù)讀5次,即讀5個實數到fa中。fwrite(buffer,size,count,fp)表示將從buffer起始地址的count塊數據〔每塊數據的字節(jié)數為size〕寫入到fp所指向的文件中,當正確的寫入count塊數據后,文件位置指針會自動后移count*size個字節(jié)的位置。假設數據寫入正確,那么返回count值;否那么返回NULL〔符號常量,其值為0〕。【例10.5】從鍵盤上輸入10個整數,并把這些整數寫入c:盤根目錄下名為test3.dat的二進制文件中。#include"stdio.h"main(){FILE*fp; intdata[10],i; if((fp=fopen("c:\\test3.dat","wb"))==NULL) {printf("Filecannotopen!\n"); exit(0); } printf(“Inputtenintegers:〞); for(i=0;i<10;i++) scanf("%d",&data[i]); fwrite(data,sizeof(int),10,fp); fclose(fp); printf(“Writeover!\n〞);}【例10.6】
從c:盤根目錄下名為test3.dat的二進制文件中讀取10個整數,要求先讀取第6~10個整數,再讀取第1~5個整數。并把它們輸出到屏幕上顯示。#include"stdio.h"main(){FILE*fp; intdata[10],i; if((fp=fopen("c:\\test3.dat","rb"))==NULL) {printf("Filecannotopen!\n"); exit(0); }fseek(fp,5L*sizeof(int),0);/*先把文件位置指針后移*/
fread(data,sizeof(int),5,fp);/*先讀取第6~10個整數放入data[0]~data[4]*/ rewind(fp);/*把文件位置指針移到文件開始*/
fread(data+5,sizeof(int),5,fp);/*再讀取第1~5個整數放入data[5]~data[9]*/ fclose(fp); for(i=0;i<10;i++) printf("%5d",data[i]);}
【例10.7】從鍵盤輸入三個學生數據,寫入一個文件中,再讀出這兩個學生的數據顯示在屏幕上。#include<stdio.h>structstu{charname[20];intnum;intage;charaddr[30];}boya[3],boyb[3],*pp,*qq;main(){FILE*fp;inti;pp=boya;qq=boyb;if((fp=fopen("c:\\studata","wb+"))==NULL){printf("Cannotopenfilestrikeanykeyexit!");getchar();exit(1);}
for(i=0;i<3;i++,pp++){ printf("inputnamenumageaddr:\n"); scanf("%s%d%d%s",pp->name,&pp->num,&pp->age,pp->addr);}pp=boya;fwrite(pp,sizeof(structstu),3,fp);rewind(fp);fread(qq,sizeof(structstu),3,fp);fclose(fp);printf("\n\nname\tnumberageaddr\n");for(i=0;i<3;i++,qq++) printf("%s\t%5d%7d%s\n",qq->name,qq->num,qq->age,qq->addr);}
本例程序定義了一個結構stu,說明了兩個結構數組boya和boyb以及兩個結構指針變量pp和qq。pp指向boya,qq指向boyb。程序首先以讀寫方式翻開二進制文件“studata〞,輸入三個學生數據之后,寫入該文件中。然后把文件內部位置指針移到文件首,讀出三塊學生數據后,在屏幕上顯示。格式化讀寫函數fscanf和fprintffscanf函數,fprintf函數與前面使用的scanf和printf函數的功能相似,都是格式化讀寫函數。兩者的區(qū)別在于fscanf函數和fprintf函數的讀寫對象不是鍵盤和顯示器,而是磁盤文件。這兩個函數的調用格式為:fscanf(文件指針,格式字符串,輸入表列);fprintf(文件指針,格式字符串,輸出表列);例如:
fscanf(fp,"%d%s",&i,s);fprintf(fp,"%d%c",j,ch);用fscanf和fprintf函數也可以完成例10.7的問題。修改后的程序如例10.8所示。
【例10.8】用fscanf和fprintf函數解決例10.7的問題。#include<stdio.h>structstu{charname[20];intnum;intage;charaddr[30];}boya[3],boyb[3],*pp,*qq;main(){FILE*fp;inti;pp=boya;qq=boyb;if((fp=fopen("c:\\studata","wb+"))==NULL){printf("Can’topenfilestrikeanykeyexit!");getch();exit(1);}printf("\ninputdata\n");for(i=0;i<3;i++,pp++)scanf("%s%d%d%s",pp->name,&pp->num,&pp->age,pp->addr);pp=boya;for(i=0;i<3;i++,pp++)fprintf(fp,"%s%d%d%s\n",pp->name,pp->num,pp->age,pp->addr);rewind(fp);for(i=0;i<3;i++,qq++)fscanf(fp,"%s%d%d%s\n",qq->name,&qq->num,&qq->age,qq->addr);printf("\n\nname\tnumberageaddr\n");qq=boyb;for(i=0;i<3;i++,qq++)printf("%s\t%5d%7d%s\n",qq->name,qq->num,qq->age,qq->addr);fclose(fp);}
本程序中fscanf和fprintf函數每次只能讀寫一個結構體數組元素,因此采用了循環(huán)語句來讀寫全部數組元素。
還要注意指針變量pp,qq。由于循環(huán)改變了它們的值,因此在程序中分別對它們重新賦予了數組的首地址。
【例10.9】把命令行參數中的前一個文件名標識的文件,復制到后一個文件名標識的文件中,如命令行中只有一個文件名那么把該文件寫到標準輸出文件(顯示器)中。#include<stdio.h>main(intargc,char*argv[]){FILE*fp1,*fp2;charch;if(argc==1)/*如命令行參數中沒有給出文件名,那么給出提示信息*/{printf("Havenotenterfilename,strikeanykeyexit");getchar();exit(0);}if((fp1=fopen(argv[1],"rt"))==NULL){printf("Cannotopen%s\n",argv[1]);getchar();exit(1);}…….if(argc==2)/*如果只給出一個文件名,那么使fp2指向標準輸出文件(即顯示器)*/fp2=stdout;elseif((fp2=fopen(argv[2],"wt+"))==NULL){printf("Cannotopen%s\n",argv[1]);getchar();exit(1);}while((ch=fgetc(fp1))!=EOF)/*用循環(huán)語句逐個讀出文件1中的字符再送到文件2中*/fputc(ch,fp2);fclose(fp1);fclose(fp2);}
本程序為帶參數的main函數。程序中定義了兩個文件指針fp1和fp2,分別指向命令行參數中給出的文件。如命令行參數中沒有給出文件名,那么給出提示信息。如果只給出一個文件名,那么使fp2指向標準輸出文件(即顯示器)。然后用循環(huán)語句逐個讀出文件1中的字符再送到文件2中。假設工
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 社區(qū)勞動保障工作總結范文三篇
- 甲醇課程設計
- 簡單的vhdl課程設計
- 機電畢業(yè)課程設計書
- 輸變電工程施工合同(2020版)
- 紀念方法微課程設計
- 班本課程設計環(huán)節(jié)
- 健身俱樂部客服工作總結
- 中級人民法院招考報名表
- 農村房屋買賣合同(2篇)
- 人力資源許可證制度(服務流程、服務協議、收費標準、信息發(fā)布審查和投訴處理)
- 延期留用崗位協議書模板
- 借條的正規(guī)模板(2024版)
- 2024包鋼(集團)公司招聘941人高頻考題難、易錯點模擬試題(共500題)附帶答案詳解
- 人教PEP版小學英語六年級上冊Unit1-6單元單元檢測試卷(含聽力材料)
- 銷售合同編號規(guī)則(2024版)
- 2024至2030年中國生活權益卡券行業(yè)發(fā)展監(jiān)測及投資戰(zhàn)略研究報告
- 大學美育-美育賞湖南智慧樹知到期末考試答案章節(jié)答案2024年湖南高速鐵路職業(yè)技術學院
- 數據結構期末考試題及答案
- 2024-2025學年度第一學期小學一年級語文教學計劃及進度表
- 中國腦卒中防治指導規(guī)范(2021 年版)
評論
0/150
提交評論