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

📄 添加进程.txt

📁 CPU调度源码分类介绍。我做课程设计是用到的。拿出分享。
💻 TXT
字号:
void CCPUSchedule1Dlg::OnAddProcess() 
{
	// TODO: Add your control notification handler code here
	int IArriveOrder,IServiceTime,IPriority,ILittleTime;
	char CProcessName[20],CArriveOrder[10],CServiceTime[10],CPriority[10],CLittleTime[10];
	CString cstr_process;
	
	//通过控制变量取文本框内容
	if(UpdateData())
	{
		//UpdateData()为bool型变量,通过该函数限制输入数值的地方不能输入非数值类型的值
		m_cpname.GetWindowText(CProcessName,20);
	    m_carriveorder.GetWindowText(CArriveOrder,10);
	    m_cservicetime.GetWindowText(CServiceTime,10);
	    m_cpriority.GetWindowText(CPriority,10);
	    m_clittletime.GetWindowText(CLittleTime,10);
	
	    IArriveOrder=atoi(CArriveOrder);
        IServiceTime=atoi(CServiceTime);
        IPriority=atoi(CPriority);
	    ILittleTime=atoi(CLittleTime);
         
	    process[I].SetProcessName(CProcessName);
        process[I].SetArriveOrder(IArriveOrder); 
        process[I].SetServiceTime(IServiceTime);
        process[I].SetPriority(IPriority);
		process[I].SetLittleTime(ILittleTime);


		
		//将文本框中内容打包
		cstr_process.Format(" %2s %4d  %3d  %4d  %3d",CProcessName,
			IArriveOrder,IServiceTime,IPriority,ILittleTime);
		if(m_cpname.GetWindowText(CProcessName,20)==NULL)
		{
			m_AddProcess=0;
		}//因为到达次序,服务时间,优先级等数值数据由成员变量通过UpdateData()控制,
		//所以只需判断进程名不为空时可加入进程,否则不加入

		else
		{
			I++; //当有进程时加1
			m_AddProcess++;//m_AddProcess判断是否有进程,非0则有,否则没有进程
		}
	}//if 输入进程
	else
	{
		m_AddProcess=0;//没有输入进程
	}//else

	if(m_AddProcess==0)
	{
		MessageBox("警告! 您还没输入任何进程,请输入!");
	}//if
	else
	{
		m_showprocess.AddString(cstr_process);//将进程的内容显示在list中
		++StringCount;
	}//else
}




void CCPUSchedule1Dlg::OnDblclkList1() 
{
	// TODO: Add your control notification handler code here
	
}

void CCPUSchedule1Dlg::OnBtnRadom() 
{
	// TODO: Add your control notification handler code here
	int IArriveOrder,IServiceTime,IPriority;
	char CProcessName[20],CArriveOrder[10],CServiceTime[10],CPriority[10];
	CString cstr_pname;
    //,ILittleTime,CLittleTime[10]
	
	//随机命名
    cstr_pname.Format("P%d",I+1);
	m_cpname.SetWindowText(cstr_pname);      //随机的名字设置文本框内容
	m_cpname.GetWindowText(CProcessName,20);  //显示进程名称

	//随机生成其它数字
    srand((unsigned int)time(NULL));
	IArriveOrder=1+rand()%20;     //把到达次序设置在1到20之间
    IServiceTime=1+rand()%30;   //服务时间设置在1到30之间
	IPriority=1+rand()%20;   //优先级设置在1到20之间
	//ILittleTime=1+rand()%10;
			
	
     
	
	//itoa()函数是将一个整数值转换成一个字符串,
	//第一个参数是要转换的整数值,第二个参数是转换后存放的字符串,最后一个是转换的进制
	itoa(IArriveOrder,CArriveOrder,10); 
	itoa(IServiceTime,CServiceTime,10);
	itoa(IPriority,CPriority,10);
//	itoa(ILittleTime,CLittleTime,10);

	m_carriveorder.SetWindowText(CArriveOrder);
	m_cservicetime.SetWindowText(CServiceTime);
	m_cpriority.SetWindowText(CPriority);
	m_clittletime.SetWindowText("2");

		
	m_AddProcess++;//产生进程再添加进程时就不会出错
}

⌨️ 快捷键说明

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