操作系统课程设计C语言实现画板

上传人:枫** 文档编号:497768238 上传时间:2023-01-04 格式:DOC 页数:19 大小:154KB
返回 下载 相关 举报
操作系统课程设计C语言实现画板_第1页
第1页 / 共19页
操作系统课程设计C语言实现画板_第2页
第2页 / 共19页
操作系统课程设计C语言实现画板_第3页
第3页 / 共19页
操作系统课程设计C语言实现画板_第4页
第4页 / 共19页
操作系统课程设计C语言实现画板_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《操作系统课程设计C语言实现画板》由会员分享,可在线阅读,更多相关《操作系统课程设计C语言实现画板(19页珍藏版)》请在金锄头文库上搜索。

1、 Foshan University课程设计说明书 操作系统课程和设计 学 院: 电子与信息工程学院 专 业: 2012网络工程 2 学 号: 学生: 二一五 年 七 月课程设计任务书 专业 级 班 一、 设计题目:操作系统图形显示程序接口设计二、 主要容: 本设计的目的是通过设计一些简单的中断调用接口,使学生掌握程序接口的设计方法。 要求在熟悉DOS操作系统的中断接口及程序接口的基础上,利用C语言设计简单的显示程序接口,最后通过程序验证全部接口的正确性。 三、 具体要求利用C语言设计DOS中断中21H与图形操作相关的中断调用,具体包括:1、 设置点阵图形的彩色2、 画点3、 画线4、 画矩形

2、5、 画圆6、 屏幕区域填充7、屏幕区域保存8、屏幕区域逻辑恢复9、清除屏幕/区域10、屏幕区域卷动11、鼠标控制12、多窗口功能 上述功能由两部分程序验证,中断驻留程序和验证程序。首先运行中断驻留程序,然后运行验证程序得到预期结果。四、 进度安排 1-2天:资料查找、系统分析,数据流程分析,概要设计 1-2天:系统详细设计、功能设计 5-6天:模块设计、编程调试 1天:资料整理、课程设计说明书编写。五、完成后应上交的材料1、课程设计说明书(程序流程图、功能模块图、相关数据结构、核心算法等)2、相关源程序文件六、总评成绩 指导教师 签名日期 年 月 日 系 主 任 审核日期 年 月 日目 录一

3、、程序概述51.1程序任务.51.2程序原理 .5二、概念原理.5三、总体设计 .63.1设计流程图.63.2实现方法.6四、详细设计 .74.1函数使用.7五、完成情况 .7六、使用说明 .7七、设计总结 .97.1系统特色.97.2经验教训.97.3实践感受.9参考资料.9附 录.10一 程序概述1.1. 程序任务本设计是要求编写一个简单的命令解释器,利用C语言、DOS中断中21H与屏幕显示相关的中断调用进行设计的,主要完成要求中所提到的功能如:画点、画线、画圆、填充、恢复、屏幕滚动等。1.2. 程序原理设计过程中发现使用C语言进行图形操作如果使用传统的功能菜单和接口选项,会使功能无法衔接

4、,模块化感严重,功能使用不连续的问题,用户体验非常低。所以经过思考了查阅资料后,改用单面板上,鼠标控制输入的办法实现功能,鼠标的控制使用已经包含了中断机制,所以不用特意添加其他功能模块的中断。使用鼠标位置追踪函数,建立int 33h中断功能调用组,随时获取鼠标位置以及功能选择。GetCursorPos(&point); / 获取鼠标指针位置(屏幕坐标),调用ScreenToClient(hwnd, &point) ; / 将鼠标指针位置转换为窗口坐标,最后再检测鼠标按下左键的状态,调用函数GetAsyncKeyState(VK_LBUTTON)。二 概念原理2.1中断 中断:顾名思义,是指当出

5、现需要时,CPU暂时停止当前程序的执行而执行处理新情况的程序和执行过程。即在程序运行过程中,系统出现了一个必须由CPU立即处理的情况,此时,CPU暂时中止程序的执行转而处理这个新的情况的过程就叫做中断。 2.2 图形显示程序接口图形显示接口(GDI)提供了一系列的函数和相关的结构,应用程序可以使用它们在显示器、打印机或其他设备上生成图形化的输出结果。使用GDI函数可以绘制直线、曲线、闭合图形、路径、文本以及位图图像。所绘制的图形的颜色和风格依赖于所创建的绘图对象,即画笔、笔刷和字体。你可以使用画笔来绘制直线和曲线,使用笔刷来填充闭合图形的部,使用字体来书写文本。2.3. 中断驻留程序 中断驻留

