当前位置:文档之家› MFC开题报告

MFC开题报告

MFC开题报告
MFC开题报告

毕业设计(论文)

开题报告

题目 plc与机器人控制原理专业电气工程及其自动化班级学生胡洋指导教师尹有为高科学院

一、毕业设计(论文)课题来源、类型

二、选题的目的及意义

目前大量的测控系统是由上位机与以单片机为核心的测控装置组成

的,单片机把采集的数据(模拟量,数字量)通过串口传送到上位机进行分析、处理、显示和存储,同时上位机的数据或命令也通过串口传送到单片机,

从而实现控制设备之间数据交换,保证了控制系统的正常运行。为子站,主和子站之间通过串行总线进行连接和通讯。modbus作为工业控制领域流行的网络应用协议得到了广泛的应用,实现基于单片机的

总线产品具有通信协议简洁,系统结构简单,性能稳定,应用方便,适宜

应用在信息量不大工业控制系统中。备控制器可以识别和使用的信息帧结构,独立于物理层介质,可以承载于

多种网络类型中。由于modbus总线产品开发成本低,简单易用,并且现

在已有很多工控器、plc、变频器、显示屏等都具有modbus通信接口,

所以它已经成为一种公认的通信标准。通信,控制界面在上位机上显示,参数读取和参数操作,控制单片机控制电机驱动电路实现软启动。此系统作为上位机与单片机的测控系统的典型应用,为今后扩展相关功能奠定基础,在工业控制领域具有广泛的应用前

景。因此,本系统采用modbus通讯协议完成上位机和下位机的数据传输。

三、本课题在国内外的研究状况及发展趋势

特别是近10年来兴起的现场总线技术(fieldbus),是计算机数字通信技术向工业自动化领域的延伸。现场总线技术的一个显著特点是其开放性,允许并鼓励不同厂家按照现场总线技术标准,自主开发具有特点及专有技术的产品。依照现场总线技术规范,不同厂家产品可以方便完成组态与集成,构成面向行业、适合行业特点的自主控制系统。现场总线技术以其先进性、

实用性、可靠性、开放性的优点,必然成为未来自动化技术发展的主流。承认为公开有效规范(pas),modbus/tcp和它的一个配套协议rtps一起,

作为实时工业以太网协议簇,被提交给iec sc65c,iec己经批准了

标准化管理委员会联合于2004年9月正式发布了modbus协议的国家标准

动化网络协议规范的国家标准之一。明的,是全球第一个真正用于工业现场的总线协议。modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格

局和内容的公共格式。此协议支持传统的rs-232、rs-422、rs-485和以太

网设备。许多工业设备,包括plc,dcs,智能仪表等都在使用modbus协议

作为他们之间的通讯标准。多个“从设备”进行通讯。比较典型的主设备一般是plc(可编程逻辑控制

器)、pc、dcs(分散控制系统)或者rtu(远程终端单元)。modbus-rtu的从设备一般是现

场仪表设备,所有这些现场仪表设备都以多分支网络的方

式连接到系统当中。当一个modbus-rtu主设备想要从一台从设备得到数据的时候,这个

主设备会发送一条包含该设备地址、所需要数据以及一个用于检测错误的求和校验码的信息。

网络上的所有其它设备都可以看到这

一条信息,但是只有地址被指定的设备才会做出反应,modbus总线系统

图如图1所示。

图1 modbus总线系统图

在windows环境下开发与单片机的通讯系统,可以利用c语言借助

程序很复杂;也可以利用visual basic语言提供的通讯控件来开放通讯程序,

这样编制简单、功能少。基于vc++的windows平台开发功能强大、更受人

喜欢。vc++是微软公司推出的一个面向对象的、功能丰富的可视化重量级的开发工具。

它虽然复杂,但功能非常强大。它在图形处理和数据库管理

采用mfc来设计界面、编制程序,实现与单片机的通讯系统。逻

辑元器件组成,它充分利用单片机的硬件资源和软件资源,同时合理配置特定的功能元器件

来实现产品的功用,外围元器件一部分是用来实现通

讯的串行接口元件,具有电平转换的功能,这使得modbus产品具有组成

工业网络的能力;另一部分是功能器件,如:数模转化器、模数转化器、led显示器等,

能够实现很多的特定功能。由于产品的硬件构成比较简单,性

能比较稳定,功能比较强且造价比较低成为该产品的主要特点。计

算机和通信技术的不断发展,modbus也从最古老的rs-232/rs-485串行

总线发展到了modbustcp和透明就绪工业以太网。“透明工厂”是施耐德电

气公司的一个注册商标,是基于modbus tcp/ip实现工业自动化具有可伸缩

性和高性能价格比的一种解决方案,节点数范围在10-10000之间,以太网的

结构可以是一个简单的i/o网络,也可以是复杂的高档计算机网络。应用层

使用事实标准的modubs协议,在quantum,premium,momentum等多种产品上实现,可用

于管理网、实时监控网及现场设备的通讯,可用于对控制器

的编程及hmi。应用层使用modbus协议,几乎不会发生数据传输冲突。

作为先进的modbus应用,“透明工厂”能够在厂级设备和商业系统之间提

供无缝的通讯连接。使商业系统可以从任何地方访问到我们的实时数据。

四、本课题主要研究内容

单片机控制电机软启动、停止、参数变更。具体的内容为利用mfc搭建控

制界面,根据modbus协议进行上位机通讯程序的编写,利用avrstudio 进行atmega16单片机应答程序的编写,实现上位机和单片机的通讯,并

结合电机软启动器相关电路进行调试,最后实现通过上位机控制电机启动、篇二:开题

报告

开题报告

1

2

3

篇三:【开题报告】基于vc的多媒体播放器的设计与开发

赣南师院数学与计算机科学学院 2009级(2013 届)

学生毕业论文(设计)开题报告

论文题目基于vc的多媒体播放器设计与开发专业计算机科学与技术学生姓名

曾海洲指导教师曾春梅

教研室主任(签名)教学学院院长(签名)

201 年月日篇四:开题报告

nanchang university 硕士学位论文开题报告

非接触式钢轨测量仪的改进及检测

姓名级

入学日期号学制学院: 机电工程学院系(中心、所): 机设所专

业: 仪器仪表工程研究方向: 计算机测控技术及仪

器指导教师: 二○一四年十一月

一、课题来源及研究意义

1.1 课题来源

选题来源于导师的横向研究。江西日月明铁道设备开发有限公司长期致力于铁道精密数

字化检测产品的研发、生产、销售和服务,其开发生产的gjy系列轨道检查仪、sgj系列轨

道测量仪等产品在中国铁路轨道内、外部几何状态检测仪器领域有很大的行业影响力,是行

业标准的制订单位,广泛应用于铁路轨距(及其变化率)、轨向、高低、水平(及其变化率)、

线路中线坐标、线路高程等项目的检测。针对钢轨磨耗检测需求的现状,该公司提出钢轨轮

廓测量仪的研制任务,拟将其作为gjy-t3轨道检查仪的一个可选功能部件进行集成开发,为

轨道检查仪增加一个新的测量项目——钢轨磨耗,有利于丰富轨道检查仪的功能,提高检测

