Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // testing.cpp : This file contains the 'main' function. Program execution begins and ends there.
- //
- #include "pch.h"
- #include <iostream>
- #include <string>
- #include <fstream>
- #include <sstream>
- #include<queue>
- using namespace std;
- struct job{
- int position = 0;
- int TT = 0;
- int remain = 0;
- int wait = 0;
- };
- string A[100];
- int top = -1;
- int back = -1;
- bool isempty = true;
- queue<job> myq;
- void readFile(const char* filename) {
- ifstream inf(filename);
- string data;
- int i = 0;
- if (!inf) {
- cout << "the file is not open" << endl;
- }
- else {
- job j;
- int pos = 1;
- while (!inf.eof()) {
- getline(inf, data, ' ');
- j.position = pos;
- j.TT = stoi(data);
- j.remain = j.TT;
- myq.push(j);
- }
- }
- inf.close();
- }
- void outputFile(const char * filename) {
- ofstream out(filename);
- int size = myq.size();
- if (out) {
- for (int i = 1; i <= myq.size(); i++) {
- out << "job " << i << ", burst time: " << myq.front().TT << ", waiting time: " << myq.front().wait<<endl;
- myq.pop();
- }
- out << "job " << size << ", burst time: " << myq.front().TT << ", waiting time: " << myq.front().wait << endl;
- }
- out.close();
- }
- int main()
- {
- readFile("input2.txt");
- bool workDone = false;
- int WT = 0;
- int counter = 0;
- while (!workDone) {
- int numFinished = 0;
- for (int i = 0; i < myq.size();i++) {
- if (myq.front().remain == 0) {
- numFinished++;
- myq.push(myq.front());
- myq.pop();
- }
- else if (myq.front().remain <= 2) {
- myq.front().wait = WT;
- WT = WT + myq.front().remain;
- myq.front().remain = 0;
- numFinished++;
- myq.push(myq.front());
- myq.pop();
- }
- else {
- myq.front().wait = WT;
- WT = WT + 2;
- myq.front().remain -= 2;
- myq.push(myq.front());
- myq.pop();
- }
- }
- if (numFinished == myq.size()) {
- workDone = true;
- }
- else {
- WT = WT - 2;
- }
- }
- outputFile("output2.txt");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement