时间片轮转算法受不受环保影响的行业作业时间影响吗

C语言实现时间片轮转法的cpu调度模拟_Linux编程_Linux公社-Linux系统门户网站
你好,游客
C语言实现时间片轮转法的cpu调度模拟
来源:Linux社区&
作者:甜123
/*这是实验课题目,上课时写的,不是很完整,仅当留着做个纪念,有问题大家一起学习讨论。*//*废话不多说,直接上代码!*/&/*****时间片轮转法进行CPU调度算法********/#include&stdio.h&#include&malloc.h&#include&string.h&#define N 10& //定义最大进程数#define TIME 2//定义时间片大小typedef struct pcb{& & char id[10];//进程标识数& &//到达时间& &//进程已经占用的cpu时间& &//进程还需要的时间& & char state[12];//进程运行状态:wait or runing& & struct pcb *}pcb,*PCB;PCB//设置全局变量用来修改就绪队列PCBint count=0;//记录就绪队列中进程数void CreatProcess(){& & //创建进程& & PCB p,q;//进程的头尾指针都有& &//记录要创建的进程数& & int i,j;& & int arrive[N];& & head=tail=(PCB)malloc(sizeof(pcb));& & head-&next=NULL;& & p=& & printf("输入你要创建的进程数:");& & scanf("%d",&num);& & count=& & printf("********按照进程到达时间从小到大创建就绪队列******\n");& & //初始对其排序来创建就绪队列& & for(i=1;i&=i++){& & & & p-&next=(PCB)malloc(sizeof(pcb));& & & & p=p-&& & & & tail=p;& & & & printf("输入进程%d的标示符:",i);& & & & scanf("%s",p-&id);& & & & printf("输入进程%d的到达时间:",i);& & & & scanf("%d",&p-&arrivetime);& & & & printf("输入进程%d已占用的cpu时间:",i);& & & & scanf("%d",&p-&runtime);& & & & printf("输入进程%d还需要的cpu时间:",i);& & & & scanf("%d",&p-&needtime);& & & & printf("输入进程%d当前状态:(run 或者wait):",i);& & & & scanf("%s",p-&state);& & }& & tail-&next=p-&next=NULL;}void RR_RunProcess(){& & //运行进程,简单轮转法Round Robin& & PCB p,q,& & p=head-&& & while(1){& & if(head-&next==NULL)& & {& & & & printf("此时就绪队列中已无进程!\n");& & & & & && & }& & else & & {& & & & while(p){& & & & & & if((p-&needtime&0)&&!(strcmp(p-&state,"wait"))){& & & & & & & & printf("进程%s开始,\n",p-&id );& & & & & & & & strcpy(p-&state,"run");& & & & & & & & p-&runtime+=TIME;& & & & & & & & p-&needtime-=TIME;& & & & & & & & & if(p-&needtime&0)& & & & & & & & & & p-&needtime=0;& & & & & & }& & & & & & temp=p;//把该时间片内运行完的进程存到临时temp中& & & & & & //把temp接到链表尾部,销毁P; & & & & & & if(temp-&needtime&0){//把该时间片内运行完的进程接到就绪队列的尾部& & & & & & & & if(count&1){& & & & & & & & head-&next=temp-&& & & & & & & & tail-&next=& & & & & & & & tail=tail-&& & & & & & & & strcpy(tail-&state,"wait");& & & & & & & & tail-&next=NULL;& & & & & & & & }& & & & & & & & else if(count==1){//当只有一个进程等待时,分开讨论& & & & & & & & & & head-&next=& & & & & & & & & & tail=& & & & & & & & & & strcpy(tail-&state,"wait");& & & & & & & & & & tail-&next=NULL;&& & & & & & & & }& & & & & & & & & & & & & & & }& & & & & & if(temp-&needtime==0){//销毁就绪队列中已经结束的进程& & & & & & & & count--;//此时就绪队列中进程数减1& & & & & & & & printf("进程%s结束.\n",p-&id);& & & & & & & & head-&next=temp-&& & & & & & & & free(temp);//撤销就绪队列中已经结束的进程&& & & & & & }&& & & & & & p=head-&&& & & & }&& & }& & }}void main(){& & printf("**************进程的初始状态!**************\n");& & CreatProcess();& & printf("*******************************************\n\t\t程序运行结果如下:\n\n");& & printf("*******************************************\n");& & RR_RunProcess();//简单轮转法Round Robin& }
运行结果如下附件:
C++ Primer Plus 第6版 中文版 清晰有书签PDF+源代码
读C++ Primer 之构造函数陷阱
读C++ Primer 之智能指针
读C++ Primer 之句柄类
将C语言梳理一下,分布在以下10个章节中:
Linux-C成长之路(一):Linux下C编程概要
Linux-C成长之路(二):基本数据类型
Linux-C成长之路(三):基本IO函数操作
Linux-C成长之路(四):运算符
Linux-C成长之路(五):控制流
Linux-C成长之路(六):函数要义
Linux-C成长之路(七):数组与指针
Linux-C成长之路(八):存储类,动态内存
Linux-C成长之路(九):复合数据类型
Linux-C成长之路(十):其他高级议题
本文永久更新链接地址:
相关资讯 & & &
& (12/28/:34)
& (11/22/:35)
& (02月26日)
& (12/27/:56)
& (10/30/:58)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款&操作系统编程进程或作业先来先服务、高优先权、按时间片轮转调度算法
秒后自动跳转到登录页
快捷登录:
举报类型:
不规范:上传重复资源
不规范:标题与实际内容不符
不规范:资源无法下载或使用
其他不规范行为
违规:资源涉及侵权
违规:含有危害国家安全等内容
违规:含有反动/色情等内容
违规:广告内容
详细原因:
任何违反下载中心规定的资源,欢迎Down友监督举报,第一举报人可获5-10下载豆奖励。
视频课程推荐
操作系统编程进程或作业先来先服务、高优先权、按时间片轮转调度算法
上传时间:
技术分类:
资源评价:
(0位用户参与评价)
已被下载&11&次
通过编写程序实现进程或作业先来先服务、高优先权、按时间片轮转调度算法,使学生进一步掌握进程调度的概念和算法,加深对处理机分配的理解。
本资料共包含以下附件:
73fff2b81ccc934aa8a3d.doc
51CTO下载中心常见问题:
1.如何获得下载豆?
1)上传资料
2)评论资料
3)每天在首页签到领取
4)购买VIP会员服务,无需下载豆下载资源
5)更多途径:点击此处
2.如何删除自己的资料?
下载资料意味着您已同意遵守以下协议:
1.资料的所有权益归上传用户所有
2.未经权益所有人同意,不得将资料中的内容挪作商业或盈利用途
3.51CTO下载中心仅提供资料交流平台,并不对任何资料负责
4.本站资料中如有侵权或不适当内容,请邮件与我们联系()
5.本站不保证资源的准确性、安全性和完整性, 同时也不承担用户因使用这些资料对自己和他人造成任何形式的伤害或损失
相关专题推荐
《Linux 运维趋势》是由 51CTO 系统频
Windows Server 2003系列沿用了2000的
域(Domain)是Windows网络中独立运行的
马哥教育是从事Linux运维、系统、架构
本视频详细介绍了linux主机管理,从l
本专题为Windows Server 2008 R2从入
《鸟哥的Linux私房菜》是最具知名度的
本专题为YesLab讲师赵小明讲解的Linu
本专题是一套很系统很全面的高端集群
本套教程为华中红客基地DOS命令讲解系
本系列视频为郑州拓远教育咨询有限公
本专题为尚观发布的shell脚本编程视频
课程旨在对生产环境的工作任务进行详
韦东山老师的《嵌入式Linux应用开发完
本专题为Linux高级进阶教程,内容涉及
本套Linux视频教程,于3月1日开始陆续
意见或建议:
联系方式:
您已提交成功!感谢您的宝贵意见,我们会尽快处理下次自动登录
现在的位置:
& 综合 & 正文
时间片轮转算法和优先级调度算法 C语言模拟实现
一、目的和要求进程调度是处理机管理的核心内容。本实验要求用高级语言编写模拟进程调度程序,以便加深理解有关进程控制快、进程队列等概念,并体会和了解优先数和时间片轮转算法的具体实施办法。二、实验内容设计进程控制块的结构,通常应包括如下信息:进程名、进程优先数(或轮转时间片数)、进程已占用的时间、进程到完成还需要的时间、进程的状态、当前队列指针等。编写两种调度算法程序:优先数调度算法程序循环轮转调度算法程序按要求输出结果。三、提示和说明分别用两种调度算法对伍个进程进行调度。每个进程可有三种状态;执行状态()、就绪状态(包括等待状态)和完成状态(),并假定初始状态为就绪状态。(一)进程控制块结构如下:——进程标示符——进程优先数进程每次轮转的时间片数(设为常数)——进程累计占用的时间片数——进程到完成还需要的时间片数——进程状态——链指针注:为了便于处理,程序中进程的的运行时间以时间片为单位进行计算;各进程的优先数或轮转时间片数,以及进程运行时间片数的初值,均由用户在程序运行时给定。(二)进程的就绪态和等待态均为链表结构,共有四个指针如下:——当前运行进程指针——就需队列头指针——就需队列尾指针——完成队列头指针(三)程序说明在优先数算法中,进程优先数的初值设为:每执行一次,优先数减,时间片数加,进程还需要的时间片数减。在轮转法中,采用固定时间片单位(两个时间片为一个单位),进程每轮转一次,时间片数加,进程还需要的时间片数减,并退出,排到就绪队列尾,等待下一次调度。程序的模块结构提示如下:整个程序可由主程序和如下个过程组成:()——在优先数算法中,将尚未完成的按优先数顺序插入到就绪队列中;()——在轮转法中,将执行了一个时间片单位(为),但尚未完成的进程的,插到就绪队列的队尾;()——调度就绪队列的第一个进程投入运行;()——显示每执行一次后所有进程的状态及有关信息。()——创建新进程,并将它的插入就绪队列;()——按优先数算法调度进程;()——按时间片轮转法调度进程。主程序定义结构和其他有关变量。(四)运行和显示程序开始运行后,首先提示:请用户选择算法,输入进程名和相应的值。每次显示结果均为如下个字段:注:.在字段中,代表执行态,代表就绪(等待)态,代表完成态。.应先显示态的,再显示态的,再显示态的。.在态中,以优先数高低或轮转顺序排队;在态中,以完成先后顺序排队。
操作系统实验之时间片轮转算法和优先级调度算法
By Visual C++ 6.0
#include &stdio.h&
#include &stdlib.h&
#include &string.h&
typedef struct node
char name[20];
/*进程的名字*/
/*进程的优先级*/
/*分配CPU的时间片*/
/*CPU执行时间*/
/*进程执行所需要的时间*/
/*进程的状态,W——就绪态,R——执行态,F——完成态*/
/*记录执行的次数*/
struct node *
/*链表指针*/
PCB *ready=NULL,*run=NULL,*finish=NULL; /*定义三个队列,就绪队列,执行队列和完成队列*/
void GetFirst();
/*从就绪队列取得第一个节点*/
void Output();
/*输出队列信息*/
void InsertPrio(PCB *in);
/*创建优先级队列,规定优先数越小,优先级越高*/
void InsertTime(PCB *in);
/*时间片队列*/
void InsertFinish(PCB *in);
/*时间片队列*/
void PrioCreate();
/*优先级输入函数*/
void TimeCreate();
/*时间片输入函数*/
void Priority();
/*按照优先级调度*/
void RoundRun();
/*时间片轮转调度*/
int main(void)
printf("请输入要创建的进程数目:/n");
scanf("%d",&num);
getchar();
printf("输入进程的调度方法:(P/R)/n");
scanf("%c",&chose);
switch(chose)
PrioCreate();
Priority();
TimeCreate();
RoundRun();
void GetFirst()
/*取得第一个就绪队列节点*/
if(ready!=NULL)
run -&state = 'R';
ready = ready -&
run -&next = NULL;
void Output()
/*输出队列信息*/
printf("进程名/t优先级/t轮数/tcpu时间/t需要时间/t进程状态/t计数器/n");
while(p!=NULL)
printf("%s/t%d/t%d/t%d/t%d/t/t%c/t/t%d/n",p-&name,p-&prio,p-&round,p-&cputime,p-&needtime,p-&state,p-&count);
while(p!=NULL)
printf("%s/t%d/t%d/t%d/t%d/t/t%c/t/t%d/n",p-&name,p-&prio,p-&round,p-&cputime,p-&needtime,p-&state,p-&count);
while(p!=NULL)
printf("%s/t%d/t%d/t%d/t%d/t/t%c/t/t%d/n",p-&name,p-&prio,p-&round,p-&cputime,p-&needtime,p-&state,p-&count);
void InsertPrio(PCB *in) /*创建优先级队列,规定优先数越小,优先级越低*/
PCB *fst,*
fst = nxt =
if(ready == NULL)
/*如果队列为空,则为第一个元素*/
in-&next =
/*查到合适的位置进行插入*/
if(in -&prio &= fst -&prio)
/*比第一个还要大,则插入到队头*/
in-&next =
while(fst-&next != NULL)
/*移动指针查找第一个别它小的元素的位置进行插入*/
fst = fst-&
if(fst -&next == NULL) /*已经搜索到队尾,则其优先级数最小,将其插入到队尾即可*/
in -&next = fst -&
fst -&next =
/*插入到队列中*/
in -&next =
void InsertTime(PCB *in)
/*将进程插入到就绪队列尾部*/
if(ready == NULL)
in-&next =
while(fst-&next != NULL)
fst = fst-&
in -&next = fst -&
fst -&next =
void InsertFinish(PCB *in)
/*将进程插入到完成队列尾部*/
if(finish == NULL)
in-&next =
while(fst-&next != NULL)
fst = fst-&
in -&next = fst -&
fst -&next =
void PrioCreate() /*优先级调度输入函数*/
printf("输入进程名字和进程所需时间:/n");
for(i = 0;i & i++)
if((tmp = (PCB *)malloc(sizeof(PCB)))==NULL)
perror("malloc");
scanf("%s",tmp-&name);
getchar();
/*吸收回车符号*/
scanf("%d",&(tmp-&needtime));
tmp -&cputime = 0;
tmp -&state ='W';
tmp -&prio = 50 - tmp-&
/*设置其优先级,需要的时间越多,优先级越低*/
tmp -&round = 0;
tmp -&count = 0;
InsertPrio(tmp);
/*按照优先级从高到低,插入到就绪队列*/
void TimeCreate() /*时间片输入函数*/
printf("输入进程名字和进程时间片所需时间:/n");
for(i = 0;i & i++)
if((tmp = (PCB *)malloc(sizeof(PCB)))==NULL)
perror("malloc");
scanf("%s",tmp-&name);
getchar();
scanf("%d",&(tmp-&needtime));
tmp -&cputime = 0;
tmp -&state ='W';
tmp -&prio = 0;
tmp -&round = 2;
/*假设每个进程所分配的时间片是2*/
tmp -&count = 0;
InsertTime(tmp);
void Priority()
/*按照优先级调度,每次执行一个时间片*/
int flag = 1;
GetFirst();
while(run != NULL)
/*当就绪队列不为空时,则调度进程如执行队列执行*/
/*输出每次调度过程中各个节点的状态*/
while(flag)
run-&prio -= 3; /*优先级减去三*/
run-&cputime++; /*CPU时间片加一*/
run-&needtime--;/*进程执行完成的剩余时间减一*/
if(run-&needtime == 0)/*如果进程执行完毕,将进程状态置为F,将其插入到完成队列*/
run -&state = 'F';
run-&count++; /*进程执行的次数加一*/
InsertFinish(run);
/*将进程状态置为W,入就绪队列*/
run-&state = 'W';
run-&count++; /*进程执行的次数加一*/
InsertTime(run);
GetFirst();
/*继续取就绪队列队头进程进入执行队列*/
void RoundRun()
/*时间片轮转调度算法*/
int flag = 1;
GetFirst();
while(run != NULL)
while(flag)
run-&count++;
run-&cputime++;
run-&needtime--;
if(run-&needtime == 0) /*进程执行完毕*/
run -&state = 'F';
InsertFinish(run);
else if(run-&count == run-&round)/*时间片用完*/
run-&state = 'W';
run-&count = 0;
/*计数器清零,为下次做准备*/
InsertTime(run);
GetFirst();
&&&&推荐文章:
【上篇】【下篇】您当前位置: >
> 【计算机操作系统】操作系统--时间片轮转(RR)进程调度算法
【计算机操作系统】操作系统--时间片轮转(RR)进程调度算法
来源:程序员人生&& 发布时间: 08:18:00 阅读次数:452次
实验2 间片轮转RR进程调度算法
1、 实验目的
通过这次实验,加深对进程概念的理解,进1步掌握进程状态的转变、进程调度的策略及对系统性能的评价方法。
2、 实验内容
问题描写:
设计程序摹拟进程的时间片轮转RR调度进程。假定有n个进程分别在T1,… ,Tn时刻到达系统,它们需要的服务时间分别为S1,… ,Sn。分别利用不同的时间片大小q,采取时间片轮转RR进程调度算法进行调度,计算每一个进程的完成时间、周转时间和带权周转时间,并且统计n个进程的平均周转时间和平均带权周转时间。
3、 程序要求:
1)进程个数n;每一个进程的到达时间T1, … ,Tn和服务时间S1, … ,Sn;输入时间片大小q。
2)时间片轮转法RR调度进程运行,计算每一个进程的周转时间和带权周转时间,并且计算所有进程的平均周转时间和带权平均周转时间;
3)输出:摹拟全部调度进程,输出每一个时刻的进程运行状态,如“时刻3:进程B开始运行”等等;
4)输出:输出计算出来的每一个进程的周转时间、带权周转时间、所有进程的平均周转时间和带权平均周转时间。
4、 需求分析
(1) 输入的情势和输入值的范围
真实进程数
各进程的到达时间
各进程的服务时间
(2) 输出的情势
摹拟全部调度进程、周转时间、带权周转时间、所有进程的平均周转时间和带权平均周转时间。
(3)测试用例
&&&& 作业情况
带权周转时间
带权周转时间
5、 概要设计
抽象数据类型定义:
publicstatic int q = 0;
//允许的最大进程数
publicstatic int MaxNum = 100;
//真实的进程数
publicstatic int realN
//order数组的1个下标
//当前时间
publicstatic int NowT
//各进程的到达时间
publicstatic int ArrivalTime[] = new int[MaxNum];
//各进程的服务时间
publicstatic int ServiceTime[] = new int[MaxNum];
//各进程的服务时间(用于记录进程服务时间随时间片轮转减少的进程)
public static int PServiceTime[] = new int[MaxNum];
//各进程的完成时间
publicstatic int FinishTime[] = new int[MaxNum];
//各进程的周转时间
publicstatic int WholeTime[] = new int[MaxNum];
// 进程调度队列(寄存的是各个进程的数字代号,如进程A数字代号为1)
public static int order[] = new int[MaxNum];
// 各进程的带权周转时间
publicstatic double WeightWholeTime[] = new double[MaxNum];
//平均周转时间、平均带权周转时间
public static double AverageWT, AverageWWT;
//周转时间总和
publicstatic int SumWT = 0;
//带权周转时间总和
publicstatic double SumWWT = 0;
//进程是不是已结束的标志
publicstatic boolean Finished[] = new boolean[MaxNum];
public static S主程序的流程:
各模块之间的层次关系:只有Main方法
6、 详细设计
代码详见附录
7、 调试分析
(1)调试进程中遇到的问题及解决办法
本次实验比较简单。
(2)算法的性能分析
基本操作:all_add++;
时间复杂度:O(服务时间/ q * (n⑴))
(3)经验和体会
本次实验比较简单。
8、 测试结果
时间片q为1时的输出
时间片q为4输出
7、附录(java)
importjava.io.BufferedInputS
importjava.io.FileInputS
importjava.io.FileNotFoundE
importjava.util.S
publicclass RR {
public static int q = 0;
// 允许的最大进程数
public static int MaxNum = 100;
// 真实的进程数
public static int realN
// order数组的1个下标
// 当前时间
public static int NowT
// 各进程的到达时间
public static int ArrivalTime[] = newint[MaxNum];
// 各进程的服务时间
public static int ServiceTime[] = newint[MaxNum];
// 各进程的服务时间(用于记录进程服务时间随时间片轮转减少的进程)
public static int PServiceTime[] = newint[MaxNum];
// 各进程的完成时间
public static int FinishTime[] = newint[MaxNum];
// 各进程的周转时间
public static int WholeTime[] = newint[MaxNum];
// 进程调度队列(寄存的是各个进程的数字代号,如进程A数字代号为1)
public static int order[] = new int[MaxNum];
// 各进程的带权周转时间
public static double WeightWholeTime[] = newdouble[MaxNum];
// 平均周转时间、平均带权周转时间
public static double AverageWT, AverageWWT;
// 周转时间总和
public static int SumWT = 0;
// 带权周转时间总和
public static double SumWWT = 0;
// 进程是不是已结束的标志
public static boolean Finished[] = newboolean[MaxNum];
public static S
public static void main(String[] args)throws FileNotFoundException {
System.out.println(&请输入时间片q:&);
input = new Scanner(System.in);
q = input.nextInt();
// 从文件中输入数据
BufferedInputStream in = newBufferedInputStream(new FileInputStream(&test.txt&));
System.setIn(in);
input = new Scanner(System.in);
realNum = input.nextInt(); // 真实进程数
for (int i = 0; i & realN i++) {// 各进程的到达时间
ArrivalTime[i] = input.nextInt();
for (int j = 0; j & realN j++) {// 各进程的服务时间
ServiceTime[j] = input.nextInt();
PServiceTime[j] =ServiceTime[j];
//用于记录进程服务时间随时间片轮转减少的进程
Finished[j] =
//关闭文件流
input.close();
int all_add = 1;
//就绪队列中的进程个数
order[0] = 0;
//进程调度队列(寄存的是各个进程的数字代号,如进程A数字代号为1)
number = 1;
NowTime = 0;
//当前时间
while (order[0] != 100) {
//order[0]为100,是认为规定进程调度结束的标志
// 调度进程A
char w = 'A';
System.out.println(&时刻&+ NowTime + &:进程& + (char)(w + order[0]) + &开始运行;&);
if (PServiceTime[order[0]] & q){
//进程还未完成
PServiceTime[order[0]] = PServiceTime[order[0]]- //对应进程的服务时间减去1个时间片
NowTime +=
//当前时间增加1个时间片
System.out.println(&时刻&+ NowTime + &:进程& + (char)(w + order[0]) + &停止运行,加入就绪序列尾;&);
//进程剩1个时间片后结束
NowTime +=PServiceTime[order[0]];
//当前时间增加1个时间片
PServiceTime[order[0]] = 0;
//对应进程的服务时间归零
System.out.println(&时刻&+ NowTime + &:进程& + (char)(w + order[0]) + &运行结束;&);
FinishTime[order[0]] = NowT
WholeTime[order[0]] = NowTime -ArrivalTime[order[0]];//周转时间 = 完成时间 - 到达时间
WeightWholeTime[order[0]] = 1.0* WholeTime[order[0]] / ServiceTime[order[0]];//带权周转时间 = 周转时间 / 服务时间
// 将到达的进程加入序列尾
if (all_add & realNum) {
for (int i = 1; i & realNi++) {
if (NowTime &=ArrivalTime[i] && Finished[i] == false) {
//判断该进程是不是已在就绪队列中
order[number++] =
all_add++;
Finished[i] =
// 将序列首程序调到序列尾
int temp = order[0];
for (int i = 0; i & number - 1;i++){ //将order中的每一个数前移1位
order[i] = order[i + 1];
if (PServiceTime[temp] == 0){ //进程已将全部调度结束,通过将order的第1个数标记为100,来结束进程调度
order[--number] = MaxN
//进程还未调度结束
order[number - 1] =//加入就绪队列队尾
double all = 0, all1 = 0;
for (int i = 0; i & realN i++) {//计算总周转时间和总带权周转时间
all += WholeTime[i];
all1 += WeightWholeTime[i];
System.out.println(&\n进程名\t到达时间\t服务时间\t完成时间\t周转时间\t带权周转时间&);
for (int i = 0; i &realN i++) {
System.out.println((char)(i + 'A') +&\t& + ArrivalTime[i] + &\t&
+ ServiceTime[i] +&\t& + FinishTime[i] + &\t&
+ WholeTime[i] +&\t& + WeightWholeTime[i]);
AverageWT = all / realN //平均周转时间 = 周转总时间 / 作业个数
System.out.println(&平均周转时间:&+ AverageWT);
AverageWWT = all1 / realN //评均带权周转时间 = 带权周转总时间 / 作业个数
System.out.println(&平均带权周转时间:& + AverageWWT);
生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
------分隔线----------------------------
------分隔线----------------------------
积分:3412}

我要回帖

更多关于 html不受css影响 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信