的综合效率,具有非常重要的实际意义。

1.2 研究意义

铁路运输因其输送能力大的独特优势而成为最重要的一种交通运输方式,是国民经济的

大命脉。随着我国工业化和城镇化的加速推进,流动人口规模也在快速增长,2013年6日新

华社电记者从中国铁路总公司获悉,从9月28日到10月5日,全国铁路运输发送旅客约6500

万人次,创历史同期最高。9月30日到10月4日,铁路客流一直保持在800万以上的大客

流,其中10月1日国庆当天,发送旅客1032.7万,这是铁路首次单日突破千万大关[1]。作

为国家重要的基础设施,铁路的建设规模伴随着经济的快速发展而不断扩大,根据《中国铁

路中长期发展规划》中对铁路建设的规划:为满足日益增长的人口流动需求,到2020年,国

内各省会及大中城市间将建立“四纵四横”铁路快速客运通道以及三个城际快速客运系统,

届时全国铁路营业里程将达到100,000km[2]。同时,铁路以其运载能力强、成本费用低、节

能环保等优势,为中国未来社会经济的可持续发展发挥着更加有效的促进作用[3]。

铁路安全是铁路运输的根本前提和基础,“安全第一”是铁路永恒的主题。自2011年“甬

温线”特大铁路交通事故以来,全国上下对铁路运输的安全尤为重视[4]。钢轨,作为铁路轨

道的重要组成部分,直接关系到铁路的运输能力和行车安全,钢轨磨耗是其中不容忽视的重

要因素[5]。钢轨磨损速度与其材质、所处路段、自然环境、运行速度等多个因素有关,当钢

轨的磨损程度超过相关部门规定的安全界限时,必须对钢轨进行打磨或更换。我国铁路运输

高速重载的特点加

剧了钢轨的磨耗,也给铁路的日常维护增加难度。

钢轨轨头外形及各项磨耗参数的精确测量一直受到铁路工务部门的高度重视,实现钢轨

磨耗高效精确的数字化测量一直是铁路工务人员共同的期待。仪器化的钢轨磨耗测量装置可

以减轻钢轨磨耗测量的劳动强度,提高工作效率,也有利于保证钢轨磨耗测量的准确性,保

障铁路运输的安全。因此,近几年来,钢轨磨耗检测系统的研究成为国内外研究所、高校及

企业的热门课题[6]。

二、国内外研究现状

目前,测量钢轨轮廓尺寸的仪器有很多,归纳起来主要分为两类:接触式和非接触式[7]。

2.1 国外研究现状

2.1.1接触式机械测量

德国vogel & plotscher公司生产的skm1/skm2钢轨磨耗测量仪[8](图1-1)和美国

aldon公司的轨头磨耗测量仪[9](图1-2)可以测量特定位置的垂直磨耗和侧面磨耗。前者利

用轨底面实现机械定位,只能用于单一规格的钢轨测量;后者靠接头夹板安装面实现机械定位,

可用于测量50-64kg/m之间的多种规格的钢轨。

图1-1 skm2 图1-2 图1-3 p110b钢轨外形记录仪

德国vogel & plotscher公司的p110b钢轨外形记录仪[10](图1-3)可测得轨头轮

廓曲线,运用轨底面处的螺钉紧固和轨头踏面处的磁性吸附实现机械定位,通过将绘制出的轨

头轮廓曲线与原始轨头断面曲线对比得到轨头磨耗。

丹麦greenwood公司的miniprof钢轨外形测量仪[11](图1-4)技术上比较成熟,通过磁

性吸附将仪器固定在被测钢轨上,可通过手持终端的软件比较测量曲线和标准曲线并显示结

果,但测量范围不包含两边轨颚。

德国vogel & plotscher公司生产的pmsii钢轨断面数字记录装置[12](图1-5)通

过控制单元操作探针自动测量,测量曲线与标准曲线之间的比较也通过软件实

现。

图1-4 miniprof 钢轨外形测量仪图1-5pmsii钢轨断面数字记录仪

2.1.2非接触式测量

非接触的车载式有美国kld labs开发的光学钢轨检测分析(orian)系统

[13](图1-6)和瑞士elag公司研制的railmonitor-lite3000钢轨检测仪[14](图1-7)。

此类设备多安装在轨检车上,可实现在轨检车运行时的钢轨测量。在测量范围及精度方面,虽

然前者可测量整个钢轨断面,但分辨率和精度较低;后者测量范围较小,不能测量非工作边及

其下颗。

图1-6orian系统图1-7 railmonitor-lite3000钢轨检测仪

图1-8 激光钢轨外形测量仪

图1-9rhpg头形状测量仪

非接触的便携式有美国iem公司的激光钢轨外形测量仪(laser rail profilometer)[15](图1-8)、波兰graw公司生产的rhpg头形状测量仪(图1-6)、意大利

mermec公司开发的钢轨断面系统(rps)[16](图1-10),此类装置可测量完整的轨头断面,并且

体积明显小于车载式,移动和携带更为方便。

2.2 国内研究现状

2.2.1接触式机械测量

接触式机械量具中的点式测量仪具有成本低、稳定性好、方便携带等优点,在我国工务部

门中得到了广泛的应用。点式测量仪可分为两点测量和多点测量[17],代表产品有数显式钢轨

测量尺(图1-11)和60、61型9针钢轨侧磨仪(图1-12)。

图1-11 数显式钢轨测量尺图1-12 9针钢轨侧磨仪

同济大学的便携式钢轨轨头磨耗测量装置[18](图1-13)、南昌大学研制的基于轨检小车

钢轨外形测量装置[19](图1-14)和西南交通大学牵引动力实验室的钢轨外形测量仪[20](图

1-15)都属于该方案,束用连杆机构和光电编码器结合实现测量。前二者使用的是串联的二连

杆机构,以非工作边和下颚实现定位,测量范围不包含非工作边下颚;后者使用的是并联的五

连杆机构,通过软件实现数字定位,目前测量范围不包含工作边下颚。

图1-13 图1-14

图1-15篇五:开题报告

本科生毕业设计(论文)开题报告

毕业设计题目:基于c++的rs232通信协议模拟终端

学院:专业班级:学生姓名:指导教师:

2011年3月25日

目录

一、课题研究的目的和意义………………………………………1 二、课题研究的主要任

务和预期目标…………………………… 1 1. 主要任务及要求……………………………………………… 1 2. 预期目标…………………………………………………………2 三、设计方案…………………………………………………… 2 1. 设计思想……………………………………………………2 2. visual studio 2008编程及模拟终端

测试…………………3 3. crc校验………………………………………………3 4. 设计中

要解决的主要问题和措施........................5 四、课题进度安排...................................................... 5 参考文献 (5)

基于c++的rs232通信协议模拟终端

一、课题研究的目的和意义

随着当今信息技术的快速发展,通信技术已经成为信息技术中的关键问题。尤其在控制

领域,以何种方式实现计算机与外围设备间既简单又可靠的通信,就显得特别重要。由于串

行通信具有实现简单、使用灵活方便、数据传输可靠等优点,因而广泛应用与工业控制系统

