1、 /分区链表的尾指针/void enter( ),turn(),prin( );char str164=1,1620232363646841241320;menu( );void enter();inputs();void turn();void prin( ) ;main( ) fir=back=NULL; /对分区链表的头指针赋初值/ enter(); /对分区链表赋初值/ for(;) switch(menu( ) case 1 : inputs(); /输入作业大小并处理/ break; case 2 : turn(); /改变分配状态/ /case 3:turnall();/改变所有
2、分配状态/ /break; case 4 : prin( ); /显示/ case 5 : exit(0); /退出/ menu( ) /主菜单/ char ch2; int n; printf(nt固定分区操作,请选择功能:n);t1.输入作业的大小nt2.改变分区的分配状态n /printf(t3.改变所有分区的分配状态nt4.显示分区链表内容nt5.退出n dot请按数字选择: gets(ch); n=atoi(ch); while(n4); return(n);void enter() int qq; struct gdf *inf,*bc(); for(qq=0;qqnum,strq
3、q*4);size,strqq*4+1);begin,strqq*4+2);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; inf) /不存在空闲分区,返回/t暂时没有空闲分区.nt输入作业大小(K): /打印提示信息/ gets(q); while(inf) /寻找符合条件的空闲分区,找到则返回/ if(atoi(q)size) & atoi
4、(inf- strcpy(inf-flag,t作业已分配在%s区.n,inf-num);t空闲分区不够大,请选择另一个较小的作业.nvoid turn() /改变分配状态/ char q5,q15;t输入分区(1-4): /打印提示信息/ t输入分配状态(0-1): gets(q1); while(inf)num)=atoi(q) /寻找符合条件分区/flag,q1); /改变分区状态/t%s分区已成功改变分区状态.nt该分区不存在.n/void turnall() /改变所有分配状态/ / char q5,q15;/ printf(t是否确定改变所有分区状态YN/ gets(q);/ if(
5、q=Y)/ / printf(/ gets(q1);/ inf=fir;/ for(inf-num=1;inf-num/ / / else/ return;/void prin( ) /显示/ struct gdf*j; j=fir;t区号 t大小 t起址 t标志n while(j) /显示固定分区的信息/t%s ,j-size);begin);flag); j=j-struct gdf*bc(i,st)struct gdf*i;struct gdf*st; struct gdf *k; if(back=NULL) i-next=NULL;prior=NULL; back=i; return(i); k=back; k-next=i;prior=k; return(st);Welcome ToDownload !欢迎您的下载,资料仅供参考!
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1