freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

操作系統(tǒng)文件系統(tǒng)的設計與實現(xiàn)_課程設計-在線瀏覽

2024-10-30 12:14本頁面
  

【正文】 四、工作進度安排 周一:布置、講解題目,收集資料; 周二:系統(tǒng)分析,算法設計; 周三:編制、調試程序; 周四:測試系統(tǒng),形成設計結論,編寫課設報告; 周五: 系統(tǒng)及材料驗收,課設答辯。 1. 2 設計要求 (1) 問題描述 在任一 OS 下,建立一個大文件,把它假想成一張盤,在其中實現(xiàn)一個簡單的小型文件系統(tǒng)。做一個簡單的操作界面,提供五條簡單的命令: dir、 mkfile、 type、 copy、delfile,分別用于顯示文件目錄、建立文件、顯示文件內容、復制和刪除一個文件。結合分析課程設計要求,確定實體以及它們之間的關系。用戶負責輸入命令。 建立一個系統(tǒng)文件(模擬盤),并對此進行盤塊的劃分,第一個盤塊存放文件目錄,第二盤塊存放盤塊位示圖,自第三個盤塊開始存放各具體文件的內容,文件目錄存放文件的名字,文件的擴展名,開始盤塊號,所占用的盤塊數(shù)目,文件的大??;盤塊位示圖用來標記盤塊是否被占用。 2 第二章 數(shù)據(jù)結構、算法和算法流程圖 2. 1 數(shù)據(jù)結構 數(shù)據(jù)結構說明: 本程序所運用的主要有兩個數(shù)據(jù)結構,分別如下: 文件目錄結構: struct filename { //文件目錄項結構體 char name[9]。 //擴展名 int i。 //文件所占用磁盤塊的塊數(shù) long int size。 盤塊結構: struct empty { //盤塊結構體 int map[100]。 //文件數(shù)量 }??梢酝ㄟ^鍵盤輸入命令來模擬文件的操作。采用了以空間換時間的算法,文件的大小在系統(tǒng)中是固定的,雖然會浪費一些空間,但文件的存取速率會加快。課程設計的目的 ,一方面使學生更透徹地理解操作系統(tǒng)的基本概念和原理,使之由抽象到具體;另一方面,通過課程設計加強學生的實驗手段與實踐技能,培養(yǎng)學生獨立分析問題、解決問題、應用知識的能力和創(chuàng)新精神。 在設計的過程中遇到問題,可以說得是困難重重,難免會遇到過各種各樣的問題,同時在設計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固,不過設計 終于順利完成了,在設計中遇到了很多編程問題,最后在老師的辛勤指導下,終于游逆而解。在對自己所編寫的源程序段的糾錯的過程中,使我更好的理解了操作系統(tǒng)中文件系統(tǒng)的理論知識,同時在編程時用到了模塊化的設計思想,這種編程方法可以使我們的編程變的更簡單,可以使我們的查錯與糾錯變的更方便。我相信,只要不斷的嚴格要求自己,注意培養(yǎng)自己的思維能力,就一定會有更大更輝煌的發(fā)展和提高。 struct filename //文件目錄項結構體 { char name[12]。 //擴展名 //擴展名較小設為 10 int i。 //文件所占用磁盤塊的塊數(shù) long int size。 int num。 //盤塊位示圖 int filenum。 //模塊說明: void SystemInit() //模擬磁盤文件初始化函數(shù) { for(int i=2。i++) { //初始化存放位示圖的盤塊 [i]=0。 [1]=1。 FILE *fp。若打開的文件不存在,則以指定的文件名建立該文件,若打開的文件已經(jīng)存在,則將該文件刪去,重建一個新文件。 exit(0)。 // int fseek(FILE *stream, long offset, int fromwhere)。如果執(zhí)行成功, stream 將指向以 fromwhere(偏移起始位置:文件頭 0,當前位置 1,文件尾 2)為基準,偏移 offset(指針偏移量)個字節(jié)的位置。成功,返回 0,否則返回其他值。emptytable,sizeof(struct empty),1,fp)。 printf( !!!初始化系統(tǒng)成功 !!!)。 if((fp=fopen(filesys,rb+))==NULL) { printf(can not open file \n)。 } rewind(fp)。inum。file[i],sizeof(struct filename),1,fp)。 fwrite(amp。 //位示圖 fclose(fp)。 FILE *fp。 exit(0)。 //空閑盤塊表的定位 fread(amp。 rewind(fp)。 for(i=0。i++) fread(amp。 if (num!=0) 12 { printf(系統(tǒng)所有文件 :\n)。inum。 if(j==5) { printf(\n)。 } } } printf(\n 文件數(shù)量為 %d ,num)。 } void type() //顯示文件內容 { FILE *fp。 if((fp=fopen(filesys,rb))==NULL) { printf(can not open file \n)。 } fseek(fp,512L,0)。emptytable,sizeof(struct empty),1,fp)。 num=。inum。file[i],sizeof(struct filename),1,fp)。 if(j==5) printf(\n)。 char name[12],ext1[8]。 gets(name)。//getchar()。 gets(ext1)。getchar()。\039。 return。\039。 int sign=0。inum。amp。 sign=1。 } if(sign==0) { printf(無此文件 \n)。 } //顯示文件 int b,m,n 。 n=file[i].size。 printf( 從文件讀出的文件長度為 :%d\n,n)。 char cc。 printf( )。 mn。 //fread(amp。 cc=fgetc(fp)。 if(j%40==0)printf(\n )。 fclose(fp)。 int i。 exit(0)。 fread(amp。 rewind(fp)。 for(i=0。i++) fread(amp。 char name[12],ext1[8]。 gets(name)。getchar()。 gets(ext1)。getchar()。\039。 return。\039。 char judge。 scanf(%c,amp。 getchar()。y39。Y39。 else if((judge==39。)||(judge==39。)) return。 return。 for(i=0。i++){ if((strcmp(file[i].name,name)==0)amp。(strcmp(file[i].ext,ext1)==0)) { sign=1。 } } if(sign==0) 15 { printf(文件名錯 \n)。 } //回收空間 int b=file[i].i。 int j。jAmount。 for( j=i。j++) { strcpy(file[j].name,file[j+1].name)。 file[j].i=file[j+1].i。 file[j].Amount=file[j+1].Amount。 num=。 printf(刪除成功! \n)。 } void copy() //復制一個文件 { FILE *fq。 if((fq=fopen(filesys,rb+))==NULL){ printf(can n
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1