中,是计算机与外部设备进行数据通信时经常使用的方式之一。它被广泛应用于pc与pc或

者pc与plc之间的数据交换以及其他自动控制中,它不仅没有因为时代的进步而遭淘汰,反

而在规格上越来越完善,应用也越来越广泛。

vc++是新一代面向对象的可视化开发工具,提供了良好的界面设计能力,在pc机的串口

通信方面有很强的功能。对于从事信息与通信行业的人来说,熟悉基于rs232串口通信的高

级语言编程方法显得十分重要。

模拟终端是为方便学习研究和系统测试,模拟硬件系统各种各样特征的一种软件。模拟

终端系统起到测试系统的作用。

二、课题研究的主要任务和预期目标

1.主要任务及要求(1)了解rs232协议

rs-232标准(协议)的全称是eia-rs-232c标准,其中eia代表美国电子工业协会,rs

代表推荐标准,232是标识号,c代表rs232的最新一次修改(1969),在这之前,有rs232b、

rs232a。它规定连接电缆和机械、电气特性、信号功能及传送过程。(2)了解rs232串口(3)了解rs232串口通信原理

由于rs232串口通信是异步的,端口能够在一根线上发送数据的同时在另一根线上接收

数据。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通信的

端口,这些参数必须匹配。(4)学习vc平台下的高级语言编程应用。

此次串口通信的实现使用visual studio 2008(vc++ 6.0也可),此款软件是面向windows

vista、office 2007、web 2.0的下一代开发工具,是对visual studio 2005一次及时、全

面的升级。相较于vc++ 6.0此款软件功能和兼容性较好一些。

(5)熟悉基于rs232串口通信的高级语言编程方法。(6)调试所编写的程序。 2. 预

期目标

了解rs232通信协议,掌握rs232串行通信的工作原理及实际应用。通过rs232通信协

议使用c++语言设计完成模拟终端(controller),从而实现acceptpr与controller之间的通信,即实现模拟终端上位机仿真。

三、设计方案

1. 设计思想

设计实现基于rs232协议通信的模拟终端,用个人计算机作为pc上位机仿真。首先实现pc机与主控机之间的通信,然后通过主控机的通信指令最后在pc机上显示主控机的状态,如图1:

图1 原理图

要想实现此模拟终端,必须先实现两台pc间的通信连接,即两台pc机间的数据的收发功能。(1)硬件部分

在两台pc计算机之间,一台嵌入式系统主控机和一台pc计算机之间,或者上位机和下位机之间进行串口通信,其中 rs232串口要用正确的方式连接两台设备,从而进入测试过程。(2)软件部分

参数设置功能、参数显示功能、打开串口功能、关闭串口功能、接收数据功能、发送数据功能等,程序框图如图2:

2.visual studio 2008编程及模拟终端测试

(1)软件实现

在visual studio 2008软件中,用mfc实现。即打开软件,新建一个工程,选择mfc,设置成基于对话框的应用程序即可。其具体步骤如下所示:

基于对话框制作界面,并添加相应的类,来实现软件部分的各种功能。

俄罗斯方块mfc实验报告

程序设计实践 设 计 报 告 课题名称:俄罗斯方块(MFC版)学生姓名:黄嘉慧 班级:2012211113 班内序号:27 学号:2012210389 日期:2014.6.1

1. 实验概述 1.1 课题目标和主要内容。 本课题的主要内容是用MFC 实现经典游戏俄罗斯方块的编写。目标是能够正常运行,并且无过于严重的问题。使用的平台为MFC (基于对话框)。 1.2 采用计分升级制来进行游戏。当一次消去一行时,得一分,一次两行得 4分,一次3行,得9分,一次4行,得16 分。每 50分为一个等 级,得分足够则升级并重新开始游戏。 2. 程序设计 2.1 系统总体框架 用一个4维数组DiamondStruct[7][4][4][4]来表示所有的方块,用一个POINT 类型的DiamondPos 来表示方块当前的位置,然后通过一个二维数组BlockPanel[][],来表示整个游戏界面,同时进行障碍的添加。游戏过程中,通过改变DiamondPos 来进行方块的下降以及

左右移动,通过DiamondStruct[7][4][4][4]中第二个参数的改变来进行方块的变换。 2.2系统详细设计 【1】模块划分图及描述 【2】类关系图及描述 CWinApp 与CDialog 为基类。其它为添加的类。 【3】程序流程图及描述

【4】存储结构,内存分配 主要存储结构为数组。同时分配内存的有,画笔,Diamond类的指针,Panel类的指针,Block类的指针,Mill类的指针,Manager类的指

针。 2.3 关键算法分析 【1】 bool Diamond::FullLine() { bool IsFull,Full=false; pManager->SeriesLine=0; for(int iy=0;iy<=pPanel->nVGridNum;iy++) { IsFull=true; for(int ix=0;ix<=pPanel->nHGridNum;ix++) { if(!pBlock->BlockPanel[ix][iy]) IsFull=false; } if(IsFull) { Full=true; pManager->SeriesLine++; for(int jy=iy;jy>0;jy--) { Sleep(10); for(int jx=0;jx<=pPanel->nHGridNum;jx++) { pBlock->BlockPanel[jx][jy]=pBlock->BlockPanel[jx][jy-1]; } } } } pManager->LineNumber+=pManager->SeriesLine; pManager->Result+=pManager->SeriesLine*pManager->SeriesLine; if(Full) return true; else return false; } 该算法实现的功能为,判断是否已经满行,并且若是满行,进行消行,加分的操作。该算法的时间复杂度为O(n)=【(nVGridNum)^2*nHGridNum.】/2

(整理)基于vcmfc的科学计算器程序实验报告

实验报告 课程名称:windows软件开发实习实验项目:科学计算器

沈阳工业大学实验报告 (适用计算机程序设计类) 专业班级:软件1006 学号:101201622 姓名:张鑫可 实验名称: 1.实验目的: 本程序设计实践是采用C++语言,在VC平台下设计。本课程设 计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力。程序设计实践主要是培养学生利用系统综合C++语言进行程序设计的能力。 1.进一步巩固和复习C++程序设计的基础知识。 2.培养学生结构化程序、模块化程序设计的方法和能力。 3.了解软件的编制过程及各环节的具体内容。 4.提高学生程序调试技巧、软件设计能力和代码规范化等素质。 5.提高学生分析问题、解决问题以及实际运用能力。 2.实验内容: 设计一个简单的计算器。要求能实现整数、小数算数运算。程序带 清零按钮。 3. 实验方案(程序设计说明) 见附件 4. 实验步骤或程序(经调试后正确的源程序) (填写主要步骤与程序代码等。见附件A) 5.出现的问题及解决方法

