import java.util.*;
import java.lang.*;
include
struct fcfs{
char name[10];
float arrivetime;
float servicetime;
float starttime;
float finishtime;
float turnaroundtime;
}; //读取数字
fcfs a[100];
void input(fcfs *p,int N){
int i;
printf("输入程序名称 & 到达时间 & 服务时间:\n");
for(i=0;i<=N-1;i++){
printf("输入第%d次程序信息:\n",i+1);
scanf("%s%f%f",&p[i].name,&p[i].arrivetime,&p[i].servicetime);
}
} //打印输出
void Print(fcfs *p,float arrivetime,float servicetime,float starttime,float finishtime,float turnaroundtime,int N){
int k;
printf("运行顺序:");
printf("%s",p[0].name);
for(k=1;k printf("-->%s",p[k].name);}
printf("\n程序信息:\n");
printf("\nname\tarrive\tservice\tstart\tfinish\tturnaround\t\n");
for(k=0;k<=N-1;k++){
printf("%s\t%-.2f\t%-.2f\t%-.2f\t%-.2f\t%-.2f\t\n",p[k].name,p[k].arrivetime,p[k].servicetime,p[k].starttime,p[k].finishtime,p[k].turnaroundtime);
}
} //按时间排序
void sort(fcfs *p,int N){
for(int i=0;i<=N-1;i++){
for(int j=0;j<=i;j++) {
if(p[i].arrivetime < p[j].arrivetime){
fcfs temp;
temp=p[i];
p[i]=p[j];
p[j]=temp;
}
}
}
}
void deal(fcfs *p, float arrivetime,float servicetime,float starttime,float finishtime,float &turnaroundtime,int N){
int k;
for(k=0;k<=N-1;k++){
if(k==0){
p[k].starttime=p[k].arrivetime;
p[k].finishtime=p[k].arrivetime+p[k].servicetime;
}
else {
p[k].starttime=p[k-1].finishtime;
p[k].finishtime=p[k-1].finishtime+p[k].servicetime;
}
}
for(k=0;k<=N-1;k++){
p[k].turnaroundtime=p[k].finishtime-p[k].arrivetime;
}
}
void FCFS(fcfs *p,int N){
float arrivetime=0,servicetime=0,starttime=0,finishtime=0,turnaroundtime=0;
sort(p,N);
deal(p,arrivetime,servicetime,starttime,finishtime,turnaroundtime,N);
Print(p,arrivetime,servicetime,starttime,finishtime,turnaroundtime,N);
}
void main(){
int N;
printf("------先来先服务调度算法------\n");
printf("程序个数:\n");
scanf("%d",&N);
input(a,N);
FCFS(a,N);
}
你确定这是java???????Java中有printf、scanf?????
这有点像C语言吧,java输出语句一般是System.out.println();
你这个是cpp,不是java,请把文件保存成以 .cpp
结尾的文件,并用g++编译运行。
#include <stdio.h>
struct fcfs {
char name[10];
float arrivetime;
float servicetime;
float starttime;
float finishtime;
float turnaroundtime;
};
//读取数字
fcfs a[100];
void input(fcfs* p, int N)
{
int i;
printf("输入程序名称 & 到达时间 & 服务时间:\n");
for(i = 0; i <= N - 1; i++) {
printf("输入第%d次程序信息:\n", i + 1);
scanf("%s %f %f", &p[i].name, &p[i].arrivetime, &p[i].servicetime);
}
}
//打印输出
void Print(fcfs* p, float arrivetime, float servicetime, float starttime, float finishtime, float turnaroundtime, int N)
{
int k;
printf("运行顺序:");
printf("%s", p[0].name);
for(k=1;k printf("-->%s",p[k].name){
printf("\n程序信息:\n");
printf("\nname\tarrive\tservice\tstart\tfinish\tturnaround\t\n");
for(k = 0; k <= N - 1; k++) {
printf("%s\t%-.2f\t%-.2f\t%-.2f\t%-.2f\t%-.2f\t\n", p[k].name, p[k].arrivetime, p[k].servicetime,
p[k].starttime, p[k].finishtime, p[k].turnaroundtime);
}
}
}
//按时间排序
void sort(fcfs* p, int N)
{
for(int i = 0; i <= N - 1; i++) {
for(int j = 0; j <= i; j++) {
if(p[i].arrivetime < p[j].arrivetime) {
fcfs temp;
temp = p[i];
p[i] = p[j];
p[j] = temp;
}
}
}
}
void deal(fcfs* p, float arrivetime, float servicetime, float starttime, float finishtime, float& turnaroundtime, int N)
{
int k;
for(k = 0; k <= N - 1; k++) {
if(k == 0) {
p[k].starttime = p[k].arrivetime;
p[k].finishtime = p[k].arrivetime + p[k].servicetime;
} else {
p[k].starttime = p[k - 1].finishtime;
p[k].finishtime = p[k - 1].finishtime + p[k].servicetime;
}
}
for(k = 0; k <= N - 1; k++) {
p[k].turnaroundtime = p[k].finishtime - p[k].arrivetime;
}
}
void FCFS(fcfs* p, int N)
{
float arrivetime = 0, servicetime = 0, starttime = 0, finishtime = 0, turnaroundtime = 0;
sort(p, N);
deal(p, arrivetime, servicetime, starttime, finishtime, turnaroundtime, N);
Print(p, arrivetime, servicetime, starttime, finishtime, turnaroundtime, N);
}
int main()
{
int N;
printf("------先来先服务调度算法------\n");
printf("程序个数:\n");
scanf("%d", &N);
input(a, N);
FCFS(a, N);
return 0;
}