展开全部

#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写的比较简单的操作系统的模拟程序相关推荐

  1. java 操作系统 模拟 daima_编写一个程序,利用Java语言模拟操作系统进程调度管理...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 import java.util.PriorityQueue; public class Process implements Comparable { ...

  2. java 12306 模拟登陆_GitHub - zuihou/12306-test: 基于java httpclient的12306 买票软件, 仅供学习使用...

    12306-hunter Java Swing C/S版本12306订票助手 本程序完全开放源代码,仅作为技术学习研究交流之用,不得用于任何商业用途:作者不承担任何由此带来的直接或间接责任 特别说明: ...

  3. java 外部类似_[求指点] 如何用java 实现类似linux中管道调用外部程序的功能

    想写个小程序实现类似linux中管道的功能,创建一个外部子进程,然后主进程不断地写输入给子进程,而后把子进程的返回值取出. 如下的小代码就是从stdin读入一个字符串,调用子进程(cat)返回这个串, ...

  4. java版模拟经营_我的世界JAVA版

    求知手游为大家带来我的世界JAVA版游戏下载,是加入游戏模式切换,调试画面.这里让你任意切换多种功能,在精致美丽的3D像素世界里,一切都将由创作者重新创造.游戏的世界非常广阔,基本上没有什么限制,开发 ...

  5. java怎样模拟点击网页,笔者操作Java+selenium实现网站模拟点击和页面数据爬取

    电脑现已成为我们工作.生活和娱乐必不可少的工具了,在使用电脑的过程中,可能会遇到Java+selenium实现网站模拟点击和页面数据爬取的问题,如果我们遇到了Java+selenium实现网站模拟点击 ...

  6. java 房贷计算器_求一房贷计算器java源程序

    展开全部 打了个电话给农行的客服(收费的),终于知道公式了..好麻烦的公式...浪费了我15分钟的电话费. 还有在写公e68a84e8a2ad32313133353236313431303231363 ...

  7. java语言模拟_Java语言模拟操作系统.doc

    河北大学2010级操作系统课程设计论文 PAGE PAGE 27 装订线 装 订 线 (指导教师用表) 学 生 姓 名 指 导 教 师 论文(设计)题目 Java语言模拟操作系统 主要研究 (设计)内 ...

  8. java 模拟投票代码_求投票系统(Java源代码)

    求投票系统(Java源代码) 关注:175  答案:3  mip版 解决时间 2021-02-02 21:06 提问者 侑點尐悲伤 2021-02-02 16:54 设计一个投票系统来进行调查.评选或 ...

  9. java二级考试简单应用题,计算机二级考试Java语言模拟考试(2)

    计算机二级考试Java语言模拟考试(2) 一.基本操作题 本题求一个实数37.13的整数部分和小数部分,并打印输出. public class javal{ public static void ma ...

最新文章

  1. linux系统怎样连手机,Linux下手机与蓝牙的连接配置
  2. mysql128位整数_mysql的数据类型
  3. WNetAddConnection2 映射网络驱动器
  4. arm-linux-gcc静态编译和动态编译的区别
  5. 对ExtendedWebBrowser的再扩展
  6. C++_类和对象_C++多态_多态的原理剖析---C++语言工作笔记070
  7. 解决python2.7.9以下版本requests访问https的问题
  8. 手机java环境_手机端搭建Java编译运行环境
  9. 【docker】docker持续集成CI/持续部署CD
  10. 图解机器学习算法 | 从入门到精通系列教程(机器学习通关指南·完结)
  11. 【科研绘图】用PPT进行科研用图的图片预处理
  12. 计算机内存怎样清理,怎么样清理电脑内存 电脑清理内存方法【图文】
  13. pycharm安装redis
  14. 程序员防猝死指南——程序员养生攻略
  15. WUST 五一萌新向CTF writup
  16. 基于51单片机智能热水器控制系统设计
  17. Mysql传智jing_dong数据库
  18. 开源IM项目OpenIM每周迭代版本发布-群管理 阅后即焚等-v2.0.6
  19. 芯片系统分级-模电基础
  20. iPhone重绘机制drawRect

热门文章

  1. hdu1848(sg函数打表)
  2. Android 开关按钮切换,类似于iphone 效果,view实现
  3. 安卓学习-界面-ui-RadioButton CheckBox
  4. Git客户端(TortoiseGit)基本使用详解
  5. 模拟电子技术_清华大学华成英教授主讲之符号说明
  6. C++里如何使用功能键(F1、F2·····)进行操纵?
  7. 继英伟达最小边缘超算,英特尔再推10倍VPU,终端AI芯片竞争加剧
  8. OJ系列之---字符串分割
  9. 区域链 信息存储的服务器,利用区块链储存明显优于传统的中心化服务器
  10. jvm空间分配担保机制