6、程序,指的是当加载进存的程序执行完毕后,依然能够保存产生的临时数据跟临时状态,而在下一次调用时继续执行。2.4. 系统调用 系统调用,顾名思义,说的是操作系统提供给用户程序调用的一组“特殊”接口。用户程序可以通过这组“特殊”接口来获得操作系统核提供的服务,比如用户可以通过文件系统相关的调用请求系统打开文件、关闭文件或读写文件,可以通过时钟相关的系统调用获得系统时间或设置定时器等。 从逻辑上来说,系统调用可被看成是一个核与用户空间程序交互的接口,它好比一个中间人,把用户进程的请求传达给核,待核把请求处理完毕后再将处理结果送回给用户空间。三 总体设计选取颜色3.1程序流程图画点鼠鼠标 控 制画线画

7、圆图图形显示程序接口设计矩形多窗口功能屏幕幕 区 域 逻 辑 操作鼠标控制清除屏幕/区域屏幕区域逻辑恢复屏幕区域保存屏幕区域填充3.2实现方法使用GetCursorPos(&point);函数获取鼠标指针位置(屏幕坐标),随时获取鼠标位置以及功能选择。调用ScreenToClient(hwnd, &point) ; / 将鼠标指针位置转换为窗口坐标,调用函数GetAsyncKeyState(VK_LBUTTON),检测鼠标按下左键的状态,根据鼠标状态选择功能并输出。四 详细设计4.1函数使用Show()输出功能面板边框以及调色板色块GetCursorPos(&point); / 获取鼠标指针位

8、置(屏幕坐标)ScreenToClient(hwnd, &point); / 将鼠标指针位置转换为窗口坐标Line() 画线函数Bar() 画条函数Rectangle()画矩形函数Circle()画圆函数Setfillstyle() 设置填充图样和颜色函数Getimage() 保存图像函数Putimage() 输出图像函数Cleardevice();刷新屏幕五 完成情况 本程序完成了其中的选择颜色,设置点阵图形的彩色,画点,画线,画矩形,画圆,屏幕区域填充,屏幕区域保存,屏幕区域逻辑恢复,清除屏幕/区域,鼠标控制,多窗口功能。屏幕卷动功能尚未实现,但大部分及主要功能都已实现,并不影响使用,部分

9、功能存在BUG,使用时需遵循一定使用方法,有待改善。六 使用说明左边工具栏按顺序为1、画曲线2、画直线3、画矩形4、画圆5、封闭区域颜色填充6、保存画面到文件7、清屏8、撤销一步操作9、恢复之前保存的文件到画面上底部为调色板,点击选色七 设计总结7.1系统特色本系统使用单页面操作,比起传统的DOS界面操作的选项菜单来说,更加便利以及直观,可以在同一窗口看到多次操作的结果,用户体验更好,而且全程鼠标控制,直观的菜单栏都是本软件亮点。7.2经验教训本次课程设计一开始,我使用的是传统的选择菜单模式实现功能,每个功能都需要经过一次选择和退出才能执行下一个功能,没有连贯性,并不符合我们本次任务的画板功能

10、,经过与同学的讨论分析后,我们才决定重新开始,更改界面,这告诉我们要摆脱定势思维,因为我们习惯于作选项接口,就忘了分析。做项目之前应先分析清楚,所需要的方法及功能再开始程序设计,而不应该使用老方法,直接开始。7.3实验感受本次课程设计让我对C语言的感悟更加深了一层,曾经以为C语言有许多功能都无法实现,但当开始课程设计并查找资料都发现,C语言功能强大而且深奥,之前所学习的东西可以说是沧海一粟,是在拿不出手,经过了大量翻阅C语言高级教程后,才有所了解。数据结构与操作系统知识也是不可或缺,作为本次设计的核心,操作系统的中断功能又花费了我们大量的时间来理解,然后用C语言实现,又一次锻炼了我的编码功能,

11、在做后退功能的时候,需要用到栈结构来保存之前多部操作,但是实现了栈之后,却无法实现 类 类型入栈,所以最终只能做出单步恢复的功能,还是有待改进。本次课程设计让我加深了,软件设计的整个流程以及对语言的熟悉程度,为以后打下坚实基础。参考资料1、计算机操作系统教程(第2版)尧学 史美林 编著 清华大学 2、操作系统实验指导任爱华 鹏 方毅 清华大学3、操作系统实验教程核心技术与编程实例顾宝根 王立松 顾喜梅 科学4、C+编程思想Bruck 著 侯捷译 机械工业5、C 语言程序中清除键盘缓冲区的方法 长虹 职业技术学院学报附 录#include#include #include #includevoid main() void show(); IMAGE img; initgraph(1000, 680); / 初始化绘图窗口 HWND hwnd = GetHWnd(); / 获取绘图窗口句柄 POINT point; setfillcolor(LIGHTGRAY); show(); int x1,y1,a=0,p,color; char s=SAVE; char seban=调色板; char t=FULL; char c=CLEAR; char b=BACK; char r

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号