java 操作系统 模拟 daima_求C/C++或java写的比较简单的操作系统的模拟程序
展开全部
#include
#include
#include "Graphics.h"
#include
using namespace std;
const int FDF=-2;
const int FFF=-1;
const int N=100;//存储空间
int fnum;//文件数量
struct FILEINFO{
char name[10];
int length;
int index[10];
};
FILEINFO file[10];
char DISK[N]; int blankspace;
void Graphindex(int last);
void printDISK()
{
int i;
cout<
for(i=0;i
cout<
cout<
cout<
cout<
cout<
}
}
void write(char *tmpname,int tmplength)
{
int i,j;
//复制文件名和文件块个数
strcpy(file[fnum].name,tmpname);
file[fnum].length=tmplength;
//存文件
for(i=0;i
for(j=0;j
if(DISK[j]=='N'){
file[fnum].index[i]=j;//首个空e69da5e887aa3231313335323631343130323136353331333264626531闲块为文件开始块
DISK[j]='Y';
break;
}
}
}
blankspace-=tmplength;//改变空闲块个数
fnum++;
cout<
}
void insert(char *tmpname,int insertpoint)
{
int i;
int last;
//寻找要执行插入操作的文件,将其数组下标存入last
for(i=0;i
if(strcmp(file[i].name,tmpname)==0){
last=i;
break;
}
}
for(i=0;i
file[last].index[file[last].length-i*1]=file[last].index[file[last].length-(i+1)*1];
}
for(i=0;i
if(DISK[i]=='N'){
file[last].index[insertpoint]=i;
DISK[i]='Y';
break;
}
}
//改变空闲块个数与文件长度
file[last].length++;
blankspace--;
cout<
}
void printindex(char *tmpname)
{
int last,i;
for(i=0;i
if(strcmp(file[i].name,tmpname)==0){
last=i;
break;
}
}
cout<
cout<
for(i=0;i
cout<
}
Graphindex(last);
}
void itol(int i)
{
LPCTSTR yy;
char zz[10];
sprintf(zz, "%d", i);
//itoa(i,zz,10);
yy = LPCTSTR( zz );
//moveto(x+i*2,y+20);
moverel(25,9);
outtext(yy);
//return yy;
}
void ctol(char *c)
{
LPCTSTR yy;
yy = LPCTSTR( c );
moverel(0,0);
outtext(yy);
}
void Graphindex(int last)
{
int i,xx=100,yy=100,x=400,y=50;
initgraph(640, 480);
setfillstyle(SOLID_FILL,WHITE);
floodfill(5,5,WHITE);
setcolor(BLACK);
moveto(110,50); ctol(file[last].name);
outtextxy(150,50,"索引表");
outtextxy(115,80,"逻辑"); outtextxy(175,80,"物理");
rectangle(xx,yy-30,xx+60,yy); rectangle(xx+60,yy-30,xx+120,yy);
for(i=0;i
rectangle(xx,yy+i*30,xx+60,yy+(i+1)*30);
moveto(xx,yy+i*30); itol(i);
rectangle(xx+60,yy+i*30,xx+120,yy+(i+1)*30);
moveto(xx+60,yy+i*30); itol(file[last].index[i]);
moveto(xx+130,yy+i*30+15); lineto(x+(file[last].index[i]/20)*20+5,y+(file[last].index[i]%20)*20+5);
}
ellipse(x+45,25,0,360,60,15);
ellipse(x+45,440,180,360,60,15);
line(x-15,25,x-15,440);
line(x+105,25,x+105,440);
for(i=0;i
if(DISK[i]=='Y'){
setcolor(RED);
rectangle(x+(i/20)*20,y+(i%20)*20,x+(i/20)*20+10,y+(i%20)*20+10);
}else setcolor(GREEN);
rectangle(x+(i/20)*20,y+(i%20)*20,x+(i/20)*20+10,y+(i%20)*20+10);
}
getch();
closegraph();
}
void Graph()
{
int i,x=300,y=50;
initgraph(640, 480);
setfillstyle(SOLID_FILL,WHITE);
floodfill(5,5,WHITE);
setcolor(BLACK);
ellipse(x+45,25,0,360,60,15);
ellipse(x+45,440,180,360,60,15);
line(x-15,25,x-15,440);
line(x+105,25,x+105,440);
for(i=0;i
if(DISK[i]=='Y'){
setcolor(RED);
rectangle(x+(i/20)*20,y+(i%20)*20,x+(i/20)*20+10,y+(i%20)*20+10);
}else setcolor(GREEN);
rectangle(x+(i/20)*20,y+(i%20)*20,x+(i/20)*20+10,y+(i%20)*20+10);
}
getch();
closegraph();
}
void main()
{
int i;
char tmpname[10];
int tmplength;//要写入文件长度
int o;//命令
fnum=0;
for(i=0;i
DISK[i]='N';
}
DISK[1]='Y';
blankspace=N;
while(1){
cout<
cin>>o;
switch(o){
case 1: cout<
cin>>tmpname;
cout<
cin>>tmplength;
write(tmpname,tmplength);
break;
case 2: cout<
cin>>tmpname;
int insertpoint;
cout<
cin>>insertpoint;
insert(tmpname,insertpoint);
break;
case 3: cout<
cin>>tmpname;
printindex(tmpname);break;
case 4: printDISK();Graph();break;
}
}
cin.get();
}
追问
我用的是vs2010,编译结果:
1>c:\users\free\documents\visual studio 2010\projects\ostest\ostest\ostest.cpp(3): fatal error C1083: 无法打开包括文件:“Graphics.h”: No such file or directory
1>
1>生成失败。
1>
1>已用时间 00:00:02.67
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
已赞过
已踩过<
你对这个回答的评价是?
评论
收起
java 操作系统 模拟 daima_求C/C++或java写的比较简单的操作系统的模拟程序相关推荐
- java 操作系统 模拟 daima_编写一个程序,利用Java语言模拟操作系统进程调度管理...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 import java.util.PriorityQueue; public class Process implements Comparable { ...
- java 12306 模拟登陆_GitHub - zuihou/12306-test: 基于java httpclient的12306 买票软件, 仅供学习使用...
12306-hunter Java Swing C/S版本12306订票助手 本程序完全开放源代码,仅作为技术学习研究交流之用,不得用于任何商业用途:作者不承担任何由此带来的直接或间接责任 特别说明: ...
- java 外部类似_[求指点] 如何用java 实现类似linux中管道调用外部程序的功能
想写个小程序实现类似linux中管道的功能,创建一个外部子进程,然后主进程不断地写输入给子进程,而后把子进程的返回值取出. 如下的小代码就是从stdin读入一个字符串,调用子进程(cat)返回这个串, ...
- java版模拟经营_我的世界JAVA版
求知手游为大家带来我的世界JAVA版游戏下载,是加入游戏模式切换,调试画面.这里让你任意切换多种功能,在精致美丽的3D像素世界里,一切都将由创作者重新创造.游戏的世界非常广阔,基本上没有什么限制,开发 ...
- java怎样模拟点击网页,笔者操作Java+selenium实现网站模拟点击和页面数据爬取
电脑现已成为我们工作.生活和娱乐必不可少的工具了,在使用电脑的过程中,可能会遇到Java+selenium实现网站模拟点击和页面数据爬取的问题,如果我们遇到了Java+selenium实现网站模拟点击 ...
- java 房贷计算器_求一房贷计算器java源程序
展开全部 打了个电话给农行的客服(收费的),终于知道公式了..好麻烦的公式...浪费了我15分钟的电话费. 还有在写公e68a84e8a2ad32313133353236313431303231363 ...
- java语言模拟_Java语言模拟操作系统.doc
河北大学2010级操作系统课程设计论文 PAGE PAGE 27 装订线 装 订 线 (指导教师用表) 学 生 姓 名 指 导 教 师 论文(设计)题目 Java语言模拟操作系统 主要研究 (设计)内 ...
- java 模拟投票代码_求投票系统(Java源代码)
求投票系统(Java源代码) 关注:175 答案:3 mip版 解决时间 2021-02-02 21:06 提问者 侑點尐悲伤 2021-02-02 16:54 设计一个投票系统来进行调查.评选或 ...
- java二级考试简单应用题,计算机二级考试Java语言模拟考试(2)
计算机二级考试Java语言模拟考试(2) 一.基本操作题 本题求一个实数37.13的整数部分和小数部分,并打印输出. public class javal{ public static void ma ...
最新文章
- linux系统怎样连手机,Linux下手机与蓝牙的连接配置
- mysql128位整数_mysql的数据类型
- WNetAddConnection2 映射网络驱动器
- arm-linux-gcc静态编译和动态编译的区别
- 对ExtendedWebBrowser的再扩展
- C++_类和对象_C++多态_多态的原理剖析---C++语言工作笔记070
- 解决python2.7.9以下版本requests访问https的问题
- 手机java环境_手机端搭建Java编译运行环境
- 【docker】docker持续集成CI/持续部署CD
- 图解机器学习算法 | 从入门到精通系列教程(机器学习通关指南·完结)
- 【科研绘图】用PPT进行科研用图的图片预处理
- 计算机内存怎样清理,怎么样清理电脑内存 电脑清理内存方法【图文】
- pycharm安装redis
- 程序员防猝死指南——程序员养生攻略
- WUST 五一萌新向CTF writup
- 基于51单片机智能热水器控制系统设计
- Mysql传智jing_dong数据库
- 开源IM项目OpenIM每周迭代版本发布-群管理 阅后即焚等-v2.0.6
- 芯片系统分级-模电基础
- iPhone重绘机制drawRect
热门文章
- hdu1848(sg函数打表)
- Android 开关按钮切换,类似于iphone 效果,view实现
- 安卓学习-界面-ui-RadioButton CheckBox
- Git客户端(TortoiseGit)基本使用详解
- 模拟电子技术_清华大学华成英教授主讲之符号说明
- C++里如何使用功能键(F1、F2·····)进行操纵?
- 继英伟达最小边缘超算,英特尔再推10倍VPU,终端AI芯片竞争加剧
- OJ系列之---字符串分割
- 区域链 信息存储的服务器,利用区块链储存明显优于传统的中心化服务器
- jvm空间分配担保机制