MFC实验报告

合集下载

mfc计算器实验报告

mfc计算器实验报告

mfc计算器实验报告MFC计算器实验报告引言:MFC(Microsoft Foundation Class)是微软公司开发的一套用于Windows应用程序开发的类库,它提供了一系列的类和函数,方便开发者进行图形界面的设计和开发。

在本次实验中,我们将使用MFC来设计一个简单的计算器应用程序,并通过实验报告来总结我们的设计过程和结果。

1. 实验目的本次实验的主要目的是熟悉MFC框架的使用,了解MFC的基本原理和设计思路,并通过实际操作来掌握MFC应用程序的开发流程。

2. 实验环境本次实验使用的开发环境是Visual Studio 2019,该版本已经集成了MFC开发环境,方便我们进行MFC应用程序的设计和开发。

3. 实验步骤3.1 创建MFC项目首先,我们打开Visual Studio 2019,并选择创建一个新的MFC应用程序项目。

在创建项目的过程中,我们需要选择MFC应用程序向导,并设置一些基本的项目属性,如应用程序名称、目标平台等。

3.2 设计计算器界面在项目创建完成后,我们将进入MFC应用程序的设计界面。

在这个界面中,我们可以通过拖拽和调整控件的方式来设计应用程序的界面。

为了实现一个简单的计算器功能,我们需要添加一些按钮、文本框和标签等控件,并设置它们的属性和事件响应函数。

3.3 实现计算器功能在设计界面完成后,我们需要在代码中实现计算器的功能。

具体来说,我们需要编写一些函数来处理按钮的点击事件,并根据用户的输入来进行相应的计算操作。

在这个过程中,我们可以使用MFC提供的一些数学函数和操作符重载来简化计算的过程。

4. 实验结果经过我们的设计和开发,一个简单的计算器应用程序已经完成了。

在实验过程中,我们测试了该应用程序的基本功能,包括加法、减法、乘法和除法等运算操作,并对一些特殊情况进行了处理,如除数为零等。

实验结果表明,该计算器应用程序在功能和稳定性方面都达到了预期的效果。

5. 实验总结通过本次实验,我们对MFC框架的使用和应用程序的开发流程有了更深入的了解。

MFC实验报告(模板)

MFC实验报告(模板)

重庆交通大学程序设计实训I课程实验报告
班级:专业级班
姓名:
学号:
实验项目名称:
实验项目性质:
实验所属课程:
实验室(中心):
指导教师:
实验完成时间:年月日
教师评阅意见:
签名:年月日实验成绩:
一、实验目的
二、实验主要内容及要求
三、实验设备及软件
四、设计方案
㈠题目(老师给定或学生自定)
㈡设计的主要思路或相关算法的流程图
㈢主要功能
五、主要代码及必要说明
六、实验结果及说明
七、测试数据与测试结果分析
八、实验体会
九、附录
此部分主要标明主要参考文献或其它需要特殊说明部分。

MFC实践报告

MFC实践报告

c++课程设计实验报告——科学计算器学号:03109613 姓名:徐洁月院系专业:建筑环境与设备工程目录一、课题名称······················································二、问题陈述三、设计目标和设计任务四、解题算法思想五、数据结构描述六、测试数据七、运行情况分析八、设计小结九、心得体会参考资料提交日期一.课题名称科学计算器的设计二.问题陈述三.设计目标和设计任务 3.1初期对自我的要求通过实践加强对程序设计语言课程知识点的理解和掌握,培养对课程知识综合运用能力、实际分析问题能力及编程能力,养成良好的编程习惯。

通过实践进一步领会程序设计的特点和应用,提高运用c++ 语言以及面向对象知识解决实际问题的能力。

通过实践掌握用c++ 语言编写面向对象的实用程序的设计方法,对面向对象方法和思想增加感性的认识;学会利用c++程序设计语言编写出一些短小、可靠的windows实用程序,切实提高面向对象的程序设计能力。

为后续的相关课程的学习打下基础。

3.2设计目标和任务要求实现具有加,减,乘,除基本四则运算功能要求能够实现二进制,八进制,十进制,十六进制转换设计基于mfc框架的,具有友好界面的windows应用程序科学计算器要求具有运算优先级别,包括运算符号的优先级判断,实现基于括号的优先级控制科学计算器要求具有科学函数计算功能,主要包括三角函数(具有角度与弧度的切换),指数函数,对数函数等四.解题算法思想4.1 算法基本流程1)用户通过键盘或者计算机上的按钮输入计算表达式2)这时所输入的表达式在用户看来是数学运算符号,我们要做的就是将数学表达式转换成字符串3)查看整个算式中的括号是否都左右匹配,如果不匹配则推出并提示用户并退出。

mfc画线实验报告

mfc画线实验报告

mfc画线实验报告mfc实验报告程序设计实践设计报告1.课题概述1.1课题目标和主要内容●主要内容这个实验我主要是应用VS C++ 2010实现学生信息管理系统的设计,主要实现学生管理系统中选择学院和专业,学生个人信息管理,班级管理,成绩和选课等功能。

是一个基于对话框的应用程序。

