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

c 画图板课程设计一、课程目标知识目标:1. 学生能够理解并掌握c画图板的基本功能与操作方法。
2. 学生能够运用c画图板绘制基本的几何图形和简易场景。
3. 学生能够理解并运用c画图板中的颜色填充、线条粗细等工具进行作品创作。
技能目标:1. 学生能够运用c画图板进行创意绘画,提高绘画技巧和表达能力。
2. 学生能够通过c画图板的操作,培养观察力、想象力和创新能力。
3. 学生能够学会使用c画图板进行作品的保存、打开和分享。
情感态度价值观目标:1. 学生在c画图板绘画过程中,培养对美术创作的兴趣和热情,增强自信心。
2. 学生在合作交流中,学会尊重他人意见,培养团队协作精神。
3. 学生通过绘画创作,关注生活、热爱生活,培养积极向上的人生态度。
分析课程性质、学生特点和教学要求,本课程将目标分解为以下具体学习成果:1. 学生能够独立完成c画图板的安装与基本设置。
2. 学生能够运用c画图板绘制出至少三种不同的几何图形,并创作一幅简易场景作品。
3. 学生能够运用c画图板中的工具,创作出具有个性特色的绘画作品,并进行展示和分享。
4. 学生在课程学习过程中,积极参与讨论,主动帮助同学解决问题,表现出良好的团队协作精神。
二、教学内容本课程教学内容依据课程目标,结合教材内容进行选择和组织,主要包括以下三个方面:1. c画图板基本功能与操作- 认识c画图板界面和工具栏- 学会使用画笔、橡皮、颜色填充等基本工具- 掌握线条粗细、颜色选择等设置方法2. 几何图形与简易场景绘制- 绘制三角形、矩形、圆形等基本几何图形- 学习组合几何图形,创作简易场景- 掌握图形的移动、旋转和缩放等操作3. 创意绘画与作品展示- 运用c画图板进行个性化创作- 学习作品的保存、打开和分享方法- 组织学生进行作品展示,开展评价与交流教学大纲安排如下:第一课时:c画图板的认识与基本操作第二课时:几何图形的绘制与组合第三课时:简易场景创作与作品展示第四课时:创意绘画与实践操作第五课时:作品分享与评价交流教学内容进度:第一周:学习c画图板的基本功能与操作第二周:绘制几何图形,创作简易场景第三周:创意绘画与作品展示,进行评价与交流教学内容与教材紧密关联,遵循科学性和系统性原则,旨在帮助学生掌握c画图板的使用,提高绘画技巧,培养创新意识。
c画图程序课程设计

c 画图程序课程设计一、教学目标本节课的教学目标是让学生掌握C语言的基本语法和操作,学会使用画图程序进行简单的图形绘制。
通过本节课的学习,学生能够理解C语言的基本概念,熟练使用画图程序进行图形设计,培养编程思维和动手能力。
具体来说,知识目标包括:1.了解C语言的基本语法和数据类型。
2.掌握画图程序的基本功能和操作。
技能目标包括:1.能够编写简单的C语言程序。
2.能够使用画图程序进行基本的图形绘制。
情感态度价值观目标包括:1.培养学生的编程兴趣,提高学习的积极性。
2.培养学生团队合作和解决问题的能力。
二、教学内容本节课的教学内容主要包括C语言的基本语法和画图程序的使用。
具体安排如下:1.C语言基本语法:数据类型、变量、运算符、控制语句等。
2.画图程序的使用:图形绘制、颜色设置、图形属性等。
教学过程中,将结合具体的案例和练习题,让学生在实际操作中掌握C语言的基本语法和画图程序的使用。
三、教学方法为了提高学生的学习兴趣和主动性,本节课将采用多种教学方法相结合的方式。
包括:1.讲授法:讲解C语言的基本语法和画图程序的使用方法。
2.案例分析法:分析具体的编程案例,让学生在实际操作中掌握知识。
3.实验法:让学生动手编写C语言程序,使用画图程序进行图形绘制。
通过多种教学方法的运用,激发学生的学习兴趣,提高学生的编程能力和动手能力。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:C语言程序设计基础。
2.参考书:C语言编程实例解析。
3.多媒体资料:C语言语法讲解视频、画图程序操作演示视频。
4.实验设备:计算机、画图程序软件。
通过以上教学资源的运用,帮助学生更好地理解和掌握C语言的基本语法和画图程序的使用,提高学生的学习效果。
五、教学评估本节课的教学评估将采取多元化的评估方式,以全面、客观、公正地评价学生的学习成果。
评估主要包括以下几个方面:1.平时表现:通过课堂参与、提问、回答问题等环节,评估学生的学习态度和积极性。
c语言课程设计画图

