亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? file.cpp

?? 操作系統的設計性實驗~文件系統 &#8226 熟悉文件系統管理過程 &#8226 模擬文件系統工作過程
?? CPP
字號:
#include<iostream.h>
#include <math.h>
#include<iomanip.h>
#include<string.h>
#include<fstream.h>
int i=0,j=0,sum=0,tt=0,r,ii,k,g,m;
int a[100][32];
class  file//文件類
{private:

	int no;   //文件編號
	char name[10];  //文件名

 public:
    
    int tag;  //刪除標記 1:已刪 0:未刪

file( ){ }
    char *getname( ){return name;} //獲取姓名
	int gettag( ){return tag;} //獲取刪除標記
	int getno() {return no;}           //獲取文件編號
	 int getlength() {return length;}           //獲取文件大小
	 int getblocknum() {return blocknum;} // 磁盤塊數
  int getblocksum1()//磁盤塊號的始點
  {	  return blocksum1;  } 

 int getblocksum2()//磁盤塊號的終點
  {	  return blocksum2;} 


 	int length; //文件大小
	int blocknum;//盤塊數
	int blocksum1;//所占盤塊號的始點
	int blocksum2;//所占盤塊號的終點

	void setname(char na[ ] ) //設置文件名
	{strcpy(name,na);}

void delwenjian(){  tag=1;  }//設置刪除標記 1:已刪 0:未刪

void creatfile(char *na,int L,int num,int s1,int s2) //創建文件
  {  tag=0;  
     length=L;
     blocknum=num;
     blocksum1=s1;
	 blocksum2=s2;
    strcpy(name,na);
    blocknum=length/m;       //盤塊數=文件大小/盤塊大小

 if(length%m!=0)             //盤塊數取上整
   blocknum=blocknum+1;       
    cout<<"  所需磁盤塊數:"<<blocknum<<endl<<endl;
 if((sum+blocknum)<=32)     //所有盤塊數只占用一行,直接賦值
 {  for(;j<(sum+blocknum);j++)
     a[i][j]=1;
      sum=sum+blocknum;      //再進行下面文件的盤塊數累加
 }
 else
	            
 {                             //占用多行,先賦值整行
	 for(;j<32;j++)
		 a[i][j]=1;
	 i=i+1;

	 for(j=0;j<(sum+blocknum)-32;j++)	//再進行剩余項賦值 
	 {
		 a[i][j]=1;
	 }
         sum=sum+blocknum-32;         
	 
 }


      tt=tt+blocknum;               //輸出文件所占用的盤塊號
      cout<<"  所占磁盤塊號:"<<tt-blocknum<<"  to  "<<tt-1<<endl;
     blocksum1=tt-blocknum;
	 blocksum2=tt-1;

}
void deltefile(char *na) //刪除文件
  {  tag=1;
    
   strcpy(name,na);
}
void disp( )//輸出文件信息
 {

  cout<<setw(8)<<name <<setw(10)<<length<<setw(18)<<blocknum<<setw(12)<<blocksum1<<"  to  "<<blocksum2<<endl;}
};
class fdatabase  //文件庫類
{ private:  
int top; //文件記錄指針
file f[50];
public:

fdatabase()   //構造函數
	

{
top=-1;

} 
	
   
	int search(char *fname)//按文件名查找
	{
		for ( ii=0;ii<=top;ii++)
		{	if (strcmp(f[ii].getname(),fname)==0 && f[ii].tag==0)
			    
				return 0;
		}	
		
				return 1;
	       
	}
		int creatfile(char *na,int L,int num,int s1,int s2)//創建文件時先查找是否存在
	{   int p;
	    	p=search(na);
		if (p==1)
		{  top++;
		  	f[top].creatfile(na,L,num,s1,s2);
			
		  return 1;}
		else
		{cout<<"  !!!該文件已存在,不能創建!!!\n\n";

		return 0;
		 
		}
	
		
	}



