first commit

This commit is contained in:
2023-05-12 00:34:15 +08:00
parent 8b5d2311a4
commit c93b23a8cd
16 changed files with 2242 additions and 0 deletions

140
Test.cpp Normal file
View File

@@ -0,0 +1,140 @@
//#include<stdio.h>
//
//void paixu(int n, int a[]) { //n为数组的元素个数
// for (int i = 0; i < n - 1; i++) {
// //TODO
// for (int j = i + 1; j < n; j++) {
// //TODO
// if (a[i] > a[j]) {
// int t = a[i];
// a[i] = a[j];
// a[j] = t;
// }
// }
//
// }
// for (int i = 0; i < n; i++) {
// //TODO
// printf("%d", a[i]);
// }
//}
//int main() {
// int a[5] = {8, 6, 5, 4, 1};
// paixu(5, a);
//}
//#include<stdio.h>
//int main() {
// int min, div, m, n, i = 2;
// printf("请输入两个数:\n");
// scanf("%d %d", &m, &n);
// if (m > n)
// min = n;
// else
// min = m;
// for (i; i <= min; i++) {
// if (m % i == 0 && n % i == 0) {
// div = i;
// }
// }
// printf("最大公约数为%d\n", div);
// return 0;
//}
//
//#include <stdio.h>
//
//int main() {
// int n1, n2, i, gcd;
//
// printf("输入两个正整数");
// scanf("%d %d", &n1, &n2);
//
// for (i = 1; i <= n1 && i <= n2; ++i) {
// // 判断 i 是否为最大公约数
// if (n1 % i == 0 && n2 % i == 0)
// gcd = i;
// }
//
// printf("%d 和 %d 的最大公约数是 %d", n1, n2, gcd);
//
// return 0;
//}
//#include <stdio.h>
//int main()
//{
// int a[11]={1,2,3,4,5,7,8,9,10,11};
// int i,t,m;
// printf("输入一个数:\n");
// scanf("%d",&m);
// for(i=0;i<11;i++)
// {
// if(m<a[i])
// {
// t=m;m=a[i];a[i]=t;
// }
// else if(m>a[9])
// a[10]=m;
// }
// printf("排序后:\n");
// for(i=0;i<11;i++)
// printf("%d ",a[i]);
// return 0;
//}
//#include<stdio.h>
//#include<math.h>
//
//int main() {
// double r, s ;
// printf("半径:");
// scanf("%lf", &r);
// s = (3 * 3.1415926 * r * r) / 4;
// printf("s=%lf", s);
//}
//#include <stdio.h>
//#include <math.h>
//main() {
// int n, i, k;
// for (n = 100; n > 0; n--) {
// k = sqrt(n);
// for (i = 2; i <= k; i++)
// if (n % i == 0)
// break;
// if (i > k) {
// printf("%d\n", n);
// break;
// }
// }
//}
#include <stdio.h>
int gcd(int m, int n) {
int div, i, min;
if (m < n) {
min = m;
} else {
min = n;
}
for (i = 2; i <= min; i++) {
if (m % i == 0 && n % i == 0) {
div = i;
}
}
return div;
}
int main() {
int m, n;
printf("请输入两个整数:\n");
scanf("%d %d", &m, &n);
int result = gcd(m, n);
printf("%d和%d的最大公约数是%d\n", m, n, result);
return 0;
}

View File

@@ -0,0 +1,430 @@
#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;
}

View File

@@ -0,0 +1,15 @@
//#include <stdio.h>
//#include <iostream>
//#include<iomanip>
//using namespace std;
//int main()
//{
//
// double F,C;
// cin>>F;
// C=(F-32)*5/9;
// cout <<setiosflags(ios::fixed)<<setprecision(2) << C;
// return 0;
//}

View File