c语言课程设计画图一、教学目标本课程的目标是让学生掌握C语言的基本知识,通过编程实践学会用C语言进行简单的图形绘制。
具体分为以下三个部分:1.知识目标:使学生了解C语言的基本语法、数据类型、运算符、控制结构等,并掌握基本的图形绘制原理。
2.技能目标:培养学生使用C语言进行图形编程的能力,能独立完成简单的图形绘制程序。
3.情感态度价值观目标:培养学生对计算机科学的兴趣,提高其动手实践能力,培养其创新精神和团队协作精神。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构等基础知识,以及图形绘制的基本原理和方法。
具体安排如下:1.第一章:C语言概述,使学生了解C语言的基本概念,掌握C语言的编译环境和基本语法。
2.第二章:数据类型和运算符,让学生掌握C语言的基本数据类型和运算符,为后续编程打下基础。
3.第三章:控制结构,引导学生掌握C语言的条件语句和循环语句,提高程序的控制能力。
4.第四章:函数,使学生了解函数的概念和作用,掌握函数的定义和调用方法。
5.第五章:图形绘制原理,讲解图形绘制的基本原理,引导学生掌握图形绘制的方法。
6.第六章:实践项目,让学生运用所学知识独立完成简单的图形绘制程序。
三、教学方法本课程采用讲授法、案例分析法和实验法相结合的教学方法,具体安排如下:1.讲授法:用于讲解C语言的基本语法、数据类型、运算符、控制结构等理论知识。
2.案例分析法:通过分析典型的图形绘制案例,使学生了解图形绘制的基本原理和方法。
3.实验法:让学生动手实践,独立完成图形绘制程序,提高其编程能力。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备等,具体安排如下:1.教材:《C语言程序设计》2.参考书:《C语言 Primer》3.多媒体资料:课件、教学视频等4.实验设备:计算机、网络设备等五、教学评估本课程的评估方式包括平时表现、作业、考试等,具体安排如下:1.平时表现:通过课堂参与、提问、讨论等方式评估学生的学习态度和理解能力,占总评的30%。
C语言实现图形界面

C语言实现图形界面C语言实现图形界面对于程序员来说是一项非常重要且有挑战性的任务。
随着计算机技术的不断发展,图形界面在软件开发中越来越重要,因此掌握如何使用C语言来实现图形界面也成为了程序员们必备的技能之一。
一、图形界面的基本概念在介绍C语言实现图形界面的具体方法之前,首先需要了解图形界面的基本概念。
图形界面是指通过图形元素(如按钮、文本框、菜单等)在屏幕上进行交互的界面,用户可以通过鼠标、键盘等设备与计算机进行交互操作。
二、使用C语言实现图形界面的方法1. 使用第三方库为了方便使用C语言实现图形界面,可以选择使用第三方库,如GTK、Qt等。
这些库提供了丰富的图形界面组件和接口,方便开发人员快速构建图形界面应用程序。
2. 使用Windows API对于Windows平台下的软件开发,可以使用Windows API来实现图形界面。
Windows API提供了一系列函数和数据类型,可以方便地创建窗口、按钮、菜单等图形界面组件。
3. 使用OpenGL如果需要在图形界面中展示3D图形,可以使用OpenGL库来实现。
OpenGL是一种跨平台的图形库,可以实现高性能的3D图形渲染。
三、示例代码下面是一个简单的示例代码,演示了如何使用C语言和GTK库实现一个简单的图形界面:```c#include <gtk/gtk.h>int main(int argc, char *argv[]){GtkWidget *window;gtk_init(&argc, &argv);window = gtk_window_new(GTK_WINDOW_TOPLEVEL);g_signal_connect(window, "destroy",G_CALLBACK(gtk_main_quit), NULL);gtk_widget_show(window);gtk_main();return 0;}```四、总结通过以上介绍,我们了解了使用C语言实现图形界面的基本方法和示例代码。
c画图程序课程设计

