mfc课程实验设计报告

上传人:第*** 文档编号:32805031 上传时间:2018-02-12 格式:DOC 页数:23 大小:394.50KB
返回 下载 相关 举报
mfc课程实验设计报告_第1页
第1页 / 共23页
mfc课程实验设计报告_第2页
第2页 / 共23页
mfc课程实验设计报告_第3页
第3页 / 共23页
mfc课程实验设计报告_第4页
第4页 / 共23页
mfc课程实验设计报告_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《mfc课程实验设计报告》由会员分享,可在线阅读,更多相关《mfc课程实验设计报告(23页珍藏版)》请在金锄头文库上搜索。

1、MFC课程实验设计报告课程设计题目:一个简单的计时器应用程序院系:湖南农业大学信息科学技术学院班级:2010 级计算机科学与技术 3 班姓名:李远健学号:201041842323指导老师:傅自刚湖南长沙提交日期:2010 年 06 月目录、 设计目标与内容、 设计要求、 基本思路、 主要步骤、 设计心得、 参考文献、 设计目标与内容1. 了解 Windows 编程的基础知识,掌握 MFC 应用程序的基本知识;2. 基本掌握面向对象程序设计的基本思路和方法;3. 掌握用 VC+开发应用程序的的一般步骤和方法;4. 能够利用所学的基本知识, 设计一个简单的计时器 应用程序。二、设计要求1. 用 V

2、C进行编码,实现应用程序的功能。注重编码质量, 代码要有适当的注释;2. 采用单文档多视图方式,左边为树视图,右边为列表视图,左边一级节点为中原工学院,二级节点为计算机学院和软件学院,三级节点为计算机学院的三个专业。要求可以动态增加节点。楼便为列表视图,包含学生的学号、性别、姓名各科成绩等。右边也可以实现动态增加3当选中节点时,显示对应的学生信息。如当选中” 中原工学院”时选中所用的学生信息,选中“计算机学院”时,显示所有计算机学院学生信息4采用序列化方式保存和读取学生信息; 提交设计报告一份(课程设计任务书、目录、设计的基本思路、设计的步骤及主要代码、心得体会、参考文献) 。提示: 1、读文

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

4、一个序列化类 CStudentInfo 来实现信息的读取与保存,最后添加一个新的查找的对话框用来查找、删除、查询学生信息的一个中介,通过姓名来实现学生信息的功能。四、主要步骤1、新建工程:用 MFC AppWizard(exe)创建一个单文档的应用程序StudentCheck。在第六步中将视图的基类选择为。2、1 添加一个基于 ListView 类的新的类 listView、用于显示学生信息2、2 为 CMainFrame 添加一个切分窗口的映射函数 OnCreateClient并添加一个切分窗口的函数成员 CSplitterWnd m_wndSplitter;然后添加下列代码:CRect r

5、ect;GetClientRect(CSize paneSize(rect.Width()/3,rect.Height();m_wndSplitter.CreateStatic(this,1,2);m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CStudentCheckView),paneSize,pContext);m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(listView),CSize(0,0),pContext);return true;2、4 创建一个 CstuInfoDlg 对话框2、5 添加下列控件

6、并为上面控件添加变量在 WorkSpace 中进入 ClassView 视图,为 CStuInfoDlg 类添加一个 BOOL 型的成员变量 m_bMale,并在 CStuInfoDlg 类设置该变量的初始值,添加代码如下:StuInfoDlg:StuInfoDlg(CWnd* pParent /*=NULL*/): CDialog(StuInfoDlg:IDD, pParent)m_bMale=FALSE;/AFX_DATA_INIT(StuInfoDlg)m_strSpecial = _T();m_tBirth = 0;m_strMath = 0;m_strName = _T();m_st

7、rNO = _T();m_strAcademy = _T();/AFX_DATA_INIT用 MFC ClassWizard 为 CStuInfoDlg 类添加 WM_INITDIALOG 消息映射,并添加下列初始化代码:if(!m_bMale)CheckRadioButton(IDC_RADIO_MALE,IDC_RADIO_FEMALE,IDC_RADIO_FEMALE);elseCheckRadioButton(IDC_RADIO_MALE,IDC_RADIO_FEMALE,IDC_RADIO_MALE);/对专业组合框进行初始化m_comboSpecial.AddString(网络工程

8、);m_comboSpecial.AddString(软件工程);m_comboSpecial.AddString(计算机科学);m_comboSpecial.AddString(服装设计);m_comboSpecial.AddString(服装表演);m_comboSpecial.AddString(艺术设计);m_strSpecial=网络工程;m_comboAcademy.AddString(计算机学院);m_comboAcademy.AddString(服装学院);m_strAcademy=计算机学院;m_tBirth=CTime(1989,10,7,0,0,0);m_strMath=

