CPP/计算机组成原理实验代码/Best_Bad_Fit.cpp

431 lines
8.9 KiB
C++
Raw Normal View History

2023-05-12 00:34:15 +08:00
#include<stdio.h>
#include<stdlib.h>
#define N 5
#include<iostream>
using namespace std;
enum STATE
{
F,W
};
struct subAreaNode
{
int addr; // <20><>ʼ<EFBFBD><CABC>ַ
int size; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
int taskId; // <20><>ҵ<EFBFBD><D2B5>
STATE state; // <20><><EFBFBD><EFBFBD>״̬
subAreaNode *pre; // <20><><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0>ָ<EFBFBD><D6B8>
subAreaNode *nxt; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
}subHead;
struct PCB
{
char name[8]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int arrive_time; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
int run_time; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
int finish_time; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
int zhouzhuan_time; //<2F><>תʱ<D7AA><CAB1>
float daiquan_time; //<2F><>Ȩ<EFBFBD><C8A8>תʱ<D7AA><CAB1>
};
float sumzhouzhuantime,sumdaiquanzhouzhuantime;
struct PCB pcb[N],temp;
void input(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void sort(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><C4BD>̰<EFBFBD><CCB0><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>
void output(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E3B7A8><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD>
void intSubArea()
{
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
subAreaNode *fir = (subAreaNode *)malloc(sizeof(subAreaNode));
// <20><><EFBFBD>׸<EFBFBD><D7B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
fir->addr = 0;
fir->size = 1000; // <20>ڴ<EFBFBD><DAB4><EFBFBD>ʼ<EFBFBD><CABC>С
fir->state = F;
fir->taskId = -1;
fir->pre = &subHead;
fir->nxt = NULL;
// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>Ϣ
subHead.pre = NULL;
subHead.nxt = fir;
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>
int BestFit(int taskId, int size)
{
subAreaNode *tar = NULL;
int tarSize = 1000 + 1;
subAreaNode *p = subHead.nxt;
while (p != NULL)
{
// Ѱ<><D1B0><EFBFBD><EFBFBD><EFBFBD>ѿ<EFBFBD><D1BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (p->state == F && p->size >= size && p->size < tarSize) {
tar = p;
tarSize = p->size;
}
p = p->nxt;
}
if (tar != NULL) {
// <20>ҵ<EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>з<EFBFBD><D0B7><EFBFBD>
if (tar->size - size <= 10)
{
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tar->state = W;
tar->taskId = taskId;
}
else
{
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>СΪsize<7A><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
subAreaNode *node = (subAreaNode *)malloc(sizeof(subAreaNode));
node->addr = tar->addr + size;
node->size = tar->size - size;
node->state = F;
node->taskId = -1;
// <20>޸ķ<DEB8><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>ָ<EFBFBD><D6B8>
node->pre = tar;
node->nxt = tar->nxt;
if (tar->nxt != NULL)
{
tar->nxt->pre = node;
}
tar->nxt = node;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tar->size = size;
tar->state = W;
tar->taskId = taskId;
}
printf("<EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD>\n");
return 1;
}
else
{
printf("<EFBFBD>Ҳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>...\n");
return 0;
}
}
void BadFit(int taskId,int size){ //<2F><EFBFBD><EEBBB5>Ӧ
//<2F><><EFBFBD>ѿ<EFBFBD>ָ<EFBFBD><D6B8>
struct subAreaNode *q = NULL;
subAreaNode *node = subHead.nxt;
//<2F><><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>п<EFBFBD>
while(node != NULL){
if(node->state == F && node->size >= size){
q = node;
break;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>û<EFBFBD>п<EFBFBD><D0BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Է<EFBFBD><D4B7><EFBFBD>
if(node->nxt == NULL){
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀռ\n");
break;
} else{
node = node->nxt;
}
}
//<2F><><EFBFBD><EFBFBD>Ѱ<EFBFBD><D1B0><EFBFBD><EFBFBD><EFBFBD>ѵĿ<D1B5><C4BF>п<EFBFBD>
while(node != NULL){
if(node->state == F && node->size >= size && node->size < q->size){ //<2F><><EFBFBD>еĿռ<C4BF>
q = node;
}
node = node->nxt;
}
if(q->size < size){ //<2F><><EFBFBD>ѿ<EFBFBD><D1BF>п<EFBFBD><D0BF>Ĵ<EFBFBD>СС<D0A1><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʣ<EFBFBD><CAA3><EFBFBD>Ŀռ<C4BF>
struct subAreaNode *p = (struct subAreaNode*)malloc(sizeof(struct subAreaNode));
p->addr = q->addr + size;
p->size = q->size - size;
p->state = F;
p->taskId = -1;
//<2F><><EFBFBD><EFBFBD><EFBFBD>Ŀռ<C4BF>
q->taskId = taskId;
q->size = size;
q->state = W;
//<2F>ı<EFBFBD><C4B1>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
p->nxt = q->nxt;
q->nxt = p;
}else if(q->size == size){ //<2F><><EFBFBD>ѿ<EFBFBD><D1BF>п<EFBFBD><D0BF>ռ<EFBFBD><D5BC><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
q->taskId = taskId;
q->size = size;
q->state = W;
}
}
int freeSubArea(int taskId) // <20><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
{
int flag = 0;
subAreaNode *p = subHead.nxt, *pp;
while (p != NULL)
{
if (p->state == W && p->taskId == taskId)
{
flag = 1;
if ((p->pre != &subHead && p->pre->state == F)
&& (p->nxt != NULL && p->nxt->state == F))
{
// <20><><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20>Ⱥϲ<C8BA><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
pp = p;
p = p->pre;
p->size += pp->size;
p->nxt = pp->nxt;
pp->nxt->pre = p;
free(pp);
// <20><><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
pp = p->nxt;
p->size += pp->size;
p->nxt = pp->nxt;
if (pp->nxt != NULL)
{
pp->nxt->pre = p;
}
free(pp);
}
else if ((p->pre == &subHead || p->pre->state == W)
&& (p->nxt != NULL && p->nxt->state == F))
{
// <20><><EFBFBD><EFBFBD>2<EFBFBD><32>ֻ<EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>
pp = p->nxt;
p->size += pp->size;
p->state = F;
p->taskId = -1;
p->nxt = pp->nxt;
if (pp->nxt != NULL)
{
pp->nxt->pre = p;
}
free(pp);
}
else if ((p->pre != &subHead && p->pre->state == F)
&& (p->nxt == NULL || p->nxt->state == W))
{
// <20><><EFBFBD><EFBFBD>3<EFBFBD><33>ֻ<EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>
pp = p;
p = p->pre;
p->size += pp->size;
p->nxt = pp->nxt;
if (pp->nxt != NULL)
{
pp->nxt->pre = p;
}
free(pp);
}
else
{
// <20><><EFBFBD><EFBFBD>4<EFBFBD><34><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>úϲ<C3BA>
p->state = F;
p->taskId = -1;
}
}
p = p->nxt;
}
if (flag == 1)
{
// <20><><EFBFBD>ճɹ<D5B3>
printf("<EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ճɹ<EFBFBD>...\n");
return 1;
}
else
{
// <20>Ҳ<EFBFBD><D2B2><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
printf("<EFBFBD>Ҳ<EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>...\n");
return 0;
}
}
// <20><>ʾ<EFBFBD><CABE><EFBFBD>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void showSubArea()
{
printf("\n");
printf(" <20><>ǰ<EFBFBD><C7B0><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>£<EFBFBD> \n");
printf(" W:<3A><><EFBFBD><EFBFBD>״̬ F:<3A><><EFBFBD><EFBFBD>״̬ \n");
printf("___________________________________________\n");
printf("| <20><>ʼ<EFBFBD><CABC>ַ | <20>ռ<EFBFBD><D5BC><EFBFBD>С | <20><><EFBFBD><EFBFBD>״̬ | <20><>ҵ<EFBFBD><D2B5> |\n");
subAreaNode *p = subHead.nxt;
while (p != NULL)
{
printf("___________________________________________\n");
printf(" %3d k |", p->addr);
printf(" %3d k |", p->size);
printf(" %s |", p->state == F ? "F" : "W");
if (p->taskId > 0)
{
printf(" %2d ", p->taskId);
}
else
{
printf(" ");
}
printf("\n");
p = p->nxt;
}
printf("___________________________________________\n");
}
void sort() //<2F><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>Խ<EFBFBD><D4BD>̽<EFBFBD><CCBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
for(int i=0;i<N-1;i++)
{
for(int j=i+1;j<N;j++)
{
if(pcb[i].arrive_time>pcb[j].arrive_time)
{
temp=pcb[i];
pcb[i]=pcb[j];
pcb[j]=temp;
}
}
}
}
void output(int j)
{
int i;
cout<<"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>(FCFS<46><53><EFBFBD><EFBFBD><EFBFBD>㷨):"<<endl;
pcb[0].finish_time=pcb[0].arrive_time+pcb[0].run_time;
pcb[0].zhouzhuan_time=pcb[0].finish_time-pcb[0].arrive_time;
pcb[0].daiquan_time=(float)pcb[0].zhouzhuan_time/pcb[0].run_time;
for(i=1;i<j;i++)
{
if(pcb[i].arrive_time>pcb[i-1].finish_time)
{
pcb[i].finish_time=pcb[i].arrive_time+pcb[i].run_time;
pcb[i].zhouzhuan_time=pcb[i].run_time;
pcb[i].daiquan_time=(float)pcb[i].zhouzhuan_time/pcb[i].run_time;
}
else
{
pcb[i].finish_time=pcb[i-1].finish_time+pcb[i].run_time;
pcb[i].zhouzhuan_time=pcb[i].finish_time-pcb[i].arrive_time;
pcb[i].daiquan_time=(float)pcb[i].zhouzhuan_time/pcb[i].run_time;
}
}
for(i=0;i<j;i++)
{
sumzhouzhuantime+=pcb[i].zhouzhuan_time;
sumdaiquanzhouzhuantime+=pcb[i].daiquan_time;
}
printf("****************************************************************\n");
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><>תʱ<D7AA><CAB1> <20><>Ȩ<EFBFBD><C8A8>תʱ<D7AA><CAB1> \n");
printf("****************************************************************\n");
for(i=0;i<j;i++)
{
printf(" %s %d %d %d %d %.2f\n",pcb[i].name,pcb[i].arrive_time,pcb[i].run_time,pcb[i].finish_time,pcb[i].zhouzhuan_time,pcb[i].daiquan_time);
}
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
cout<<"ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>תʱ<EFBFBD><EFBFBD>:"<<sumzhouzhuantime/N<<endl;
cout<<"ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD>תʱ<EFBFBD><EFBFBD>:"<<sumdaiquanzhouzhuantime/N<<endl;
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
}
void showProess(int j){
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:\n");
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>\n");
for(int i=0;i<j;i++)
{
printf("%s \t",pcb[i].name);
printf("%d \t",pcb[i].arrive_time);
printf("%d \n",pcb[i].run_time);
}
}
int main()
{
int ope, taskId, size,select,count;
//oep <20><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1> taskId <20><><EFBFBD>̺<EFBFBD> size <20><><EFBFBD>̴<EFBFBD>С select <20><><EFBFBD><EFBFBD><EFBFBD>ѡ<E3B7A8><D1A1> count <20><><EFBFBD><EFBFBD>
// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD>
intSubArea();
printf(">>>>>>>>>>>>>>>>>><3E><>̬<EFBFBD><CCAC><EFBFBD><EFBFBD><EFBFBD>㷨ģ<E3B7A8><C4A3>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>/<2F><EFBFBD><EEBBB5>Ӧ<EFBFBD>㷨<<<<<<<<<<<<<<<<<<\n") ;
printf(" ____________________________________\n");
printf(" | 1: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>㷨 2: <20><EFBFBD><EEBBB5>Ӧ<EFBFBD>㷨 |\n");
printf(" |___________________________________|\n");
printf("<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㷨:");
scanf("%d",&select);
// ģ<>⶯̬<E2B6AF><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
for(int i=0;i<N;i++){
printf(" ________________________________________________________________\n");
printf(" | 1: <20><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD> 2: <20><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD> 3.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ 0: <20>˳<EFBFBD> |\n");
printf(" |_______________________________________________________________|\n");
printf("<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>ִ<EFBFBD>еĹ<EFBFBD><EFBFBD><EFBFBD>:");
scanf("%d", &ope);
if (ope == 0) break;
if (ope == 1) {
// ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD>ţ<EFBFBD> ");
scanf("%d", &taskId);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:" );
scanf("%s",pcb[i].name);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>:");
scanf("%d",&pcb[i].arrive_time);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>:");
scanf("%d",&pcb[i].run_time);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD>С(KB)<29><> ");
scanf("%d", &size);
count+=1;
// showProess(count);
if (size <= 0)
{
printf("ERROR:<3A><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ֵ\n");
continue;
}
switch(select){ //<2F><><EFBFBD><EFBFBD><EFBFBD>ѡ<E3B7A8><D1A1>
case 1:
BestFit(taskId,size);
break ;
case 2:
BadFit(taskId,size);
break ;
}
}
else if (ope == 2)
{
// ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD>ţ<EFBFBD> ");
scanf("%d", &taskId);
freeSubArea(taskId);
showSubArea();
}
else if(ope==3){
showSubArea(); // <20><>ʾ<EFBFBD><CABE><EFBFBD>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
else if(ope==4){
showProess(count);
output(count);
}
else
{
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0/1/2\n");
}
}
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㷨ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
system("pause");
return 0;
}