c 画图程序课程设计一、课程目标知识目标:1. 学生能理解并掌握c语言中画图程序的基本概念和原理;2. 学生能够运用c语言的基本语法,编写简单的画图程序;3. 学生能够了解并使用c语言中的图形库,实现基本的图形绘制。
技能目标:1. 学生能够独立完成画图程序的编写和调试;2. 学生能够运用逻辑思维和问题解决能力,设计并实现简单的图形组合;3. 学生能够通过编写画图程序,提高编程实践能力和创新思维能力。
情感态度价值观目标:1. 学生对c语言编程产生兴趣,树立编程学习的自信心;2. 学生在编程实践中,培养团队合作精神和解决问题的耐心;3. 学生通过画图程序的创作,体验计算机编程的乐趣,提高对信息技术的认识。
课程性质:本课程为信息技术学科,以实践操作为主,注重培养学生的编程能力和逻辑思维能力。
学生特点:六年级学生,具备一定的计算机操作能力和c语言基础,对图形绘制感兴趣,喜欢动手实践。
教学要求:结合学生特点,注重理论与实践相结合,提高学生的编程技能和创新能力。
在教学过程中,关注学生的个体差异,给予个性化指导,确保每个学生都能达到课程目标。
通过课程学习,使学生能够独立完成简单的画图程序,为后续学习奠定基础。
二、教学内容1. c语言画图程序基本概念:介绍画图程序的概念,图形坐标系、图形库的调用方法;2. c语言基本语法复习:回顾变量、数据类型、运算符、控制语句等基本知识;3. 图形绘制函数:讲解并练习常用的图形绘制函数,如画点、画线、画圆等;4. 综合图形绘制:结合所学知识,设计并实现简单的组合图形;5. 画图程序实例分析:分析教材中的典型画图程序实例,讲解其编程思路和技巧;6. 创新设计:鼓励学生发挥创意,设计并实现自己的画图作品;7. 程序调试与优化:教授程序调试的方法,引导学生发现并解决编程过程中的问题。
教学大纲安排:第一课时:回顾c语言基本语法,介绍画图程序基本概念;第二课时:学习图形绘制函数,进行简单的图形绘制练习;第三课时:分析教材中的画图程序实例,讲解编程技巧;第四课时:综合运用所学知识,设计并实现组合图形;第五课时:创新设计,展示与分享学生的画图作品;第六课时:程序调试与优化,提高画图程序的运行效果。
课程设计(论文)_基于VC MFC程序设计__简易画图板

包头师范学院本科学年论文论文题目:基于VC++MFC程序设计——简易画图板院系:信息科学与技术学院专业:计算机科学与技术学号:姓名:指导教师:撰写学年:2010至2011学年二零一零年十二月摘要本软件是利用VC++这个强大的可视化编程工具开发的,软件主要功能包括图形的绘制、线型的设置、颜色的设置,图形文件的重绘和保存等功能。
本文介绍了如何完成上述功能,同时详细阐述了画图系统的实现过程以及对画图系统所做的功能扩充。
在画图软件设计上,其主要任务是:实现“绘制图形”、“图形的保存”两项功能。
本软件具有实用性、稳定性、易用性,和可维护性的特点,应该说它应是一个开放性的软件,用户可以根据需要对其功能进行扩充、完善与修改,使其符合自己的要求。
总之,本软件是一个逐步完善的软件。
关键词:VC++;MFC;绘图AbstractThis software is using vc + + this powerful visual programming tool development, software main functions including graphics rendering, linetype Settings, color setting, graphics file redraw of preserving and function.The paper introduced how to accomplish these functions, and explains in detail drawing system realization process and to drawing system do function expansion. In drawing software design, its main task is to achieve "drawings", "graphic save" two functions.This software has practicability, stability, ease-of-use, and maintainability characteristic, should say it should be an open software, the user can according to the needs of its functions were expansion, perfect and modification, make them comply with their requirements. Anyhow, this software is a perfect gradually software.Key words:Vc + +; MFC; drawing目录引言 (1)第1章vc++6.0和MFC简介 (2)1.1 vc++6.0简介 (2)1.2 MFC简介 (2)第2章基础知识 (2)2.1工程的新建 (3)2.2单文档简介 (4)2.3添加消息响应函数 (5)2.4资源 (5)2.5设备环境 (6)第3章简易画图板的制作 (6)3.1设计目的 (6)3.2 总体设计 (7)3.3详细设计 (8)3.3.1点、直线、矩形、椭圆的绘制 (10)3.3.2连续线和扇形的绘制 (12)3.3.3画刷 (14)3.3.4设置对话框 (16)3.3.5颜色 (17)3.3.6打开与保存 (17)第4章结果及结论 (18)4.1运行结果 (18)4.2结论 (20)参考文献 (22)附录:简易画图板主要程序代码 (23)致谢 (33)引言计算机技术的发展,使人类社会进入了信息化和自动化,计算机智能识别也随着计算机的发展得到了迅速的发展。
操作系统课程设计C语言实现画板

