模拟固定分区分配方法.doc

上传人:scccc 文档编号:12611904 上传时间:2021-12-05 格式:DOC 页数:10 大小:77KB
返回 下载 相关 举报
模拟固定分区分配方法.doc_第1页
第1页 / 共10页
模拟固定分区分配方法.doc_第2页
第2页 / 共10页
模拟固定分区分配方法.doc_第3页
第3页 / 共10页
模拟固定分区分配方法.doc_第4页
第4页 / 共10页
亲,该文档总共10页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《模拟固定分区分配方法.doc》由会员分享,可在线阅读,更多相关《模拟固定分区分配方法.doc(10页珍藏版)》请在三一文库上搜索。

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->nu

10、m);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;back=i;return(i);k=back;k->next=i;i->next=NULL;i->prior=k;back=i;return(st);精品资料_Welcome ToDownload !欢迎您的下载,资料仅供参考!精品资料

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1