@@ -0,0 +1,91 @@
#include <stdio.h>
#define n 5
struct JCB
{
int name; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int atime; //<2F><><EFBFBD>̵<EFBFBD><CCB5><EFBFBD>ʱ<EFBFBD><CAB1>
int runtime; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
int ftime; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
int total; //<2F><>תʱ<D7AA><CAB1>
float welght; //<2F><>Ȩ<EFBFBD><C8A8>תʱ<D7AA><EFBFBD><E4A3A8>תϵ<D7AA><CFB5><EFBFBD><EFBFBD>
int arun; //<2F><><EFBFBD>̵<EFBFBD><CCB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}f[n];
//<2F><>ʼִ<CABC><D6B4>ʱ<EFBFBD><EFBFBD><E4A3AC><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4A3AC>תʱ<D7AA><CAB1><EFBFBD>ʹ<EFBFBD>Ȩ<EFBFBD><C8A8>תʱ<D7AA><EFBFBD><E4A3A8>תϵ<D7AA><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int main()
{
int amount;
int i,j,l,k,h;
struct JCB f[n];
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD≯<EFBFBD><EFBFBD><EFBFBD>(2-24):\n");
scanf("%d",&amount);
for(i=0;i<amount;i++)
{
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>䣨0-30<33><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>䣨1-8<><38>:\n");
scanf("%d",&f[i].name);
scanf("%d",&f[i].atime);
scanf("%d",&f[i].runtime);
}
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\t<EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>\t<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>\n");
for(i=0;i<amount;i++)
{
printf("%d\t%d\t\t%d\t\n",f[i].name,f[i].atime,f[i].runtime);
}
printf("------<2D><><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD>FCFS<46><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㷨------\n");
for(i=0;i<amount-1;i++) //<2F><><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><CCB5><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>Ⱥ<EFBFBD><C8BA><EFBFBD><EFBFBD><EFBFBD>
{ //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬʱ<CDAC><CAB1><EFBFBD><EFBFBD><EFA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
for(j=i+1;j<amount;j++)
{
if(f[j].atime < f[i].atime)
{
l =f[j].atime;
h =f[j].runtime;
k =f[j].name;
f[j].atime =f[i].atime;
f[j].runtime =f[i].runtime;
f[j].name =f[i].name;
f[i].atime =l;
f[i].runtime =h;
f[i].name =k;
}
}
}
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⱥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n\n");
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\t<EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>\t<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>\n");
for(i=0;i<amount;i++)
{
printf("%d\t%d\t\t%d\t\n",f[i].name,f[i].atime,f[i].runtime);
}
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̵<EFBFBD><CCB5><EFBFBD> <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̽<EFBFBD><CCBD><EFBFBD> <20><>תʱ<D7AA><CAB1> <20><>תϵ<D7AA><CFB5>\n");
f[0].arun=0;
for(i=0;i<amount;i++)
{
if(f[i].arun<f[i].atime)
{
f[i].arun =f[i].atime;
}
f[i].ftime=f[i].arun+f[i].runtime;
f[i].total=f[i].ftime-f[i].atime;
f[i].welght=(float)f[i].total/(float)f[i].runtime;
printf("%d\t%d\t %d\t %d\t %d\t\t%d\t%f\n",f[i].name,f[i].atime,f[i].arun,f[i].runtime,f[i].ftime,f[i].total,f[i].welght);
f[i+1].arun=f[i].arun+f[i].ftime;
}
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̵<EFBFBD><CCB5><EFBFBD> <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̽<EFBFBD><CCBD><EFBFBD> <20><>תʱ<D7AA><CAB1> <20><>תϵ<D7AA><CFB5>\n");
for(i=0;i<amount;i++)
{
printf("%d\t%d\t %d\t %d\t %d\t\t%d\t%f\n",f[i].name,f[i].atime,f[i].arun,f[i].runtime,f[i].ftime,f[i].total,f[i].welght);
}
}

View File

@@ -0,0 +1,111 @@
#include<iostream>
using namespace std;
#define N 3
struct PCB
{
char name[8];
int arrive_time;
int run_time;
int finish_time;
int zhouzhuan_time;
float daiquan_time;
};
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>
int main()
{
input();
sort( );
output();
}
void input()
{
int i;
cout<<"--------------------------------------"<<endl;
cout<<" FCFS<46><53><EFBFBD><EFBFBD><EFBFBD>"<<endl;
cout<<"--------------------------------------"<<endl;
cout<<" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ:"<<endl;
for ( i=0;i<N;i++)
{
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:\n" );
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);
}
cout<<"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:"<<endl;
for( i=0;i<N;i++)
{ printf("%s ",pcb[i].name);
printf("%d ",pcb[i].arrive_time);
printf("%d \n",pcb[i].run_time);
}
}
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 i;
cout<<"FCFS<EFBFBD><EFBFBD><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<N;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<N;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<N;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);
}
cout<<"ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>תʱ<EFBFBD><EFBFBD>:"<<sumzhouzhuantime/N<<endl;
cout<<"ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD>תʱ<EFBFBD><EFBFBD>:"<<sumdaiquanzhouzhuantime/N<<endl;
printf("----------------------------------------------------------------\n");
}

View File

@@ -0,0 +1,331 @@
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
enum STATE
{
Free,
Busy
};
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;
// <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 = Free;
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><D7B4><EFBFBD>Ӧ<EFBFBD>
int firstFit(int taskId, int size)
{
subAreaNode *p = subHead.nxt;
while (p != NULL)
{
if (p->state == Free && p->size >= size)
{
// <20>ҵ<EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>з<EFBFBD><D0B7><EFBFBD>
if (p->size - size <= 10)
{
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
p->state = Busy;
p->taskId = taskId;
}
else {
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>СΪsize<7A><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
subAreaNode *node = (subAreaNode *)malloc(sizeof(subAreaNode));
node->addr = p->addr + size;
node->size = p->size - size;
node->state = Free;
node->taskId = -1;
// <20>޸ķ<DEB8><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>ָ<EFBFBD><D6B8>
node->pre = p;
node->nxt = p->nxt;
if (p->nxt != NULL)
{
p->nxt->pre = node;
}
p->nxt = node;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
p->size = size;
p->state = Busy;
p->taskId = taskId;
}
printf("<EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD>\n");
return 1;
}
p = p->nxt;
}
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><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 == Free && 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 = Busy;
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 = Free;
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 = Busy;
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;
}
}
int freeSubArea(int taskId) // <20><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
{
int flag = 0;
subAreaNode *p = subHead.nxt, *pp;
while (p != NULL)
{
if (p->state == Busy && p->taskId == taskId)
{
flag = 1;
if ((p->pre != &subHead && p->pre->state == Free)
&& (p->nxt != NULL && p->nxt->state == Free))
{
// <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 == Busy)
&& (p->nxt != NULL && p->nxt->state == Free))
{
// <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 = Free;
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 == Free)
&& (p->nxt == NULL || p->nxt->state == Busy))
{
// <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 = Free;
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("*********************************************\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("**");
printf(" %3d k |", p->addr);
printf(" %3d k |", p->size);
printf(" %s |", p->state == Free ? "Free" : "Busy");
if (p->taskId > 0)
{
printf(" %2d ", p->taskId);
}
else
{
printf(" ");
}
printf("**\n");
p = p->nxt;
}
printf("*********************************************\n");
}
int main()
{
int option, ope, taskId, size;
// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD>
intSubArea();
// ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
while (1)
{
printf("\n\n");
printf("\t****************<2A><>ѡ<EFBFBD><D1A1>Ҫģ<D2AA><C4A3><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD>㷨******************\n");
printf("\n\n");
printf("\t \t 0 <20>״<EFBFBD><D7B4><EFBFBD>Ӧ<EFBFBD>\n");
printf("\n\n");
printf("\t \t 1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>\n");
printf("\n\n");
printf("\t\t\t\t<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:");
scanf("%d", &option);
if (option == 0)
{
printf("<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״<EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>\n");
break;
}
else if (option == 1)
{
printf("<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>\n");
break;
}
else
{
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0/1\n\n");
}
}
// ģ<>⶯̬<E2B6AF><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
while (1)
{
printf("\n");
printf("*********************************************\n");
printf("** 1: <20><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD> 2: <20><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD> 0: <20>˳<EFBFBD> **\n");
printf("*********************************************\n");
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><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD>С(KB)<29><> ");
scanf("%d", &size);
if (size <= 0)
{
printf("<EFBFBD><EFBFBD><EFBFBD>󣺷<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ֵ\n");
continue;
}
// <20><><EFBFBD>÷<EFBFBD><C3B7><EFBFBD><EFBFBD>
if (option == 0)
{
firstFit(taskId, size);
}
else
{
bestFit(taskId, size);
}
// <20><>ʾ<EFBFBD><CABE><EFBFBD>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
showSubArea();
}
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);
// <20><>ʾ<EFBFBD><CABE><EFBFBD>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
showSubArea();
}
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;
}