... . .Foshan University课程设计说明书操作系统课程和设计学院:电子与信息工程学院专业:2012网络工程2学号:学生:二〇一五年七月课程设计任务书专业级班一、设计题目:操作系统图形显示程序接口设计二、主要容:本设计的目的是通过设计一些简单的中断调用接口,使学生掌握程序接口的设计方法。
要求在熟悉DOS操作系统的中断接口及程序接口的基础上,利用C语言设计简单的显示程序接口,最后通过程序验证全部接口的正确性。
三、具体要求利用C语言设计DOS中断中21H与图形操作相关的中断调用,具体包括:1、设置点阵图形的彩色2、画点3、画线4、画矩形5、画圆6、屏幕区域填充7、屏幕区域保存8、屏幕区域逻辑恢复9、清除屏幕/区域10、屏幕区域卷动11、鼠标控制12、多窗口功能上述功能由两部分程序验证,中断驻留程序和验证程序。
首先运行中断驻留程序,然后运行验证程序得到预期结果。
四、进度安排1-2天:资料查找、系统分析,数据流程分析,概要设计1-2天:系统详细设计、功能设计5-6天:模块设计、编程调试1天:资料整理、课程设计说明书编写。
五、完成后应上交的材料1、课程设计说明书(程序流程图、功能模块图、相关数据结构、核心算法等)2、相关源程序文件六、总评成绩指导教师签名日期年月日系主任审核日期年月日目录一、程序概述 (5)1.1程序任务 (5)1.2程序原理 (5)二、概念原理 (5)三、总体设计 (6)3.1设计流程图…………………………………………………... .63.2实现方法 (6)四、详细设计 (7)4.1函数使用…………………………………………………... ..7五、完成情况 (7)六、使用说明 (7)七、设计总结 (9)7.1系统特色 (9)7.2经验教训 (9)7.3实践感受 (9)参考资料 (9)附录 (10)一.程序概述1.1.程序任务本设计是要求编写一个简单的命令解释器,利用C语言、DOS中断中21H 与屏幕显示相关的中断调用进行设计的,主要完成要求中所提到的功能如:画点、画线、画圆、填充、恢复、屏幕滚动等。
C语言课程设计--计算器(图形界面)

