操作系统实验--30天自制操作系统第综合设计及工程文件

一、实验目的

通过对操作系统启动过程的模拟,以及软件功能设计与实现,进一步理解和掌握《操作系统实验》课程中学习到的各个功能模块的原理和用法,提高自己的系统设计能力。

二、实验环境

硬件环境:计算机,无特殊配置要求
软件环境:QEMU虚拟机、批处理文件、相关编译工具等
语言环境:C语言、汇编语言

三、功能介绍及运行效果截图

编程实现一台计算机从启动到输入密码进入桌面,到双击打开一个软件并实现该软件相关功能的整个过程。

开机动画:

首相上下放层层推进出背景颜色,然后五环从5个方向向中心移动,最终到达屏幕中央,随后出现输入框和鼠标。
开始出现的背景色图形:
在这里插入图片描述

五环移动过程图像:
在这里插入图片描述

最终图像:
在这里插入图片描述

输入密码界面:

输入密码后点击前进按钮或按下键盘回车可以提交密码
在这里插入图片描述

密码错误时会进行提示并显示目前所剩余的提交次数:
在这里插入图片描述

次数耗尽时系统锁定,无法开机,需要重新启动才能重置次数解除锁定
在这里插入图片描述

开机后的时钟界面:

时钟起始值如左图,时钟进位效果如右图
在这里插入图片描述
在这里插入图片描述

游戏图标:

在这里插入图片描述

双击图标打开游戏开始界面(推箱子)如图:
在这里插入图片描述

通过控制键盘中的上下左右来操作小人运动,成功过关会自动到达下一关,关闭游戏后打开游戏会回到第一关,如果在游戏中操作失误可以单击图中Restart按键,重置本关,如果有关卡卡住,或想要跳关,图中前进和后退按键可以支持。
在游戏通过最后一关后会显示恭喜过关的提示,同时游戏会锁定操作(此时无法移动,点击重新开始或者跳关后可以解除)
在这里插入图片描述

四、遇到的问题及解决方法

问题1:如何在现在的程序中导入外界的图片

解决方法:
首先需要改变调色板的种类,以前的16种颜色的调色板颜色太少了,无法支持一个正常的图片显示。更新的调色板代码如下:
原理是将原来的每个颜色设号调整成了6阶。然后根据要显示图片的每一个像素的RGB的值计算出应该是哪一个色号,就可以完成图片是载入了

在这里插入图片描述

计算色号的原理如下:这里还根据了像素点所在的位置进行了一个近似处理可以更好的显示出色阶的效果
在这里插入图片描述

最后一个问题如何得到一个图片的RGB的值。
这里办法很多,这里我使用的C++的一个easyx的库进行输入,可执行文件和源文件我放在工程里了,将图片放在可执行文件同一目录下,然后输入图片名称和图片大小即可。

问题2:编译时出现工作空间过大的错误

解决方法:这是由于我们的代码量太大了,如果在存储图片数据时,是直接把图片的RGB数据作为数组放在代码段里,就会出现代码段过大的情况,出现这种情况要么缩小图片的大小(经测试200200不会报320200会报)要么,采用28天内容中的文件读入功能,将数据放在txt文件中。

工程文件:

放CSDN上会收费,这里就放网盘上了:
链接:https://pan.baidu.com/s/1DOxoxTjuhgwbsBy5KxYlpQ
提取码:ab12

おすすめ

転載: blog.csdn.net/qq_49327751/article/details/122481235