View File

@@ -0,0 +1,69 @@
/*------------------------------------------------
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ơ<EFBFBD>
--------------------------------------------------
/* <20><>д<EFBFBD><D0B4><EFBFBD><EFBFBD>fun<75><6E><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD>ǣ<EFBFBD><C7A3><EFBFBD>Fibonacci<63><69><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD>s<EFBFBD><73><EFBFBD><EFBFBD>С<EFBFBD><D0A1>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɺ<EFBFBD><C9BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ء<EFBFBD><D8A1><EFBFBD><EFBFBD><EFBFBD>Fibonacci<63><69><EFBFBD><EFBFBD>F(n)<29>Ķ<EFBFBD><C4B6><EFBFBD>Ϊ<EFBFBD><CEAA>
F(0)=0<><30>F(1)=1
F(n)=F(n-1)+F(n-2)
<20><><EFBFBD><EFBFBD><E7A3BA>s=1000ʱ<30><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵΪ<D6B5><CEAA>1597<39><37>
ע<><EFBFBD><E2A3BA><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>prog.c<>С<EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>main<69><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5>κ<EFBFBD><CEBA><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD>ں<EFBFBD><DABA><EFBFBD>fun<75>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*********Begin**********<2A><>********** End **********<2A><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE>
*/
#include <conio.h>
#include <math.h>
#include <stdio.h>
#include<windows.h>
int fun(int s)
{
/********** Begin **********/
int f1,f2,f;
f1=0;
f2=1;
do
{
f=f1+f2;
f1=f2;
f2=f;
}
while(f2<=s);
return f2;
/********** End ***********/
}
void NONO ( )
{/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3>ر<EFBFBD><D8B1>ļ<EFBFBD><C4BC><EFBFBD> */
FILE *fp, *wf ;
int i, n, s ;
fp = fopen("bc06.in","r") ;
if(fp == NULL) {
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>bc06.in<69><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!") ;
}
wf = fopen("bc06.out","w") ;
for(i = 0 ; i < 10 ; i++) {
fscanf(fp, "%d", &n) ;
s = fun(n) ;
fprintf(wf, "%d\n", s) ;
}
fclose(fp) ;
fclose(wf) ;
}
main() /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
{ int n;
system("cls");
n=1000;
printf("n=%d,f=%d\n",n,fun(n));
NONO();
}

View File