●实验目的:a.了解windows编程的基础知识,掌握MFC应用程序的基本知识;b.基本掌握面向对象程序设计的基本思路和方法;c.掌握利用visual C++开发应用程序的一般步骤和方法;1.2系统的主要功能2. 系统设计2.1 系统总体框架2.2 系统详细设计A.学生基本信息:1.添加人员信息:编写CStudentDlg::OnAdd()函数,该函数完成对学生基本信息的添加,因为每个学生都有唯一的学号,所以在添加人员信息的时候,会先判断学号是否已经存在,若是重复,则需要重新输入学号,再完成学生信息的添加,点击确定后,才能完成对管理系统的修改。

2.编辑学生信息编写CStudentDlg::OnEdit()函数,对已有的学生信息进行编辑和修改,选中需要修改的信息,在对应栏中写入正确的信息,然后点击编辑,点击确定,完成编辑3.删除学生信息编写CStudentDlg::OnDelete()函数,对现有的学生信息进行删除,选中需要删除的信息,点击删除,然后确定,完成删除。

B.班级信息有CAllInfor::GetAveGrade()函数和CClassSort::InsertSort()函数来完成班级显示信息里的排名,在课程成绩中获得成绩求得总成绩,然后求得平均,进行排名篇二:实验一MFC基本绘图数学与计算科学系学生实验报告实验课程名称:计算机图形学实验内容:实验一MFC基本绘图系别:年级:专业班:学生姓名:学号:开课时间:年下学期一、实验要求1. 按照教材第40页2.2节所介绍的操作步骤,熟悉MFC应用程序的创建过程,并完成第50页的例2-5。

MFC实验报告

MFC实验报告

C++期末程序设计实验报告学院:自动化班级:05507学号:051622姓名:操军班内序号:02(本来想做一个学生管理系统,但是后来做着做着就发现自己做的一点都不像学生管理系统,应该像一个校友录系统,不过不管怎样学到知识就可以了,于是决定凑合着交上去吧。

)管理系统的设计及其制作一.整体设计:1.使用MFC,充分利用MFC封装的各种控件函数;2.模块划分如图分三个类,用三个用MFC封装的函3.思路简介:用类和对象实现可以充分利用封装,继承,多态的方法。

由于要求比较简单,在本程序中基本没有用到多态的方法。

但大量用到了封装和继承。

即每个对话框继承了CDialog的多种特性,每个对话框的功能封装到一起,多个对话框各司其职(对话框之间只有数据传递,每个对话框只实现自己的功能),由于主对话框一直存在,所以将重要数据(3个对象数组)作为主对话框的变量。

为了实现数据安全,考虑不用全局变量。

另外,实现界面美化也是重要的部分,通过类向导,利用WM_PAINT WM_CTLCOLOR WM_ERASEBKGND 等消息实现对话框的美化。

二.操作说明:1.主对话框列表视图一个,按钮多个,静态控件若干,复选框一个。

列表试图不显示所有数据,仅显示最重要的数据。

对于其它数据可以通过点击“详细资料”按钮弹出“详细资料对话框”得到。

排序,分类查看查找结果都在列表框中显示。

该对话框上可以实现添加,删除,编辑,查看,分类查看,精确查找,模糊查找,统计,保存,退出功能。

左上角能够显示当前系统所显示的时间。

右上方提示栏可以提示某些操作后的当前状态。

2.添加,修改功能点击“添加”按钮,显示上图点击“编辑”按钮,显示上图“添加”弹出对话框中为空,“修改”弹出的修改对话框显示待编辑对象的数据。

必须填写名称和性质才可以填写其它信息和实现“确定”功能。

填写前需要在相应的一栏前的复选框中打勾。

对于“部门”这一个选项,客户可以自己填写其他单位,不一定要在下拉框中的选项中选取。

mfc实验报告

mfc实验报告

mfc实验报告MFC实验报告引言:MFC(Microsoft Foundation Class)是一种用于开发Windows桌面应用程序的框架,它提供了丰富的类库和工具,简化了Windows应用程序的开发过程。

本文将介绍我在进行MFC实验过程中的经验和收获。

一、实验背景MFC作为一种常用的开发框架,被广泛应用于Windows平台的软件开发中。

通过学习和实践MFC,可以更好地理解Windows应用程序的开发原理和方法。

二、实验目的本次实验的目的是通过开发一个简单的MFC应用程序,掌握MFC的基本使用方法和开发流程。

同时,通过实践了解MFC的一些重要概念和特性。

三、实验过程1. 环境搭建首先,需要安装Visual Studio,选择合适的版本并按照提示进行安装。

安装完成后,打开Visual Studio,创建一个新的MFC应用程序项目。

2. 界面设计在MFC应用程序中,界面设计是一个重要的环节。

通过使用Visual Studio提供的可视化设计工具,我们可以方便地创建和布局界面元素,如按钮、文本框等。

3. 事件处理在MFC应用程序中,用户的操作往往会触发一些事件,如点击按钮、输入文本等。

我们需要编写相应的事件处理函数,来响应这些事件并执行相应的操作。

在实验中,我学会了如何编写事件处理函数,并与界面元素进行关联。

4. 数据处理在实际应用中,数据的处理是不可或缺的一部分。

通过学习MFC,我了解到如何在应用程序中进行数据的输入、输出和处理。

MFC提供了丰富的类库和接口,可以方便地进行数据操作。

5. 调试与测试在开发过程中,调试和测试是必不可少的环节。

通过使用Visual Studio提供的调试工具,我学会了如何定位和修复程序中的错误,并进行功能测试和性能测试。

