位示图.cpp

来自「用C++实现的模拟操作系统中磁盘管理的实现,代码通俗易懂!适合于初学者!」· C++ 代码 · 共 85 行

CPP
85
字号
#include <iostream.h>



#define CAPACITY 200 //位图容量,即磁盘容量,单位为位



void CFile(int *btm) //存入文件,传入参数位示图
{
	int i , j;
	int blocks ;
	int capacity;
	int table[3] ;
	cout<<"输入需要存入的块数:" ;
	cin>>blocks ;
	cout<<"输入块的参数:柱面号,磁道号,物理记录号\n";
	for(i=0;i<blocks;i++)
	{
		cout<<"输入第"<<i+1<<"个要存入的块的参数:";
		for(j =0;j<3;j++)
		{
			cin>>table[j];
		}
		capacity = (2*table[0]+table[1])*8 + table[2];
		btm[capacity] = 1 ;
	}
}



void Delfile(int *btm) //释放空间
{
	int i , j;
	int blocks ;
	int capacity;
	int table[3] ;
	cout<<"输入需要释放的块数:" ;
	cin>>blocks ;
	cout<<"输入块的参数:柱面号,磁道号,物理记录号\n";
	for(i=0;i<blocks;i++)
	{
		cout<<"输入第"<<i+1<<"个要释放的块的参数:";
		for(j =0;j<3;j++)
		{
			cin>>table[j];
		}
		capacity = (2*table[0]+table[1])*8 + table[2];
		btm[capacity] = 0 ;
	}
}
int main()
{
	int Bitmap[CAPACITY] ;
	int i ;

	//初始化并显示位图
	cout<<"初始位图:\n";
	for(i=0;i<CAPACITY;i++)
	{
		Bitmap[i] = 0 ;
		cout<<Bitmap[i];
	}
	cout<<endl;


   //存入文件并显示存入后位图
	CFile(Bitmap);
	cout<<"存入后位图:\n";
	for(i=0;i<CAPACITY;i++)
	{
		cout<<Bitmap[i] ;
	}
	cout<<endl;

   //释放空间并显示释放后的位图
	Delfile(Bitmap);
	cout<<"释放后位图:\n";
	for(i=0;i<CAPACITY;i++)
	{
		cout<<Bitmap[i] ;
	}
	cout<<endl;
	return 0 ;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?