模拟固定分区分配方法.doc_第1页
模拟固定分区分配方法.doc_第2页
模拟固定分区分配方法.doc_第3页
模拟固定分区分配方法.doc_第4页
模拟固定分区分配方法.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

_/文件名 gdf.c/#include stdio.hstruct gdf /固定分区结构体/ char num2; /区号/ char size4; /大小/ char begin4; /起址/ char flag2; struct gdf *next; /后指针/ struct gdf *prior; /前指针/ stu;struct gdf *fir; /分区链表的头指针/struct gdf *back; /分区链表的尾指针/void enter( ),turn(),prin( );char str164=1,16,20,1,2,32,36,1,3,64,68,1,4,124,132,0;menu( );void enter();inputs();void turn();void prin( ) ;main( ) fir=back=NULL; /对分区链表的头指针赋初值/ enter(); /对分区链表赋初值/ for(;) switch(menu( ) case 1 : inputs(); /输入作业大小并处理/ break; case 2 : turn(); /改变分配状态/break; /case 3:turnall();/改变所有分配状态/ /break; case 4 : prin( ); break; /显示/ case 5 : exit(0); /退出/ menu( ) /主菜单/ char ch2; int n; printf(nt固定分区操作,请选择功能:n); printf(t1.输入作业的大小n); printf(t2.改变分区的分配状态n); /printf(t3.改变所有分区的分配状态n); printf(t4.显示分区链表内容n); printf(t5.退出n); do printf(t请按数字选择:); gets(ch); n=atoi(ch); while(n4); return(n);void enter() int qq; struct gdf *inf,*bc(); for(qq=0;qqnum,strqq*4); strcpy(inf-size,strqq*4+1); strcpy(inf-begin,strqq*4+2); strcpy(inf-flag,strqq*4+3); fir=bc(inf,fir); inputs() /输入作业大小并处理/ char q5; struct gdf *inf; inf=fir; while(inf) /寻找空闲分区/ if(atoi(inf-flag)=0) break; inf=inf-next; if(!inf) /不存在空闲分区,返回/ printf(t暂时没有空闲分区.n); return; printf(t输入作业大小(K):); /打印提示信息/ gets(q); inf=fir; while(inf) /寻找符合条件的空闲分区,找到则返回/ if(atoi(q)size) & atoi(inf-flag)=0) strcpy(inf-flag,1); printf(t作业已分配在%s区.n,inf-num); return; inf=inf-next; printf(t空闲分区不够大,请选择另一个较小的作业.n);void turn() /改变分配状态/ char q5,q15; struct gdf *inf; printf(t输入分区(1-4):); /打印提示信息/ gets(q); printf(t输入分配状态(0-1):); gets(q1); inf=fir; while(inf) if(atoi(inf-num)=atoi(q) /寻找符合条件分区/ strcpy(inf-flag,q1); /改变分区状态/ printf(t%s分区已成功改变分区状态.n,inf-num); return; inf=inf-next; printf(t该分区不存在.n); return;/void turnall() /改变所有分配状态/ /char q5,q15;/printf(t是否确定改变所有分区状态YN);/gets(q);/if(q=Y)/printf(t输入分配状态(0-1):);/gets(q1);/inf=fir;/for(inf-num=1;inf-numnum+);/strcpy(inf-flag,q1);/else/return;/void prin( ) /显示/ struct gdf*j; j=fir; printf(t区号 ); printf(t大小 ); printf(t起址 ); printf(t标志n); while(j) /显示固定分区的信息/ printf(t%s ,j-num); printf(t%s ,j-size); printf(t%s ,j-begin); printf(t%s ,j-flag); printf(n); j=j-next; struct gdf*bc(i,st)struct gdf*i;struct gdf*st; struct gdf *k; if(back=NULL) i-next=NULL; i-prior=NULL; bac

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论