绘制国际象棋棋盘_第1页
绘制国际象棋棋盘_第2页
绘制国际象棋棋盘_第3页
绘制国际象棋棋盘_第4页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录一、设计任务,目的与要求 11.设计内容: 12.设计目的: 13.设计要求: 1二、概要设计 11.设计流程: 1三、运行结果及分析 41.程序运行测试: 42.应用运行的结果: 5四、源代码⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 6一、设计任务,目的与要求1.设计内容:在屏幕上绘制输出国际象棋棋盘,分别利用命令提示行和 MFC制作输出。2.设计目的:1)复习、巩固C++语言的基础知识,进一步加深对 C++语言的理解和掌握;2)课程设计为将课本上的理论知识和实际有机的结合起来,锻炼分析解决实际问题的能力。提高适应实际,实践编程的能力;3)加强学生的团队合作能力。3.设计要求:1)对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理;2)系统设计要实用,编程简练,可用,功能全面;3)说明书、流程图要清楚;4)记录设计情况(备查,也为编写设计说明书作好准备);5)要求采用模块化程序设计方法,要求上机调试通过和按设计报告格式;6)设计上交内容:设计报告一人一份(按格式书写),源程序文件。二、概要设计1.设计流程:1)设计要求:(1)国际象棋棋盘是个正方形,由横纵各8格、颜色一深一浅交错排列的64个小方格组成,并且对奕时右下角为白色方格。2)能够写出相应的源程序代码,采用结构化、模块化程序设计方法,功能完善,界面要美观;3)所设计的系统要求运行没有错误;14)当程序运行时弹出一个界面,并显示棋盘;5)最后经验收合格后,按要求写出课程设计报告。2)运行环境:本设计使用的运行环境是MicrosoftVisualC++6.0开发环境,所做的是基于MFC的打印国际象棋棋盘的应用程序。3)总体设计:用命令提示行输出棋盘是横竖各8个方格排列而成的,将横定为排,纵定为列。横向有8排编号为0到7,纵向亦有8列编号为0到7。观察棋盘特点黑白相间可知排号与列号相加为偶数的是白色方块, 反之为黑色方块。例如第 0排第5列为(0+5)=5,结果为奇数则为白色。再如第 3排每列为(3+1)=4,结果为偶数则为黑色。据此打印相应的方块形成整个棋盘。本设计中白色方格用两个ASCII码为219的符号(如图)形成,黑色方格用两个空格形成。图1ASCII码对照表ASCII码使用指定的7位或8位二进制数组合来表示128或256种可能的字符。标准ASCII码也叫基础ASCII码,使用7位二进制数来表示所有的大写和小写字母,数字0到9、标点符号,以及在美式英语中使用的特殊控制字符。其中:0~31及127(共33个)是控制字符或通信专用字符(其余为可显示字2符),ASCII值为8、9、10和13分别转换为退格、制表、换行和回车字符。它们并没有特定的图形显示,但会依不同的应用程序,而对文本显示有不同的影响。48~57为0到9十个阿拉伯数字;65~90为26个大写英文字母,97~122号为个小写英文字母,其余为一些标点符号、运算符号等。后128个称为扩展ASCII码。扩展ASCII码允许将每个字符的第8位用于确定附加的128个特殊符号字符、外来语字母和图形符号。用MFC绘制输出MFC(MicrosoftFoundationClasses),是微软公司提供的一个类库,以 C++类的形式封装了Windows的API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量句柄封装类和很多内建控件和组件的封装类。与其他所有的Windows应用程序一样,在使用MFC的应用程序中也要处理系统消息,但是在MFC中消息处理更容易,封装得更好,更易于维护。下图为应用程序的执行过程输入消息系统消息

开始初始化应用程序初始化并创建应用程序窗口进入消息循环并获得消息 消息处理函数是 否 为WM_QUIT消息

YN 是否为应用程序处理的消息Y N结束 默认处理函数图2应用程序的执行过程3Windows使用图形设备接口(GDI)进行图形和文本输出,MFC封装了GDI对象,提供了CGdiObject类和CDC类支持图形和文本输出。应用程序可以使用GDI创建矢量图形、光栅图形和文本3种类型的图形输出,本设计主要是输出一定形状的矢量图形。MFC封装了DC,提供CDC类及它的子类以访问GDI。MFC提供的设备环境类包括CDC、CPaintDC、CClientDC、CWindowDC和CMetaFileDC等,其中CDC类是MFC设备环境类的基类,其他MFC设备环境类都是CDC类的派生类,CDC提供了基本的绘图操作函数,如画点、画线、画圆、画矩形、画多边形等。本设计主要用到Rectangle()函数。它根据指定的左上角和右下角坐标绘制一个矩形,其格式如下:CRectrect(0,0,100,100);//括号里的参数是左上角与右下角的坐标pDC->Rectangle(&rect);在绘制图形和图像时,颜色是一个重要的因素。Windows用COLORREF类型的数据存放颜色。它实际上是一个32位整数。任何一种颜色都是由红、绿、蓝3种基本颜色组成的,COLORREF类型数据的低位字节存放红色强度值,第2个字节存放绿色强度值,第3个字节存放蓝色强度值,高位字节为0,每一种颜色分量的取值范围为0~255。直接设置COLORREF类型的数据不太方便。MFC提供了RGB宏,用于设置颜色,它将其中的红、绿、蓝分量值转换为COLORREF类型的颜色数据,其使用形式为:RGB(byRed,byGreen,byBlue)其中参数 byRed、byGreen和byBlue分别表示红、绿、蓝分量值(范围0~255)。设计中用到了RGB(192,192,192)和RGB(0,0,0),他们分别为灰色和黑色。程序中是以某一坐标为参考点在OnDraw函数中形成两层循环利用笔刷绘制黑白间的64格棋盘。三、运行结果及分析1.程序运行测试:1.进入VC++环境,文件新建一个单文档的 MFC应用程序,命名为“绘制国际象棋棋盘”。2.选择项目工作区的 ClassView,展开CMyView 类,找到成员函数OnDraw()并输入绘制代码。编译、链接并运行程序,等到所要求的棋盘。42.应用运行的结果:利用命令提示行输出:利用MFC绘图输出:5四、源代码1.用命令提示行打印棋盘#include"stdio.h"#include<windows.h>intmain(){inti,j;SetConsoleOutputCP(437);//显示大于127的asc码for(i=0;i<8;i++){for(j=0;j<8;j++)if((i+j)%2==0)printf("%c%c",219,219);elseprintf(" ");printf("\n");}return0;}2.用MFC应用程序绘制棋盘为了节省篇幅,只写出了实现本设计中OnDraw()函数中的主要绘制代码,程序如下:voidCMyView::OnDraw(CDC*pDC){CMyDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);CBrush*BrushOld,BrushNew; //建立刷指针COLORREFBrushClr[]={RGB(192,192,192),RGB(0,0,0)};//选用灰色和黑色COLORREFBrushColor;intx,y;pDC->TextOut(200,20,"国际象棋棋盘"); //在坐标处输出标题for(inti=0;i<8;i++) //列控制{6for(intj=0;j<8;j++) //行控制{x=i+1;y=j+1;if((i+j)%2==0){BrushColor=BrushClr[0];BrushNew.CreateSolidBrush(BrushColor);//创建实心画刷BrushOld=pDC->SelectObject(&BrushNew);//选用实心画刷}else{BrushColor=BrushClr[1];BrushNew.CreateSolidB

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论