MFC毕业课程设计实验报告Word文件下载.docx

上传人:b****4 文档编号:13596764 上传时间:2022-10-12 格式:DOCX 页数:21 大小:294.25KB
下载 相关 举报
MFC毕业课程设计实验报告Word文件下载.docx_第1页
第1页 / 共21页
MFC毕业课程设计实验报告Word文件下载.docx_第2页
第2页 / 共21页
MFC毕业课程设计实验报告Word文件下载.docx_第3页
第3页 / 共21页
MFC毕业课程设计实验报告Word文件下载.docx_第4页
第4页 / 共21页
MFC毕业课程设计实验报告Word文件下载.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

MFC毕业课程设计实验报告Word文件下载.docx

《MFC毕业课程设计实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《MFC毕业课程设计实验报告Word文件下载.docx(21页珍藏版)》请在冰豆网上搜索。

MFC毕业课程设计实验报告Word文件下载.docx

课程设计任务书

设计一个简单的学生信息管理应用程序

1.了解Windows编程的基础知识,掌握MFC应用程序的基本知识;

2. 

 

基本掌握面向对象程序设计的基本思路和方法;

3. 

掌握用VC++开发应用程序的的一般步骤和方法;

4. 

能够利用所学的基本知识,设计一个简单的学生信息管理应用程序,具有以下功能:

①实现学生信息的存储,可以用文件来实现。

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

1. 

用VC++进行编码,实现应用程序的功能。

注重编码质量,代码要有适当的注释;

采用单文档多视图方式,左边为树视图,右边为列表视图,左边一级节点为中原工学院,二级节点为计算机学院和软件学院,三级节点为计算机学院的三个专业。

要求可以动态增加节点。

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

右边也可以实现动态增加

3.当选中节点时,显示对应的学生信息。

如当选中”中原工学院”时选中所用的学生信息,选中“计算机学院”时,显示所有计算机学院学生信息

4.采用序列化方式保存和读取学生信息;

提交设计报告一份(课程设计任务书、目录、设计的基本思路、设计的步骤及主要代码、心得体会、参考文献)。

提示:

1、读文件时动态构造右边树视图方法,先构造根节点中原工学院,

2、序列读取学生信息到一个数组,遍历数组,如果右边树视图中有该节点的信息则不增加,没有则增加该节点,如有学生姓名为张三计算机学院网络工程系学生,二右边没有计算机学院节点时,在“中原工学院”节点下构造“计算机学院”节点,以及“网络工程系

三、基本思路

建立一个当文档的应用程序,在第六步将视图的基类选择为CTreeList,然后再建立一个新的类listView,用来输出学生的基本信息,然后添加一个切分窗口的函数OnCreateClient用来切分窗口,不添加相应的控件来实现学生信息的操作,通过完善学生信息类的功能慢慢实现程序的运行,然后添加一个序列化类CStudentInfo来实现信息的读取与保存,最后添加一个新的查找的对话框用来查找、删除、查询学生信息的一个中介,通过姓名来实现学生信息的功能。

四、主要步骤

1、新建工程:

用MFCAppWizard(exe)创建一个单文档的应用程序StudentCheck。

在第六步中将视图的基类选择为。

2、1添加一个基于ListView类的新的类listView、用于显示学生信息

2、2为CMainFrame添加一个切分窗口的映射函数OnCreateClient

并添加一个切分窗口的函数成员CSplitterWndm_wndSplitter;

然后添加下列代码:

CRectrect;

GetClientRect(&

rect);

CSizepaneSize(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);

returntrue;

2、4创建一个CstuInfoDlg对话框

2、5添加下列控件

并为上面控件添加变量

在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_strNO=_T("

m_strAcademy=_T("

}}AFX_DATA_INIT

}

用MFCClassWizard为CStuInfoDlg类添加WM_INITDIALOG消息映射,并添加下列初始化代码:

if(!

m_bMale)

