模拟固定分区分配方法_第1页
模拟固定分区分配方法_第2页
模拟固定分区分配方法_第3页
模拟固定分区分配方法_第4页
已阅读5页,还剩5页未读, 继续免费阅读

下载本文档

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

文档简介

1、_/文件名gdf.c/#include "stdio.h"struct 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",&qu

2、ot;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;/对分区链表的头指针赋初值/ente

3、r();/对分区链表赋初值/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(&q

4、uot;t2. 改变分区的分配状态n");/printf("t3. 改变所有分区的分配状态n");printf("t4. 显示分区链表内容n");printf("t5. 退出 n");doprintf("t 请按数字选择:");gets(ch);n=atoi(ch); while(n<0 | n>4); return(n);void enter()int qq;struct gdf *inf,*bc();精品资料_for(qq=0;qq<4;qq+)/ 节点初始化 /inf=(struc

5、t gdf *)malloc(sizeof(stu);/开辟新节点空间/if(!inf)printf("tuse up!n");return;strcpy(inf->num,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(at

6、oi(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)<atoi(inf->size) && atoi(inf->flag)=0)strcpy(inf->flag,"1");printf("

7、;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)/ 寻找

8、符合条件分区/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)

9、;/ inf=fir;/ for(inf->num=1;inf->num<=4;inf->num+);/ /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->n

温馨提示

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

评论

0/150

提交评论