操作系统FIFO算法
来源:互联网 发布:求淘宝好的国产手办店 编辑:程序博客网 时间:2024/06/03 16:49
FIFO C语言动画的形式打印,在打印之前确保你的黑窗口屏幕的缓冲区宽度够大,请手动设置
右键黑窗口 属性 布局 屏幕缓冲区大小 缓冲区宽度设置大于200,驻留区默认为4,随机数字为12个,随机大小自己设置
PS:作品太菜,仅供参考
#include<stdio.h>#include<string.h>#include<process.h>#include<windows.h>#include<time.h>#define MAX 12#define FIND 1#define UNFIND 0/** 辅助函数 可以无视 */void goxy(int x,int y){ COORD pos; pos.X = x; pos.Y = y; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);}/** 辅助函数 可以无视*/void color(int x){ switch(x) { case 0: SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE); break; case 1: SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED); break; case 2: SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN); break; case 3: SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE | FOREGROUND_GREEN); break; case 4: SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE | BACKGROUND_INTENSITY); break; case 5: SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED | BACKGROUND_INTENSITY); break; case 6: SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN| BACKGROUND_INTENSITY); break; case 7: SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE | FOREGROUND_GREEN | BACKGROUND_INTENSITY); break; }}int checkdata[MAX];int zhuliu[4];int wrap = 0;/** 在驻留区中搜索 */int zhuliu_search(int temp,int x){ int i; for(i=0; i<4; i++) { if(temp == zhuliu[i]) // 如果找到就返回 FIND { if(i) { color(0); goxy(x*7+3,i*4+2); printf("%d",zhuliu[i-1]); } color(5); goxy(x*7+3,i*4+6); printf("%d",temp); color(0); Sleep(500); return FIND; } else if(zhuliu[i] >= 0) { if(i) { color(0); goxy(x*7+3,i*4+2); printf("%d",zhuliu[i-1]); } color(4); goxy(x*7+3,i*4+6); printf("%d",zhuliu[i]); color(0); Sleep(500); } else { if(i && zhuliu[i-1] >=0 ) { color(0); goxy(x*7+3,i*4+2); printf("%d",zhuliu[i-1]); } } } if( zhuliu[i-1] >=0 ) { color(0); goxy(x*7+3,i*4+2); printf("%d",zhuliu[i-1]); } Sleep(1000); color(0); return UNFIND;}void hide(){ CONSOLE_CURSOR_INFO cci = {1,0}; SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cci);}int main(){ hide(); int i,j; srand(time(NULL)); for(i=0; i<MAX; i++) { checkdata[i] = rand()%6+1; } color(0); for(i=0; i<MAX; i++) { goxy(i*7+3+!i,2); printf("%d",checkdata[i]); } goxy(0,4); printf("+"); for( i = 0 ; i < 4 ; i ++) { zhuliu[i] = -1; goxy(0,i*4+5); printf("|"); goxy(0,i*4+6); printf("|"); goxy(0,i*4+7); printf("|"); goxy(0,i*4+8); printf("+"); } for(i=0; i<MAX; i++) { goxy(i*7+1,4); printf("------+"); for(j=0; j<4; j++) { goxy((i+1)*7,j*4+5); printf("|"); goxy((i+1)*7,j*4+6); printf("|"); goxy((i+1)*7,j*4+7); printf("|"); goxy(i*7+1,j*4+8); printf("------+"); } for(j=0; j<4; j++) { goxy(i*7+3,j*4+6); if(zhuliu[j] >= 0)printf("%d",zhuliu[j]); } int flag = zhuliu_search(checkdata[i],i); if( flag == UNFIND ) { zhuliu[wrap++] = checkdata[i]; if(wrap >= 4)wrap %= 4; } if(!flag) for(j=0; j<4; j++) { if(zhuliu[j] == checkdata[i]) { goxy(i*7+3,j*4+6); color(6); printf("%d",checkdata[i]),color(0); } } goxy(i*7+4,22); if(flag == UNFIND)printf("X"); Sleep(1000); } goxy(0,25);return 0;}
阅读全文
0 0
- 操作系统FIFO算法
- 操作系统FIFO算法
- 模拟操作系统FIFO置换算法
- 操作系统页面置换算法之FIFO,LRU
- 操作系统——页置换算法(FIFO,OPT,LRU)
- 转载:操作系统页面置换算法(opt,lru,fifo,clock)实现
- 操作系统页面置换FIFO算法中的Belady现象
- 操作系统页面置换算法(opt,lru,fifo,clock)实现
- FIFO算法
- 操作系统实验四 页面置换算法(fifo 算法代码------页面置换代码集合)
- 操作系统页面置换算法之先进先出(FIFO)算法
- 用c++写的 操作系统 页面调度算法 FIFO,LRU,CLOCK
- 操作系统模拟页面调度算法(OPT、FIFO、LRU)演示(vc6.0调试通过)
- 操作系统虚拟内存中的四种典型页替换算法(OPT,LRU,FIFO,Clock)
- 操作系统中磁盘调度算法(FIFO,SSTF,SCAN,C-SCAN)
- 操作系统虚拟内存中的四种典型页替换算法(OPT,LRU,FIFO,Clock)
- 操作系统模拟页面调度算法(OPT、FIFO、LRU)演示(vc2010调试通过)(二)
- 操作系统的页面置换C++算法:OPT FIFO LRU CLOCK 计算缺页率
- Java基础知识之容器(一:容器整体框架探索)
- 搭建nginx rtmp直播服务器,ffmpeg模拟推流
- 关于Fragment重叠问题(二)
- 判断checkbox是否被选中
- selinux-编写策略
- 操作系统FIFO算法
- windows7下启动mysql服务出现服务名无效的原因及解决方法
- 如何成为大神
- 布隆过滤器
- File类 基础知识点
- 常有小笔记
- eclipse修改代码中乱码问题
- fileEncodingChange工具简介
- OSG用cmake编译后,在生成解决方案期间所产生的问题