		int deltefile(char *na)//刪除文件時先查找是否存在
		{
			int b,p,x=0,n1,n2,q1,q2,t;
                	p=search(na);
        	if (p==0)           //若文件存在
	
			{                    //進行刪除文件賦值
			f[ii].tag=1;         
	         b=f[ii].length/m;    //盤塊數=當前文件大小/盤塊大小
			 if(ii==0)           // 對第一個刪除文件進行賦值
				 for(k=0;k<b;k++)
					 a[x][k]=0;
				 else{
            n1=(f[ii-1].blocksum2+1)/32;   //被查找的文件之前文件所占用的盤塊數/32,大于0表示跨行
			 n2=(f[ii].blocksum2+1)/32;     //所有文件所占用的盤塊數/32,大于0表示跨行
			 q1=(f[ii-1].blocksum2+1)-n1*32;  // 當前文件的開始盤塊號
		  q2=(f[ii].blocksum2+1)-n2*32;   //  用于跨行后計算盤塊號
		  t=n2-n1;
		  if(t==0)                      //若n2與n1相等,表明當前所有被占用盤塊在同一行
              for(k=q1;k<1+b;k++)            
				  a[n2][k]=0;
		 else
 
		  {
			  if((f[ii-1].blocksum2+1)%32==0) //前面所占用的盤塊數是32倍數
			  {                               
			     
				  x=x+n1;                     //當前文件賦值
				 for(;t-1>=0;t--,x++)         //循環進行整行賦值
			     for(k=0;k<32;k++)              
					 a[x][k]=0;
				 x=n2;                        //對剩余項賦值
				 for(k=0;k<b-(t-1)*32;k++)
					 a[x][k]=0;
			  }
			  else                            //對當前文件前幾項賦值
			  {    x=n1;
				  for(k=q1;k<32;k++)
				    a[x][k]=0;
                  x=x+1;
                  int t1=t;
				  for(;t-1>0;t--,x++)        //中間整行賦值
			     for(k=0;k<32;k++)              
					 a[x][k]=0;
				 x=n2;                       //最后剩余項賦值
			  for(k=0;k<(f[ii].blocksum2+1)-t1*32;k++)
					 a[x][k]=0;

			  }
			 
		 }

		 return 1;  }
				
	}
      else
		{cout<<"該文件不存在";
		return 0;}


	  
 
		}


	void disp()  //輸出所有文件信息
	{
           for (int i=0;i<=top;i++)
			  if(f[i].tag==0)
			   f[i].disp();
	}
	

};





void bit_map(int I)
{ 
int s=0;
cout<<"----------------------------------------------------------------"<<endl;
   for(int p=0;p<I;p++)
   {for(int q=0;q<32;q++)
		   cout<<a[p][q]<<" ";
          	cout<<endl;
			 
   }
   cout<<"----------------------------------------------------------------"<<endl;
    for(int p1=0;p1<I;p1++)
     for(int q1=0;q1<32;q1++)
	 if(a[p1][q1]==1)
					  s=s+1;
					 s=(g*1024)/m-s; 
	 cout<<"   剩余盤塊數:"<<s<<endl;  
		
   				
}



