MFC毕业课程设计实验报告.docx
- 文档编号:670943
- 上传时间:2022-10-12
- 格式:DOCX
- 页数:21
- 大小:294.25KB
MFC毕业课程设计实验报告.docx
《MFC毕业课程设计实验报告.docx》由会员分享,可在线阅读,更多相关《MFC毕业课程设计实验报告.docx(21页珍藏版)》请在冰豆网上搜索。
MFC毕业课程设计实验报告
(此文档为word格式,下载后您可任意编辑修改!
)
课程设计任务书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来实现信息的读取与保存,最后添加一个新的查找的对话框用来查找、删除、查询学生信息的一个中介,通过姓名来实现学生信息的功能。
四、主要步骤
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_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(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())
MessageBox("必须要有学号!
");
Else
3、1用MFCClassWizard为CStudentCheckView类添加NM_CLICK消息映射
通过映射来在列表视图显示学生信息。
并添加下列初始化代码:
CPointpoint;
UINTuFlags;
:
:
GetCursorPos(&point);该函数检取光标的位置,以屏幕坐标表示
CTreeCtrl&m_TreeCtrl=GetTreeCtrl();
m_TreeCtrl.ScreenToClient(&point);
HTREEITEM=0;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()->GetNextView(pos);定义一个指向列表视图类的指针 if(n==0) list->GetListCtrl().DeleteAllItems();删除全部列表项 if(strItem==str||strItem==dlg||strItem=="中原工学院") { list->Onprint(stu);把息输信入到列表中 } } 3、2然后为CStudentCheckView添加一个void类型的成员函数CreateTree()函数,用来动态添加学生信息 并添加下列初始代码: CTreeCtrl&m_TreeCtrl=GetTreeCtrl(); m_TreeCtrl.DeleteAllItems(); HTREEITEM=0;n { CStudentInfo*stu=(CStudentInfo*)doc->m_stuObArray.GetAt(n); CStringstr1=stu->strAcademy; CStringstr2=stu->strSpecial; 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) public: 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.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MFC 毕业 课程设计 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)