附件A 沈阳工业大学实验报告 (适用计算机程序设计类) 专业班级:软件1006 学号:101201622 姓名:张鑫可 实验步骤或程序: 一、关于Visual C++: Visual C++6.0由Microsoft开发, 它不仅是一个C++ 编译器,而且是一个基于Windows 操作系统的可视化集成开发环境(integrated development environment,IDE)。Visual C++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。这些组件通过过一个名为Developer Studio的组件集成为和谐的开发环境。Microsoft 的主力软件产品。Visual C++是一个功能强大的可视化软件开发工具。自1993年Microsoft 公司推出Visual C++1.0后,随着其新版本的不断问世,Visual C++已成为专业程序员进行软件开发的 首选工具。虽然微软公司推出了Visual C++.NET(Visual C++7.0),但它的应用的很大的局限性,只适用于Windows 2000,Windows XP和Windows NT4.0。所以实际中,更多的是以Visual C++6.0为6平台。 Visual C++6.0以拥有“语法高亮”,自动编译功能以及高级除错功能而著称。比如,它允许用户进行远程调试,单步执行等。还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。其编译及创建预编译头文件(stdafx.h)、最小重建功能及累加连结(link)著称。这些特征明显缩短程序编辑、编译及连结的时间花费,在大型软件计划上尤其显著。 二、设计要点 1、基本要求:设计的系统界面要美观大方,操作合理,有必要的 提示。 2、创新要求:在基本要求达到后,进行创新设计。

飞机大战MFC实验报告

实训报告 飞机大战游戏设计与开发

目录 1. 概述 (4) 2. 相关技术 (4) 2.1 透明贴图技术 (4) 2.2 CObList链表 (4) 2.3获取矩形区域函数 (4) 2.4弹出对话框函数 (5) 2.5字体的个性化输出函数 (5) 2.6设置定时器 (5) 2.7双缓冲技术 (5) 2.8 内存释放技术 (6) 2.9对话框中添加动态按钮 (6) 2.10检测方向键按下 (6) 3. 需求分析(用结构化方法或面向对象方法给出系统的主要需求模型) (6) 3.1功能需求分析 (6) 3.2 数据需求分析 (7) 3.3 行为需求分析 (7) 3.4 其他需求 (8) 4. 总体设计与详细设计 (8) 4.1 系统模块划分 (9) 4.2 主要功能模块 (10) 4.3 扩展功能设计思路 (10) 5. 编码实现 (11) 5.1游戏初始创建 (11) 5.2定时器 (11) 5.3背景及游戏开始、结束界面绘制函数 (11) 5.4键盘控制函数 (12) 5.5游戏对象进行碰撞测试和碰撞销毁 (13) 5.6创建动态按钮(开始游戏、游戏规则) (13) 5.6重新开始游戏代码 (14) 5.7设置游戏难度代码 (14) 5.8游戏结束时释放资源函数 (15) 5.9调整对话框大小函数 (15) 5.10开始界面背景绘制函数 (15) 5.11选择下一关卡以及选择完成后的执行代码 (16) 6.测试情况说明。 (17) 6.1主要模块测试情况(白盒) (17) 6.11各游戏对象碰撞检测爆炸模块测试 (17) 6.12战机导弹的方向速度模块测试 (17) 6.13文字显示,游戏结束和关卡进入模块测试 (18) 6.14设置游戏难度和重新开始模块测试 (18) 6.2 主要功能测试情况(黑盒) (18)

c计算器实验报告

简单计算器 姓名: 周吉祥 实验目的:模仿日常生活中所用的计算器,自行设计一个简单的计算器程序,实现简单的计算功能。 实验内容: (1)体系设计: 程序是一个简单的计算器,能正确输入数据,能实现加、减、乘、除等算术运算,运算结果能正确显示,可以清楚数据等。 (2)设计思路: 1)先在Visual C++ 6.0中建立一个MFC工程文件,名为calculator. 2)在对话框中添加适当的编辑框、按钮、静态文件、复选框和单选框 3)设计按钮,并修改其相应的ID与Caption. 4)选择和设置各控件的单击鼠标事件。 5)为编辑框添加double类型的关联变量m_edit1. 6)在calculatorDlg.h中添加math.h头文件,然后添加public成员。 7)打开calculatorDlg.cpp文件,在构造函数中,进行成员初始化和完善各控件 的响应函数代码。

(3)程序清单: 添加的public成员: double tempvalue; //存储中间变量 double result; //存储显示结果的值 int sort; //判断后面是何种运算:1.加法 2.减法 3.乘法 4.除法 int append; //判断后面是否添加数字 成员初始化: CCalculatorDlg::CCalculatorDlg(CWnd* pParent /*=NULL*/) : CDialog(CCalculatorDlg::IDD, pParent) { //{{AFX_DATA_INIT(CCalculatorDlg) m_edit1 = 0.0; //}}AFX_DATA_INIT // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); tempvalue=0;

C++实验报告(MFC简单画图程序)

VC++程序设计实验报告 一、实验目的 掌握MFC编程 二、实验内容 用MFC向导创建单文档应用程序,一个简单的画图程序。 ?使用C++语言实现 ?使用VC++6.0集成开发环境开发 ?使用MFC应用程序开发框架 三、实验步骤 ?基本功能描述 1. 打开exe文件,在绘图下拉菜单中可分别设置绘制的图形形状,如直线、 曲线、矩形及椭圆,线宽选项,有1-6可供选择,线型选项有实线、虚线、点线和点段线供设置,还可以设置线色以及填充色,通过弹出的颜色对话框选择需要的颜色,如果不选择线宽、线色以及填充色,则按默认的画笔,画刷来绘制选择的图形。 2. 选择好图形后,通过鼠标可以绘制出相应的直线,矩形或椭圆,鼠标的按下确定图形的起点,鼠标的拖动则确定了图形的终点,即通过鼠标的拖动来决 定图形的大小,当鼠标弹起,此图形则绘制完毕。 ?设计思路 1. 对需要用到的变量进行初始化。 2. 选择相应的图形之后就响应相应的消息处理函数,给shape赋对应的值。选择不同的线宽,线色与填充色,即可改变画笔或画刷的属性。 3. 鼠标的按下响应函数OnLButtonDown(),捕捉鼠标当前位置得到起点的坐标,鼠标的拖动响函数OnMouseMove()改变终点的坐标,鼠标的弹起响应OnLButtonUp(),确定终点坐标,刷新,得到绘制图形。 4. 选择图形或其它属性,可进行下一次绘制。 ?软件设计 A 设计步骤 1.创建单文档 创建一个MFC AppWizard[exe]工程,命名为“Draw”,如图1所示,并创建单文档,如图2所示。创建成功后,系统自动生成相应的类,如图3所示。

图1 创建工程 图2 创建单文档

c面向对象程序设计MFC简单计算器实验报告

计算机与信息工程学院 《程序设计基础》课程设计报告 题目名称:60.编写一个能实现简单功能的计算器学生姓名:刘沛东 学生学号:2011508154 专业班级:电子信息工程(1)班 指导教师:高攀

1 课程设计的题目 编写一个能实现简单功能的计算器 2 题目要求 1. 有一个计算器图形。 2. 能实现加、减、乘、除及乘方的运算。 3. 当输入题目时,屏幕上要在指定位置上显示出相应的题目内容,且相应的数字键要改变颜色 例如:输入数字1 时,在计算器图形上的1键变为红色。 4. 屏幕、图形颜色、形状自定 3 总体设计 3.1 总体框架 图1 系统框架

