Question: I've start this program and im stuck at one problem I cannot access a arraylist outside of my main method, from my turnaround time method.
I've start this program and im stuck at one problem I cannot access a arraylist outside of my main method, from my turnaround time method. Also I cannot move the turn around method into main because it is static, im unable to access to call .start, .wait and end.
-------------------------------------------------------------------------------------------------
public class Mgreen05P0001 {
public int priority; public int wait; public int end; public int start; public int turnAround;
public static void main(String[] args) { ArrayList
File file = new File("sample_input.txt");
try (BufferedReader br = new BufferedReader(new FileReader(file))) { String sCurrentLine; br.readLine(); //skip the line in the file // Process: Arrivetime: Bursttime: while ((sCurrentLine = br.readLine()) != null) { sCurrentLine = sCurrentLine.trim(); if (sCurrentLine.isEmpty()) //skip empty lines { continue; } //split the string into tokens based on white spaces String[] tokens = sCurrentLine.split("\\s+"); String name = tokens[0];//1st token is process name int arrivalTime = Integer.parseInt(tokens[1]); //2nd token is arrival time , convert it to int int burstTime = Integer.parseInt(tokens[2]); //3rd token is burst time processes.add(new Process(name, arrivalTime, burstTime)); } } catch (IOException e) { e.printStackTrace(); }
System.out.println("The following processes were read from the file"); for (int i = 0; i < processes.size(); i++) { Process p = processes.get(i); System.out.println("Process: " + p.getName() + " ArrTime: " + p.getArrivalTime() + " BurstTime: " + p.getBurstTime()); }
Process temp; for (int k = 0; k < processes.size(); k++) { for (int i = k + 1; i < processes.size(); i++) { if (processes.get(k).getArrivalTime() > processes.get(i).getArrivalTime() || (processes.get(k).getArrivalTime() == processes.get(i).getArrivalTime() && processes.get(k).getBurstTime() > processes.get(i).getArrivalTime())) { temp = processes.get(i); //processes.get(k) = processes.get(i); // processes.get(k).add(processes.get(i)); Collections.swap(processes, k, i); temp = processes.get(k); } } } System.out.println(); System.out.println("Processes After FCFS Sorting"); System.out.println("_________________________________________________________________"); System.out.println("Name\tArrival\tBrust\tPriority"); for (int i = 0; i < processes.size(); i++) { Process p = processes.get(i); System.out.println("Process: " + p.getName() + " ArrTime: " + p.getArrivalTime() + " BurstTime: " + p.getBurstTime()); //Console.Write(processes[i].name + "\t" + processes[i].arrivalTime + "\t" + processes[i].brust + "\t" + processes[i].priority); System.out.println(); } System.out.println("Gantt Chart"); System.out.println("Key: "); System.out.println("Waiting = '-'"); System.out.println("Burst = '*'"); System.out.println("_________________________________________________________________"); int counter = 0; for (int i = 0; i < processes.size(); i++) { //Console.Write(processes[i].name + "\t"); System.out.println(processes.get(i).getName() + "\t"); if (processes.get(i).getArrivalTime() < counter) { printSpaces(counter); } else { printSpaces(processes.get(i).getArrivalTime()); counter = processes.get(i).getArrivalTime(); } printHashes(processes.get(i).getBurstTime()); counter += processes.get(i).getBurstTime(); System.out.println(); } System.out.println("0123456789.....................................Time"); System.out.println("_________________________________________________________________");
}
public void turnaroundtime() { int clock = 0, totalturnAround = 0, totalwait = 0; for (int j = 0; j < processes.size(); j++) { if (processes.get(j).getArrivalTime() > clock) { //processes[i].start = processes[i].arrivalTime; start = processes.get(j).getArrivalTime(); clock += processes.get(j).getArrivalTime().start - processes.get(j).getArrivalTime(); clock += processes.get(j).getBurstTime();
} else { if (j > 0) { processes.get(j).start = processes.get(j - 1).end; } clock += processes.get(j).getBurstTime(); } if (processes.get(j).start > processes.get(j).getArrivalTime()) { processes.get(j).wait = processes.get(j).start - processes.get(j).getArrivalTime(); } else { processes.get(j).wait = 0; } processes.get(j).end = processes.get(j).start + processes.get(j).getBurstTime(); processes.get(j).turnAround = processes.get(j).wait + processes.get(j).getBurstTime(); totalwait += processes.get(j).wait; totalturnAround += processes.get(j).turnAround; } System.out.println("Name\tArrival\tBrust\tStart\tEnd\tWait\tturnaround"); for (int i = 0; i < processes.size(); i++) { System.out.println(processes.get(i).name + "\t" + processes.get(i).getArrivalTime() + "\t" + processes.get(i).getBurstTime() + "\t" + processes.get(i).start + "\t" + processes.get(i).end + "\t" + processes.get(i).wait + "\t" + processes.get(i).turnAround); System.out.println(); } double att = 0, awt = 0; awt = (double) totalwait / (double) processes.size(); att = (double) totalturnAround / (double) processes.size(); System.out.println("A.W.T= " + awt + "\t A.T.T= " + att);
}
public static void printSpaces(int counter) { for (int i = 0; i < counter; i++) { System.out.print("-"); } }
public static void printHashes(int brust) { for (int i = 0; i < brust; i++) { System.out.print("*"); } } }
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
