资源简介
操作系统实验,用一个MFC界面实现了页面置换算法,功能挺强大的,希望对大家有用
代码片段和文件信息
#include “stdafx.h“
#include“linkQueue.h“
int Clinkqueue::QueueEmpty()const//判断队列是否为空
{
return front==NULL&&rear==NULL;
}
int Clinkqueue::GetQueueLength() const//获取队列长度
{
return count;
}
void Clinkqueue::EnQueue(CString nameint supperint needtime)//入队依次将新增的结点插到队尾
{
PCB *p;
p=new PCB;
CTime t=CTime::GetCurrentTime();//获取当前时间
CString NowTime=t.Format(“%H:%M:%S“);
p->name=name;
p->atime=NowTime;
p->ntime=needtime;
p->supper=supper;
p->state=“等待“;
p->rtime=0;
p->Number=1;
p->next=NULL;
if(!QueueEmpty())
{
rear->next=p;
rear=p;
}
else
front=rear=p;
count++;
}
void Clinkqueue::DeQueue()//删除队头元素
{
PCB *p;
p=front;
if(QueueEmpty())
return;
front=p->next;
if(p==rear)
rear=NULL;
count--;
delete p;
}
int Clinkqueue::CheckPCB()//检查队头元素时间片到时若运行时间到则删除队头若未到则将队头插到队尾
{
PCB *p=front;
if(QueueEmpty())
{
AfxMessageBox(“队列为空“);
return 0;
}
else
{
if(p->rtimentime)//进程未完成
{
if(rear!=front)//不止一个结点时
{
rear->next=p;
front=p->next;
rear=p;
rear->next=NULL;
rear->state=“等待“;//将其原先的运行状态置回等待状态
}
front->state=“运行中...“;
}
else
{
front=p->next;
if(rear==p)
rear=NULL;
count--;
delete p;
}
return 1;
}
}
CString Clinkqueue::GetProName(PCB *p)const
{
return p->name;
}
int Clinkqueue::GetProSupper(PCB *p)const
{
return p->supper;
}
int Clinkqueue::GetProNTime(PCB *p)const
{
return p->ntime;
}
int Clinkqueue::GetProRTime(PCB *p)const
{
return p->rtime;
}
PCB * Clinkqueue::GetFrontPointer()const//获取队头指针
{
return front;
}
PCB * Clinkqueue::GetRearPoint()const//获取队尾指针
{
return rear;
}
void Clinkqueue::SetRearPoint(PCB * p)
{
rear=p;
}
void Clinkqueue::SetFrontPoint(PCB * p)
{
front=p;
}
CString Clinkqueue::GetATime(PCB *p) const//获取某个结点的到达时间
{
return p->atime;
}
/*void Clinkqueue::JumpQueue(CString name int supper int needtime)//按优先数大小插队
{
PCB *p;
p=new PCB;
CTime t=CTime::GetCurrentTime();//获取当前时间
CString NowTime=t.Format(“%H:%M:%S“);
p->name=name;
p->supper=supper;
p->atime=NowTime;
p->ntime=needtime;
p->rtime=0;
p->state=“等待“;
p->next=NULL;
if(!queueempty())
{
if(p->supper>front->supper)//插入到队首
{
p->next=front;
front=p;
}
else
{
PCB *q*r;
q=front;
r=front;
while(q&&p->supper<=q->supper)
q=q->next;
if(q==NULL)//插入到队尾
{
rear->next=p;
rear=p;
}
else
{
while(r->next!=q)//插到适当位置
r=r->next;
r->next=p;
p->next=q;
}
}
}
else
front=rear=p;//生成第一个结点
count++;//队列长度加1
}*/
void Clinkqueue::SetMaxSupper()//将优先数最高的结点设为队头结点
{
if(!QueueEmpty())//队列不为空
{
front->state=“等待“;
PCB *p*q;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 22594 2008-11-23 02:34 Process\Debug\li
文件 323584 2008-12-03 00:03 Process\Debug\Process.exe
文件 14630 2008-11-23 02:34 Process\Debug\Process.obj
文件 418816 2008-12-03 00:03 Process\Debug\Process.pdb
文件 3780 2008-12-03 00:01 Process\Debug\Process.res
文件 61295 2008-12-03 00:03 Process\Debug\ProcessDlg.obj
文件 105692 2008-11-23 02:34 Process\Debug\StdAfx.obj
文件 372736 2008-12-03 00:03 Process\Debug\vc60.pdb
文件 4732 2008-11-23 02:34 Process\li
文件 1260 2008-11-23 02:34 Process\li
文件 37960 2008-12-03 00:01 Process\Process.aps
文件 2384 2008-12-06 23:21 Process\Process.clw
文件 2159 2008-11-11 00:28 Process\Process.cpp
文件 4304 2008-10-29 15:57 Process\Process.dsp
文件 520 2008-10-28 13:18 Process\Process.dsw
文件 1335 2008-10-28 13:06 Process\Process.h
文件 99328 2008-12-06 23:21 Process\Process.ncb
文件 55808 2008-12-06 23:21 Process\Process.opt
文件 248 2008-12-06 23:21 Process\Process.plg
文件 7898 2008-12-03 00:01 Process\Process.rc
文件 878 2008-12-01 23:56 Process\Process.sln
..A..H. 7168 2008-12-01 23:56 Process\Process.suo
文件 4820 2008-12-01 23:56 Process\Process.vcproj
文件 1427 2008-12-01 23:56 Process\Process.vcproj.D5FB82E11FE74B5.Administrator.user
文件 16804 2008-12-03 00:03 Process\ProcessDlg.cpp
文件 1914 2008-11-11 15:35 Process\ProcessDlg.h
文件 3597 2008-10-28 13:06 Process\ReadMe.txt
文件 1078 2008-10-28 13:06 Process\res\Process.ico
文件 399 2008-10-28 13:06 Process\res\Process.rc2
文件 1329 2008-11-01 14:07 Process\resource.h
............此处省略9个文件信息
- 上一篇:Windows+C语言构建网络聊天室内含源程序
- 下一篇:DNFC++辅助开源
相关资源
- win7风格的mfc界面美化源代码
- MFC 绘制指针式钟表
- BCGControlBar Professional v.28 Full Source
- MFC游戏编程几款经典小游戏的详细代
- 网络调试助手C++源码(VS 2008开发)
- MFC 官方API文档 MSDN原版
- MFC多文档应用程序同时显示两个视图
- C++MFC数据库职工信息管理系统,实现
- MFC画圆自定义|位置|半径|边界和内部
- 学生成绩管理系统MFC版
- 网络编程MFC 实验四 FTP客户端功能实现
- vs2010编写的图书馆管理系统MFC_Librar
- mfc基于对话框编程的学生信息管理系
- mfc绘制任意图形,实现图形按比例缩
- MFC可视化界面ping程序
- 基于c++的图书馆图书管理系统
- MFC雷电小游戏
- OpenCV打开摄像机显示在MFC窗口工程源
- MFC控件调用百度地图
- MFC画图板,可以画一些基本图形,如
- VC++ MFC 串口通信20个经典源码合集
- USB识别 HID识别 MFC代码
- MFC 火车售票系统的模拟 简单的学习
- MFC莫尔斯电码的编码发声
- MFC画时钟自适应大小
- 一个MFC做的串口通信的好,是我单位
- 基于DirectShow的MFC视频播放器
- 图像处理方面学习的好MFC显示直方图
- C++ MFC ATM系统
- MFC拼图游戏
评论
共有 条评论