3.2 系统功能说明 在VC++6.0中绘制计算器界面,各控件的设置 对0~9控件设定相应的ID和其他属性: 图2 “1”控件设置 对“+、-、*、\”控件设定相应的ID和其他属性: 图2 “+”控件设置 对其它控件设定相应的ID和其他属性: 图3 其它控件设置

主要使用到Layout菜单中的Align功能对各个按钮进行对其,使界面更加整洁。拖出的控件有上面的一个Edit控件用于显示数字,Button控件用于处理鼠标的消息。 4 程序详细设计 4.1系统主调模块 图5 程序流程图

4.2各模块详细设计 4.2.1 建立的变量,控件的命名,对应的消息处理函数对应表 double poz; //保存小数点的位置,初始化为1,表示poz-1个小数点。 double m_Dis; //Edit控件上需要显示的数字 BOOL point_flag; //小数点表示位,判定是否是小数,是小数为1,不是小数为0。 double numfirst; //保存计算过程中的前一个数字, double numsecond;//保存计算过程中的第二个数字 char op;//记录当前的计算符号,可以为’+’,’-’,’*’,’/’,’=’,’c’,’n’ 变量初始化: poz=1; m_Dis = 0.0; numfirst=0; numsecond=0; op=0;

《MFC》实验报告模板

贵州大学实验报告 学院:梁玉涛专业:计算机科学与技术班级:计科职091 姓名梁玉涛学号0920020217 实验组 1 实验时间2011.10.25 指导教师曾劼成绩 实验项目名称使用计算数据画直方图 实 验目的1.了解图形设备接口GDI编程; 2.学会应用GDI编写应用程序; 3.实现使用计算数据画直方图。 实 验要求1.了解有关GDI的相关知识及使用; 2.根据实验指导书完成实验内容。 实 验原理 图形设备接口GDI(Graphics Device Interface)是一个系统库,允许对系统的硬件进行独立于设备的访问。GDI的核心是设备上下文类DC(Device Contex):设置绘图属性和驱动设备绘图的方法。封装了Windows API中的画图函数,设备上下文是内存中的一个对象,设备可以是屏幕或打印机。 实 验 仪 器 计算机、VC++ 6.0 实验步骤1.使用AppWixard生成单文档工程Plot 2.在PlotDoc.h中类CPlotDoc的定义之前加入类Max的定义 3.在PlotDoc.cpp的文件尾部加入类Max的实现部分 4.为CPlotDoc类增加一个公有的void类型的成员函数Find和一个公有int数据成员数组m_num[5],使用类产生对象并计算它们的最大值,将它们转换成int,存入整数数组m_num。 5.为CPlotDoc类的成员函数OnNewDocument增加调用语句准备数据。 6.在视类中画图写字; 7.运行程序,并观察结果。 1

实 验 使用计算数据画直方图 内 容 实 验 数 据 实 验 总 结 指 导 教 师 意 见签名:年月日

c计算器实验报告

c计算器实验报告集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#

简单计算器 姓名: 周吉祥 实验目的:模仿日常生活中所用的计算器,自行设计一个简单的计算器程序,实现简单的计算功能。 实验内容: (1)体系设计: 程序是一个简单的计算器,能正确输入数据,能实现加、减、 乘、除等算术运算,运算结果能正确显示,可以清楚数据等。 (2)设计思路: 1)先在Visual C++ 中建立一个MFC工程文件,名为calculator. 2)在对话框中添加适当的编辑框、按钮、静态文件、复选框和 单选框 3)设计按钮,并修改其相应的ID与Caption. 4)选择和设置各控件的单击鼠标事件。 5)为编辑框添加double类型的关联变量m_edit1. 6)在中添加头文件,然后添加public成员。 7)打开文件,在构造函数中,进行成员初始化和完善各控件的 响应函数代码。 (3)程序清单: 添加的public成员: double tempvalue; 法 2.减法 3.乘法 4.除法

int append; //判断后面是否添加数字 ●成员初始化: CCalculatorDlg::CCalculatorDlg(CWnd* pParent /*=NULL*/) : CDialog(CCalculatorDlg::IDD, pParent) { //{{AFX_DATA_INIT(CCalculatorDlg) m_edit1 = ; //}}AFX_DATA_INIT // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); tempvalue=0; result=0; sort=0; append=0; } ●各控件响应函数代码: void CCalculatorDlg::OnButton1() //按钮“1” { // TODO: Add your control notification handler code here if(append==1)result=0;

MFC计算器程序报告

C++课程设计实验报告 学号姓名 院系专业

一、课题名称 简易的计算器设计。 二、问题陈述 编写一个计算器程序,能够进行四则运算、取模等运算 要求: 1、个人完成; 2、运用对话框编写,界面上只能有一个输出框,数据通过按钮输入到程序,并显 示在输出框中;当按下运算符后再输入数据,输出框中应显示新数据;运算结果也显示在输出框中。 3、四则运算、取模运算是最低要求,程序能正确执行; 4、界面设计美观、合理; 5、独立完成; 三、设计目标和设计任务 编写一个计算器程序,能够进行四则运算、取模、乘方、立方,并且给计算器程序添加背景。 四、解题算法思想 1.创建一个基于对话框的项目 2. 给对话框加入相应的操作按钮 3. 给按钮加上代码,设置属性 4. 为实现四则运算、取模等操作添加必要函数 五、程序算法过程 ①选择File→New菜单命令,选择Project选项卡,并选择MFC AppWizard(exe), name 命名为calculator;选择应用程序基于对话框,即Dialog based。多次单击next,最后单击Finish后,系统弹出一对话框,如下图:

②使用按钮控件、文本编辑框控件和组控件,将他们加入到对话框中,并通过更改按钮控件的属性中的标题部分。选中所有按钮,在属性中的Extended Style中选中Modal frame,使其达到下图效果:(注意,在布局按钮时,为了使按钮总体整齐美观,可以先创建一行或一列按钮,使他们保持整齐后,按住Ctrl键,选中这一行或一列按钮,再移动鼠标,即可生成另一行或一列按钮;也可以通过Layout菜单中的指令对其进行布局) ③鼠标右击按钮控件,选择属性,即可对其ID进行更改,各ID与标题内容对应如下: ID 标题ID 标题IDC_BUTTON0 0 IDC_BUTTONCLS 清零 IDC_BUTTON1 1 IDC_ADD + IDC_BUTTON2 2 IDC_PLUS -

MFC计算器实验报告

实验报告一——计算器 一实验名称 简易计算器 二实验目的 在Visual C++.EXE开发环境中,通过编写计算器程序,掌握创建对话框的方法,并向其中添加控件,并设置属性,使之满足程序的要求。 三编程思路 计算器要实现各种运算,在编写中主要分为两大块的编写,一是对1、2、3等数字按钮的响应函数编写,二是对加减乘除等运算符按钮的响应函数的编写。 给Dlg添加变量int m_operator; //运算符 double m_result; //结果(含中间变量) 另外添加编辑框的变量m_res 1.对数字按钮的响应函数的编写 1)由于每个按钮的响应函数相差不大,故用一个函数将其封装 在每次输入时要先判断数据开头是否为0 void CMy0710210202CalculateDlg::button(CString c) { UpdateData(TRUE); m_res+=c; if(m_res.GetAt(0)=='0'&&m_res.Find(".")==-1){ m_res.Empty(); m_res+=c; } UpdateData(FALSE); } 2)小数点按钮的响应函数。 首先要判断输入数据中是否已有小数点,数据是否为0,以及是否还没输入数据。 void CMy0710210202CalculateDlg::OnDian() { // TODO: Add your control notification handler code here UpdateData(TRUE); int n=m_res.Find("."); if(n==-1&&m_res.GetLength()!=0) m_res+="."; else if(m_res.GetLength()==0)m_res+="0."; UpdateData(FALSE); } 2.运算符按钮的响应函数的编写 用m_operator指代要进行的运算,由于每次的运算结果m_result 都传入了编辑框的变量m_res里,故此程序可以实现连续运算。 代码为 void CMy0710210202CalculateDlg::Result() { UpdateData(TRUE);

MFC贪吃蛇实验报告

贪吃蛇实验报告201221143049 信计1212 许圣

1.概述 此次课程设计我利用MFC制作了一个贪吃蛇游戏,用户可以通过上下左右控制蛇的移动方向,游戏会根据贪吃蛇身体的长度自动增加难度。在游戏过程中,会记录运行时间和所得分数,我还添加了bmp格式的图片作为游戏背景。 2.功能描述 2.1设计思路 本软件主要由三个模块构成,它们分别是蛇运行模块,初始化处理模块和显示模块。它们的作用分别是,初始化处理:初始化蛇头位置与第一个点位置;蛇运行模块:控制蛇的上下左右运行,并对蛇的运行状态进行判断,根据(吃点、未吃点、死亡等)状态进行不同的子程序模块处理以及游戏者是否能晋级的判断;显示模块:根据对蛇和点子的当前状态进行动画显示。主要有以下步骤: 1.定义蛇类和食物类,初始化贪吃蛇各项成员变量,包括图像的出现在屏幕的 初始位置,长度,以及蛇的行走方向。食物类的定义包括出现的初始位置,以及食物是否被吃掉的判断。 2.用数组初始化长度为4的贪吃蛇,并且默认出现一个食物。 3.在CView类上运用MFC提供的Windows消息中WM_TIMER消息,运用OnTimer() 函数让系统提供一个时钟节拍,更新游戏 4.具体游戏实现,包括蛇撞到自己和围墙都将使游戏结束,判断吃豆等,其中 还包括根据蛇的长度来进行游戏难度的改变。 5.具体键盘游戏操作运用到Windows消息响应中的WM_KEYDOWN,用OnKeyDown() 来响应玩家的实际操作。 6.添加了bmp格式的图片作为游戏背景。 整体流程图如下图1。

图1:系统流程图

2.2功能介绍 ⑴运行程序,出现围墙界面,一条蛇在密闭的围墙内,在围墙内随机出现一个食 物,出现bmp格式图片的背景。 ⑵点击“游戏->游戏开始”,游戏开始。还可暂停游戏继续 ⑶游戏开始后,界面右下角会同步游戏得分。 ⑷通过四个方向键控制蛇的运动方向,吃掉随机出现的豆子,若不小心碰到墙 壁或者与自身相交,则该轮游戏结束。 ⑸游戏会根据蛇身的长度自动调节难易程度。 3.详细设计 3.1主要函数 ●void CSnakeView::OnDraw(CDC* pDC)//显示背景图片 ●void CSnakeView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)//按照用户的按键来控制蛇的移动 ●void CSnakeView::OnTimer(UINT nIDEvent)//根据蛇的长度来进行 SetTimer()函数的定义,可以根据长度来进行游戏难度的设定。//撞 界判断//蛇身相撞判断//抹掉蛇行走的痕迹//判断吃豆的条件,撞到就 吃//如果食物被吃了就生成 ●void CSnakeView::oninit()//进行贪吃蛇外观的初始化 ●void CSnakeView:: OnGameStart ()//开始游戏 ●void CSnakeView:: IniAim ()//初始化目标的位置 ●void CSnakeView::IniGame()//初始化游戏 ●void CSnakeView::ReDisplay(CPoint pPoint) ●bool CSnakeView::ReadBmp(char *bmpName)

MFC基本应用程序的建立实验报告

计算机与信息技术学院综合性、设计性实验报告 专业:计算机科学与技术年级/班级:10计科一班 一、实验目的: (1)了解Windows的基本编程特点 (2)会使用MFC AppWinzard(exe)创建单文档应用程序 (3)学会添加消息映射等简单功能 (4)掌握用项目工作区的ClassView页面添加数据成员的方法 (5)学会和掌握调试的一般步骤和过程 二、实验内容: (1)在一个默认的单文档应用程序Ex_SDI中通过映射计时器消息实现这样的功能:无论在Ex_SDI应用程序窗口的客户区中单击鼠标左键或右键,都会弹出“消息”对话框,显示左键或右键的单击次数。 (2)使用调试器对上述程序的流程和鼠标单击次数进行调试。 三、实验步骤: 1、创建工作文件夹 打开计算机,在“G:\Visual C++程序\实验”文件夹中创建一个新的子文件夹“实验8”。 2、创建单文档应用程序Ex_SDI 创建单文档应用程序Ex_SDI的具体步骤如下: (1)启动Visual C++ (2)选择“文件”→“新建”菜单命令,显示“新建”对话框。从列表中选中MFC AppWinzard(exe)的项目类型项。 (3)在“工程”编辑框中输入应用程序项目名称Ex_SDI,并将项目文件夹定位到“D:\Visual C++程序\实验\实验8”。 (4)单击“确定”按钮,显示“应用程序向导”对话框。选中单个文档(Single Document,简称SDI)应用程序类型。单击“完成”按钮,系统将显示向导创 建的信息,单击“确定”按钮将自动创建此应用程序。 (5)编译运行。 具体操作如下:

运行结果如下: 3、添加数据成员: 添加数据成员的的具体步骤如下: (1)展开项目工作区窗口ClassView中的所有类结点。 (2)用鼠标右键单击CEx_SDIView类结点,从弹出的快捷菜单中选择“Add Member Variable(添加成员变量)”,弹出如图所示的“Add Member Variable” 对话框。 (3)在Variable Type框中输入成员变量类型int,在Variable Name框中输入变量名称m_nLButton。保留默认的访问方式(Acess)为Public。单击“确定”按钮, 这样,就会在CEx_SDIView中添加一个公有型成员变量m_nLButton,变量类 型为int。

V C++课程设计 计算器例程完整版

// 计算器3Dlg.cpp : implementation file // #include "stdafx.h" #include "计算器3.h" #include "计算器3Dlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CAboutDlg dialog used for App About class CAboutDlg : public CDialog { public: CAboutDlg(); // Dialog Data //{{AFX_DA TA(CAboutDlg) enum { IDD = IDD_ABOUTBOX }; //}}AFX_DA TA // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CAboutDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support //}}AFX_VIRTUAL // Implementation protected: //{{AFX_MSG(CAboutDlg) //}}AFX_MSG DECLARE_MESSAGE_MAP() }; CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { //{{AFX_DA TA_INIT(CAboutDlg) //}}AFX_DA TA_INIT }

c++实验报告mfc简单画图程序).doc

V C++程序设计实验报告 一、实验目的 掌握MFC编程 二、实验内容 用MFC向导创建单文档应用程序,一个简单的画图程序。 ?使用C++语言实现 ?使用VC++6.0集成开发环境开发 ?使用MFC应用程序开发框架 三、实验步骤 ?基本功能描述 1. 打开exe文件,在绘图下拉菜单中可分别设置绘制的图形形状,如直线、曲线、矩形及椭圆,线宽选项,有1-6可供选择,线型选项有实线、虚线、点线和点段线供设置,还可以设置线色以及填充色,通过弹出的颜色对话框选择需要的颜色,如果不选择线宽、线色以及填充色,则按默认的画笔,画刷来绘制选择的图形。 2. 选择好图形后,通过鼠标可以绘制出相应的直线,矩形或椭圆,鼠标的按下确定图形的起点,鼠标的拖动则确定了图形的终点,即通过鼠标的拖动来决定图形的大小,当鼠标弹起,此图形 则绘制完毕。 ?设计思路 1. 对需要用到的变量进行初始化。 2. 选择相应的图形之后就响应相应的消息处理函数,给shape赋对应的值。选择不同的线宽,线色与填充色,即可改变画笔或画刷的属性。 3. 鼠标的按下响应函数OnLButtonDown(),捕捉鼠标当前位置得到起点的坐标,鼠标的拖动响函数OnMouseMove()改变终点的坐标,鼠标的弹起响应OnLButtonUp(),确定终点坐标,刷新,得到绘制图形。 4. 选择图形或其它属性,可进行下一次绘制。 ?软件设计 A 设计步骤 1.创建单文档 创建一个MFC AppWizard[exe]工程,命名为“Draw”,如图1所示,并创建单文档,如图2所示。创建成功后,系统自动生成相应的类,如图3所示。

图1 创建工程 图2 创建单文档

MFC简单计算器设计正文

实用计算器程序1.基本功能描述 计算器是人们日常生活中非常实用的计算工具。预期设计目标与实际计算器为标准,Windows10系统提供的计算器为范例进行设计。 实用计算器要实现单目运算和双目运算。单目运算主要包括阶乘、正弦、余弦; 双目运算主要包括加、减、乘、除、乘幂等。计算器要能够对输入的各种数据进行处理,包括小数、整数、负数等数据进行操作。实际过程中要能够对不同的数据灵活判 断执行。同时要能够对不满足运算符的操作数,提示出错信息以方便用户进行处理。 用户的修改包括清屏和退格。程序设计的重点和难点在于:第一,能够对于不同的操 作数和操作符进行连续运算,运算过程中要有优先级的判断,根据优先级执行不同的 运算顺序;第二,能够用一个编辑框实现运算表达式的显示和结果的输出。 编程环境采用VisualStudio2017提供的MFC建立对话框应用程序,设计界面要简 单大方,并提供程序所有功能的接口。 2.设计思路 表1操作符优先级设计 优先级操作符 1 阶乘、正弦、余弦 2 乘幂 3 乘、除 4 加、减 对对话框编辑框关联一个变量从中读取数据,按下数字键时对数据数组num[]进行更新,其中num[0]表示的是当前已经存储变量的个数。由于算法设计为四层优先级, 且单目运算的优先级最高。当按下相应单目运算符,首先将当前数据数组的最后一个 存储(防止按下Backspace退格发生错误),并将此位数据执行运算后重新赋值。但按下双目运算符相应按键后,将计数num[0]++,同时将运算符的类型和位置记录。当按下等于之前,这样就将一个单目双目混合的运算表达式转化为双目运算。如果没有按 下等号键,则继续执行循环。在按下等号按钮之后,按照先乘幂、再乘除、后加减的 运算顺序执行运算,将最后结果保存并显示。(在实际的计算器中,执行完运算之后,按下运算符的操作键,最终结果将按照左操作数的形式出现,故需要保存变量。)如果用户没有结束程序,在运行初始化程序,进行下一次运算,否则直接退出。 图1程序流程图 3.软件设计 设计步骤 1)创建基于对话框的程序 利用AppWizard建立应用程序框架,创建一个基于对话框的MFC工程,命名为“fengwanjincalculator”,如图2所示。在图3显示的应用程序类型中选择基于对话框。创建成功后,系统自动生成相应程序文件。 图2创建MFC工程图 图3应用程序类型选择图

MFC画笔程序实验报告

功能说明 1、在画图之前,点菜单【画笔】,设置画笔之后才能绘图 图1、画笔设置 2、左侧工具条依次对应直线、自由画线、实体矩形、实体圆形、实体椭圆、选中区域、擦除功能 图2、图形绘制及编辑 3、选中区域后删除,点击菜单【编辑\删除选定区域】,即可完成删除功能 4、颜色设置,点击菜单【颜色】,弹出颜色对话框,选中颜色

图3、颜色设置 5、背景设置,点击菜单【背景设置】,弹出对话框,选择“是”加载默认位图 资源 图4、背景设置 6、点击保存按钮,生成图片保存到工程文件的文件夹中 问题分析 建立MFC单文档工程文件:Draw 一、画图程序支持画直线、自由连线(随鼠标移动连线)、实体圆形、实体矩形、实体椭圆。 在主窗口中添加工具条,工具条上有直线、自由连线、实体圆形、实体矩形、实体椭圆的的图标,命名为IDR_DRAWFRAME,在CmainFrame的OnCreat函数中将工具条加载上去,函数名为:LoadToolBar 二、支持区域选中(通过鼠标拖拽方框选中),并删除选中区域内所画的形状。 鼠标拖拽方框选中:可以设计绘制为背景为透明色的矩形 删除选中区域即将选中矩形上的图像去掉,变为系统白色区域,即:设计矩形填充为白色 三、支持各种笔形画图时的前景色和背景色

前景色:在菜单中添加颜色菜单,单击颜色菜单,弹出颜色选择框,选择颜色对画笔的颜色进行设置。 背景色:在菜单栏中添加背景设置按钮,选择背景设置,则默认设置图画位图背景为选定的文件 四、支持图擦功能,选中图擦时,随着图擦的移动,根据图擦的大小,将图擦经过的区域中的形状相关部分清除。 在工具条上添加擦出按钮,随着鼠标的移动,鼠标经过的区域图形消失,采用InvalidateRect函数、 五、支持打印、打印预览功能,并保持图片所见即所得。 在视图窗口绘制图形是在逻辑坐标系中展示的,而打印设备对应的是物理坐标系。为了实习所见即所得,需要继续逻辑坐标系到物理坐标系的转换。 六、支持将所画的内容保存为文件,格式为BMP格式。 在菜单【文件】中有“保存按钮”,点击此按钮,将所绘图形保存为.bmp文件。MFC没有提供文件的保存函数,需要自己设计算法,以完成.bmp文件的保存。首先当前显示的屏幕位图拷贝到BITMAP中,然后将BITMAP保存到内存中。 方案设计 一、画图程序支持画直线、自由连线(随鼠标移动连线)、实体圆形、实体矩形、实体椭圆。 实现步骤: (1)在主窗口中添加工具条,工具条上有直线、自由连线、实体圆形、实体矩形、实体椭圆的的图标,命名为IDR_DRAWFRAME,在CmainFrame 的OnCreat函数中将工具条加载上去,函数名为:LoadToolBar (2)直线图标ID号为:ID_SLINE;自由连线图标ID号为:ID_CLINE; 实体圆形ID号为:ID_ROUND 实体椭圆图标ID号为:ID_ELLIPSE 实体矩形ID号为:ID_RECTANGL (3)在CDrawView类中添加m_nDrawType变量控制画图类型,添加m-ptStart变量,保存鼠标起始点。为以上ID号添加COMMAND函数, 分别为:OnSline() 、OnCline() 、OnRound()、OnRectangle() 、OnEllipse()。 函数中控制m_nDrawType的值,以控制图形类型 (4)在CDrawView类中添加成员函数OnLButtonDown、OnLButtonUp和OnMouseMove,OnLButtonUp中完成直线、实体圆形、实体矩形、实 体椭圆的绘制;OnMouseMove中完成自由连线的绘制。 (5)为保证视图窗口刷新时,图形能够再现,添加类CGraph,此类中包含变量nFlags(控制OnMouseMove函数)、m_nDrawType(绘图类型)

MFC计算器设计

课程名称:Visual C++面向对象与可视化程序设计 实验项目:计算器设计 姓名: 专业:计算机科学与技术 班级: 学号: 计算机科学与技术学院 实验教学中心 2016 年11月19日

哈尔滨理工大学计算机科学与技术学院实验报告 实验项目名称:计算器设计( 2课时) 一、实验目的 1.灵活使用MFC应用程序设计 2.设计计算器 二、实验内容 设计一个简单的计算器,可以实现加法,减法,除法,乘法,取模,开平方,输入数字要求可以输入小数,可以连加。具有清空,回退功能。 三、实验步骤 1.启动VS打2012开新建项目 2.出现的New对话框的Projects标签内选择MFC应用程序 3.Projects Name指定项目的名字,在Location中指定路径后按OK按钮 4.选择创建类型,(例如基于对话框),确定项目类型后按Finish完成。 5.编写实验代码 四、实验结果

五、程序代码 // project_1Dlg.h : 头文件 // #pragma once #include "afxwin.h" // Cproject_1Dlg 对话框 class Cproject_1Dlg : public CDialogEx { // 构造 public: Cproject_1Dlg(CWnd* pParent = NULL); // 标准构造函数void Equal2(); void Cproject_1Dlg::AddDigit(char numKey); // 对话框数据 enum { IDD = IDD_PROJECT_1_DIALOG };

MFC实验报告

实验报告 实验日期: 2013 年 05 月 18 日 一、实验目的 1、熟悉Visual C++的基本操作。 2、基本了解基于对话框的windows应用程序的编写过程。 3、对于Windows Socket编程建立初步概念。 二、实验要求 1、应用Visual C++中MFC CSocket类,实现网络数据传输。 2、仿照本实验步骤,制作实用的局域网一对一聊天程序。 三、实验原理

设置加入连接的数目,通过更改IP地址和端口号,成为不同的客户端,与服务器端连接,实现用户间的聊天功能。 1.程序整体框架:主程序监听一端口,等待客户接入;同时构造一个线程类,准备接管会话。当一个Socket会话产生后,将这个会话交给线程处理,然后主程序继续监听。 2.客户端(Client) 客户端,使用Socket对网络上某一个服务器的某一个端口发出连接请求,一旦连接成功,打开会话;会话完成后,关闭Socket。客户端不需要指定打开的端口,通常临时的、动态的分配一个端口。 3.服务器端(Server) 服务器端,使用ServerSocket监听指定的端口,端口可以随意指定(由于1024以下的端口通常属于保留端口,在一些操作系统中不可以随意使用,所以建议使用大于1024的端口),等待客户连接请求,客户连接后,会话产生;在完成会话后,关闭连接。 4.用户图形界面 用户图形界面方便程序与用户的交互,多个用户参加,完成会话功能,具体的设计要方便用户的使用,直观清晰,简洁明了,友好美观。 四、实验内容 一个最简单的点对点聊天程序 客户机/服务器模式是socket点对点网络程序典型的模式,以下这个实验就是实现一个简单的点对点通信的聊天程序。它用到的方法也是面向连接TCP连接的套接字MFC典型方式。其工作过程是:服务器首先启动,创建套接字后等待客户的连接;客户启动以后,创建套接字,然后和服务器建立连接;连接建立后,客户机和服务器可以通过建立的套接字连接进行信息通信。

基于vcmfc的科学计算器程序实验报告

实验报告 课程名称:windows软件开发实习实验项目:科学计算器

沈阳工业大学实验报告 (适用计算机程序设计类) 专业班级:软件1006 学号:101201622 姓名:张鑫可 实验名称: 附件A 沈阳工业大学实验报告 (适用计算机程序设计类) 专业班级:软件1006 学号:101201622 姓名:张鑫可 实验步骤或程序: 一、关于Visual C++: Visual C++6.0由Microsoft开发, 它不仅是一个C++ 编译器,而且是一个基于Windows 操作系统的可视化集成开发环境(integrated development environment,IDE)。Visual C++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开

发工具。这些组件通过过一个名为Developer Studio的组件集成为和谐的开发环境。Microsoft 的主力软件产品。Visual C++是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出Visual C++1.0后,随着其新版本的不断问世,Visual C++已成为专业程序员进行软件开发的 首选工具。虽然微软公司推出了Visual C++.NET(Visual C++7.0),但它的应用的很大的局限性,只适用于Windows 2000,Windows XP和Windows NT4.0。所以实际中,更多的是以Visua l C++6.0为6平台。 Visual C++6.0以拥有“语法高亮”,自动编译功能以及高级除错功能而著称。比如,它允许用户进行远程调试,单步执行等。还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。其编译及创建预编译头文件(stdafx.h)、最小重建功能及累加连结(link)著称。这些特征明显缩短程序编辑、编译及连结的时间花费,在大型软件计划上尤其显著。 二、设计要点 1、基本要求:设计的系统界面要美观大方,操作合理,有必要的 提示。 2、创新要求:在基本要求达到后,进行创新设计。 3、对系统进行功能模块分析、控制流程分析正确。 4、系统设计要实用,编程简练,可用,功能全面,并有一定的容错 能力。 5、说明书、流程图要清楚 6、要求程序设计合理,用户界面良好,如采用菜单工作方式。 三、实验步骤: 1、首先利用MFC AppWinzard生成计算器应用程序框架具体步骤如下: 执行VC程序,选择File|New命令,弹出New对话框.单击Projects标签,转到Projects选项卡,选择MFC AppWizard(exe)选项,然后在Project name 文本框中输入cyyJSQ 。Lacation文本框是指项目的本地路径。 2、界面设计 在界面中添加按钮,编辑框等相应控件,并合理摆放,使用户能更加方便的使用。具体设计如下图所示: 3、绑定控件 通过如下方式绑定控件。 具体绑定如下表所示: 按钮控件资源清单

相关主题
相关文档 最新文档