CheckRadioButton(IDC_RADIO_MALE,IDC_RADIO_FEMALE,IDC_RADIO_FEMALE);

else

CheckRadioButton(IDC_RADIO_MALE,IDC_RADIO_FEMALE,IDC_RADIO_MALE);

对专业组合框进行初始化

m_comboSpecial.AddString("

网络工程"

软件工程"

计算机科学"

服装设计"

服装表演"

艺术设计"

m_strSpecial="

;

m_comboAcademy.AddString("

计算机学院"

服装学院"

m_strAcademy="

m_tBirth=CTime(0,0);

m_strMath=80;

UpdateData(FALSE);

将信息显示在控件中

2、6用MFCClassWizard为单选按钮IDC_RADIO_MALE添加BN_CLICKED的消息映射,并添加下列初始代码:

m_bMale=TRUE;

用MFCClassWizard为单选按钮IDC_RADIO_FEMALE添加BN_CLICKED的消息映射,并添加下列初始代码:

m_bMale=FALSE;

用MFCClassWizard为单选按钮IDOK添加BN_CLICKED的消息映射,并添加下列初始代码:

UpdateData();

m_strName.TrimLeft();

将字符串最前面的空格修整掉

m_strNO.TrimLeft();

if(m_strName.IsEmpty())

MessageBox("

必须要有姓名!

elseif(m_strNO.IsEmpty())

必须要有学号!

Else

3、1用MFCClassWizard为CStudentCheckView类添加NM_CLICK消息映射

通过映射来在列表视图显示学生信息。

并添加下列初始化代码:

CPointpoint;

UINTuFlags;

GetCursorPos(&

point);

该函数检取光标的位置,以屏幕坐标表示

CTreeCtrl&

m_TreeCtrl=GetTreeCtrl();

m_TreeCtrl.ScreenToClient(&

HTREEITEM=0;

n<

nIndex;

n++)

{

CStudentInfo*stu=(CStudentInfo*)doc->

m_stuObArray.GetAt(n);

调取m_stuObArray中储存的第n个对象信息

CStringstr=stu->

strSpecial;

得到该学生的专业信息

CStringdlg=stu->

strAcademy;

得到该学生的学院信息

POSITIONpos=GetDocument()->

GetFirstViewPosition();

GetDocument()->

GetNextView(pos);

listView*list=(listView*)GetDocument()->

定义一个指向列表视图类的指针

if(n==0)

list->

GetListCtrl().DeleteAllItems();

删除全部列表项

if(strItem==str||strItem==dlg||strItem=="

中原工学院"

{

Onprint(stu);

把息输信入到列表中

}

}

3、2然后为CStudentCheckView添加一个void类型的成员函数CreateTree()函数,用来动态添加学生信息

并添加下列初始代码:

m_TreeCtrl.DeleteAllItems();

i;

{

CStudentInfo*stu=(CStudentInfo*)doc->

CStringstr1=stu->

CStringstr2=stu->

if(!

m_TreeCtrl.ItemHasChildren(((nCol,strHeader[nCol],LVCFMT_LEFT,nWidth[nCol]);

5、1建立序列化类CStudentInfo用来保存学生信息,添加CC++HeaderFile,并添加下列初始代码:

classCStudentInfo:

publicCObject

public:

CStringstrName;

CStringstrNO;

BOOLbMale;

CTimetBirth;

intstrMath;

CStringstrSpecial;

CStringstrAcademy;

DECLARE_SERIAL(CStudentInfo)

CStudentInfo(){};

CStudentInfo(CStringname,CStringid,BOOLmale,CTimebirth,intmath,CStringspecial,CStringacademy);

voidSerialize(CArchive&

ar);

};

5、2添加CC++SourceFile,并添加下列初始代码:

#include"

stdafx.;

判断学生信息是不是已经添加

CStudentInfo*pStudent=newCStudentInfo(dlg.m_strName,dlg.m_strNO,dlg.m_bMale,dlg.m_tBirth,

dlg.m_strMath,dlg.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 小升初

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1