<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8">
<meta name="generator" content="pdf2htmlEX">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<link rel="stylesheet" href="https://static.pudn.com/base/css/base.min.css">
<link rel="stylesheet" href="https://static.pudn.com/base/css/fancy.min.css">
<link rel="stylesheet" href="https://static.pudn.com/prod/directory_preview_static/622b2ee4ff7f9c46a68ab2ac/raw.css">
<script src="https://static.pudn.com/base/js/compatibility.min.js"></script>
<script src="https://static.pudn.com/base/js/pdf2htmlEX.min.js"></script>
<script>
try{
pdf2htmlEX.defaultViewer = new pdf2htmlEX.Viewer({});
}catch(e){}
</script>
<title></title>
</head>
<body>
<div id="sidebar" style="display: none">
<div id="outline">
</div>
</div>
<div id="pf1" class="pf w0 h0" data-page-no="1"><div class="pc pc1 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/622b2ee4ff7f9c46a68ab2ac/bg1.jpg"><div class="c x0 y1 w2 h2"><div class="t m0 x1 h3 y2 ff1 fs0 fc0 sc0 ls0 ws0">李云帆<span class="_ _0"> </span>无<span class="_ _1"> </span><span class="ff2">02<span class="_ _2"> </span>001<span class="_ _3"></span>149</span></div><div class="t m0 x1 h4 y3 ff1 fs1 fc0 sc0 ls0 ws0">一、<span class="_ _4"> </span>问题描述</div><div class="t m0 x2 h4 y4 ff1 fs1 fc0 sc0 ls0 ws0">操作<span class="_ _5"></span>系统<span class="_ _5"></span>中的<span class="_ _5"></span>文件<span class="_ _5"></span>是通<span class="_ _5"></span>过文<span class="_ _5"></span>件目<span class="_ _5"></span>录项<span class="_ _5"></span>来管<span class="_ _5"></span>理的<span class="_ _5"></span>,为<span class="_ _5"></span>了管<span class="_ _5"></span>理和<span class="_ _5"></span>查找<span class="_ _5"></span>的方<span class="_ _5"></span>便,<span class="_ _5"></span>按层<span class="_ _5"></span>次把<span class="_ _5"></span>文</div><div class="t m0 x1 h4 y5 ff1 fs1 fc0 sc0 ls0 ws0">件目<span class="_ _5"></span>录项<span class="_ _5"></span>组织<span class="_ _5"></span>起来<span class="_ _5"></span>,同<span class="_ _5"></span>一层<span class="_ _5"></span>上的<span class="_ _5"></span>目录<span class="_ _5"></span>构成<span class="_ _5"></span>该层<span class="_ _5"></span>上的<span class="_ _5"></span>目录<span class="_ _5"></span>,第<span class="_ _5"></span>一层<span class="_ _5"></span>为根<span class="_ _5"></span>目录<span class="_ _5"></span>,一<span class="_ _5"></span>下为<span class="_ _5"></span>各层<span class="_ _5"></span>子</div><div class="t m0 x1 h4 y6 ff1 fs1 fc0 sc0 ls0 ws0">目录。</div><div class="t m0 x2 h4 y7 ff1 fs1 fc0 sc0 ls0 ws0">假设以一串字符代表一个文件,每个字符表示一个记录。</div><div class="t m0 x2 h4 y8 ff1 fs1 fc0 sc0 ls0 ws0">在建立上述目录结构的基础上,建立相应的管理系统并要求完成以下各项操作:</div><div class="t m0 x2 h4 y9 ff2 fs1 fc0 sc0 ls0 ws0">1<span class="ff1">.<span class="_ _6"> </span>一次建立各个文件</span></div><div class="t m0 x2 h4 ya ff2 fs1 fc0 sc0 ls0 ws0">2<span class="ff1">.<span class="_ _6"> </span>查访两个用户的所有文件</span></div><div class="t m0 x2 h4 yb ff2 fs1 fc0 sc0 ls0 ws0">3<span class="ff1">.<span class="_ _6"> </span>查访用户<span class="_ _6"> </span></span>sun <span class="ff1">是否有文件<span class="_ _1"> </span></span>AB</div><div class="t m0 x2 h4 yc ff2 fs1 fc0 sc0 ls0 ws0">4<span class="ff1">.<span class="_ _6"> </span>删除用户<span class="_ _6"> </span></span>sun<span class="_ _6"> </span><span class="ff1">的文件<span class="_ _6"> </span></span>AC,<span class="ff1">然后<span class="_ _5"></span>在分别查访两<span class="_ _5"></span>个用户的全部<span class="_ _5"></span>文件,检查是<span class="_ _5"></span>否已经删除</span></div><div class="t m0 x3 h4 yd ff1 fs1 fc0 sc0 ls0 ws0">文件<span class="_ _6"> </span><span class="ff2">AC;</span></div><div class="t m0 x2 h4 ye ff2 fs1 fc0 sc0 ls0 ws0">5<span class="ff1">.<span class="_ _6"> </span>撤销用户<span class="_ _6"> </span></span>sun,<span class="ff1">并检查是否被删除</span></div><div class="t m0 x2 h4 yf ff2 fs1 fc0 sc0 ls0 ws0">6<span class="ff1">.<span class="_ _6"> </span>删除用户<span class="_ _6"> </span></span>sun<span class="_ _6"> </span><span class="ff1">的全部文件,<span class="_ _5"></span>然后在撤销<span class="_ _6"> </span></span>sun<span class="_ _6"> </span><span class="ff1">用户,在查访<span class="_ _5"></span>用户<span class="_ _6"> </span></span>sun, <span class="ff1">检查其<span class="_ _5"></span>是否已被</span></div><div class="t m0 x3 h4 y10 ff1 fs1 fc0 sc0 ls0 ws0">撤销。</div><div class="t m0 x2 h4 y11 ff2 fs1 fc0 sc0 ls0 ws0">7<span class="ff1">.<span class="_ _6"> </span>在建立一个新用户及新用户的两个文件,然后查该两个用户的所有文件。</span></div><div class="t m0 x1 h4 y12 ff1 fs1 fc0 sc0 ls0 ws0">二、<span class="_ _4"> </span>文件存储结构</div><div class="t m0 x4 h5 y13 ff2 fs1 fc0 sc0 ls0 ws0">struct block</div><div class="t m0 x4 h5 y14 ff2 fs1 fc0 sc0 ls0 ws0">{<span class="_ _7"> </span>char frecord[3][60];</div><div class="t m0 x5 h5 y15 ff2 fs1 fc0 sc0 ls0 ws0">struct block *link;}</div><div class="t m0 x4 h5 y16 ff2 fs1 fc0 sc0 ls0 ws0">fblock[100],bpt,*blockhead,*blockrear<span class="_ _3"></span>,*pt;</div><div class="t m0 x4 h5 y17 ff2 fs1 fc0 sc0 ls0 ws0">struct dir</div><div class="t m0 x4 h5 y18 ff2 fs1 fc0 sc0 ls0 ws0">{ enum {using,empty} mark;</div><div class="t m0 x5 h5 y19 ff2 fs1 fc0 sc0 ls0 ws0">char name[12];</div><div class="t m0 x5 h5 y1a ff2 fs1 fc0 sc0 ls0 ws0">struct block *fpt;}</div><div class="t m0 x4 h5 y1b ff2 fs1 fc0 sc0 ls0 ws0">dblock[5];</div><div class="t m0 x1 h4 y1c ff1 fs1 fc0 sc0 ls0 ws0">三、<span class="_ _4"> </span>算法描述</div><div class="t m0 x4 h4 y1d ff2 fs1 fc0 sc0 ls0 ws0">ini() //<span class="ff1">初始化</span></div><div class="t m0 x4 h5 y1e ff2 fs1 fc0 sc0 ls0 ws0">{<span class="_ _7"> </span>int i;</div><div class="t m0 x5 h5 y1f ff2 fs1 fc0 sc0 ls0 ws0">char *head_b=fblock;</div><div class="t m0 x5 h5 y20 ff2 fs1 fc0 sc0 ls0 ws0">for(i=0;i<5;i++) dblock[i].mark=empty;</div><div class="t m0 x5 h5 y21 ff2 fs1 fc0 sc0 ls0 ws0">blockhead=&(fblock[0]);</div><div class="t m0 x5 h5 y22 ff2 fs1 fc0 sc0 ls0 ws0">for(i=0;i<99;i++) fblock[i].link=&(fblock[i+1]);</div><div class="t m0 x5 h5 y23 ff2 fs1 fc0 sc0 ls0 ws0">blockrear=&(fblock[99]);</div><div class="t m0 x5 h5 y24 ff2 fs1 fc0 sc0 ls0 ws0">return;</div><div class="t m0 x4 h5 y25 ff2 fs1 fc0 sc0 ls0 ws0">}</div><div class="t m0 x4 h4 y26 ff2 fs1 fc0 sc0 ls0 ws0">void crea() //<span class="ff1">建立文件</span></div><div class="t m0 x4 h5 y27 ff2 fs1 fc0 sc0 ls0 ws0">{<span class="_ _7"> </span>int i,flag;</div><div class="t m0 x5 h5 y28 ff2 fs1 fc0 sc0 ls0 ws0">char *head_b;</div><div class="t m0 x5 h5 y29 ff2 fs1 fc0 sc0 ls0 ws0">printf("Pls input file name(creat):
");</div><div class="t m0 x5 h5 y2a ff2 fs1 fc0 sc0 ls0 ws0">scanf("%s",fname);</div></div><div class="t m0 x6 h6 y2b ff2 fs0 fc0 sc0 ls0 ws0">1</div></div><div class="pi" data-data='{"ctm":[1.611850,0.000000,0.000000,1.611850,0.000000,0.000000]}'></div></div>
</body>
</html>