@@ -0,0 +1,131 @@
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <vector>
#include <iostream>
using namespace std;
struct FF {
char name[10];
float address;//<2F><>ʼ<EFBFBD><CABC>ַ
float AFFival_time;//û<><C3BB>
float Service_hours;//û<><C3BB>
float Process_size;//<2F><><EFBFBD>̴<EFBFBD>С
float size;//<2F><><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>һ<EFBFBD><D2BB>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ֵ
float max_size;//<2F>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>ֵ
float state;//0Ϊ<30><CEAA><EFBFBD><EFBFBD><31><CEAA><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊʲô<CAB2><C3B4><EFBFBD><EFBFBD>bool <20><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>Ϯֻ<CFAE><D6BB><EFBFBD><EFBFBD>60
};
void print_Memory(FF *p,int N);//<2F>ڴ<EFBFBD><DAB4>ռ<EFBFBD><D5BC><EFBFBD>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD>
void recovery(FF *p,int N);//<2F><><EFBFBD>պ<EFBFBD><D5BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><D5B9><EFBFBD>
void input(FF *p, int N);//<2F><><EFBFBD><EFBFBD><EBBAAF>
void run(FF *p,int N);//<2F><><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
void detelex(FF *p,int N);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD><CCBA><EFBFBD>
void input(FF *p, int N) {
int i;
int x=0;
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ<EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD>С");
scanf("%f",&p[0].max_size);
printf("\n");
for(i = 0; i <= N - 1; i++) {
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%d<><64><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><CCB5><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>,<2C><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>,<2C><><EFBFBD>̴<EFBFBD>С(<28><><EFBFBD>磺1 2 1 5)<29><>\n", i+1);
scanf("%s %f %f %f", p[i].name, &p[i].AFFival_time, &p[i].Service_hours,&p[i].Process_size);
}
}
void print(FF *p,int N){
for(int i=0;i<=N;i++){
printf(p[i].name, &p[i].AFFival_time, &p[i].Service_hours,&p[i].Process_size);
}
}
void distribution(FF *p,int N) {
int i;
p[0].size=p[0].max_size;
for (i=0; i<N; i++) {
p[i+1].size=p[i].Process_size;
if(p[0].size>=p[i].Process_size) {
p[0].size=p[0].size-p[i].Process_size;
p[i+1].state=1;
} else {
printf("<EFBFBD><EFBFBD>%d<><64><EFBFBD><EFBFBD><EFBFBD>̽<EFBFBD>ȥ<EFBFBD><C8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",i+1);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>лл<EFBFBD><EFBFBD>ڴ治<EFBFBD><EFBFBD>\n");
p[i+1].size=p[0].size;
p[i+1].state=0;
print_Memory(p, N);
}
}
}
void recovery(FF *p,int N) {//<2F><><EFBFBD><EFBFBD>һ<EFBFBD>ٷֻ<D9B7><D6BB><EFBFBD><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int i;
for(i=1; i<N; i++) {
if(p[i].state==0&&p[i+1].state==0) {
p[i].size=p[i].size+p[i+1].size;
p[i+1].size=0;
}
}
printf("\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
}
void print_Memory(FF *p,int N) {
int i;
float q;
p[0].address=0;
printf("\n<EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>״̬\n");
for (i=1; i<=N; i++) {
printf("<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>ַ:\t");
q+=p[i].size;
p[i].address=q;
printf("%f\t",p[i-1].address);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С:\t");
printf("%f\t",p[i].size);
if(p[i].state==1) {
printf("\t<EFBFBD><EFBFBD><EFBFBD>ڹ<EFBFBD><EFBFBD><EFBFBD>\n");
} else {
printf("\t<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
}
}
printf("ʣ<EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>");
printf("%f",p[0].size);
}
void run(FF *p,int N) {
int xx=0;
while(xx!=4) {
printf("\n<EFBFBD>ͷ<EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD>밴1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD>밴2<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD>밴3<EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD>밴4\n");
cin>>xx;
if(xx==1) {
detelex(p, N);
print(p,N);
} else if(xx==2) {
recovery(p, N);
} else if(xx==3) {
print_Memory(p, N);
}
}
}
void detelex(FF *p,int N) {
float yy;
printf("\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>ַ\n");
scanf("%f",&yy);
for(int i =0;i<N;i++){
if(yy==p[i].address){
cout<<"<EFBFBD><EFBFBD>ɾ<EFBFBD><EFBFBD>"<<"\n";
p[i+1].state=0;
}
};
}
void FF_MAIN() {
int N;
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:\n");
scanf("%d",&N);
FF *p = new FF[N];
input(p, N);
distribution(p,N);
run (p,N);
delete [] p;
}
int main() {
FF_MAIN();
return 0;
}

View File

@@ -0,0 +1,278 @@
#include<stdio.h>
#include<stdlib.h>
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;
// <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 = 95; // <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><D7B4><EFBFBD>Ӧ<EFBFBD>
//int firstFit(int taskId, int size)
//{
//subAreaNode *p = subHead.nxt;
//while (p != NULL)
//{
//if (p->state == F && p->size >= size)
//{
//// <20>ҵ<EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>з<EFBFBD><D0B7><EFBFBD>
//if (p->size - size <= 10)
//{
//// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//p->state = W;
//p->taskId = taskId;
//}
//else {
//// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>СΪsize<7A><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//subAreaNode *node = (subAreaNode *)malloc(sizeof(subAreaNode));
//node->addr = p->addr + size;
//node->size = p->size - size;
//node->state = F;
//node->taskId = -1;
//// <20>޸ķ<DEB8><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>ָ<EFBFBD><D6B8>
//node->pre = p;
//node->nxt = p->nxt;
//if (p->nxt != NULL)
//{
//p->nxt->pre = node;
//}
//p->nxt = node;
//// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//p->size = size;
//p->state = W;
//p->taskId = taskId;
//}
//printf("<22>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>\n");
//return 1;
//}
//p = p->nxt;
//}
//printf("<22>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>...\n");
//return 0;
//}
//struct subAreaNode *node
void BestFit(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>С<EFBFBD><D0A1><EFBFBD><EFBFBD><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");
}
int main() {
int ope, taskId, size;
char name;
int ArriveTime;
int ServerTime;
// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD>
intSubArea();
// ģ<>⶯̬<E2B6AF><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
while (1) {
printf("Ĭ<EFBFBD><EFBFBD>FF(<28>״<EFBFBD><D7B4><EFBFBD>Ӧ<EFBFBD>㷨)\n");
printf("_________________________________________\n");
printf("| 1: <20><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD> 2: <20><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD> 0: <20>˳<EFBFBD> |\n");
printf("|________________________________________|\n");
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", &name);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>");
scanf("%d", &ArriveTime);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>");
scanf("%d", &ServerTime);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD>С(KB)<29><> ");
scanf("%d", &size);
if (size <= 0) {
printf("<EFBFBD><EFBFBD><EFBFBD>󣺷<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ֵ\n");
continue;
}
// <20><><EFBFBD>÷<EFBFBD><C3B7><EFBFBD><EFBFBD>
//firstFit(taskId, size);
BestFit(taskId, size);
// <20><>ʾ<EFBFBD><CABE><EFBFBD>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
showSubArea();
} 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);
// <20><>ʾ<EFBFBD><CABE><EFBFBD>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
showSubArea();
} 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;
}

View File