void main()
{  int I,l,b,i,j,ss1,ss2,sum=0;
       

    char fname[20];
     fdatabase p;
	 file  w;
     cout <<"\t\t************************************************\n";
     cout <<"\t\t*                                              *\n";
     cout <<"\t\t*          初始化,建立文件系統                *\n";
	 cout <<"\t\t*                                              *\n";
	 cout <<"\t\t************************************************\n";

	 cout <<"  請輸入磁盤大小GB:  ";
     cin >>g;
	 cout<<endl;
	 cout <<"  請輸入盤塊大小MB:  ";
   	 cin >>m;
	 cout<<endl;
	 I=(g*1024)/(32*m);
      for( i=0;i<I;i++)
	    for( j=0;j<32;j++)
		        a[i][j]=0;	
	        	cout<<"  建立的位示圖為:"<<endl;
               bit_map(I);
		
			   cout<<"   行數:"<<I<<endl;
			    cout <<"\t\t************************************************\n";
			    cout <<"\t\t*                                              *\n";
                cout <<"\t\t*  行號、列號與磁盤塊號的轉換公式為:          *\n";                
                cout <<"\t\t*       磁盤塊號=行號*32+列號                 *\n";
			    cout <<"\t\t*       行號=磁盤塊號/32                      *\n";                   
			    cout <<"\t\t*       列號=磁盤塊號%32                      *\n";
				cout <<"\t\t*                                              *\n";
				cout <<"\t\t************************************************\n";
	char choice;
	while(choice!='0')
	{       
		
     cout <<"\t\t************************************************\n";
     cout <<"\t\t*                                              *\n";
     cout <<"\t\t*          文  件  管  理  系  統              *\n";
	 cout <<"\t\t*                                              *\n";
	 cout <<"\t\t************************************************\n";
		    
			cout <<"\t\t\t1   存 儲 文 件\n\n\t\t\t2   刪 除 文 件 \n\n\t\t\t3   顯示位示圖情況    \n\n\t\t\t4   顯示文件列表"<<endl; 
			cout <<"  請輸入選擇項:    ";
			cin >> choice;
			 cout<<endl;
			switch (choice)
			{
			case '1':
				
		           cout <<"  請輸入文件名:    ";
					 cin>>fname;
					  cout<<endl;      //創建文件前,先查找是否有同名文件存在
					  int q;
	                 	q=p.search(fname);
		               if (q==0)
					   {   
						   cout<<"  !!!該文件已存在,不能創建!!!\n\n";       
						   break;
	                    }		
                     cout <<"  請輸入文件大小MB:   ";
					 cin>>l;
					  cout<<endl; 
					 if(l>g*1024)
					 {cout<<"  !!!文件大小超過磁盤最大容量,無法進行分配!!!"<<endl;
					 break;}              
				   p.creatfile(fname,l,b,ss1,ss2);               
		           break;
			case '2':
				cout <<"  請輸入文件名:    ";
					 cin>>fname;
					  cout<<endl;
					   
	             	q=p.search(fname);
	         	   if (!q==0)
		          {
					   cout<<"  !!!該文件不存在,無法刪除!!!\n\n  ";
				       break;  
				   }
               
					  p.deltefile(fname);
				break;
	     case '3':
			   cout <<"\t\t**************顯示位示圖如下*********************\n";			
			 bit_map(I);			 
			 cout<<endl;
		
					break;
		case '4':
			  
			  
			  cout <<"\t\t*************文件列表如下************************\n";
			  
			  cout<<"----------------------------------------------------------------"<<endl;
			cout<<setw(10)<<"文件名"<<setw(15)<<"文件大小(MB)"<<setw(15)<<"所占盤塊數"<<setw(15)<<"所占盤塊號"<<endl;
			p.disp();
			cout<<endl;

			 

			break;
     	default:
			cout<<"輸入錯誤,請從新輸入:   \n\n";
		break;
			

			}
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲高清不卡在线观看| 亚洲美女视频在线| 欧美精品久久99| 欧美影视一区在线| 在线观看视频91| 在线视频综合导航| 欧美精选一区二区| 欧美精品日韩综合在线| 91精品国产一区二区三区香蕉| 色婷婷久久久综合中文字幕| 91九色最新地址| 欧美亚洲丝袜传媒另类| 欧美夫妻性生活| 欧美精品一区二区三| 国产农村妇女毛片精品久久麻豆| 国产亚洲污的网站| 一区二区三区欧美| 肉肉av福利一精品导航| 久久爱另类一区二区小说| 国产麻豆精品theporn| av中文字幕在线不卡| 91国产成人在线| 精品国产麻豆免费人成网站| 国产精品系列在线| 亚洲一区二区三区中文字幕在线 | 久久久精品日韩欧美| 国产精品美女视频| 午夜影院久久久| 国产呦萝稀缺另类资源| 99久久国产综合精品色伊| 欧美嫩在线观看| 国产精品久久久久影院亚瑟| 亚洲第一成人在线| 成人激情视频网站| 欧美日韩一二区| 国产日韩欧美电影| 秋霞午夜av一区二区三区| 成人激情开心网| 日韩欧美国产精品一区| 亚洲日本va在线观看| 国内精品国产三级国产a久久| 色哟哟在线观看一区二区三区| 欧美一级日韩不卡播放免费| 中文字幕在线不卡一区| 久久不见久久见免费视频1| 在线观看日韩精品| 欧美精彩视频一区二区三区| 免费在线观看一区| 欧美日韩一区二区在线观看视频| 久久蜜臀中文字幕| 美女久久久精品| 欧美男人的天堂一二区| 中文字幕一区二区三区乱码在线| 美女一区二区视频| 欧美日韩一区二区三区不卡| 国产精品美女久久福利网站| 精品一区二区影视| 91精品国产欧美一区二区成人| 亚洲精品网站在线观看| 成人午夜视频在线观看| 国产欧美视频一区二区三区| 韩国一区二区三区| 欧美精品一区男女天堂| 奇米影视7777精品一区二区| 欧美日韩日本视频| 亚洲精品高清视频在线观看| 色婷婷激情久久| 亚洲精品自拍动漫在线| 色综合天天综合在线视频| 国产精品久久久久久久久搜平片 | 91成人在线精品| 一区二区三区在线高清| hitomi一区二区三区精品| 国产亚洲一区二区三区四区| 国产精品一区二区三区网站| 久久综合久久综合久久| 国内外成人在线视频| 国产亚洲va综合人人澡精品| 国产传媒欧美日韩成人| 欧美xxxxx牲另类人与| 国产综合色产在线精品| 久久精子c满五个校花| 成人国产电影网| 1024成人网| 欧美日韩第一区日日骚| 另类小说综合欧美亚洲| 欧美va在线播放| 粉嫩绯色av一区二区在线观看| 亚洲国产高清在线观看视频| 97se狠狠狠综合亚洲狠狠| 亚洲激情自拍偷拍| 欧美剧情电影在线观看完整版免费励志电影 | 激情文学综合网| 2023国产精品视频| 成人黄色av网站在线| 亚洲视频你懂的| 欧美肥大bbwbbw高潮| 国产在线精品一区二区不卡了 | 97国产一区二区| 亚洲一卡二卡三卡四卡无卡久久| 欧美日韩在线亚洲一区蜜芽| 毛片av一区二区三区| 国产精品乱码一区二区三区软件| 91极品美女在线| 久久精品国产精品亚洲精品| 国产精品白丝在线| 69av一区二区三区| 国产成人精品亚洲午夜麻豆| 亚洲国产一区视频| 久久久三级国产网站| 欧美自拍丝袜亚洲| 国产精品亚洲а∨天堂免在线| 一区二区三区在线视频免费 | 免费成人av资源网| 中文字幕在线观看一区二区| 欧美精品欧美精品系列| 99久久综合色| 麻豆精品新av中文字幕| 亚洲精品老司机| 国产欧美中文在线| 日韩精品中文字幕一区 | 久久国产视频网| 亚洲精品免费在线播放| 国产欧美精品一区aⅴ影院| 欧美精品aⅴ在线视频| av电影一区二区| 国产真实乱子伦精品视频| 亚洲一区二区三区四区不卡| 中文字幕欧美日本乱码一线二线| 欧美一区二区三区影视| 91麻豆精品在线观看| 国产成人av影院| 美脚の诱脚舐め脚责91| 丝袜亚洲另类欧美| 亚洲午夜影视影院在线观看| 国产精品理伦片| 中文字幕中文在线不卡住| 久久久精品国产免大香伊| 91精品国产一区二区三区香蕉| 在线免费观看视频一区| 色综合久久久久综合体| 99这里只有精品| 成人黄动漫网站免费app| 国产91精品一区二区| 国产成人免费在线观看| 九九九久久久精品| 精品亚洲国产成人av制服丝袜 | 国产午夜亚洲精品午夜鲁丝片| 91精品国产欧美日韩| 欧美精品久久一区二区三区| 一本久久精品一区二区| 91国偷自产一区二区三区成为亚洲经典| 国产a级毛片一区| 国产成人精品三级| 99国产精品国产精品毛片| 91猫先生在线| 欧美日本一区二区| 日韩一区二区三区四区 | av不卡在线观看| 99免费精品视频| 精品视频一区二区不卡| 欧美视频一区在线| 欧美日韩精品免费| 91精品国产福利在线观看 | 99精品视频中文字幕| 91丨九色丨尤物| 欧美视频一区在线观看| 欧美一级日韩一级| 国产免费成人在线视频| 亚洲色图色小说| 亚洲电影第三页| 国产在线不卡一区| 91玉足脚交白嫩脚丫在线播放| 色欲综合视频天天天| 欧美一区二区视频网站| 国产三区在线成人av| 亚洲永久精品大片| 久久精品国产亚洲一区二区三区 | 亚洲综合成人在线视频| 日本 国产 欧美色综合| 成人天堂资源www在线| 欧美日韩一区二区三区四区五区 | 日韩视频免费观看高清完整版在线观看| 日韩免费高清av| 中文子幕无线码一区tr| 调教+趴+乳夹+国产+精品| 国产成人av资源| 欧美精品电影在线播放| 国产视频一区二区在线观看| 亚洲欧美另类久久久精品 | 国产区在线观看成人精品| 亚洲国产欧美在线| 国产电影精品久久禁18| 欧美无砖专区一中文字| 国产拍揄自揄精品视频麻豆| 亚洲成av人影院| 色婷婷久久久综合中文字幕| 精品国免费一区二区三区| 一区二区三区免费网站| 成人免费毛片片v|