版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、計算機(jī)操作系統(tǒng)課程設(shè)計班級:計091-1姓名:學(xué)號:使用語言:C+指導(dǎo)老師:學(xué)院:一、 系統(tǒng)要求1、實(shí)驗(yàn)?zāi)康?通過一個簡單多用戶文件系統(tǒng)的設(shè)計,加深理解文件系統(tǒng)的內(nèi)部功能及內(nèi)部實(shí)現(xiàn)。2、實(shí)驗(yàn)內(nèi)容 為linux系統(tǒng)設(shè)計一個簡單的二級文件系統(tǒng)。要求做到以下幾點(diǎn): (1)可以實(shí)現(xiàn)下列幾條命令(至少4條); login用戶登陸 dir 列文件目錄 create創(chuàng)建文件 delete刪除文件 open 打開文件 close關(guān)閉文件 read 讀文件 write寫文件 (2)列目錄時要列出文件名、物理地址、保護(hù)碼和文件長度; (3)源文件可以進(jìn)行讀寫保護(hù)。二、系統(tǒng)分析1、設(shè)計思想本文件為二級文件系統(tǒng),即要
2、實(shí)現(xiàn)對文件的增刪改查,同時又具備登陸系統(tǒng)、注冊用戶的功能,各個用戶之間的文件系統(tǒng)互不干擾。本文件系統(tǒng)采用兩級目錄,其中第一級對應(yīng)于用戶賬號,第二級對應(yīng)于用戶帳號下的文件。另外,為了簡便文件系統(tǒng)未考慮文件共享,文件系統(tǒng)安全以及管道文件與設(shè)備文件等特殊內(nèi)容。系統(tǒng)采用結(jié)構(gòu)體來存儲用戶、文件目錄、文件數(shù)據(jù)內(nèi)容:0 48*5 48*5+44*50 48*5+44*50+264*200文件數(shù)據(jù)區(qū)文件目錄區(qū)用戶區(qū)每個分區(qū)都是由結(jié)構(gòu)體組成,每個個去的結(jié)構(gòu)體的個數(shù)由格式化系統(tǒng)是決定。整個系統(tǒng)的編碼構(gòu)成主要分為:Allstruct.h 定義了每個分區(qū)的結(jié)構(gòu)體;Mysys.h 聲明了對系統(tǒng)操作的各種方法;Myuse
3、rfile.h 聲明了對文件操作的各種方法;Mymain.cpp 整個系統(tǒng)的主函數(shù),操作入口;Mysys.cpp 包含了mysys.h,實(shí)現(xiàn)了操作系統(tǒng)的各種方法;Myuserfile.cpp 包含了myuserfile.h,實(shí)現(xiàn)了操作文件的各種方法;2、主要數(shù)據(jù)結(jié)構(gòu)Allstruct.h文件的內(nèi)容:struct s_user /用戶區(qū)結(jié)構(gòu)體long isuse; /是否使用char name20; /用戶名char psd20; /密碼long address; /目錄地址;struct s_list /目錄結(jié)構(gòu)體long isuse; /是否使用char name20; /文件名字long
4、myaddress; /本條目錄地址long pointaddress; /指向的文件的地址long isfile; /是否鎖定long pointsize; /目標(biāo)文件的大小long nextaddress; /下條目錄的地址;struct s_file /文件結(jié)構(gòu)體long isuse; /是否使用char content256; /文件內(nèi)容long next; /下個文件塊地址;三、 系統(tǒng)執(zhí)行1、 如果首次進(jìn)入系統(tǒng),還沒有文件系統(tǒng),則會提示格式化文件系統(tǒng),創(chuàng)建分區(qū),并初始化分區(qū):2、剛初始化后,沒有用戶,提示創(chuàng)建用戶:3、用戶創(chuàng)建成功后出現(xiàn)對系統(tǒng)操作的菜單 4、注冊用戶功能:5、用戶登錄
5、,登錄成功后顯示當(dāng)前用戶下的所有文件及其詳細(xì)信息,同時顯示對文件操作的菜單: 6、新注冊的用戶默認(rèn)為沒有文件,選擇創(chuàng)建文件,并且每次對文件操作后顯示當(dāng)前用戶的所有文件和操作菜單:7、此次新建的文件為鎖定狀態(tài),不能被刪除:8、對文件查看,默認(rèn)創(chuàng)建的時候用0填充文件內(nèi)容: 9、修改文件內(nèi)容: 10、對文件的鎖定進(jìn)行裝換: 11、刪除文件: 12、注銷登錄退出系統(tǒng):四、 功能實(shí)現(xiàn)Mysys.h#include #include myuserfile.hclass MSysterm /封裝了管理系統(tǒng)的方法/成員變量private:FILE *myfile;MUser myuser;/成員函數(shù)publi
6、c:MSysterm()void outName(); /打印登陸后的用戶名int cheack(); /檢查虛擬文件系統(tǒng)跟是否存在int myformat(); /初始化虛擬磁盤int createuser(); /創(chuàng)建用戶int login(); /用戶登錄void mymain(); /主控制程序int logout(); /用戶注銷;Myuserfile.h#include class MUser /封裝了管理文件的方法 /成員變量public:FILE *myfile;char name20; /用戶名char psd20; /密碼long listaddress; /目錄地址lon
7、g myaddress; /此用戶的地址private:long lastaddress; /最后一個目錄的地址/成員函數(shù)public:int createFile(); /增加文件int delFile(char filename20);/刪除文件int revampFile(char filename20);/修改文件int mydir(); /列出當(dāng)前目錄的所有文件(夾)int viewFile(char filename20);/查看文件int myConversion(char filename20);/轉(zhuǎn)換是否鎖定狀態(tài)private:int isSame(char filename
8、_f20,char filename_s20);Mymain.cpp#include #include #include mysys.h#include using namespace std;int main()char nod1;int n_select = 2 , i_1 =0;MSysterm mysys;/*文件不存在的程序入口*/if(mysys.cheack()=-1)/磁盤空間不存在cout虛擬磁盤文件不存在,是否生成? Y/N nod1;cin.clear(); / 清除流的錯誤標(biāo)記cin.ignore(numeric_limits:max(),n); / 清空輸入流if(n
9、od1=Y|nod1=y)cout正在創(chuàng)建。endl;if(mysys.myformat()!=1)/創(chuàng)建磁盤空間cout創(chuàng)建磁盤空間失敗!即將退出。nod1;return 2;cout創(chuàng)建完成!是否創(chuàng)建用戶? Y/N nod1;cin.clear(); / 清除流的錯誤標(biāo)記cin.ignore(numeric_limits:max(),n); / 清空輸入流if(nod1=Y|nod1=y)if(mysys.createuser()=1)/創(chuàng)建用戶cout創(chuàng)建用戶成功。endl;elsecout創(chuàng)建用戶失??!即將退出。endl;return 3;elsecout匿名用戶無法進(jìn)入系統(tǒng),正在退出
10、。endl;return 4;elsecout程序已結(jié)束!按任意鍵退出。endl;return 1;/*文件存在的程序入口*/for (;)cout*endl;cout請選擇:endl;cout 1. 登錄endl 2. 注冊endl 3. 退出endl;cout*n_select;cin.clear(); / 清除流的錯誤標(biāo)記cin.ignore(numeric_limits:max(),n); / 清空輸入流if (n_select = 1)for (int i_1=0;i_1=3;i_1+)/登錄if (mysys.login()=1)cout登陸成功!歡迎您 ;mysys.outNam
11、e();break;elsecout用戶名不存在或密碼錯誤!endl;if (i_1=4)cout非法用戶!endl輸入任意鍵退出。nod1;return 5;break;if (n_select = 2)if(mysys.createuser()=1)/創(chuàng)建用戶cout創(chuàng)建用戶成功。endl;elsecout創(chuàng)建用戶失??!endl;if (n_select = 3)return 6;mysys.mymain();return 0;Mysys.cpp#include mysys.h#include allstruct.h#include #include #include /用于清除殘留的輸入
12、流using namespace std;int MSysterm:cheack()/檢查虛擬空間是否存在myfile=fopen(test1.txt,r);if(myfile=NULL)return -1;/返回-1,代表文件不存在fclose(myfile);return 1;int MSysterm:myformat()int i =1;myfile=fopen(test1.txt,w);if(myfile=NULL)return -1;s_user ms_user;ms_user.isuse=0;s_list ms_list;ms_list.isuse=0;s_file ms_file
13、;ms_file.isuse=0;for (i =1 ; i=5 ; i+)if(fwrite(&ms_user,sizeof(ms_user),1,myfile)!=1)/用戶區(qū)格式化cout用戶格式信息寫入失敗!endl;fclose(myfile);return -2;for (i = 1; i=50 ;i+)if(fwrite(&ms_list,sizeof(ms_list),1,myfile)!=1)/目錄區(qū)格式化cout目錄格式信息寫入失敗!endl;fclose(myfile);return -3;for (i=0;i=199;i+)if(fwrite(&ms_file,size
14、of(ms_file),1,myfile)!=1)/數(shù)據(jù)區(qū)格式化cout數(shù)據(jù)格式信息寫入失?。ndl;fclose(myfile);return -4;fclose(myfile);return 1;int MSysterm:createuser()/創(chuàng)建用戶s_user ms_user,ms_user2;int nowaddress = 0 ,issame=0 ,m=0 , i =1 ;/記錄當(dāng)前的掃描指針,密碼比對標(biāo)志位,循環(huán)使用的變量cout正在檢查用戶空間是否足夠。endl;myfile=fopen(test1.txt,r);for (i=1;i=5;i+,fseek(myfile,
15、44,1),nowaddress+)/檢查用戶空間是否足夠if (fread(&ms_user2.isuse,4,1,myfile)=0)cout讀取用戶空間失敗,虛擬磁盤格式錯誤,可能已被損壞endl;fclose(myfile);return -1;if (ms_user2.isuse=0)break;if (i=6)cout用戶空間已滿!創(chuàng)建用戶失敗endl;return -2;for (;)cout請輸入新用戶的用戶名:ms_;cin.clear(); / 清除流的錯誤標(biāo)記cin.ignore(numeric_limits:max(),n); / 清空輸入流fseek
16、(myfile,0,0);for (i=1;i=5;i+)/檢查用戶名if (fread(&ms_user2.isuse,4,1,myfile)=0 )/找到被使用的用戶區(qū),下一步讀取名字cout讀取用戶空間失敗,虛擬磁盤格式錯誤,可能已被損壞endl;fclose(myfile);return -1;if (ms_user2.isuse=0)fseek(myfile,44,1);elseif (fread(&ms_,20,1,myfile)=0)/讀取用戶區(qū)的名字cout讀取用戶空間失敗,虛擬磁盤格式錯誤,可能已被損壞endl;fclose(myfile);return
17、-1;for (m =0 ;m=19;m+)if (ms_m != ms_m)issame = 0;break;elseissame = 1;if (ms_m = 0)break;if (issame = 1)cout用戶名重復(fù)!請重新輸入:=6)for (;)/輸入密碼cout請輸入密碼,最多19位。ms_user.psd;cin.clear(); / 清除流的錯誤標(biāo)記cin.ignore(numeric_limits:max(),n); / 清空輸入流cout請再次輸入密碼:ms_user2.psd;cin.clear(); / 清除
18、流的錯誤標(biāo)記cin.ignore(numeric_limits:max(),n); / 清空輸入流for (m =0 ;m=19;m+)if (ms_user.psdm != ms_user2.psdm)issame = 0;cout兩次密碼不匹配 ms_user.psd ms_user2.psd mendl;break;elseissame = 1;if (ms_user.psdm = 0)break;if (issame = 1)break;cout進(jìn)入存儲。endl;ms_user.isuse =1;/空間使用置為 使用(1);ms_user.address = 0;/默認(rèn)不存在目錄fc
19、lose(myfile);myfile=fopen(test1.txt,r+);fseek(myfile,48*nowaddress,0);if(fwrite(&ms_user,sizeof(ms_user),1,myfile) = 0)cout寫入用戶信息失??!endl;elsebreak;fclose(myfile);return 1;int MSysterm:login()/用戶登錄s_user ms_user,ms_user2;int issame = 0, m = 0 , i =0 ;/比較標(biāo)記,循環(huán)使用的變量cout請輸入用戶名:ms_;cin.clear();
20、/ 清除流的錯誤標(biāo)記cin.ignore(numeric_limits:max(),n); / 清空輸入流myfile=fopen(test1.txt,r);for (i = 1;i=5;i+)if (fread(&ms_user2.isuse,4,1,myfile)=0)/讀取被使用的用戶區(qū)cout讀取用戶空間失敗,虛擬磁盤格式錯誤,可能已被損壞endl;fclose(myfile);return -1;if (ms_user2.isuse=0)fseek(myfile,44,1);continue;elseif (fread(&ms_,20,1,myfile)=0)/讀
21、取名字cout讀取用戶空間失敗,虛擬磁盤格式錯誤,可能已被損壞endl;fclose(myfile);return -1;for (m =0 ;m=19;m+)if (ms_m != ms_m)issame = 0;break;elseissame = 1;if (ms_m = 0)break;if (issame = 1)if (fread(&ms_user2.psd,20,1,myfile)=0)/讀取密碼cout讀取密碼失??!磁盤錯誤。endl;fclose(myfile);return -1;for (int k=0;k=2;k+
22、)cout請輸入密碼:ms_user.psd;cin.clear(); / 清除流的錯誤標(biāo)記cin.ignore(numeric_limits:max(),n); / 清空輸入流for (m =0 ;m=19;m+)if (ms_user.psdm != ms_user2.psdm)issame = 0;break;elseissame = 1;if (ms_user.psdm = 0)break;if (issame = 0)cout密碼錯誤,請重新輸入。endl;elseif (fread(&ms_user2.address,4,1,myfile)=0)/讀取目錄地址cout讀取目錄失敗!
23、磁盤錯誤。endl;fclose(myfile);return -1;for (m=0;m=19;m+)/對對象 myuser 賦值m = ms_m;myuser.psdm = ms_user2.psdm;myuser.listaddress = ms_user2.address;myuser.myaddress = (i-1)*48;fclose(myfile);return 1;/返回登錄成功fclose(myfile);return -2;/密碼錯誤fseek(myfile,24,1);fclose(myfile);return -1;void
24、MSysterm:mymain()/主控制程序int m_point=9,myget=0;/記錄使用第幾層控制臺,接收函數(shù)返回值char m_name120,m_name220;for (;)if(m_point = 0)myget=logout();break;coutendl*endl;cout當(dāng)前目錄下的文件:endl;myget = myuser.mydir();cout*endl;cout*endl;cout請輸入您的選擇:endl;cout 1.查看文件內(nèi)容endl;cout 2.新建文件endl;cout 3.刪除文件endl;cout 4.修改文件endl;cout 5.是否鎖
25、定狀態(tài)轉(zhuǎn)換endl;cout 0.注銷,退出程序endl;cout*m_point;cin.clear(); / 清除流的錯誤標(biāo)記cin.ignore(numeric_limits:max(),n); / 清空輸入流switch (m_point)case 1:if (myuser.listaddress = 0)cout您還沒有創(chuàng)建文件!endl;break;cout請輸入要查看的文件的名字:(僅限當(dāng)前目錄)m_name1;cin.clear(); / 清除流的錯誤標(biāo)記cin.ignore(numeric_limits:max(),n); / 清空輸入流myget = myuser.view
26、File(m_name1);switch (myget)case 1:cout文件查看成功!endl;break;case -1:cout磁盤打開失?。ndl;break;case -2:cout文件不存在!endl;break;default:break;break;/case 1 文件打開case 2:myget = myuser.createFile();switch (myget)case 1:cout創(chuàng)建成功!endl;break;case -1:cout磁盤打開失?。ndl;break;case -2:cout目錄空間已滿!endl;break;case -3:cout數(shù)據(jù)空間
27、已滿!endl;break;case -4:cout文件名已存在!endl;break;default:/cout創(chuàng)建文件失敗,原因未知!endl;break;break;/case 2 新建文件case 3:if (myuser.listaddress = 0)cout您還沒有創(chuàng)建文件!endl;break;cout請輸入要刪除的文件的名字:(僅限當(dāng)前目錄)m_name1;cin.clear(); / 清除流的錯誤標(biāo)記cin.ignore(numeric_limits:max(),n); / 清空輸入流myget = myuser.delFile(m_name1);switch (myget
28、)case 1:cout文件刪除成功!endl;break;case -1:cout磁盤打開失??!endl;break;case -2:cout文件不存在!endl;break;case -4:cout文件鎖定!不能刪除!endl;break;default:cout未知原因,刪除失?。ndl;break;break;/case 3 刪除文件case 4:if (myuser.listaddress = 0)cout您還沒有創(chuàng)建文件!endl;break;cout請輸入要修改的文件的名字:(僅限當(dāng)前目錄)m_name1;cin.clear(); / 清除流的錯誤標(biāo)記cin.ignore(nu
29、meric_limits:max(),n); / 清空輸入流myget = myuser.revampFile(m_name1);switch (myget)case 1:cout文件修改成功!endl;break;case -1:cout磁盤打開失??!endl;break;case -2:cout文件不存在!endl;break;case -4:/cout文件鎖定!無法修改!endl;break;case -5:cout輸入內(nèi)容過多!無法修改!endl;break;default:/cout未知原因,修改失?。ndl;break;break;/case 4 修改文件case 5:if (m
30、yuser.listaddress = 0)cout您還沒有創(chuàng)建文件!endl;break;cout請輸入要轉(zhuǎn)換是否鎖定的文件的名字:(僅限當(dāng)前目錄)m_name1;cin.clear(); / 清除流的錯誤標(biāo)記cin.ignore(numeric_limits:max(),n); / 清空輸入流myget = myuser.myConversion(m_name1);switch (myget)case 0:cout文件已轉(zhuǎn)換為 鎖定!endl;break;case 1:cout文件已轉(zhuǎn)換為 自由讀寫!endl;break;case -1:cout磁盤打開失?。ndl;break;case
31、 -2:cout文件不存在!endl;break;default:cout未知原因,修改失??!endl;break;break;/case 5 轉(zhuǎn)換是否鎖定狀態(tài)default:break;/switchint MSysterm:logout()/用戶注銷char word20 = 0;for (int i = 0 ; i=19 ; i+)i = wordi;myuser.psdi = wordi;fclose(myfile);cout已注銷!endl;return 1;void MSysterm:outName()/打印登陸后的用戶名endl
32、;Myuserfile.cpp#include #include #include #include /用于清除殘留的輸入流#include myuserfile.h#include allstruct.husing namespace std;int MUser:createFile()/增加文件s_list ms_list;s_file ms_file;long nowaddress =0 ,f_address10, num_char = 0 ;/目錄循環(huán)記錄變量,數(shù)據(jù)塊地址變量組,字符個數(shù)(文件大?。﹊nt f_ad_num = 0 , myerr = 0 ,i = 1; /寫入的塊數(shù),
33、是否在最終寫入時失敗(失敗置1)char f_name20 = ,m=0,e=0,f_islock;long old_lastaddress = lastaddress ;/上一個目錄地址(用于出錯回滾)myfile=fopen(test1.txt,r+);if (myfile = NULL) cout讀取磁盤失??!endl;fclose(myfile);return -1;fseek(myfile,48*5,0);/文件指針跳到目錄區(qū)for (i=1;i=50;i+,fseek(myfile,40,1),nowaddress+)/檢查目錄空間是否足夠if (fread(&ms_list.is
34、use,4,1,myfile)=0)/讀取是否使用cout讀取目錄空間失敗,虛擬磁盤格式錯誤,可能已被損壞endl;fclose(myfile);return -1;if (ms_list.isuse=0)/如果讀取到未使用則跳出檢測break;if (i=51)cout目錄空間已滿!創(chuàng)建文件失敗endl;fclose(myfile);return -2;fseek(myfile,48*5+44*50,0);/文件指針跳到數(shù)據(jù)區(qū)for (i=1;i=200;i+,fseek(myfile,260,1)/檢查數(shù)據(jù)空間是否足夠(初步檢查)if (fread(&ms_file.isuse,4,1,m
35、yfile)=0)/讀取是否使用cout讀取數(shù)據(jù)空間失敗,虛擬磁盤格式錯誤,可能已被損壞endl;fclose(myfile);return -1;if (ms_file.isuse=0)/如果有空白的數(shù)據(jù)塊則跳出break;if (i=201)cout數(shù)據(jù)空間已滿!創(chuàng)建文件失敗endl;fclose(myfile);return -2;cout請輸入文件名(字母和數(shù)字,最多19個字符):f_name;cin.clear(); / 清除流的錯誤標(biāo)記cin.ignore(numeric_limits:max(),n); / 清空輸入流fseek(myfile,48*5,0);/文件指針跳到目錄區(qū)
36、for (i=1;i=50;i+)/檢查文件名是否被使用if (fread(&ms_list,sizeof(ms_list),1,myfile)=0)/讀取目錄cout讀取目錄空間失敗,虛擬磁盤格式錯誤,可能已被損壞endl;fclose(myfile);return -1;if (ms_list.isuse = 1)/如果讀取到未使用則跳出檢測if( isSame(f_name,ms_) = 1)fclose(myfile);return -4; for (;)cout文件由多少個字符 m 組成 ? (必須小于2550個字符)num_char;cin.clear(); / 清除流的錯誤標(biāo)記cin.ignore(numeric_limits:max(),n); / 清空輸入流if (num_char = 2550)break;cout文件長度必須小于2550個字符。endl;ms_list.pointsize = num_char;cout文件是否鎖定? y 鎖定 / n(或其他) 自由讀寫f_islock;cin.clear(); / 清除流的錯誤標(biāo)記cin.ignore(numeric_limits:max(),n); / 清空輸入流if( f_isloc
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年護(hù)士護(hù)理教育項(xiàng)目勞動合同3篇
- 二零二五年生物醫(yī)藥研發(fā)與臨床試驗(yàn)合同6篇
- 二零二五版智能家居系統(tǒng)集成與裝飾設(shè)計合同范本3篇
- 二零二五版高標(biāo)準(zhǔn)預(yù)制混凝土構(gòu)件供應(yīng)合同3篇
- 二零二五版租賃住宅配套設(shè)施租賃服務(wù)合同2篇
- 二零二五版家居用品經(jīng)銷代理合同范本3篇
- 二零二五版互聯(lián)網(wǎng)公司高級經(jīng)理任職及期權(quán)激勵合同3篇
- 二零二五版便利店員工工作環(huán)境與設(shè)施改善服務(wù)合同3篇
- 湖南儲備糧代儲合同(2025年度)執(zhí)行細(xì)則范本3篇
- 二零二五版地鐵站商業(yè)廣告位租賃及裝修施工合同3篇
- 2024-2025學(xué)年成都高新區(qū)七上數(shù)學(xué)期末考試試卷【含答案】
- 定額〔2025〕1號文-關(guān)于發(fā)布2018版電力建設(shè)工程概預(yù)算定額2024年度價格水平調(diào)整的通知
- 2025年浙江杭州市西湖區(qū)專職社區(qū)招聘85人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 《數(shù)學(xué)廣角-優(yōu)化》說課稿-2024-2025學(xué)年四年級上冊數(shù)學(xué)人教版
- “懂你”(原題+解題+范文+話題+技巧+閱讀類素材)-2025年中考語文一輪復(fù)習(xí)之寫作
- 2025年景觀照明項(xiàng)目可行性分析報告
- 2025年江蘇南京地鐵集團(tuán)招聘筆試參考題庫含答案解析
- 2025年度愛讀書學(xué)長參與的讀書項(xiàng)目投資合同
- 電力系統(tǒng)分析答案(吳俊勇)(已修訂)
- 化學(xué)-河北省金太陽質(zhì)檢聯(lián)盟2024-2025學(xué)年高三上學(xué)期12月第三次聯(lián)考試題和答案
- 期末復(fù)習(xí)試題(試題)-2024-2025學(xué)年四年級上冊數(shù)學(xué) 北師大版
評論
0/150
提交評論