@@ -0,0 +1,108 @@
#include <stdio.h>
#include <iostream>
using namespace std;
int number=0;
int Pyblock=0;
int opt(int a[])
{
int i, j, zero = 0, one = 0, two = 0, q = 0;
int b[Pyblock];
for (i = 0; i < Pyblock; i++)
{
b[i] =-1; //<2F><>Ϊ-1
}
for (i = 0; i < number; i++)
{
if (i < 3)
{
q++;
for (j = 0; j < Pyblock; j++)
{
if (b[j] == -1)
{
b[j] = a[i];
break;
}
}
}
else
{
if (b[0] != a[i])
{
if (b[1] != a[i])
{
if(b[2] != a[i]){
q++;
for (int t = i + 1; t < number; t++)
{
if (b[0] == a[t])
zero = 1;
else if (b[1] == a[t])
one = 1;
else if (b[2] == a[t])
two = 1;
if (zero == 1 && one == 1 && two == 0)
{
b[2] = a[i];
break;
}
else if (zero == 1 && one == 0 && two == 1)
{
b[1] = a[i];
break;
}
else if (zero == 0 && one == 1 && two == 1)
{
b[0] = a[i];
break;
}
}
}
}
}
}
for (int f = 0; f < Pyblock; f++)
{
printf("%d\t", b[f]);
}
printf("\n");
zero = 0;
one = 0;
two = 0;
}
return q;
}
int main()
{
int o;
while(1)
{
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD>:\n");
scanf("%d",&Pyblock);
printf("\n");
break;
}
while(1)
{
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD><EFBFBD><EFBFBD>:\n");
scanf("%d",&number);
printf("\n");
break;
}
int a[number];
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:\n");
for (int i = 0; i < number; i++)
{
cin>>a[i];
}
printf("optҳ<EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
o = opt(a);
printf("ȱҳ%d<>Σ<EFBFBD><CEA3>û<EFBFBD>%d<><64>, ȱҳ<C8B1><D2B3>:%.2f%% .\n\n\n", o, o - Pyblock,((double)o/number)*100);
return 0;
}
//4 3 2 1 4 3 5 4 3 2 1 5

View File

@@ -0,0 +1,124 @@
#include<stdio.h>
int block_num; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int page_num; //Ҫ<><D2AA><EFBFBD>ʵ<EFBFBD>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD><D0B8><EFBFBD>
int page[100]; //Ҫ<><D2AA><EFBFBD>ʵ<EFBFBD>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int memory[10]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>ҳ<EFBFBD><D2B3>
int table[100][10]; //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
int reg[10]; //<2F>Ĵ<EFBFBD><C4B4><EFBFBD>--<2D><>¼ҳ<C2BC><D2B3><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>ʱ<EFBFBD><CAB1>
char Que[100]; //<2F><><EFBFBD><EFBFBD><E9A3AC>¼<EFBFBD>Ƿ<EFBFBD>ȱҳ
int main()
{
int count=0; //<2F><>¼ȱҳ<C8B1><D2B3><EFBFBD><EFBFBD>
int i,j,k;
while(1)
{
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD>(M<=10):\n");
scanf("%d",&block_num);
printf("\n");
break;
}
while(1)
{
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD>ҳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD><EFBFBD><EFBFBD>(P<=100):\n");
scanf("%d",&page_num);
printf("\n");
break;
}
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:\n");
for(i=0;i<page_num;i++)
{
scanf("%d",&page[i]);
Que[i] = 'N';
}
for(i=0;i<block_num;i++)
memory[i]=-1; //<2F><>ʼ<EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>Ϊ<EFBFBD>գ<EFBFBD><D5A3><EFBFBD>-1<><31>ʾ
//<2F><><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3>
for(i=0;i<page_num;i++)
{
if(i==0) //<2F><><EFBFBD>ʵĵ<CAB5>һ<EFBFBD><D2BB>ҳ<EFBFBD><D2B3>
{
memory[i]=page[i];
reg[i]=i;
for(j=0;j<block_num;j++)
table[i][j]=memory[j];
Que[i]='Y';
count++;
}
else
{ /*<2A>ж<EFBFBD><D0B6><EFBFBD>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
for(j=0,k=0;j<block_num;j++)
{
if(memory[j]!=page[i])
k++;
else
{ /*<2A><>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>*/
reg[j]=i; //ˢ<>¸<EFBFBD>ҳ<EFBFBD><D2B3><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>ʱ<EFBFBD><CAB1>
for(int n=0;n<block_num;n++)
table[i][n]=memory[n];
}
}
}
if(k==block_num) /*<2A><>ҳ<EFBFBD><EFBFBD><E6B2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD>ȱҳ*/
{
int q=0;
Que[i]='Y';
count++;
for(int j=0;j<block_num;j++)
{
if(memory[j]==-1) /*<2A>ڴ<EFBFBD><DAB4><EFBFBD>δ<EFBFBD><CEB4>*/
{
memory[j]=page[i];
reg[j]=i;
for(int n=0;n<block_num;n++)
table[i][n]=memory[n];
break;
}
else
q++;
}
if(q==block_num)/*<2A>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>LRU<52>û<EFBFBD><C3BB>ѡ<E3B7A8>񻻳<EFBFBD>ҳ*/
{
int min=0; //<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>ҳ
for(int m=1;m<block_num;m++)
if(reg[m]<reg[min])
min=m;
memory[min]=page[i];
reg[min]=i; /*<2A><>¼<EFBFBD><C2BC>ҳ<EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>ʱ<EFBFBD><EFBFBD>µ<EFBFBD><C2B5><EFBFBD>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮ǰmin<69><6E>λ<EFBFBD>ã<EFBFBD><C3A3>轫minλ<6E>õķ<C3B5><C4B7><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD>*/
for(int n=0;n<block_num;n++)
table[i][n]=memory[n];
}
}
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><D0B9>̼<EFBFBD><CCBC><EFBFBD><EFBFBD><EFBFBD>
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>OPTҳ<EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: \n");
printf("\n");
printf("\n");
printf("ҳ<EFBFBD><EFBFBD>:");
for(i=0;i<page_num;i++)
printf("%3d",page[i]);
printf("\n");
printf("-------------------------\n");
for(i=0;i<block_num;i++)
{
printf("%2d:",i);
for(j=0;j<page_num;j++)
printf("%3d",table[j][i]);
printf("\n");
}
printf("-------------------------\n");
printf("ȱҳ:");
for(i=0;i<page_num;i++)
printf("%3c",Que[i]);
printf("\n");
printf("-------------------------\n");
printf("\tȱҳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:%d\n",count);
printf("\tȱҳ<EFBFBD><EFBFBD>:%d/%d\n",count,page_num);
printf("-------------------------\n");
}

