www.pudn.com > zyglcx.rar > zyglcx.cpp


 
 
 
 
#define n 10  
#define m 10  
#define area 1000  
#define  minisize 50  
#include  
#include   
struct  
{ 
float address;  /*分区起始地址*/  
float lenth;    /*空闲长度,单位为块*/  
int flag;       /*空闲表登记栏标志,用"0"表示空栏目,"1"表示未分配*/  
} table[n];     /*空闲表*/  
void select() 
{ 
system("cls");  /*输出功能提示*/ 
system("title 王琦的课程设计!"); 
system("color 5e"); 
printf("┏━━━━━━━━━━┓\n"); 
printf("┃请选择服务类型      ┃\n");  
printf("┣━━━━━━━━━━┫\n"); 
printf("┃1 调入新的文件      ┃\n");  
printf("┃2 收回文件磁盘空间  ┃\n");  
printf("┃3 打印磁盘分配情况表┃\n");  
printf("┃4 退出              ┃\n");  /*输出功能提示*/  
printf("┗━━━━━━━━━━┛\n"); 
printf("请选择服务类型:");  
} 
void main()  
{struct  
{ 
float address;  /* 已分分区起始块号*/  
float length;   /* 已分分区长度,单位为字节*/  
int flag;       /*已分配区表登记栏标志,用"0"表示空栏目,已分配用文件名表示*/  
}used_table[n]; /*已分配区表*/  
struct  
{ 
float address;  /*分区起始块号*/  
float length;   /*空闲区长度,单位为块*/  
int flag;       /*空闲表登记栏标志,用"0"表示空栏目,"1"表示未分配*/  
}table[n];      /*空闲表*/  
int i,a,name,j=0,flag=0,right=0,h;  
float length,head,tail;  
for(i=0;i=length)  
{ break;  
}i++;  
}              /*找到一个合适的空间,分配给文件*/  
if(i>=n)  
printf("无足够磁盘空间\n"); /*若磁盘不足,则给于相应的提示*/  
else  
{while(used_table[j].flag!=0)  
j++;  
used_table[j].address=table[i].address;  
used_table[j].length=length; /*对磁盘取表和已分配区表进行调整*/  
used_table[j].flag=name;  
table[i].address=table[i].address+length;  
table[i].length-=length;  
}  
}  
else if(a==2)  
{  
system("color 4e"); 
printf("输入想删除的文件名: ");  
scanf("%d",&name);  
h=0;  
for(i=0;i