《MFC课程设计报告.docx》由会员分享,可在线阅读,更多相关《MFC课程设计报告.docx(6页珍藏版)》请在第一文库网上搜索。
1、MFC课程设计报告摘要:通过MFC课程设计,初步掌握使用MFC编写简单程序的方法,并且使用MFC编写一些简单的程序。关键字:组合框,列表框,复选框,消息处理函数。1MFC课程设计开发设计思想在给定的七个选题中,我选择了第一题、第四题以及第六题,三者均为基本对话框程序。对于第一个选题,需要使用到复选框,而这里的连接变量为VA1UE类别和BOO1类别。该题目需要一个复选框,两个编辑框,以及一个按钮。对于第二个选题,则需要使用到UPdateData()函数更新,以此来处理计算后的函数显示。而对于第三个选题,则用到了两个单选框一个编辑框和一个按钮,其中必须得使用AfXMeSSageBoX函数显示消息框
2、。2程序功能与设计介绍选题一P218(1):选择自己的爱好,输入名字,单机确定按钮,可以显示名字及爱好。对于这个课题,我设计了一个复选框,两个编辑框,其中一个为只读编辑框,外加一个确定按钮。首先需要设计界面,在VC+程序中选择文件,新建一个APPWIZARD(EXE)工程,然后添加编辑框等。经过初步设计后,形成如下界面:随后,建立类向导。在MenberVariabIeS中,将建立的三个复选框体命名为m_c1,m_c2,m_c3,其类型均为BOO1型。接着,为两个编辑框设置类,两者类型均为CSTRING。在完成了建立类后,最后需要处理按钮的函数。为了使框体可以正常地刷新函数,需要使用到Updat
3、eData(TRUE)函数以及UpdateData(FA1SE)函数,其按钮函数如下:voidCTest5D1g:OnButton1()(UpdateData(TRUE);CStrings;s=m_e1;s=爱好:;if(m_c1)s+=旅游;if(mc2)s+=运动;if(me3)s+=音乐”;me2=s;UpdateData(FA1SE);)选题二P226(4):编写对话框程序,输入一元二次方程ax1+bx+c=O的系数a、b、c,计算并输出方程的根x1和x2。从题目中不难看出,该题目需要处理数学公式,需要使用到根号SQR函数,所以在头文件中,我们需要加入inc1udemath.ho接着,
4、根据要求,我们需要提供三个编辑框,给用户输入数据AB和C,另外需要提供两个只读编辑框,用以输出结果X1X2,另外还需加上一个计算按钮,为了人性化考虑,我还另加了一个结束按钮,方便用户结束程序。在结果初步的设计后,得到了以下的界面:3test2I竺I!abCP7r1ii计算结束紧接着,我们需要建立类向导,五个编辑框均为VA1UE-DOUB1E型。为了刷新编辑框,需要使用到UpdateData(TRUE),对于计算两个根,我用这些函数:m_x1=(-b+sqrt(b*b-4*a*c)/(2*a);m_x2=(-b-sqrt(b*b-4*a*c)/(2*a);接着我需要为计算按钮和结束按钮添加命令,
5、双击编辑好的计算按钮,在CTESTD1g:IOnCa1cO中加入以下语句:UpdateData(TRUE);doub1ea=m_a;doub1eb=m_b;doub1ec=m_c;m_x1=(-b+sqrt(b*b-4*a*c)/(2*a);m_x2=(-b-sqrt(b*b-4*a*c)/(2*a);UpdateData(FA1SE);最后,需要给结束按钮添加命令,在CTESTDIg:OnOk()中加入以下语句:CDia1og:0n0K();经过一段调整后,程序基本就完成了。选题三:使用AfxMessageBox函数在窗口中显示相应教师的基本信息。对于这个选题,我首先需要创建一个对话框程序框
6、架,然后防止一个编辑框,6个单选按钮,为了使程序更加方便,我又在两个单选选项中加了两个框架,另外还需要添加一个按钮。在添加单选框的过程中,同一组中的按钮必须一个接一个地放进对话框中,中间不能插入其他控件,并且一个组的第一个按扭要选中“Group属性,表示一组控件的开始。接着,我们需要为编辑框和单选框建立类向导,进行属性设置,将编辑框连接到Cstring类型的m_e变量,其余控件不需要连接变量。将“男”和“教授”对应的单选钮的Group属性勾上。最后,需要添加“确定”按钮的指令了,再次之前还需单选按钮的初始化,而这一步在对话框的初始化函数实现:BOO1CTEsTD1giiOnInitDia1og
7、O(IIICheckRadioButton(IDC_RADI01,IDjRAD102,IDJRAD1O1);CheckRadioButton(IDC_RADI03,IDC_RADI05,IDJRAD103);III);接着,进行消息处理函数:voidCTESTD1g:OnButton1()(UpdateData(TRUE);CStrings;s+=m_e;if(IsD1gButtonChecked(IDC-RADIO1)s+=男;e1ses=女;if(IsD1gButtonChecked(IDC_RADI03)s+=”教授;e1seif(IsD1gButtonChecked(IDCRADI04
8、)S=副教授e1ses=讲师;AfxMessageBox(s);)经过调试后,这个程序就完成了。3MFC开发体会在这次的MFC开发中,我初步掌握了如何编写一个基于对话框的WINDOWS程序,如何编写文档、视图应用程序。在此过程中,我遇到了不少问题,如什么是AfXMeSSageBoX函数,如何建立类向导,单选框必须连续建立等问题。记得有一次编译选题一时,总是出现编译错误,一直找不到问题在哪里,经过多次与同学讨论,后来才发现,原来头文件#inc1udemath.h必须放在#1慎111(12stdafx.h之下才可以。当然,到现在依然在某方面存在一些疑问。例如,有时候编译程序时,出现某行编译错误,这时需要删除改行前面的空格,才可编译正确。总之,在这次的MFC课程设计中,我初步学会了如何使用MFC编译一些简单的程序。在这期间,我深刻感到作一名编程人员的不易,同时,也培养了我耐心与细心,是一次让我有所收获的实践。