四、实验结果经过一段时间的学习和实践,我成功地开发了一个简单的MFC应用程序。

该程序可以实现基本的界面显示和数据处理功能。

通过实验,我对MFC的使用有了更深入的了解,并且掌握了一些常用的开发技巧和方法。

计算器-MFC程序实验报告

计算器-MFC程序实验报告

题目:计算器编程实验一、目的:编写一个程序实现+、-、*、/、sqrt、x^n基本运算,同时有清除和归零的功能。

二、程序说明:(1)符号说明:SR[20]:是用来存储输入字符串的变量;SR1[20]:为第一个字符为’0’,其余都为’’的字符串变量,当按清零健时赋给SR[20]变量,实现SR[20]“清零”;NUM1:是存储输入的数值变量;NUM2:是用来存储第一个输入的数值变量,因为每一步计算都是两个数,在第一个输入结束后NUM1的只赋给NUM2,而NUM1继续储存新输入的数值;STNUM:是没有小数点的数值变量,于是实际进行计算的值只需将这个数除以10的小数点位数次方即可;FUHAO:是表示符号的数值变量,1、2、3、4、5、6分别表示+、—、*、/、x^n、sqrt;WEICOUNT:是表示输入的字符串的位数;DIANCOUNT:表示输入的“.”次数;FUCOUNT:表示输入符号(即+、-、*等)的次数;AFDIAN:表示输入的数字在小数点后的第几位,即相当于计算小树位数;m_S:表示计算结果的变量,勇于输出结果;(2)程序运行过程:①点击数字时,SR[WEICOUNT++]=”输入数字的字符”并输出;STNUM=10*STNUM+所输数字的大小;如果DIANCOUNT=1,则NUM1=STNUM/pow(10,AFDIAN++);否则就NUM1=STNUM;这样就能将有无小数点的情况进行判断而且计算出来;②点击符号(+、-、*、/、x^n、sqrt),SR[WEICOUNT++]=”输入符号的字符”并输出;NUM2=NUM1,NUM1=0,这样就相当于将第一个值付给了NUM2,同时STNUM=0,所以在输入数的时候又可以重新给NUM1赋值,减少了变量的数量。

同时将符号所对应的数赋给FUHAO以并在“=”时用;并且DIANCOUNT=0;这样新输入的书又可以继续输入小数点了;③点击“.”时,SR[WEICOUNT++]=”.”并输出;DIANCOUNT=1;这样后面如果再输入数就可以检测出是小数所以通过①就可以得到正确的结果;④点击“=”时,根据FUHAO的值来判定符号并进行运算赋给m_S并输出,其中NUM2是第一个输入的数的值,NUM1是第二个输入的数的值;之后并STNUM=0,NUM1=1;这样就相当于把上一步计算的结果当做了下一步计算的第一个值,实现了多步连续计算;于此同时将DIANCOUNT=0,AFDIAN=1,以致在后面的计算中仍能继续正常输出;⑤点击“清零”时,m_S=0;使输出结果的编辑框显示0;strcpy(SR,SR1),并输出SR,实现了输入编辑框显示0;WEICOUNT=0,DIANCOUNT=0;用于后面的继续输出;⑥点击“清除”时,SR[--WEICOUNT]=' ';输出字符串SR;STNUM=(int) STNUM/10;这样就实现了将之前的数去掉最后一个数字的作用,再用 DIANCOUNT=1?来判断,如果是就NUM1=STNUM/pow(10,AFDIAN),否则NUM1=STNUML来实现对小数点的清除。

mfc程序实验报告

mfc程序实验报告

mfc程序实验报告篇一: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典型方式。

其工作过程是:服务器首先启动,创建套接字后等待客户的连接;客户启动以后,创建套接字,然后和服务器建立连接;连接建立后,客户机和服务器可以通过建立的套接字连接进行信息通信。

MFC画简单点线面界面实验报告

