⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jincengdiaodu.cpp

📁 进程调度主要是操作系统中用于模仿操作的进程的
💻 CPP
字号:
#include<iostream.h>
#define N 100
void main()
{
	int key=1,key1=1,key2=1,jishu,jishu1;
	int i,j,i1,i2,n1,n2,n3,n4,n,q,add,n0;
	int arrive[N],run[N],start[N],over[N];
	double W[N],T[N];
	int t1,t2;
	char t,s,s1,shuchu[N];



	cout<<"请输入作业到达的时刻(以100结束):"<<endl;
	cin>>t1;

	i1=0;
	while(t1!=100)
	{
		arrive[i1]=t1;
		i1++;
		cin>>t1;
	}
	cout<<endl;


	cout<<"请输入作业运行的时间(以100结束):"<<endl;
	cin>>t2;

	i2=0;
	while(t2!=100)
	{
		run[i2]=t2;
		i2++;
		cin>>t2;
	}
	cout<<endl;
	while(key2)
	{
	       while(key)
		   {
			     cout<<"是否需要查看算发表,是请输入'Y',否则输入'N'"<<endl;
	             cout<<"-";
	             cin>>s;
                 if(s=='Y'||s=='y')
				 {
		                 cout<<"***************算发表***************"<<endl;
		                 cout<<"**                                **"<<endl;
		                 cout<<"**            1-FCFS              **"<<endl;
		                 cout<<"**            2-SJF               **"<<endl;
		                 cout<<"**            3-RR                **"<<endl;
				         cout<<"**            #-退出              **"<<endl;
		                 cout<<"**                                **"<<endl;
		                 cout<<"************************************"<<endl;
		                 cout<<"请选择您要使用的算法:"<<endl;
		                 cout<<"-";
	                     cin>>t;
			 	         key=0;


				 }
	             else if(s=='N'||s=='n')
				 {
		                 cout<<"请选择您要使用的算法:"<<endl;
		                 cout<<"-";
	                     cin>>t;
				         key=0;
				

				 }
	             else
				 {
		                 cout<<"输入错误请重新输入:"<<endl;
				         cout<<"-";
				         cin>>s;
				         key=1;
				 }
		   }



	       while(t!='#')
		   {
		         if(t=='1')
				 {
			            n1=0;
			            start[n1]=0;



			            cout<<endl;
			            cout<<"到达时刻:";
	                    for(i=0;i<i1;i++)
						{
		                      cout<<" "<<arrive[i]<<"  ";
						}
	                    cout<<endl;

	                    cout<<"运行时间:";
	                    for(i=0;i<i2;i++)
						{
		                      cout<<" "<<run[i]<<"  ";
						}



			            n1++;
			            for(i=1;i<i1;i++)
						{
				               start[n1]=start[n1-1]+run[i-1];
				
				               n1++;
						}
			            cout<<endl;

			            cout<<"开始时刻:";
			            for(i=0;i<n1;i++)
						{
		                       cout<<" "<<start[i]<<"  ";
						}
	                    cout<<endl;




			            n2=0;
			            for(i=1;i<n1;i++)
						{
				                over[n2]=start[i];
				                n2++;
						}
			            over[n2]=start[n1-1]+run[i2-1];
			            n2++;

			            cout<<"完成时刻:";
			            for(i=0;i<n2;i++)
						{
		                         cout<<" "<<over[i]<<"  ";
						}
	                    cout<<endl;




			            n3=0;
			            for(i=0;i<i1;i++)
			            {
				            T[n3]=over[i]-arrive[i];
				            n3++;
			            }

			            cout<<"T(周转时间):";
			            for(i=0;i<n3;i++)
			            {
		                     cout<<" "<<T[i]<<"  ";
			            }
	                    cout<<endl;


			            n4=0;
			            for(i=0;i<n3;i++)
			            {
				            W[n4]=T[i]/run[i];
				            n4++;
			            }

			            cout<<"W(带权周转时间):";
			            for(i=0;i<n4;i++)
			            {
		                     cout<<" "<<W[i]<<"  ";
			            }
	                    cout<<endl;

			            cout<<endl;
			            cout<<"是否需要继续?-是-Y,-否-N!"<<endl;
			            cin>>s1;
						if(s1=='Y')
						{

							t='#';
							key2=1;
							key=1;
							break;
						}
						else if(s1=='N')
						{
							t='#';
							key2=0;
							key=0;
							break;
						}
						else
						{
							cout<<"错误,请重新输入!"<<endl;
							cin>>s1;
						}

		            }
		            else if(t=='2')
		            {
			            for(i=1;i<i2-1;i++)
			            {
				            for(j=i2-2;j>=i;j--)
				            {
					            if(run[j+1]<run[j])
					            {
						            jishu=run[j+1];
						            run[j+1]=run[j];
					            	run[j]=jishu;
						            jishu1=arrive[j+1];
	            					arrive[j+1]=arrive[j];
				            		arrive[j]=jishu1;
            					}
			            	}
			            }

			            cout<<endl;
            			cout<<"到达时刻:";
	                    for(i=0;i<i1;i++)
		            	{
		                      cout<<" "<<arrive[i]<<"  ";
			            }
	                    cout<<endl;

	                    cout<<"运行时间:";
	                    for(i=0;i<i2;i++)
			            {
		                     cout<<" "<<run[i]<<"  ";
			            }
	        



			            n1=0;
			            start[n1]=0;



			            n1++;
			            for(i=1;i<i1;i++)
		            	{
			            	start[n1]=start[n1-1]+run[i-1];
			            	n1++;
		            	}
			            cout<<endl;

			            cout<<"开始时刻:";
			            for(i=0;i<n1;i++)
		            	{
		                     cout<<" "<<start[i]<<"  ";
		            	}
	                    cout<<endl;




		            	n2=0;
		            	for(i=1;i<n1;i++)
		            	{
			            	over[n2]=start[i];
			            	n2++;
			            }
		            	over[n2]=start[n1-1]+run[i2-1];
		            	n2++;

			            cout<<"完成时刻:";
			            for(i=0;i<n2;i++)
			            {
		                     cout<<" "<<over[i]<<"  ";
			            }
	                    cout<<endl;




		            	n3=0;
		            	for(i=0;i<i1;i++)
		            	{
			            	T[n3]=over[i]-arrive[i];
				            n3++;
		            	}

		            	cout<<"T(周转时间):";
		            	for(i=0;i<n3;i++)
		            	{
		                     cout<<" "<<T[i]<<"  ";
			            }
	                    cout<<endl;


		            	n4=0;
			            for(i=0;i<n3;i++)
			            {
			            	W[n4]=T[i]/run[i];
			            	n4++;
		            	}

		            	cout<<"W(带权周转时间):";
			            for(i=0;i<n4;i++)
			            {
		                     cout<<" "<<W[i]<<"  ";
		            	}
	                    cout<<endl;


		            	cout<<endl;
			            cout<<"是否需要继续?-是-Y,-否-N!"<<endl;
			            cin>>s1;
						if(s1=='Y')
						{

							t='#';
							key2=1;
							key=1;
							break;
						}
						else if(s1=='N')
						{
							t='#';
							key2=0;
							key=0;
							break;
						}
						else
						{
							cout<<"错误,请重新输入!"<<endl;
							cin>>s1;
						}
		            }
		            else if(t=='3')
		            {
		            	cout<<"请输入时间片单位q"<<endl;
			            cout<<"q=";
			            cin>>q;
		            	add=0;

                        for(i=0;i<i2;i++)
		            	{
				             add=add+run[i];
		            	}

			            n=0;

			            if(q==1)
			            {
			               shuchu[n]='A';
			               run[0]--;
			               n++;
			               shuchu[n]='B';
			               run[1]--;
			               n++;
			               shuchu[n]='C';
			               run[2]--;
			               n++;
			               shuchu[n]='D';
			               run[3]--;
			               n++;
			               shuchu[n]='E';
			               run[4]--;
			               n++;
			               n0=0;

			               while(key1)
			               {
			                       if(run[0]!=0)
					               {
				                        shuchu[n]='A';
						            	run[0]--;
				                        n++;
							            key1=1;
				   
					               }
			                       else
					               {
				                        n0++;
					               }

					              if(run[1]!=0)
					               {
				                        shuchu[n]='B';
							            run[1]--;
				                        n++;
							            key1=1;
				   
					               }
			                       else
					               {
				                        n0++;
					               }

					               if(run[2]!=0)
					               {
				                        shuchu[n]='C';
							            run[2]--;
				                        n++;
							            key1=1;
				   
					               }
			                       else
					               {
				                        n0++;
					               }


					               if(run[3]!=0)
					               {
				                        shuchu[n]='D';
							            run[3]--;
				                        n++;
							            key1=1;
				   
					               }
			                       else
					               {
				                        n0++;
					               }


					               if(run[4]!=0)
								   {
				                        shuchu[n]='E';
							            run[4]--;
				                        n++;
							            key1=1;
				   
								   }
			                       else
								   {
				                        n0++;
								   }
					   		   while(n0!=7)
					   		   {
						   		   key=1;
						   		   break;
					   		   }
					   		   while(n0==7)
					   		   {
					       		   key1=0;
						   		   break;
					   		   }
			               }

			               cout<<"时间片轮转的次序为:";
			               for(i=0;i<add;i++)
			               {
				               cout<<"   "<<shuchu[i];
			               }
			               cout<<endl;

			               cout<<endl;
			               cout<<"是否需要继续?-是-Y,-否-N!"<<endl;
			               cin>>s1;
						  if(s1=='Y')
						  {

							t='#';
							key2=1;
							key=1;
							break;
						  }
						 else if(s1=='N')
						 {
							t='#';
							key2=0;
							key=0;
							break;
						 }
						 else
						 {
							cout<<"错误,请重新输入!"<<endl;
							cin>>s1;
						 }

			            }
			            else if(q==2)
			            {
			            }
			            else
			            {
				            cout<<"error"<<endl;
				            break;
		            	}
	
	
	
		            }
		      
		          
	            }
     }

	while(t=='#')
	{
		cout<<endl;
		cout<<"欢迎再次使用!"<<endl;
		break;
	}


}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -