学生通讯信息管理Word文档下载推荐.docx
《学生通讯信息管理Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《学生通讯信息管理Word文档下载推荐.docx(14页珍藏版)》请在冰豆网上搜索。
Win7操作系统
前台界面开发:
MicrosoftVisualC++6.0简体中文版
2概要设计
2.1设计思路
基于MFC库类对对话框界面的设计,通过创建类成员函数成员变量,编辑控件创建消息映射,调用消息函数完成数据的输入输出,实现相关功能,生成简单的应用软件。
2.2模块功能介绍
⑴浏览显示功能:
通过学生通讯信息管理模块,显示记录的学生通讯信息;
⑵添加记录模块:
添加通讯信息,依次输入学生姓名、电话、E-mail、学院,最后选择继续添加或添加完毕;
⑶删除记录功能:
自由删除添加的记录;
⑷向前浏览功能:
向前查看浏览学生的通讯信息记录;
⑸向后浏览功能:
向后查看浏览学生的通讯信息记录。
2.3模块结构图
图2-1模块结构图
2.4程序流程图
添加记录和删除记录流程如图2-2所示。
图2-2添加记录和删除记录流程图
2.5功能设计分工
本程序由两人共同完成,主要负责系统界面和系统功能的设计,以及辅助胡克同学编程的工作;
主要负责编写程序以及调试的工作。
3 详细设计
⑴打开MicrosoftVisualC++6.0,在文件中点击新建,在弹出的框内选择MFCAppWizard[exe]工程,输入工程名学生通讯信息管理,点击确认,如图3-1所示。
图3-1新建MFC工程
⑵弹出的MFC应用程序向导对话框,选择基本对话框,点击完成,如图3-2所示。
图3-2MFC应用程序向导
⑶在MFC中创建相关按键,如图3-3所示,并设置好属性及ID,如表3-1所示。
图3-3学生通讯信息管理窗口
ID
标题
IDC_EDIT_NAME
姓名
IDC_EDIT_EMAIL
Email
IDC_EDIT_PHONE
电话
IDC_EDIT_COMPANY
学院
IDC_BUTTON_ADD
添加记录
IDC_BUTTON_DELETE
删除记录
IDC_BUTTON_NEXT
<
IDC_BUTTON_PREVIOUS
>
表3-1控件ID及标题名
⑷为每个编辑框控件绑定数据源字段,选择一个编辑框控件,单机右键选择建立类向导,点击MemberVariables,先将Member中不好记的值通过DeleteVariable删除,再点击AddVairiables添加,改为自己好记的的名字,再将编辑框(在CmyView视图类中)与上述变量绑定,如图3-4、3-5所示。
图3-4建立类向导
图3-5绑定变量
4调试分析
编程调试过程中出现一次错误,双击错误代码直接跳转到程序错误处,发现在程序句尾处忘记写上“;
”,错误代码如图4-1所示。
图4-1调试错误窗口
改正错误后再次调试,结果如图4-2所示。
图4-2调试结果
5测试
⑴程序调试无误,运行程序弹出界面如图5-1所示。
图5-1学生通讯信息管理主窗口
⑵单击添加记录后跳出添加学生通讯信息窗口,如图5-2所示,
图5-2添加学生通讯信息窗口
⑶输入学生通讯信息,如图5-3所示。
图5-3输入学生通讯信息
⑷继续添加学生通讯信息,添加完了后单击添加完成,跳出窗口如图5-4所示。
图5-4添加学生通讯信息完成
⑸向后翻阅学生通讯信息,翻阅到最后一页跳出窗口如图5-5所示。
图5-5翻阅学生通讯信息
⑹删除记录后跳出窗口如图5-6所示。
图5-6删除记录
⑺导出学生通讯信息,单机文件,保存后即可导出,如图5-7所示。
图5-7导出学生通讯信息
心得与体会
通过这次课程设计,使我对MFC有了更进一步的了解,对消息的机制有了更深刻的认识,对MFC中的应用结构类、菜单类、窗口以及对话框和控件有了更深刻的认识。
本次课程设计是用MFC做的,在这之前并没有系统的学习MFC也没有接触过,故在得知课题时,确实感到头大。
但是为了完成这个课题,在图书馆和网上找了些资料,自己开始研究探索。
开始在网上找到相关的课程设计资料,并对照着课本进行分析,然后自己开始着手进行自己的设计。
当然一开始并不会很顺利,但是自己还是坚持一步步探索下来,终于完成了自己的小设计,虽然这个设计做的并不是很好,功能也不强大,但始终是自己一步一步一步设计,代码是自己一个一个键敲出来的,所以不管结果,我能说我确实学到些东西了!
这个课程设计也让我了解到合理的规划和设计页面对编程者是十分重要的。
一个好的程序也需要便捷的操作和美观的界面,人性化设计需要我们更加细心的去设计和美化程序。
虽然在MFC课程设计是遇到了这样和那样的问题,通过我自己和同学的帮助,还有参考数的帮助,这次课程设计是我收获很多,不仅对编程有了更进一步的了解,同时也看到了我自己编程能力的不足和与班级学习MFC好的同学之间的差距,需要进一步努力、才能不被他们抛的更远。
另外,在整个开发的过程中,时间也比较仓促。
因此,该系统必然会存在一些缺陷和不足。
指导教师评语
指导教师签名:
年
月
日
参考文献
[1]郑阿奇.VisualC++实用教程(第三版).电子工业出版社
[2]谭浩强.数据结构C程序设计.清华大学出版社.2005
[3]皮德常.c++程序设计教程.机械工业出版社.2009
[4]张乃孝.算法与数据结构——C语言描述(第2版).高等教育出版社.2006年12月
[5]郭龙源.数据结构与算法.清华大学出版社.2010年3月
附录
程序设计
初始化视图类的数据成员
voidCAddressBookView:
:
OnInitialUpdate()
{
CFormView:
OnInitialUpdate();
GetParentFrame()->
RecalcLayout();
ResizeParentToFit();
CAddressBookDoc*pDoc=GetDocument();
//获得文档类指针
m_PersonViewList=&
(pDoc->
m_PersonList);
//视图类指针指向文档类对象
m_Position=m_PersonViewList->
GetHeadPosition();
//获得头结点位置
CPerson*pListDoc=(CPerson*)m_PersonViewList->
GetAt(m_Position);
//获得头一个数据
m_strName=pListDoc->
m_Name;
m_strPhone=pListDoc->
m_Phone;
m_strCompany=pListDoc->
m_Company;
m_strEmail=pListDoc->
m_Email;
//将表头结点数据赋给视图类成员变量
UpdateData(false);
//刷新窗口
((CDialog*)this)->
GotoDlgCtrl(GetDlgItem(IDC_EDIT_NAME));
//将光标停在姓名编辑框
}
添加记录模块程序:
OnButtonAdd()
//CDC*pDC=GetDC();
//CBrushmybrush1;
//mybrush1.CreateSolidBrush(RGB(188,0,0));
//CRectmyrect1(0,0,1200,800);
//pDC->
FillRect(myrect1,&
mybrush1);
//界面
((CButton*)GetDlgItem(IDC_BUTTON_PREVIOUS))->
EnableWindow(false);
((CButton*)GetDlgItem(IDC_BUTTON_NEXT))->
((CButton*)GetDlgItem(IDC_BUTTON_ADD))->
SetWindowText(_T("
继续添加"
));
((CButton*)GetDlgItem(IDC_BUTTON_DELETE))->
添加完毕"
((CEdit*)GetDlgItem(IDC_EDIT_NAME))->
EnableWindow(true);
((CEdit*)GetDlgItem(IDC_EDIT_EMAIL))->
((CEdit*)GetDlgItem(IDC_EDIT_PHONE))->
((CEdit*)GetDlgItem(IDC_EDIT_COMPANY))->
m_strName="
"
;
m_strPhone="
m_strCompany="
m_strEmail="
//清空编辑框
//刷新界面
CPerson*pListDoc=newCPerson();
AddTail(pListDoc);
//新建空人员信息添加至链表,并将当前位置移至该处
//获得文档指针
pDoc->
SetModifiedFlag();
//设置文档被修改标置
//姓名编辑框获得焦点
//TODO:
Addyourcontrolnotificationhandlercodehere
删除记录模块功能程序:
OnButtonDelete()
CStringstr;
GetDlgItem(IDC_BUTTON_DELETE)->
GetWindowText(str);
if(str=="
删除记录"
)
{
CObject*