MFC画简单点线面界面实验报告
}
CView::OnLButtonDblClk(nFlags, point);
}
调试→运行→成果图:
→添加头文件#include“point.h”和#include <vector>→
加入代码:
public:
enum{
DONOTHING,
POINT,
LINESTRING,
POLYGON
};
protected:
void addPoint(const CPoint& pt);
void addLinestring(const std::vector<gis::Point>& pts);
if (mCurrentOperation==POINT) {
}else if (mCurrentOperation==LINESTRING) {
mPoints.push_back(gis::Point(point.x,point.y));
}else if (mCurrentOperation==POLYGON) {
{
gis::Point *pt;
gis::LineString *ls;
gis::Polygon *pg;
if( pt = dynamic_cast<gis::Point*>(geo) ){
drawPoint(pt,pDC);
}else if( ls = dynamic_cast<gis::LineString*>(geo)){
2)Resource View→Toolbar→ → →画图 →双击 →
→同理画出 和 并设置ID为ID_LINESTRING和ID_POLYGON

mfc计算器实验报告

mfc计算器实验报告

C++程序设计设计性实验报告实验项目名称:高级计算器设计与开发专业班级:;姓名:;学号:实验起止日期:起于年月日止于年月日实验目的:学会用C++语言和数据结构知识实现表达式的解析与计算;学会使用动态链接库技术进行编程;学会编辑、编译、运行MFC应用程序的基本过程.学会MFC可视化编程技术。

实验要求:1.能完成双精度型数值的加、减、乘、除计算;编程中使用了动态连接库技术.2.能完成双精度型数值的加、减、乘、除计算;编程中使用了动态连接库技术;能实现表达式的输入,解析与计算实验内容:1.C++语言的顺序结构,分支结构,循环结构,函数,结构体,指针,MFC可视化编程技术。

2.数据结构中的二叉树数据组织、存贮、后序遍历及其操作。

3. 使用动态链接库进行函数模块的设计,实现计算功能。

实验具体方案:按照系统设计要求,用Visual C++设计和开发一个MFC应用程序---高级计算器。

计算器的界面设计、计算功能实现、算式计算和动态链接库的使用等。

提交由需求分析:系统设计说明、系统技术文档、系统使用说明书和源程序代码为附录构成的实验报告。

需求分析:系统设计说明1.计算器界面计算器界面包括主题“高级计算器”和背景图片以及电子日历。

在计算区上有显示文本框和数字按钮以及运算符按钮。

在计算区上部分有运算模式选择模块和小提示语句。

2.模块功能简介系统分为多个模块,分别为计算模块、错误分析模块、界面显示模块和模式选择模块。

其中计算模块用来进行各种基本的加、减、乘、除的运算并且显示运算结果;错误分析模块用来进行错误处理;界面显示模块用来美化计算器界面;模式选择模块用来进行运算模式的选择和切换,以实现不同的运算要求。

3.系统结构图系统技术文档1.系统各模块主要流程图(1) 单步运算流程图(2) 算式运算流程图2.软件总体测试方案与测试记录运行程序,然后查看计算器界面和设计是否相同,进行运算模式的切换,看是否能正确的进行模式切换,查看日历显示是否正确。

MFC画图实验报告

MFC画图实验报告
{
// TODO: Add your command handler code here
width=10;
}
void CMfcView::On20()
{
// TODO: Add your command handler code here
width=20;
}
(4).画线,曲线,矩形,圆角矩形,椭圆的功能由成员变量shape的值控制。
MFC画图程序实验报告
一.实验目的
用基于单文档应用程序创建一个类似Windows画图板的程序。功能主要有:手绘线,简单图形,画笔和画刷颜色的选择,画笔粗细的选择,文字的编辑与输出。具有菜单,通过菜单执行画线,曲线,矩形,圆角矩形,椭圆的功能,能填充图形设置图形的颜色,,实现重做和撤销,并设置字体的属性。
p2=point;
DC->SelectObject(&pen);//选择画笔pen
CRect rc(p1, p2);//定义矩形左上角和右下角点的成员变量
DC->Rectangle( rc );//画矩形
DC->DrawText( "这是我的文本框", rc, DT_CENTER);//显示文本
CView::OnRButtonUp(nFlags, point);
}
void CMfcView::Onpen()//画笔颜色按钮进行COMMAND消息响应,创建画笔。
{画笔风格为PS_DOT,由返回的整形变量width确定画笔的宽度。
// TODO: Add your command handler code here
CColorDialog dlg;
dlg.DoModal();
LOGFONT lf;

基于mfc的实验报告

基于mfc的实验报告

基于mfc的实验报告摘要本实验旨在通过使用MFC(Microsoft Foundation Classes)开发框架,实现一个简单的图形化界面程序。

通过这次实验,我深入理解了MFC框架的基本原理和开发流程,并成功完成了一个简单的图形化界面程序。

1. 引言MFC是微软公司开发的一套C++类库,用于创建Windows平台上的应用程序。

它建立在Windows API之上,简化了Windows操作系统的编程方式。

MFC 提供了一系列的类和函数,包括窗口(Window)、对话框(Dialog)、消息映射(Message Map)等,极大地简化了Windows应用程序的开发过程。

2. 实验目的本实验主要目的是熟悉MFC框架的基本原理和开发流程,实现一个简单的图形化界面程序。

通过本实验,能够掌握MFC框架中的窗口创建、消息处理、界面设计等基本概念和操作。

3. 实验过程3.1 环境配置首先,需要在计算机上安装Visual Studio和MFC组件。

打开Visual Studio,创建一个新的MFC应用程序项目,并选择对话框类型作为项目的基础结构。

3.2 窗口创建在MFC应用程序中,窗口是最基本的界面单位。

通过菜单选择“添加类”的方式,创建一个新的对话框类,并继承自CDialog类。

在新建的对话框类中,可以定义与界面相关的成员变量和控件。

3.3 控件添加在对话框设计界面中,可以通过拖拽和调整控件的方式,向对话框中添加各种控件,如按钮、文本框、列表框等。

每个控件都有自己的属性和事件响应函数。

3.4 消息映射消息映射是MFC框架的核心概念之一。

通过消息映射,可以将用户的操作(如点击按钮)与特定的函数关联起来。

在对话框类中,可以通过DECLARE_MESSAGE_MAP和BEGIN_MESSAGE_MAP宏定义来实现消息映射关系的建立。

3.5 编译和运行完成界面设计和消息映射后,即可对程序进行编译和运行。

在编译过程中,MFC 会自动将资源文件编译成可执行的文件。

MFC编程实验个人总结报告

MFC编程实验个人总结报告

MFC编程实验总结报告知识总结+个人心得2011年暑期MFC编程实验报告MFC编程实验个人总结报告一、MFC类、函数等知识小结:1、SetTimer (1, m_intLevel, NULL);在MFC程序中SetTimer被封装在CWnd类中,调用就不用指定窗口句柄了于是SetTimer函数的原型变为:UINT SetTimer(UINT nIDEvent,UINT nElapse,void(CALLBACK EXPORT *lpfnTimer)(HWND,UINT ,YINT ,DWORD))当使用SetTimer函数的时候,就会生成一个计时器。

函数中nIDEvent 指的是计时器的标识,也就是名字。

nElapse指的是时间间隔,也就是每隔多长时间触发一次事件。

第三个参数是一个回调函数,在这个函数里,放入你想要做的事情的代码,你可以将它设定为NULL,也就是使用系统默认的回调函数,系统默认认的是onTime函数。

这个函数怎么生成的呢?你需要在需要计时器的类的生成onTime函数:在ClassWizard里,选择需要计时器的类,添加WM_TIME消息映射,就自动生成onTime函数了。

然后在函数里添加代码,让代码实现功能。

每隔一段时间就会自动执行一次。

例:SetTimer(1,1000,NULL);1:计时器的名称;1000:时间间隔,单位是毫秒;NULL:使用onTime函数。

当不需要计时器的时候调用KillTimer(nIDEvent);例如:KillTimer(1);KillTimer (1);2、typedef struct{};(1) struct{ int x; int y; }test1;好,定义了结构test1,test1.x 和test1.y 可以在语句里用了。

(2) struct test {int x; int y; }test1;定义了结构test1,test1.x 和test1.y 可以在语句里用了。

mfc实验报告

mfc实验报告

mfc实验报告MFC 实验报告一、实验目的本次 MFC(微生物燃料电池)实验旨在深入了解微生物燃料电池的工作原理、性能特点以及其在能源领域的潜在应用。

通过实际操作和数据测量,掌握 MFC 的构建方法和性能评估指标,为进一步研究和开发高效的微生物燃料电池技术提供基础数据和实践经验。

二、实验原理微生物燃料电池是一种利用微生物作为催化剂将有机物中的化学能直接转化为电能的装置。

在 MFC 中,微生物在阳极室分解有机物,产生电子和质子。

电子通过外电路传递到阴极,质子则通过质子交换膜迁移到阴极,在阴极与电子和氧气结合生成水。

其基本原理可以用以下化学反应式表示:阳极反应:有机物+微生物→ 二氧化碳+电子+质子阴极反应:氧气+电子+质子→ 水三、实验材料与设备1、实验材料阳极材料:碳毡阴极材料:碳布质子交换膜:Nafion 膜微生物培养液:含有产电微生物的培养基有机物底物:葡萄糖溶液2、实验设备恒电位仪数据采集系统万用表电子天平移液器磁力搅拌器四、实验步骤1、阳极和阴极的制备将碳毡和碳布分别剪成合适的尺寸,用丙酮和去离子水清洗干净,然后在氮气氛围下烘干备用。

在阳极表面负载产电微生物,将清洗好的碳毡浸泡在含有微生物的培养液中,在恒温培养箱中培养一段时间,使微生物在阳极表面附着生长。

2、 MFC 的组装将质子交换膜夹在阳极室和阴极室之间,用硅胶垫圈密封,确保无泄漏。

将制备好的阳极和阴极分别放入阳极室和阴极室,连接导线和外电路。

3、实验运行在阳极室中加入有机物底物(葡萄糖溶液),阴极室中加入适量的氧化剂(如氧气)。

启动磁力搅拌器,使溶液均匀混合。

连接恒电位仪和数据采集系统,设置合适的工作参数,开始实验。

4、数据测量与记录在实验过程中,使用万用表测量电池的输出电压和电流,使用数据采集系统记录电压和电流随时间的变化。

定期取样分析阳极室和阴极室中有机物和产物的浓度变化。

五、实验结果与分析1、电压和电流输出实验过程中,MFC 的输出电压和电流呈现出先上升后稳定的趋势。

C++ MFC 实验报告

C++ MFC 实验报告

MFC实验报告实验一1.1显示一首诗。

在view 类的ondraw 函数中添加代码如下:void CEx11View::OnDraw(CDC* pDC){CEx11Doc* pDoc = GetDocument();ASSERT_V ALID(pDoc);if (!pDoc)return ;// TODO: 在此处为本机数据添加绘制代码CString s[4]; s[0]="人生得意须尽欢,莫使金樽空对月。

";s[1]="两岸青山相对出,孤帆一片日边来。

";s[2]="孤帆远影碧空尽,惟见长江天际流。

";s[3]="飞流直下三千尺,疑是银河落九天。

";for (int i=0;i<4;i++){pDC->TextOut(100,100+20*i,s[i]);} } 1.2画一个坐标系,画函数sin(),(2,2)y x x ππ=∈-的图像。

在view 类的ondraw 函数中添加代码如下:void CEx12View::OnDraw(CDC* pDC){CEx12Doc* pDoc = GetDocument();ASSERT_V ALID(pDoc);if (!pDoc)return ;// TODO: 在此处为本机数据添加绘制代码 pDC->SetMapMode(MM_TEXT);pDC->SetWindowOrg(CPoint(-370,-250));pDC->MoveTo(0,0); pDC->LineTo(420,0); pDC->MoveTo(0,0);pDC->LineTo(0,-220);pDC->MoveTo(0,0);pDC->LineTo(-420,0);pDC->MoveTo(0,0);pDC->LineTo(0,220);// pDC->TextOut(50,10,"1");CStringArray p;p.SetSize(8,-1);p[0]="-1";p[1]="-2";p[2]="-3";p[3]="-4";p[4]="-5";p[5]="-6";p[6]="-7";p[7]="-8";for(int i=1;i<=8;i++){pDC->MoveTo(i*(-50),-10);pDC->LineTo(i*(-50),+10);pDC->TextOut(i*(-50),10,p[i-1]);}CStringArray s;s.SetSize(8,-1);s[0]="1";s[1]="2";s[2]="3";s[3]="4";s[4]="5";s[5]="6";s[6]="7";s[7]="8";for(int i=1;i<=8;i++){pDC->MoveTo(i*50,-10);pDC->LineTo(i*50,+10);pDC->TextOut(i*50,10,s[i-1]);}int x,y,j;float a;pDC->MoveTo(0,0);for(j=0;j<=315;j++){x=j;a=j;y=-50*sin(a/50);pDC->LineTo(x,y);}pDC->MoveTo(0,0);for(j=0;j>=-315;j--){x=j;a=j;y=-50*sin(a/50);pDC->LineTo(x,y);}}1.3显示资源中的一幅位图。

mfc实验报告

mfc实验报告

mfc实验报告MFC实验报告引言:MFC(Microsoft Foundation Classes)是一种用于开发Windows应用程序的C++类库,它提供了一套丰富的类和函数,使开发者能够更加方便地创建图形界面、处理用户输入和输出、管理窗口等。

本实验旨在通过使用MFC库来开发一个简单的图形界面应用程序,以展示MFC的基本功能和使用方法。

一、实验准备在开始实验之前,我们需要安装Visual Studio软件,该软件集成了MFC库。

通过Visual Studio,我们可以轻松创建一个MFC项目,并使用其中的工具和组件来开发我们的应用程序。

二、创建MFC项目1. 打开Visual Studio软件,选择“创建新项目”。

2. 在弹出的对话框中,选择“Visual C++” -> “MFC” -> “MFC应用程序”。

3. 输入项目名称和保存路径,点击“确定”按钮。

4. 在下一个对话框中,选择“单文档”或“多文档”应用程序,根据需要进行选择。

5. 点击“完成”按钮,Visual Studio将自动生成一个基本的MFC应用程序框架。

三、设计图形界面MFC提供了丰富的工具和组件,使我们能够轻松地设计出漂亮的图形界面。

在本实验中,我们将创建一个简单的计算器应用程序作为示例。

1. 在Visual Studio的资源视图中,找到“Dialog”文件夹,双击打开“MainDialog”对话框。

2. 在对话框上拖拽和调整按钮、文本框等控件,设计出计算器的布局。

3. 双击每个按钮控件,添加相应的点击事件处理函数,实现计算器的功能逻辑。

四、添加功能逻辑1. 在Visual Studio的“类视图”中,找到“MainDialog”类,双击打开对应的源文件。

2. 在源文件中,找到“BEGIN_MESSAGE_MAP”和“END_MESSAGE_MAP”之间的区域,在其中添加按钮点击事件的处理函数。

3. 在处理函数中,根据按钮的功能,编写相应的逻辑代码。

MFC程序五子棋实验报告

MFC程序五子棋实验报告

MFC程序五子棋实验报告
一、实验内容
本次实验主要以Visual Studio2024为开发工具,以MFC应用程序为开发平台,以五子棋为实现的对象,实现一个基于MFC编写的五子棋游戏程序。

二、实验要求
本次实验的目标是基于MFC应用程序平台,使用Visual Studio2024开发工具,实现一个能够完成基本的五子棋游戏功能的程序。

实现的功能包括:
1、游戏初始界面:实现游戏初始界面,包括游戏开始、设置(玩家姓名)、取消、选择棋子颜色按钮等;
2、逻辑控制:实现玩家双方的棋子及其状态控制,判断双方棋子的落子位置,根据五子棋的规则判断双方输赢,判断本局棋盘是否成和棋;
3、棋盘显示:棋盘支持多种背景皮肤选择,实现了棋子的真实落子位置;
4、功能支持:支持悔棋、撤销悔棋、重开等常用功能,还支持联机对战功能;
5、记录显示:显示游戏状态,如落子数,玩家双方的输赢情况。

三、实验过程
1. 使用Visual Studio2024,以MFC应用程序平台为基础,创建五子棋游戏程序。

2.编写程序界面,实现游戏初始界面,在界面中添加游戏开始、设置(玩家姓名)、取消、选择棋子颜色等按钮。

3.实现五子棋游戏需要的基础函数。

(最新版)MFC毕业课程设计实验报告

(最新版)MFC毕业课程设计实验报告

课程设计任务书 (2)课程设计题目1:设计一个简单的学生信息管理应用程序 (2)一、设计目标与内容: (2)二、设计要求: (2)三、基本思路 (3)四、主要步骤 (3)五、设计心得 (24)六、参考文献 (25)课程设计题目3:设计一个简单的计算器应用程序 (25)一、设计目标与内容: (25)二、设计要求: (25)三、基本思路 (25)四、基本步骤 (26)五、设计心得 (31)六、参考文献 (32)课程设计任务书课程设计题目1:设计一个简单的学生信息管理应用程序一、设计目标与内容:1.了解Windows编程的基础知识,掌握MFC应用程序的基本知识;2.基本掌握面向对象程序设计的基本思路和方法;3.掌握用VC++开发应用程序的的一般步骤和方法;4.能够利用所学的基本知识, 设计一个简单的学生信息管理应用程序,具有以下功能:①实现学生信息的存储,可以用文件来实现。

②编程实现学生信息的添加、删除、修改、浏览和查询等功能(必须实现的功能)。

二、设计要求:1.用VC++进行编码,实现应用程序的功能。

注重编码质量,代码要有适当的注释;2.采用单文档多视图方式,左边为树视图,右边为列表视图,左边一级节点为中原工学院,二级节点为计算机学院和软件学院,三级节点为计算机学院的三个专业。

要求可以动态增加节点。

楼便为列表视图,包含学生的学号、性别、姓名各科成绩等。

右边也可以实现动态增加3.当选中节点时,显示对应的学生信息。

如当选中”中原工学院”时选中所用的学生信息,选中“计算机学院”时,显示所有计算机学院学生信息4.采用序列化方式保存和读取学生信息;提交设计报告一份(课程设计任务书、目录、设计的基本思路、设计的步骤及主要代码、心得体会、参考文献)。

提示:1、读文件时动态构造右边树视图方法,先构造根节点中原工学院,2、序列读取学生信息到一个数组,遍历数组,如果右边树视图中有该节点的信息则不增加,没有则增加该节点,如有学生姓名为张三计算机学院网络工程系学生,二右边没有计算机学院节点时,在“中原工学院”节点下构造“计算机学院”节点,以及“网络工程系三、基本思路建立一个当文档的应用程序,在第六步将视图的基类选择为CTreeList,然后再建立一个新的类listView,用来输出学生的基本信息,然后添加一个切分窗口的函数OnCreateClient用来切分窗口,不添加相应的控件来实现学生信息的操作,通过完善学生信息类的功能慢慢实现程序的运行,然后添加一个序列化类CStudentInfo来实现信息的读取与保存,最后添加一个新的查找的对话框用来查找、删除、查询学生信息的一个中介,通过姓名来实现学生信息的功能。

MFC绘图 实验报告

MFC绘图 实验报告

基于MFC的绘图软件目录基于MFC的绘图软件11 .引言 (2)2.MFC设备上下文及绘图的基本理论知识 (2)2.1 GDI(Graphic Device Interface)绘图的实现 (2)2.2 MFC图形对象类 (2)2.3 库存的GDI对象 (3)2.4与绘图有关的简单数据类型 (4)2.5 MFC应用程序框架中的图形绘制和刷新 (5)3.设计的主体内容MFC设备描述表---CDC类 (5)3.1 CDC类及其派生类 (5)3.2 文本输出 (6)3.3CDC常用的绘图函数 (6)3.4画笔和画刷 (8)4.软件主体设计 (8)4.1 资源编辑 (8)4.2 具体实现 (11)5.结果分析与讨论 (19)6.总结 (19)附录:简单绘图软件作品说明............................................ 错误!未定义书签。

1 .引言计算机的发展也是计算机语言的发展得到了很大的提高,人们的生活中离不开图像,除了我们可以用铅笔在纸上画图外,我们也可以在电脑上绘制我们的想象,本实验就是基于VC++的一个小型的绘图软件,虽然麻雀虽小五脏俱全。

本课题就是要实现这一小小的软件。

2.MFC 设备上下文及绘图的基本理论知识2.1 GDI(Graphic Device Interface)绘图的实现图形设备接口(GDI )可以理解为一个可执行程序,它处理来自windows 应用程序的图形函数调用,然后把这些调用传递给合适的设备驱动程序,由设备驱动程构关系如下:设备描述表(DC )是一种windows 数据结构,它包含了与一个设备(如显示器)的绘制属性的相关信息。

所有的绘制操作通过一个设备上下文对象进行,该对象封装了实现绘制线条,形状和文本的windows API 函数。

设备上下文可以用来向屏幕,打印机和图元件输入结果。

2.2 MFC 图形对象类Windows 提供了多种用于在设备描述表中进行绘图的图形对象,如画笔,位图,调色板,区域,和路径等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告实验日期: 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典型方式。

其工作过程是:服务器首先启动,创建套接字后等待客户的连接;客户启动以后,创建套接字,然后和服务器建立连接;连接建立后,客户机和服务器可以通过建立的套接字连接进行信息通信。

先建立一个MFC,选dialogBased,设置工程名。

出现Dialog以后,编辑界面,使其如图所示并且对控件点击右键,选择属性选项,把每个控件的ID改掉(控件ID就是每个控件的名字,要改成有意义的,以便将来管理)。

各个控件的ID如下,并且在对话框画面点击右键,选Class Wizard选项,用这个工具对控件添加变量,使其图所示:重新再VC中建立客户机工程,新建工程名首先,在BOOL CLx1Dlg::OnInitDialog()和BOOL CLx2Dlg::OnInitDialog()末尾添加语句,使其如下所示:m_send.EnableWindow(FALSE); //使发送按钮变灰return TRUE; // return TRUE unless you set the focus to a control为了在自己程序里面更自由地处理CSocket得到的消息,必须新建CSocket的派生类:在第一个工程里工作区类视图里点右键,添加新类:CServer,父类为CSocket NewClass对话框如图所示:在第一个工程里的Dlg.h添加头文件#include "Server.h"private变量:CServer m_server; CServer m_recv在对话框的图象上双击“侦听”按钮,在里面添加如下代码,使其如下所示:void CLx2Dlg::OnListen(){m_server.Create(1000); // 使用1000号端口m_server.Listen(); // 侦听}在对话框图象上再双击“发送”按钮,添加代码,如下所示:void CLx2Dlg::OnSend(){UpdateData(TRUE); //更新数据,使m_msg得到当前框中文本m_recv.Send(m_msg, 255); //发送数据m_ctrl.SetSel(0, -1); //全选发送框文字m_ctrl.ReplaceSel("", TRUE);//将发送框置空}同样地,在第一个工程里工作区类视图里右键,添加新类:CClient。

继承自CSocket在CLx1Dlg类里添加private变量:CClient m_client;双击对话框图象上的“连接”按钮,添加代码:void CLx1Dlg::OnConnect(){UpdateData(TRUE);m_client.Create(1001); //使用1001号端口if(m_client.Connect(m_ip, 1000)) //连接目标地址,1000端口{AfxMessageBox("Client端连接成功");m_send.EnableWindow(TRUE); //连接成功,可以发送m_connect.EnableWindow(FALSE); //同时禁止连接按钮}else{m_client.Close(); //如果连接失败就关闭AfxMessageBox("连接失败");}}双击发送按钮,添加代码:void CLx1Dlg::OnSend(){UpdateData(TRUE); //更新数据,使m_msg得到当前框中文本m_client.Send(m_msg, 255); //发送数据,长度255字节}以上这些操作,已经将CSocket的建立,以及主机,客户机建立连接后的消息发送代码添加完成了,但是还缺少使其工作的消息机制。

下面的步骤就是利用OnAccept和OnReceive函数处理socket消息。

首先,在第一个工程的编辑界面点右键,选Class Wizard,在classname栏目里面找到CServer类,添加OnAccept和OnReceive函数并且双击下面的Member function栏目,分别为两个函数添加代码。

void CServer::OnAccept(int nErrorCode){// TODO: Add your specialized code here and/or call the base class CSocket::OnAccept(nErrorCode);((CLx2Dlg*)(AfxGetApp()->m_pMainWnd))->ShowAccept();//在这里仅仅添加了这一句,因为CLx2Dlg类是发送接收消息的主窗口,//而且应用程序发送接收的消息也在CLx2Dlg对象实例中进行,//所以当CServer类的对象收到客户机的Connect消息时,//便可调用CLx2Dlg对象中的ShowAccept() 函数处理。

}这步以后,可以在第一个工程里的Dlg类里添加public成员函数ShowAccept()。

void CLx2Dlg::ShowAccept(){m_server.Accept(m_recv);AfxMessageBox("Server端连接成功");m_send.EnableWindow(TRUE); // 连接成功,可以发送m_listen.EnableWindow(FALSE); // 同时禁止侦听按钮}于是,当客户机调用m_client.Connect(m_ip, 1000);这句时,主机server端发现,并调用ShowAccept函数来建立连接。

执行完以后,Socket连接便被建立。

接下来的工作便是添加发送聊天信息的函数了。

注意到前面点击发送按钮的OnSend() 函数已经添加好了,在Lx2工程中只要添加Server端的接收消息和显示消息功能就可以进行消息的传送。

在CServer类里像添加OnAccept() 一样添加成员函数OnReceive()。

void CServer::OnReceive(int nErrorCode){// TODO: Add your specialized code here and/or call the base class CSocket::OnReceive(nErrorCode);((CLx2Dlg*)(AfxGetApp()->m_pMainWnd))->ShowMsg();}建立连接后,一方一旦发送数据,另一方的CSocket派生类便调用这个函数。

其中代码可以参考前面OnAccept() 进行理解。

在CLx2Dlg里添加成员函数ShowMsg()void CLx2Dlg::ShowMsg(){char buf[255];m_recv.Receive(buf, 255); //接收消息到buf里面,长度255字节。

CString msg;msg.Format("%s", buf); //用AfxMessageBox函数显示接收到的字符窜。

AfxMessageBox(msg); //这里注意CString类的用法}同样在第二个工程中也如此这般添加消息接收函数void CClient::OnReceive(int nErrorCode){// TODO: Add your specialized code here and/or call the base class ((CLx1Dlg*)(AfxGetApp()->m_pMainWnd))->ShowMsg();CSocket::OnReceive(nErrorCode);}void CLx1Dlg::ShowMsg(){char buf[255];m_client.Receive(buf, 255); //接收消息到buf里面,长度255字节。

CString msg;msg.Format("%s", buf);AfxMessageBox(msg); //用AfxMessageBox函数显示接收到的字符窜。

}销毁对话框,关闭Socket连接,释放资源。

以下为第二个工程图1-11void CLx1Dlg::OnDestroy(){CDialog::OnDestroy();m_client.Close(); //关闭套接字}在两个vc中分别按下F5键,编译执行两个程序。

程序运行过程如下:1、在第一个工程中按下侦听。

2、在第二个工程中输入地址后按下连接。

3、在第二个工程的文本框内输入字符,按下发送,则第一个工程便会得到来自第二个工程的消息。

从而实现两个工程之间的通信对话,如图所示。

相关文档
最新文档