Member 14867174 Ответов: 1

Как я могу создать многоуровневую программу алгоритма очереди?


Помогите, как я могу создать многоуровневую программу алгоритма очереди?
Я пробовал, но он падает, не строится...
Было бы хорошо, если бы это было на другом языке.

Вот фрагмент кода (c++):
//Enter Number of Process (up to 20)
cout<<"\n Enter the number of Processes: ";
cin>>n;


//INPUT Arrival, Burst, and Priority
    cout<<"\n Enter arrival time of process: \n";
    for(i=0;i<n;i++)
    {
    
	  do{
    	
      cout<<"  P"<<i+1<<": ";
	  cin>>a[i];
	  
	  		inputerror = cin.fail();
			if(inputerror)
			{
				cin.clear();
				cin.ignore(1000, '\n');
			}
			cin.sync();
	  
	  		}while((inputerror));
    }
    
    cout<<"\n Enter burst time of process: \n";
    for(i=0;i<n;i++)
    {
    	
      do{
		
      cout<<"  P"<<i+1<<": ";	
      cin>>b[i];
      
      		inputerror = cin.fail();
			if(inputerror)
			{
				cin.clear();
				cin.ignore(1000, '\n');
			}
			cin.sync();
	  
	  		}while((inputerror));
    }
    
    cout<<"\n Enter priority of process (1-FP/2-BP):  \n";
    for(i=0;i<n;i++)
    {
    	
      do{
	  
      cout<<"  P"<<i+1<<": ";
      cin>>p[i];
      
      		inputerror = cin.fail();
			if(inputerror)
			{
				cin.clear();
				cin.ignore(1000, '\n');
			}
			
			cin.sync();
	  
	  		}while((inputerror));
    }


//Enter Algorithm
    cout<<endl;
    cout<<" Algorithm: "<<endl
		<<"  [1] FCFS"<<endl
		<<"  [2]SJF-P"<<endl
		<<"  [3]SJF-NP"<<endl
		<<"  [4]P-P"<<endl
		<<"  [5]P-NP"<<endl
		<<"  [6]RR"<<endl
		<<" -------------"<<endl;
     
	 do{
	  
      cout<<" Enter Alogrithm Number: ";
      cin>>algo;
      
      		inputerror = cin.fail();
				if(inputerror)
				 {
				 	cin.clear();
					cin.ignore(1000, '\n');
				 }
				else if (algo<1)
				 {
				 	cin.clear();
					cin.ignore(1000, '\n');
				 }
				 else if (algo>6)
				 {
				 	cin.clear();
					cin.ignore(1000, '\n');
				 }
				 
				 cin.sync();
	  
	  		}while((inputerror)||(algo<1)||(algo>6));
    

//Other Values
    do{
	  
      cout<<" Foreground Process: ";
      cin>>forground_process;
      
      		inputerror = cin.fail();
			if(inputerror)
			{
				cin.clear();
				cin.ignore(1000, '\n');
			}
			
			cin.sync();
	  
	  		}while((inputerror));
	  		
	do{
      
      
      cout<<" Quantum: ";
      cin>>quantum;
      
      		inputerror = cin.fail();
			if(inputerror)
			{
				cin.clear();
				cin.ignore(1000, '\n');
			}
			
			cin.sync();
	  
	  		}while((inputerror));
	  		
	do{
	  
      cout<<" Background Process: ";
      cin>>background_process;
      
      		inputerror = cin.fail();
			if(inputerror)
			{
				cin.clear();
				cin.ignore(1000, '\n');
			}
			
			cin.sync();
	  
	  		}while((inputerror));


/* I DON'T KNOW HOW TO SHOW THIS, HELP...

Gantt Chart
  <Gantt Chart here>

Table
  <Populated Table>

TAT Total: ?
TAT Average: ?
WT Total: ?
WT Average: ? 

*/

repeatConfirm();


Что я уже пробовал:

Кодирование на C++, но он падает, не строится...

Rick York

Если он не строится, то он не может потерпеть крах. Вы должны построить его, прежде чем он сможет работать.

Как дикое предположение, убедитесь, что a, b и p имеют размер больше, чем значение n. Если они являются векторами, то инициализируются ли они? Если нет, то используйте push_back для сохранения значений.

Patrice T

Дайте сообщения об ошибках!
Мы не можем компилировать ваш код snipset

1 Ответов

Рейтинг:
0

OriginalGriff

Если это весь ваш код, то нет, он не будет строиться: вам не хватает #include заявления, любые using строки и определение функции для запуска этого кода: минимальная программа на языке C++ в значительной степени такова:

#include <iostream>
using namespace std;

int main()
    {
    cout<<"Hello World";
    return 0;
    }

И даже если вы дадите нам полные сообщения об ошибках, которые компилятор генерирует при попытке построить приложение, это не очень поможет без этой фактической структуры на месте.

Так что все будет зависеть от тебя.
Начните с просмотра сообщений об ошибках компилятора: они будут иметь вид
Filename.cpp:Line number:Column number: Message
Например:
main.cpp:17:5: error: expected ‘;’ before ‘return’
Это говорит о том, что "main.cpp" есть проблема в строке 17, столбец 5: отсутствует точка с запятой перед началом строки кода.
Поэтому используйте свой редактор, чтобы перейти к соответствующей строке и посмотреть на код и то, что находится непосредственно над ним.

Сделайте это с вашими сообщениями об ошибках, и большинство из них должно быть довольно очевидным: если это не так, то спросите еще раз, но на этот раз покажите нам соответствующие фрагменты вместе с сообщением об ошибке и укажите, в какой строке отображается ошибка.

Мы не можем исправить проблемы компиляции с кодом, который мы не можем скомпилировать!


Member 14867174

Я буквально знаю это, мой вопрос находится ниже кода сниппета.

OriginalGriff

Который не будет компилироваться или запускаться.
И пока это не произойдет, нечего "объяснять" - бессмысленно пытаться говорить о коде, который не компилируется чисто.

Думайте об этом как об обучении кого-то вождению: если у автомобиля отсутствует половина двигателя, два колеса и водительское сиденье, вы не можете действительно многому научиться. Вам нужно починить машину, прежде чем вы сможете начать давать уроки!