9、80;UpdateData(FALSE);/将信息显示在控件中2、6 用 MFC ClassWizard 为单选按钮 IDC_RADIO_MALE 添加 BN_CLICKED 的消息映射,并添加下列初始代码:m_bMale=TRUE;用 MFC ClassWizard 为单选按钮 IDC_RADIO_FEMALE 添加 BN_CLICKED 的消息映射,并添加下列初始代码: m_bMale=FALSE;用 MFC ClassWizard 为单选按钮 IDOK 添加 BN_CLICKED 的消息映射,并添加下列初始代码: UpdateData();m_strName.TrimLeft();/将字

10、符串最前面的空格修整掉m_strNO.TrimLeft();if(m_strName.IsEmpty()MessageBox(必须要有姓名!);else if(m_strNO.IsEmpty()MessageBox(必须要有学号!);Else3、1 用 MFC ClassWizard 为 CStudentCheckView 类添加 NM_CLICK 消息映射通过映射来在列表视图显示学生信息。并添加下列初始化代码:CPoint point;UINT uFlags;:GetCursorPos(/该函数检取光标的位置,以屏幕坐标表示CTreeCtrlm_TreeCtrl.ScreenToClient

11、( HTREEITEM hSel=m_TreeCtrl.HitTest(point,/测试鼠标点是否在一个节点项上,若是,则选中该点if(hSel!=NULL)&(TVHT_ONITEM & uFlags)m_TreeCtrl.SelectItem(hSel);CString strItem=m_TreeCtrl.GetItemText(hSel);CStudentCheckDoc *doc=GetDocument();int nIndex=doc-m_stuObArray.GetSize();/得到数组的大小:知道储存了几个学生的信息 );for(int n=0;nm_stuObArray.

12、GetAt(n);/调取 m_stuObArray 中储存的第 n 个对象信息CString str=stu-strSpecial;/得到该学生的专业信息CString dlg=stu-strAcademy;/得到该学生的学院信息POSITION pos=GetDocument()-GetFirstViewPosition(); GetDocument()-GetNextView(pos);listView *list=(listView*)GetDocument()-GetNextView(pos);/定义一个指向列表视图类的指针if(n=0)list-GetListCtrl().Delet

13、eAllItems();/删除全部列表项if(strItem=str|strItem=dlg|strItem=中原工学院)list-Onprint(stu);/把息输信入到列表中3、2 然后为 CStudentCheckView 添加一个 void 类型的成员函数 CreateTree()函数,用来动态添加学生信息并添加下列初始代码:CTreeCtrlm_TreeCtrl.DeleteAllItems();HTREEITEM hRoot,hParent,hChild,pS;hRoot=m_TreeCtrl.InsertItem(中原工学院,0,1);BOOL flag=TRUE;CStuden

14、tCheckDoc *doc=GetDocument();int i=doc-m_stuObArray.GetSize();for(int n=0;nm_stuObArray.GetAt(n);CString str1=stu-strAcademy;CString str2=stu-strSpecial;if(!m_TreeCtrl.ItemHasChildren(hRoot)/判断根节点是否有子节点hParent=m_TreeCtrl.InsertItem(str2,hRoot);m_TreeCtrl.InsertItem(str1,0,1,hParent);elsehParent=m_Tr

15、eeCtrl.GetChildItem(hRoot);pS=hParent;for(;pS!=NULL;pS=m_TreeCtrl.GetNextItem(pS,TVGN_NEXT)CString strItem1=m_TreeCtrl.GetItemText(pS);if(strItem1=str2)flag=FALSE;if(flag)hParent=m_TreeCtrl.InsertItem(str2,hRoot);m_TreeCtrl.InsertItem(str1,0,1,hParent);else if(!m_TreeCtrl.ItemHasChildren(hParent)/判断是否有子节点m_TreeCtrl.InsertItem(str1,0,1,hParent);elsehChild=m_TreeCtrl.GetChildItem(hParent);for(;hChild!=NULL;hChild=m_TreeCtrl.GetNextItem(hChild,TVGN_NEXT)CString strItem2=m_TreeCtrl.GetItemText(hChild);if(strIt

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 工程造价

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号