C语言课程设计--计算器(图形界面)扬州大学C语言课程设计报告题目一个简易计算器的设计与实现班级学号姓名指导教师成绩老师评语:第 2 页共 14 页第 3 页共 14 页一、系统调试…………………………………………8,9,10,11二、课程设计体会总结………………………………8,9,10,111 课程设计目的(1).课程设计是一项综合性实践环节,是对平时实验的一个补充,课程设计内容包括课程的主要理论知识,但由于C语言对初学者较难掌握,因而对一个完整的C语言程序不适合平时实验。
通过课程设计可以达到综合设计C语言程序的目的。
(2)通过本课程设计,可以培养独立思考,综合运用所学有关相应知识的能力,能更好地使用C语言的知识,更好地了解C语言的好处和其可用性!掌握基本的程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力,具备初步的高级程序设计能力。
为后续各门计算机课程的学习和毕业设计打下坚实基础!(3)通过本程序训练程序设计的基本技能,掌握字符串的表示方法和字符串函数的功能、自学掌握四则运算的算法及WIN-TC的图形操作的基本知识、键盘上特殊键的获取及图形方式下光标的显示。
2 课程设计内容目的:本课程的课程设计要求学生模拟实现一个简单计算器,要求(1)能够实现四则运算,并能支持优先级运算。
(2)三角与反三角运算:如sinx,cosx等。
(3)指数对数运算:如log(x),lnx,e的x次方等。
(4)其他运算:如X!,x 的累加等。
(4)不允许调用库函数,使用自行开发的程序实现常用函数运算。
(5)进一步考虑计算器外观设计,用可视化界面给出计算器外观、功能按键及输入界面。
使用说明:执行加法运算,'—'表示执行减法运算,表示执行乘法运算,'/'表第 4 页共 14 页示除法运算.‘Q’表示退出计算器‘C’表示清零,’=’表示得出结果'^'表示执行x的y次方,'e'表示执行e的x次方操作,'&'表示执行累加操作.,你可以可以用键盘上的上下左右键对光标进行移动,当光标移动到计算器按键上时,按ENTER即可执行该键的操作!最后按“=”则可得出结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
... . .Foshan University课程设计说明书操作系统课程和设计学院:电子与信息工程学院专业:2012网络工程2学号:学生:二〇一五年七月课程设计任务书专业级班一、设计题目:操作系统图形显示程序接口设计二、主要容:本设计的目的是通过设计一些简单的中断调用接口,使学生掌握程序接口的设计方法。
要求在熟悉DOS操作系统的中断接口及程序接口的基础上,利用C语言设计简单的显示程序接口,最后通过程序验证全部接口的正确性。
三、具体要求利用C语言设计DOS中断中21H与图形操作相关的中断调用,具体包括:1、设置点阵图形的彩色2、画点3、画线4、画矩形5、画圆6、屏幕区域填充7、屏幕区域保存8、屏幕区域逻辑恢复9、清除屏幕/区域10、屏幕区域卷动11、鼠标控制12、多窗口功能上述功能由两部分程序验证,中断驻留程序和验证程序。
首先运行中断驻留程序,然后运行验证程序得到预期结果。
四、进度安排1-2天:资料查找、系统分析,数据流程分析,概要设计1-2天:系统详细设计、功能设计5-6天:模块设计、编程调试1天:资料整理、课程设计说明书编写。
五、完成后应上交的材料1、课程设计说明书(程序流程图、功能模块图、相关数据结构、核心算法等)2、相关源程序文件六、总评成绩指导教师签名日期年月日系主任审核日期年月日目录一、程序概述 (5)1.1程序任务 (5)1.2程序原理 (5)二、概念原理 (5)三、总体设计 (6)3.1设计流程图…………………………………………………... .63.2实现方法 (6)四、详细设计 (7)4.1函数使用…………………………………………………... ..7五、完成情况 (7)六、使用说明 (7)七、设计总结 (9)7.1系统特色 (9)7.2经验教训 (9)7.3实践感受 (9)参考资料 (9)附录 (10)一.程序概述1.1.程序任务本设计是要求编写一个简单的命令解释器,利用C语言、DOS中断中21H 与屏幕显示相关的中断调用进行设计的,主要完成要求中所提到的功能如:画点、画线、画圆、填充、恢复、屏幕滚动等。
1.2.程序原理设计过程中发现使用C语言进行图形操作如果使用传统的功能菜单和接口选项,会使功能无法衔接,模块化感严重,功能使用不连续的问题,用户体验非常低。
所以经过思考了查阅资料后,改用单面板上,鼠标控制输入的办法实现功能,鼠标的控制使用已经包含了中断机制,所以不用特意添加其他功能模块的中断。
使用鼠标位置追踪函数,建立int 33h中断功能调用组,随时获取鼠标位置以及功能选择。
GetCursorPos(&point); // 获取鼠标指针位置(屏幕坐标),调用ScreenToClient(hwnd, &point) ; // 将鼠标指针位置转换为窗口坐标,最后再检测鼠标按下左键的状态,调用函数GetAsyncKeyState(VK_LBUTTON)。
二.概念原理2.1中断中断:顾名思义,是指当出现需要时,CPU暂时停止当前程序的执行而执行处理新情况的程序和执行过程。
即在程序运行过程中,系统出现了一个必须由CPU立即处理的情况,此时,CPU暂时中止程序的执行转而处理这个新的情况的过程就叫做中断。
2.2 图形显示程序接口图形显示接口(GDI)提供了一系列的函数和相关的结构,应用程序可以使用它们在显示器、打印机或其他设备上生成图形化的输出结果。
使用GDI函数可以绘制直线、曲线、闭合图形、路径、文本以及位图图像。
所绘制的图形的颜色和风格依赖于所创建的绘图对象,即画笔、笔刷和字体。
你可以使用画笔来绘制直线和曲线,使用笔刷来填充闭合图形的部,使用字体来书写文本。
2.3. 中断驻留程序中断驻留程序,指的是当加载进存的程序执行完毕后,依然能够保存产生的临时数据跟临时状态,而在下一次调用时继续执行。
2.4. 系统调用系统调用,顾名思义,说的是操作系统提供给用户程序调用的一组“特殊”接口。
用户程序可以通过这组“特殊”接口来获得操作系统核提供的服务,比如用户可以通过文件系统相关的调用请求系统打开文件、关闭文件或读写文件,可以通过时钟相关的系统调用获得系统时间或设置定时器等。
从逻辑上来说,系统调用可被看成是一个核与用户空间程序交互的接口,它好比一个中间人,把用户进程的请求传达给核,待核把请求处理完毕后再将处理结果送回给用户空间。
三.总体设计3.2实现方法使用GetCursorPos(&point);函数获取鼠标指针位置(屏幕坐标),随时获取鼠标位置以及功能选择。
调用ScreenToClient(hwnd, &point) ; // 将鼠标指针位置转换为窗口坐标,调用函数GetAsyncKeyState(VK_LBUTTON),检测鼠标按下左键的状态,根据鼠标状态选择功能并输出。
四.详细设计4.1函数使用Show()输出功能面板边框以及调色板色块GetCursorPos(&point); // 获取鼠标指针位置(屏幕坐标)ScreenToClient(hwnd, &point); // 将鼠标指针位置转换为窗口坐标Line() 画线函数Bar() 画条函数Rectangle()画矩形函数Circle()画圆函数Setfillstyle() 设置填充图样和颜色函数Getimage() 保存图像函数Putimage() 输出图像函数Cleardevice();刷新屏幕五.完成情况本程序完成了其中的选择颜色,设置点阵图形的彩色,画点,画线,画矩形,画圆,屏幕区域填充,屏幕区域保存,屏幕区域逻辑恢复,清除屏幕/区域,鼠标控制,多窗口功能。
屏幕卷动功能尚未实现,但大部分及主要功能都已实现,并不影响使用,部分功能存在BUG,使用时需遵循一定使用方法,有待改善。
六.使用说明左边工具栏按顺序为1、画曲线2、画直线3、画矩形4、画圆5、封闭区域颜色填充6、保存画面到文件7、清屏8、撤销一步操作9、恢复之前保存的文件到画面上底部为调色板,点击选色七.设计总结7.1系统特色本系统使用单页面操作,比起传统的DOS界面操作的选项菜单来说,更加便利以及直观,可以在同一窗口看到多次操作的结果,用户体验更好,而且全程鼠标控制,直观的菜单栏都是本软件亮点。
7.2经验教训本次课程设计一开始,我使用的是传统的选择菜单模式实现功能,每个功能都需要经过一次选择和退出才能执行下一个功能,没有连贯性,并不符合我们本次任务的画板功能,经过与同学的讨论分析后,我们才决定重新开始,更改界面,这告诉我们要摆脱定势思维,因为我们习惯于作选项接口,就忘了分析。
做项目之前应先分析清楚,所需要的方法及功能再开始程序设计,而不应该使用老方法,直接开始。
7.3实验感受本次课程设计让我对C语言的感悟更加深了一层,曾经以为C语言有许多功能都无法实现,但当开始课程设计并查找资料都发现,C语言功能强大而且深奥,之前所学习的东西可以说是沧海一粟,是在拿不出手,经过了大量翻阅C 语言高级教程后,才有所了解。
数据结构与操作系统知识也是不可或缺,作为本次设计的核心,操作系统的中断功能又花费了我们大量的时间来理解,然后用C 语言实现,又一次锻炼了我的编码功能,在做后退功能的时候,需要用到栈结构来保存之前多部操作,但是实现了栈之后,却无法实现类类型入栈,所以最终只能做出单步恢复的功能,还是有待改进。
本次课程设计让我加深了,软件设计的整个流程以及对语言的熟悉程度,为以后打下坚实基础。
参考资料1、《计算机操作系统教程》(第2版)尧学史美林编著清华大学2、《操作系统实验指导》任爱华鹏方毅清华大学3、《操作系统实验教程——核心技术与编程实例》顾宝根王立松顾喜梅科学4、《C++编程思想》Bruck 著侯捷译机械工业5、《C 语言程序中清除键盘缓冲区的方法》长虹职业技术学院学报附录#include<ctype.h>#include <graphics.h>#include <stdio.h>#include<math.h>void 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[]="RETURN";outtextxy(15,220,t);outtextxy(10,635,seban);outtextxy(15,270,s);outtextxy(10,320,c);outtextxy(15,380,b);outtextxy(3,430,r);while(true){GetCursorPos(&point); // 获取鼠标指针位置(屏幕坐标)ScreenToClient(hwnd, &point); // 将鼠标指针位置转换为窗口坐标if(GetAsyncKeyState(VK_LBUTTON)){ if(point.y>630){setcolor(getpixel(point.x,point.y));color=getpixel(point.x,point.y);}if(point.x<60){if(point.y>0&&point.y<=50)//曲线a=0;if(point.y>50&&point.y<=100)//直线a=1;if(point.y>100&&point.y<=150)//矩形a=2;if(point.y>150&&point.y<=200)//圆a=3;if(point.y>200&&point.y<=250)//fulla=4;if(point.y>300&&point.y<=350)//刷新屏幕,重新输出所有{getimage(&img,60,0,1000,610);cleardevice();show();outtextxy(10,320,c);outtextxy(15,270,s);outtextxy(15,220,t);outtextxy(10,635,seban);outtextxy(15,380,b);outtextxy(3,430,r);}if(point.y>250&&point.y<=300)//保存{getimage(&img,60,0,1000,610);saveimage("E:\\test.jpg");HWND hwnd = GetHWnd();MessageBox(hwnd, _T("已保存到E:\\text.jpg!"),_T("save"), MB_OK) ;}if(point.y>350&&point.y<=400)//后退a=5;if(point.y>400&&point.y<=450)//恢复到文件容a=6;}while(1){x1=point.x;y1=point.y;if(a==0) //曲线{getimage(&img,60,0,1000,610);GetCursorPos(&point); // 获取鼠标指针位置(屏幕坐标)ScreenToClient(hwnd, &point); // 将鼠标指针位置转换为窗口坐标line(x1,y1,point.x,point.y);if(!GetAsyncKeyState(VK_LBUTTON))break;}if(a==2)//矩形{if(!GetAsyncKeyState(VK_LBUTTON)){getimage(&img,60,0,1000,610);GetCursorPos(&point); // 获取鼠标指针位置(屏幕坐标)ScreenToClient(hwnd, &point); // 将鼠标指针位置转换为窗口坐标line(x1,y1,point.x,y1);line(x1,y1,x1,point.y);line(x1,point.y,point.x,point.y);line(point.x,y1,point.x,point.y);break;}}if(a==1)//直线{if(!GetAsyncKeyState(VK_LBUTTON)){getimage(&img,60,0,1000,610);GetCursorPos(&point); // 获取鼠标指针位置(屏幕坐标)ScreenToClient(hwnd, &point); // 将鼠标指针位置转换为窗口坐标line(x1,y1,point.x,point.y);break;}}if(a==3)//圆{if(!GetAsyncKeyState(VK_LBUTTON)){getimage(&img,60,0,1000,610);GetCursorPos(&point); // 获取鼠标指针位置(屏幕坐标)ScreenToClient(hwnd, &point); // 将鼠标指针位置转换为窗口坐标far circle(x1, y1,(int)sqrt((point.x-x1)*(point.x-x1)+(point.y-y1)*(point.y-y1)));break;}}if(a==4)//full{if(!GetAsyncKeyState(VK_LBUTTON)){getimage(&img,60,0,1000,610);GetCursorPos(&point); // 获取鼠标指针位置(屏幕坐标)ScreenToClient(hwnd, &point); // 将鼠标指针位置转换为窗口坐标setfillcolor(color);setfillstyle(BS_SOLID);floodfill(point.x,point.y, BLACK);break;}}if(a==5)//后退{ putimage(60, 0, &img);break;}if(a==6)//文件恢复{loadimage(&img, "E:\\test.jpg");putimage(0,0, &img);break;}}}}}void show(){far floodfill(1,1,BLUE);setbkmode(TRANSPARENT);//背景模式。