⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mixedindex.cpp

📁 混合索引的一个小程序啦 大家看看哦
💻 CPP
字号:
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
#include "head1.c"
#include "win.c"
#include "interface.c"

createfile()  /*建立文件*/
{int len,flag,i;
int bit[NB];
int flength,soyinum,bitnum,filenum,mlnum,f;
char fname[11],next/*,wcont[100]*/;

/*for(i=0;i<NB;i++)*/
/* bit=0;*/ /*位示图初始成0000000000*/

rein:printf("\ncreatefile()输入文件名:");
scanf("%s",fname);
printf("\n %s",fname);
if(strlen(fname)>11){
      printf("文件名 %s 太长(<=11个字符)",fname);
                     goto rein;
                   }
filenum=sechfil(fname);/*从目录表中查找有无相同的*/
if(filenum>=0)printf("\n目录中已经存在该文件!目录号为:%d,\n",filenum);
flength=getfilelen(fname);/******获取文件名,取得长度*********/
if(flength==-1||filenum>=0){
 do{        /*尝试进行另外一个文件*/
          printf("\n Want To Continue???(Y/N)");
           scanf("%c",&next);
          }while(!(next=='n'||next=='N'||next=='Y'||next=='y'));
         if(next=='y'||next=='Y')
             {
                 goto rein;
              }
        }
else{
printf("\n file length :%d",flength);
getche();

soyinum=sechsuoyin();
printf("\n soyinum:%d",soyinum);
getche();

/*for(i=0;i<600;i++)*/
/* bit=0;*/
bitnum=sechbit(flength);
mlnum=searchml();
if(soyinum!=ERROR&&bitnum!=ERROR&&mlnum!=ERROR)
{printf("\n经查找可为该文件分配!位置:索引:%d,位示图:%d 目录:%d \n正在填写相关信息......",soyinum,bitnum,mlnum);
f=flength%16;
if(f==0)len=flength/16;
else
len=flength/16+1;
flag=1;
 printf("\n将位视图内容从%d处修改%d个,标志:%d",bitnum,len,flag);
chgbit(bitnum,len,flag);/*将位视图内容flag从from处修改*/
/*writebit();*/
printf("写入模拟目录表...");
chgmulu(fname,soyinum,mlnum);/*修改目录文件*/
/*writeml(fpml);*/
clrchgsy();/*清空索引*/
/*修改目录文件,filenum为文件在目录表中的绝对位置号*/
/*soyinum=sechsuoyin();*/ /*空闲节点的编号*/
printf("\n空闲节点的编号 %d",soyinum);
/* searchphi();*/ /*查找该文件,物理地址,返回物理地址所存放数组首地址*/
 fileinfo(flength,soyinum,'a');/*确定逻辑地址*/
 printf("\n修改索引节点%d信息...",soyinum);
chgsuoyin(soyinum);/*修改索引节点n信息*******/
/*savesuoyin();*/
printf("\n写入镜像文件(从%d)...\n",bitnum*16);/*位示图中一块在镜像文件中为16字节*/
/*writemirror(bitnum*16,flength,wcont);*/
writemirror(bitnum*16,flength,1);/*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
clrchgsy();/*清空索引*/
printf("\n恭喜!操作成功!!!SUCCESS!!");
}
else printf("\n鉴于以上原因不能完成请求!");
}
do{        /*尝试进行另外一个分配*/
   printf("\n Continue To Test To Creat Another File??(Y/N)");
   scanf("%c",&next);
   }while(!(next=='n'||next=='N'||next=='Y'||next=='y'));
   if(next=='y'||next=='Y')
  {
   goto rein;
  }
}
/*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*/
earse()/*删除文件>>>回收文件占用的空间,修改模拟空闲盘块表文件;*/
        /*回收索引节点空间,修改模拟空闲索引节点表文件,修改模拟目录表文件*/
{
char fname[11],next;
int nml,nsy,flength,i,j,soyinum;
int f,len;
rein:printf("\nearse()输入文件名:");/*输入文件名*/
scanf("%s",fname);
printf("\n %s",fname);
if(strlen(fname)>11){
      printf("文件名 %s 太长(<=11个字符)",fname);
                     goto rein;
                   }
nml=searchfile(fname);/******获取文件编号*********/
/* flength=getfilelen(fname);*//******获取文件名,取得长度*********/
if(nml==ERROR){
     do{        /*尝试进行另外一个文件*/
          printf("\nnml ERROR!!! Want To Continue???(Y/N)");
           scanf("%c",&next);
          }while(!(next=='n'||next=='N'||next=='Y'||next=='y'));

⌨️ 快捷键说明

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