View File

@@ -0,0 +1,88 @@
#include <stdio.h>
#define number 11
#define block 3
#include <iostream>
using namespace std;
int opt(int a[])
{
int i, j, zero = 0, one = 0, two = 0, q = 0;
int b[block];
for (i = 0; i < block; i++)
{
b[i] =-1; //<2F><>Ϊ-1
}
for (i = 0; i < number; i++)
{
if (i < 3)
{
// printf("ȱҳ<C8B1><D2B3>%d\n", a[i]);
q++;
for (j = 0; j < block; j++)
{
if (b[j] == -1)
{
b[j] = a[i];
break;
}
}
}
else
{
if (b[0] != a[i] && b[1] != a[i] && b[2] != a[i])
{
// printf("ȱҳ<C8B1><D2B3>%d\n", a[i]);
q++;
for (int t = i + 1; t < number; t++)
{
if (b[0] == a[t])
zero = 1;
else if (b[1] == a[t])
one = 1;
else if (b[2] == a[t])
two = 1;
if (zero == 1 && one == 1 && two == 0)
{
b[2] = a[i];
break;
}
else if (zero == 1 && one == 0 && two == 1)
{
b[1] = a[i];
break;
}
else if (zero == 0 && one == 1 && two == 1)
{
b[0] = a[i];
break;
}
}
}
// else
// printf("%d<><64>ȱҳ<C8B1><D2B3>\n", a[i]);
}
for (int f = 0; f < block; f++)
{
printf("%d\t", b[f]);
}
printf("\n");
zero = 0;
one = 0;
two = 0;
}
return q;
}
int main()
{
int i, o, l=0,f=0;
int a[number];
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:\n");
for (i = 0; i < number; i++)
{
cin>>a[i];
}
printf("optҳ<EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
o = opt(a);
printf("ȱҳ%d<>Σ<EFBFBD><CEA3>û<EFBFBD>%d<>Ρ<EFBFBD>\n\n\n", o, o - block);
return 0;
}

View File

@@ -0,0 +1,169 @@
#include <iostream>
#include <queue>
#include <iomanip>
using namespace std;
typedef struct
{
char name;
int ArrivalTime;
int ServiceTime;
int FinishedTime;
int WholeTime;
double WeightWholeTime;
}RR;
static queue<RR>RRqueue; //<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static double AverageWT =0,AverageWWT=0;
static int q; //ʱ<><CAB1>Ƭ
static int n; //<2F><><EFBFBD≯<EFBFBD><CCB8><EFBFBD>
static RR RRarray[100]; //<2F><><EFBFBD>̽ṹ
void Input()
{
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>ģʽ
cout<<"________________________________________________________"<<endl;
cout<<"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
cin>>n;
cout<<"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>Ƭ<EFBFBD><EFBFBD> ";
cin>>q;
cout<<"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:"<<endl;
for (int i=0;i<n;i++)
{
cin>>RRarray[i].name;
}
cout<<"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̵ĵ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>:"<<endl;
for (int i=0;i<n;i++)
{
cin>>RRarray[i].ArrivalTime;
}
cout<<"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̵ķ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>:"<<endl;
for (int i=0;i<n;i++)
{
cin>>RRarray[i].ServiceTime;
}
}
void RRAlgorithm()
{
char processMoment[100]; //<2F>洢ÿ<E6B4A2><C3BF>ʱ<EFBFBD><CAB1>Ƭp<C6AC><70>Ӧ<EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
RRqueue.push(RRarray[0]);
int processMomentPoint = 0;
int CurrentTime=0;
int tempTime;
int i=1; //ָ<><D6B8><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><C4BD>̵<EFBFBD><CCB5>±<EFBFBD>
int finalProcessNumber = 0; //ִ<><D6B4>RR<52><EFBFBD>󣬽<EFBFBD><F3A3ACBD>̵ĸ<CCB5><C4B8><EFBFBD>
int processTime[50];
//CurrentTime<6D>ij<EFBFBD>ʼ<EFBFBD><CABC>
if (RRarray[0].ServiceTime>=q)
{
CurrentTime = q;
}
else
{
CurrentTime = RRarray[0].ServiceTime;
}
while(!RRqueue.empty())
{
for (int j=i;j<n;j++) //ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̵ĵ<CCB5><C4B5><EFBFBD>ʱ<EFBFBD><CAB1>С<EFBFBD>ڵ<EFBFBD>ǰʱ<C7B0><CAB1><EFBFBD>Ľ<EFBFBD><C4BD>̶<EFBFBD><CCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
if (RRarray[j].name!=NULL && CurrentTime >= RRarray[j].ArrivalTime)
{
RRqueue.push(RRarray[j]);
i++;
}
}
if (RRqueue.front().ServiceTime<q)
{
tempTime = RRqueue.front().ServiceTime;
}
else
{
tempTime = q;
}
RRqueue.front().ServiceTime -= q; //<2F><><EFBFBD><EFBFBD>ÿִ<C3BF><D6B4>һ<EFBFBD>Σ<EFBFBD><CEA3>ͽ<EFBFBD><CDBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> -q
//<2F><><EFBFBD><EFBFBD><EFBFBD>׽<EFBFBD><D7BD>̵<EFBFBD><CCB5><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
processMoment[processMomentPoint] = RRqueue.front().name;
processMomentPoint++;
processTime[finalProcessNumber] = tempTime;
finalProcessNumber++;
if (RRqueue.front().ServiceTime <= 0) //<2F><>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD>
{
//RRqueue.front().FinishedTime = CurrentTime;
RRqueue.pop(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̵ķ<CCB5><C4B7><EFBFBD>ʱ<EFBFBD><CAB1>С<EFBFBD>ڵ<EFBFBD><DAB5>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD>ý<EFBFBD><C3BD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD><CBA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ջ
}
else
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD>β
RRqueue.push(RRqueue.front());
RRqueue.pop();
}
CurrentTime += tempTime;
}
for (int i=0;i<n;i++)
{
RRarray[i].WholeTime = RRarray[i].FinishedTime - RRarray[i].ArrivalTime;
RRarray[i].WeightWholeTime = (double)RRarray[i].WholeTime/RRarray[i].ServiceTime;
}
double x=0,y=0;
for (int i=0;i<n;i++)
{
x += RRarray[i].WholeTime;
y += RRarray[i].WeightWholeTime;
}
AverageWT = x/n;
AverageWWT = y/n;
}
void display()
{
cout<<"________________________________________________________"<<endl;
cout<<"RR<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㷨ִ<EFBFBD>к󣺽<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD>£<EFBFBD>"<<endl;
cout<<setw(10)<<"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID<EFBFBD><EFBFBD>"<<" ";
cout<<setw(10)<<"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>"<<" ";
cout<<setw(10)<<"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>"<<" ";
cout<<setw(10)<<"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>"<<" ";
cout<<setw(10)<<"<EFBFBD><EFBFBD>תʱ<EFBFBD><EFBFBD>"<<" ";
cout<<setw(10)<<"<EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD>תʱ<EFBFBD><EFBFBD>"<<endl;
for (int i = 0;i<n;i++)
{
cout<<setw(10)<<RRarray[i].name<<" ";
cout<<setw(10)<<RRarray[i].ArrivalTime<<" ";
cout<<setw(10)<<RRarray[i].ServiceTime<<" ";
cout<<setw(10)<<RRarray[i].FinishedTime<<" ";
cout<<setw(10)<<RRarray[i].WholeTime<<" ";
cout<<setw(10)<<RRarray[i].WeightWholeTime<<" "<<endl;;
}
cout<<"<EFBFBD><EFBFBD><EFBFBD>н<EFBFBD><EFBFBD>̵<EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>תʱ<EFBFBD><EFBFBD> = "<<AverageWT<<endl;
cout<<"<EFBFBD><EFBFBD><EFBFBD>н<EFBFBD><EFBFBD>̵<EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD>תʱ<EFBFBD><EFBFBD> = "<<AverageWWT<<endl;
cout<<"________________________________________________________"<<endl;
}
int main()
{
Input();
RRAlgorithm();
display();
system("pause");
return 0;
}

