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典型方式。

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

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

程序设计实践设计报告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()函数来完成班级显示信息里的排名,在课程成绩中获得成绩求得总成绩,然后求得平均,进行排名C.课程成绩1.添加课程及成绩编写CGradeDlg::OnAdd()函数,输入对应的学号,课程名字,上课时间以及成绩,完成添加。

2.查询某个学号的所有成绩编写CGradeDlg::OnSearch()函数,输入学号,首先判断学号是否存在,若不存在,弹出对话框提醒学号不存在,重新输入,正确后在界面显示相应信息。

3.编辑课程成绩编写CGradeDlg::OnEdit()函数,对已有的课程成绩进行编辑和修改,需要选中之后,在相应栏中做出修改,点击编辑,完成新的编辑,点击确定,完成最后编辑。

4.删除课程及其成绩编写CGradeDlg::OnDelete2()函数,选中需要删除的课程及其成绩,然后删除,最后点击确定完成最后删除操作。

2.3 关键算法分析算法1:void CStudentDlg::OnBnClickedAdd()void CStudentDlg::OnBnClickedAdd(){// TODO: 在¨²此ä?添¬¨ª加¨®控?件t通ª¡§知a处ä|理¤¨ª程¨¬序¨°代䨲码?UpdateData(TRUE);list<CAllInfor>::iterator p;bool judge = true;for ( p = m_AllInformation.begin();p != m_AllInformation.end();++p){if (p->m_Stu.m_School_Id == m_SchoolId){judge = false;}}if (judge){CStudent Stu(m_Name,m_Sex,m_Class,m_SchoolId,m_College);CAllInfor obj(Stu);m_AllInformation.push_back(obj);for (int i = 0;;i++){if (m_List.GetItemText(i,0)==""){int nRow = m_List.InsertItem(i,m_Name); //插?入¨?行Dm_List.SetItemText(nRow, 1,m_Sex); //设¦¨¨置?数ºy据Ym_List.SetItemText(nRow, 2,m_Class); //设¦¨¨置?数ºy据Ym_List.SetItemText(nRow, 3,m_SchoolId); //设¦¨¨置?数ºy据Ym_List.SetItemText(nRow, 4,m_College); //设¦¨¨置?数ºy据Ybreak;}}}else{MessageBox("学¡ì号?重?复¡ä,ê?请?重?新?输º?入¨?!ê?");}m_SchoolId ="";m_Sex = "";m_Name = "";m_College = "";m_Class = "";UpdateData(FALSE);}void CStudentDlg::OnBnClickedDelele(){// TODO: 在¨²此ä?添¬¨ª加¨®控?件t通ª¡§知a处ä|理¤¨ª程¨¬序¨°代䨲码?CString sname = m_List.GetItemText(m_SelectRow,0);list<CAllInfor>::iterator p;for (p = m_AllInformation.begin();p != m_AllInformation.end();++p){if (p->m_Stu.m_Name == sname){m_AllInformation.erase(p);break;}}m_List.DeleteItem(m_SelectRow);m_SchoolId ="";m_Sex = "";m_Name = "";m_College = "";m_Class = "";UpdateData(FALSE);}[1] 算法功能选择相应的学院和专业后实现相应的添加功能,实现学生个人信息的添加与管理 [2] 算法基本思想在类向导中为按钮添加相应的相应函数,并为类添加所需的虚函数,添加后在函数的相应位置添加初始化等相应代码。

算法2:函数名Void CClassdoDlg::OnOK(){// TODO: 在此添加专用代码和或调用类UpdateData(TRUE);int i,j;list<CAllInfor>::iterator p;for(p = m_AllInformation.begin();p != m_AllInformation.end();++p) {if (p->m_Stu.m_Class == m_Class_Num){Classort temp(p->m_Stu.m_Name,p->GetAveGrade());Stu.push_back(temp);}}Classort *pSort = new Classort[Stu.size()];list<Classort>::iterator ptr;for (i = 0,ptr = Stu.begin();ptr != Stu.end();++ptr,++i){pSort[i] = *ptr;}InsertSort(pSort,Stu.size());for (j = 0;j < Stu.size();++j){m_list.InsertItem(j,pSort[j].Name);CString aveGrd,Amount;aveGrd.Format("%f",pSort[j].aveGrade);m_list.SetItemText(j,1,aveGrd);Amount.Format("%d",j+1);m_list.SetItemText(j,2,Amount);}CDialog::OnOK();}void CClassdoDlg::InsertSort(Classort a[], int n){Classort temp;int i,j;for (i = 0;i < n;i++){j = i;temp = a[i];while (j > 0 && temp.aveGrade > a[j - 1].aveGrade){a[j] = a[j - 1];j--;}a[j] = temp;}}BOOL CClassdoDlg::OnInitDialog(){CDialog::OnInitDialog();// TODO: 在¨²此ä?添¬¨ª加¨®额?外ªa的Ì?初?始º?化¡¥DWORD styles = LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES;ListView_SetExtendedListViewStyleEx(m_list.m_hWnd, styles, styles );m_list.InsertColumn(0,"姓名",LVCFMT_CENTER,70);m_list.InsertColumn(1,"平均¨´成绩",LVCFMT_CENTER,100);m_list.InsertColumn(2,"排名",LVCFMT_CENTER,70);CClassdoDlg *pParent = (CClassdoDlg)GetParent();m_AllInformation.clear();m_AllInformation = pParent->m_AllInformation;return TRUE; // return TRUE unless you set the focus to a control // 异°¨¬常¡ê: OCX 属º?性?页°3应®|返¤¦Ì回? FALSE}void CTongxinDlg::OnClickedButton1()//学生个人信息的单击相应函数{// TODO: 在此添加控件通知处理程序代码CStudentDlg Stu;Stu.DoModal();}void CTongxinDlg::OnClickedButton2()//班级信息{// TODO: 在此添加控件通知处理程序代码CClassdoDlg dlg;dlg.DoModal();}void CTongxinDlg::OnClickedButton3()//成绩和选课{// TODO: 在此添加控件通知处理程序代码CGradeDlg Lson_Grd;Lson_Grd.DoModal();}2.4 其他包括使用了哪些面向对象的知识,继承、多态、模板类、STL等有助于提高代码简洁和效率的方法说明。

相关文档
最新文档