資源簡介
共兩個不同設計例子,都含詳細的文檔資料。
任務2.設計一個簡單的二級文件系統
設計要求:
在任一OS下,建立一個大文件,把它假象成硬盤,在其中實現一個簡單的模擬文件系統。 編寫一管理程序對此空間進行管理,要求:
1. 實現盤塊管理
2. 實現文件的讀寫操作
3. 每組最多2人,小組內要有明確分工,課程設計報告中設計部分可以相同,個人實現部分不同
參考建議:
將模擬硬盤的文件空間劃分為目錄區,文件區;采用位示圖進行空間管理,盤塊的分配使用顯示鏈接(FAT表)的方式。
設計技術參數(數據結構)參考:
#define MaxSize 100
#define Disk 512 //每個盤塊大小為512bit
#define NumDisk 2048 //有2048個盤塊,既可分配空間為 1M
/*************目錄和文件的結構定義***********************/
struct DirectoryNode {
char name[9]; /*目錄或文件的名字*/
int type; /*0代表目錄,1代表普通文件*/
struct DirectoryNode *next; /*指向下一個兄弟結點的指針*/
struct DirectoryNode *preDirFile; /*指向父結點的指針*/
struct DirectoryNode *subFile; /*指向第一個子結點的指針*/
int size; /*如果是文件則表示文件的大小*/
int first; /*起始盤塊號*/
int last; /*末尾盤塊號*/
int order; /*備用*/
};
//連續分配
struct FileSys {
int VacTable[NumDisk]; //空閑表,0為空閑,1為被用
struct DirectoryNode root; //根目錄
struct DirectoryNode Directory[NumDisk];
} *filesys;
typedef struct {
struct DirectoryNode *DirFile;
char name[9];
}DataType; //包含一個指向目錄的指針和名字
typedef struct { //隊列結構的實現
DataType data[MaxSize];
int front,rear; //分別表示隊列的頭結點和尾結點
}Tp;
void InitQueue(Tp *sq) //隊列初始化
int EnAddQueue(Tp *sq,DataType data) //在隊列中增加元素
DataType EnDelQueue(Tp *sq) //從隊列中刪除一個元素
int Empty(Tp *sq) //判斷隊列是否為空,返回0表示隊列為空
①.Dir:顯示目錄內容命令,顯示當前目錄下的文件和子目錄。
②.Md:創建目錄操作。
③.Create:創建文件,在當前目錄下創建一個文件。
④. all:顯示從根目錄開始的所有目錄和文件及其層次結點。
⑤.Cd:改變目錄。
⑥.Del:刪除文件操作。
⑦. Rd:刪除目錄操作,刪除當前目錄下的子目錄。
⑧. Ren:重命名函數
⑨. Exit:退出命令

代碼片段和文件信息
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????3197??2011-12-20?13:39??IGETPUT.C
?????文件???????3184??2011-12-20?13:39??IALLFRE.C
?????文件????????693??2011-12-20?13:39??HALTIT.C
?????文件???????4245??2011-12-20?13:39??FORMATIT.C
?????文件???????7139??2011-12-20?13:38??FILSYS.H
?????文件???????1744??2011-12-20?13:38??DIRGETT.C
?????文件???????4007??2011-12-20?13:38??DIR.C
?????文件???????2611??2011-12-20?13:38??CREATDE.C
?????文件?????238592??2012-01-12?16:36??MAIN.NCB
?????文件??????52736??2012-01-12?16:36??MAIN.OPT
?????文件???????4467??2011-12-20?13:39??MAIN.DSP
?????文件????????533??2011-12-20?13:39??MAIN.DSW
????.......????729088??2011-12-20?13:38??報告.doc
?????文件???????1079??2011-12-20?13:38??ACCESS.C
?????文件???????1768??2011-12-20?13:38??BALLFRE.C
?????文件????????556??2011-12-20?13:38??BRDWT.C
?????文件???????5915??2011-12-20?13:38??CMDEXP.C
?????文件???????2848??2011-12-20?13:39??REG.C
?????文件???????5479??2011-12-20?13:39??READWE.C
?????文件???????2079??2011-12-20?13:39??OPENCLO.C
?????文件????????933??2011-12-20?13:39??NAME.C
?????文件???????2950??2011-12-20?13:39??MAIN.C
?????文件???????2635??2011-12-20?13:39??LOG.C
?????文件????????924??2011-12-20?13:39??INIT.C
?????文件?????102113??2012-01-12?16:32??二級文件系統2.rar
-----------?---------??----------?-----??----
??????????????1181515????????????????????25
-----------?---------??----------?-----??----
?????文件???????3197??2011-12-20?13:39??IGETPUT.C
?????文件???????3184??2011-12-20?13:39??IALLFRE.C
?????文件????????693??2011-12-20?13:39??HALTIT.C
?????文件???????4245??2011-12-20?13:39??FORMATIT.C
?????文件???????7139??2011-12-20?13:38??FILSYS.H
?????文件???????1744??2011-12-20?13:38??DIRGETT.C
?????文件???????4007??2011-12-20?13:38??DIR.C
?????文件???????2611??2011-12-20?13:38??CREATDE.C
?????文件?????238592??2012-01-12?16:36??MAIN.NCB
?????文件??????52736??2012-01-12?16:36??MAIN.OPT
?????文件???????4467??2011-12-20?13:39??MAIN.DSP
?????文件????????533??2011-12-20?13:39??MAIN.DSW
????.......????729088??2011-12-20?13:38??報告.doc
?????文件???????1079??2011-12-20?13:38??ACCESS.C
?????文件???????1768??2011-12-20?13:38??BALLFRE.C
?????文件????????556??2011-12-20?13:38??BRDWT.C
?????文件???????5915??2011-12-20?13:38??CMDEXP.C
?????文件???????2848??2011-12-20?13:39??REG.C
?????文件???????5479??2011-12-20?13:39??READWE.C
?????文件???????2079??2011-12-20?13:39??OPENCLO.C
?????文件????????933??2011-12-20?13:39??NAME.C
?????文件???????2950??2011-12-20?13:39??MAIN.C
?????文件???????2635??2011-12-20?13:39??LOG.C
?????文件????????924??2011-12-20?13:39??INIT.C
?????文件?????102113??2012-01-12?16:32??二級文件系統2.rar
-----------?---------??----------?-----??----
??????????????1181515????????????????????25
- 上一篇:圖的平均路徑長度和網絡直徑
- 下一篇:基于51單片機的GSM功能實現
評論
共有 條評論