View File

@@ -0,0 +1,97 @@
#include<iostream>
using namespace std;
const int N=10;
double daoda[N];//<2F><EFBFBD><E6B4A2><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
double fuwu[N]; //<2F><EFBFBD><E6B4A2><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
double fuwu_[N];//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD>
double wancheng[N]={0};//<2F><EFBFBD><E6B4A2><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ,<2C><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>ȶ<EFBFBD><C8B6><EFBFBD>ֵΪ0
double zhouzhuan[N];//<2F><EFBFBD><E6B4A2>תʱ<D7AA><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
double daiquanz[N];//<2F><EFBFBD><E6B4A2>Ȩ<EFBFBD><C8A8>תʱ<D7AA><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
string name[N];//ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><CCB5><EFBFBD><EFBFBD><EFBFBD>
int main()
{
//RR ʱ<><CAB1>Ƭ<EFBFBD><C6AC>ת<EFBFBD>
cout<<"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"<<endl;
int n;//<2F><>ҵ<EFBFBD><D2B5>
cin>>n;
cout<<"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"<<n<<"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>"<<endl;
for(int i=0;i<n;i++)
{
cin>>name[i];//<2F><><EFBFBD>̵<EFBFBD><CCB5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>A B C ֮<><D6AE><EFBFBD><EFBFBD>
cin>>daoda[i]>>fuwu[i];//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EBB5BD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
fuwu_[i]=fuwu[i];//<2F><><EFBFBD><EFBFBD>
}
double q;
cout<<"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>Ƭq:"<<endl;
cin>>q;
for(int i=0;i<n;i++)//ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
for(int j=0;j<n;j++)
{
if(daoda[i]<daoda[j])
{
swap(daoda[i],daoda[j]);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2BCB8><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ͬһ<CDAC><D2BB><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><CCB5><EFBFBD>Щʱ<D0A9><CAB1><EFBFBD><EFBFBD>Ӧ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD>һ<EFBFBD><D2BB>
swap(fuwu[i],fuwu[j]);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4BDBB><EFBFBD>ˣ<EFBFBD><CBA3><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ҲӦ<D2B2>ý<EFBFBD><C3BD><EFBFBD>
swap(fuwu_[i],fuwu_[j]);
swap(zhouzhuan[i],zhouzhuan[j]);
swap(daiquanz[i],daiquanz[i]);
swap(name[i],name[j]);//<2F><><EFBFBD>̵<EFBFBD><CCB5><EFBFBD><EFBFBD><EFBFBD>ҲҪ<D2B2><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD>ı<C4B1><E4BBAF><EFBFBD>
}
}
}
//<2F><>ʱ<EFBFBD><CAB1>
double addfuwu=0;//<2F>ۼƷ<DBBC><C6B7><EFBFBD>ʱ<EFBFBD><EFBFBD><E4A3AC>ʼֵ<CABC><D6B5>Ϊ0
int count=n;//Ϊ<>˲<EFBFBD><CBB2>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>n<EFBFBD><6E>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>count=n
int count1=0;//<2F><>ijһ<C4B3><D2BB><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD>ɵĽ<C9B5><C4BD><EFBFBD>
while(count!=0)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ0<CEAA><30>ʱ<EFBFBD><CAB1>
{
count=count-count1;//<2F><>ʣ<EFBFBD><CAA3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>ɵĽ<C9B5><C4BD><EFBFBD><EFBFBD><EFBFBD>Ŀ
for(int i=0;i<n;i++)
{
if(fuwu[i]<=q)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʣ<EFBFBD>µķ<C2B5><C4B7><EFBFBD>ʱ<EFBFBD><CAB1>С<EFBFBD><D0A1>ʱ<EFBFBD><CAB1>Ƭ
{
if(wancheng[i]!=0)//<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>ֹ<EFBFBD>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>תʱ<D7AA><CAB1><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD>ɵĽ<C9B5><C4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȥ
{
addfuwu=addfuwu+0;//<2F><><EFBFBD><EFBFBD>ȥ<EFBFBD>ۼ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>0
}
else
{
addfuwu=addfuwu+fuwu[i];//<2F>ۼ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>͵<EFBFBD><CDB5><EFBFBD>֮ǰ<D6AE><C7B0><EFBFBD>ۼ<EFBFBD>ʱ<EFBFBD><CAB1>+<2B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4A3A8><EFBFBD><EFBFBD>С<EFBFBD><D0A1>q<EFBFBD><71>
wancheng[i]=addfuwu;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>=Ŀǰ<C4BF>ۼƷ<DBBC><C6B7><EFBFBD>ʱ<EFBFBD><CAB1>
count1++;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD><EFBFBD>Ŀ
}
}
else
{
fuwu[i]=fuwu[i]-q;//ʣ<><CAA3><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ʱ<EFBFBD><CAB1><><CAB1>Ƭq
addfuwu=addfuwu+q;//<2F>ۼƷ<DBBC><C6B7><EFBFBD>ʱ<EFBFBD><CAB1>=֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><><CAB1>Ƭq(<28><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̵ķ<CCB5><C4B7><EFBFBD>ʱ<EFBFBD><CAB1>)
}
}
}
// ----------------------
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>תʱ<D7AA><CAB1><EFBFBD>ʹ<EFBFBD>Ȩ<EFBFBD><C8A8>תʱ<D7AA><CAB1>
for(int i=0;i<n;i++)
{
zhouzhuan[i]=wancheng[i]-daoda[i];//<2F><>תʱ<D7AA><CAB1>=<3D><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>-<2D><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
daiquanz[i]=zhouzhuan[i]/fuwu_[i];//<2F><>Ȩ<EFBFBD><C8A8>תʱ<D7AA><CAB1>=<3D><>תʱ<D7AA><CAB1>/<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
}
cout<<"RR<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㷨ִ<EFBFBD>к<EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD>£<EFBFBD>"<<endl;
cout<<"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"<<" "<<"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>"<<" "<<"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>"<<" "<<"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>"<<" "<<"<EFBFBD><EFBFBD>תʱ<EFBFBD><EFBFBD>"<<" "<<"<EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD>תʱ<EFBFBD><EFBFBD>"<<endl;
for(int i=0;i<n;i++)
{
cout<<name[i]<<" \t";
cout<<daoda[i]<<" \t"<<fuwu_[i]<<" \t";
cout<<wancheng[i]<<" \t";
cout<<zhouzhuan[i]<<"\t"<<daiquanz[i]<<"\t"<<endl;
}
double sum1=0;
double sum2=0;
for(int i=0;i<n;i++)
{
sum1+=zhouzhuan[i];//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>תʱ<D7AA><CAB1><EFBFBD>ĺ<EFBFBD>
sum2+=daiquanz[i]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><C8A8>תʱ<D7AA><CAB1><EFBFBD>ĺ<EFBFBD>
}
cout<<"ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>תʱ<EFBFBD>"<<sum1/n<<endl;//ƽ<><C6BD><EFBFBD><EFBFBD>תʱ<D7AA><CAB1>=<3D><>תʱ<D7AA><CAB1>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cout<<"ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD>תʱ<EFBFBD>"<<sum2/n<<endl;//ƽ<><C6BD><EFBFBD><EFBFBD>Ȩ<EFBFBD><C8A8>תʱ<D7AA><CAB1>=<3D><>Ȩ<EFBFBD><C8A8>תʱ<D7AA><CAB1>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
return 0;
}

View File

@@ -0,0 +1,60 @@
#include <raylib.h>
#include <math.h>
int main(void) {
// 初始化
const int screenWidth = 640;
const int screenHeight = 480;
//启用反锯齿
SetConfigFlags(FLAG_MSAA_4X_HINT);
//初始化窗口
InitWindow(screenWidth, screenHeight, "Sample");
// 初始化摄像机
Camera3D camera = { 0 };
camera.position = (Vector3) {
40.0f, 20.0f, 0.0f
}; //相机所在位置{x,y,z}
camera.target = (Vector3) {
0.0f, 0.0f, 0.0f
}; //相机朝向位置{x,y,z}
camera.up = (Vector3) {
0.0f, 1.0f, 0.0f
}; //相机正上方朝向矢量
camera.fovy = 70.0f; //相机视野宽度
camera.projection = CAMERA_PERSPECTIVE; //采用透视投影
//设置动画帧率刷新率fps为30帧/秒
SetTargetFPS(30);
//--------------------------------------------------------------------------------------
int angle = 0; //多边形旋转角度
// 主游戏循环
while (!WindowShouldClose()) { //关闭窗口或者按ESC键时返回true
double time = GetTime();
// 每次循环更新一帧
// 摄像机围绕y轴转动
double cameraTime = time * 0.3;
camera.position.x = (float)cos(cameraTime) * 40.0f;
camera.position.z = (float)sin(cameraTime) * 40.0f;
BeginDrawing();
ClearBackground(WHITE);
//以摄像机视角绘制3d内容
BeginMode3D(camera);
DrawCube(Vector3{0, 0, 0}, 10, 10, 10, VIOLET);
DrawCubeWires(Vector3{0, 0, 0}, 10, 10, 10, BLACK);
EndMode3D();
EndDrawing();
}
//关闭窗口
CloseWindow();
return 0;
}