1荆楚理工学院面向对象程序设计课程设计成果学院:电子信息工程学院_班级:2014级物联网工程2班学生姓名:王一中学号:2014401030215设计地点(单位):D1202设计题目:电话薄管理系统完成日期:2017年6月2日指导教师评语:_________________________________成绩(五级记分制):教师签名:2目录一、设计目的和要求·························································31.1设计目的····························································31.2设计要求····························································3二、总体设计方案·····························································42.1系统分析····························································42.1.1系统设计意义··················································42.1.2系统设计需求分析··············································42.1.3MFC简介·······················································42.2系统组成框图························································52.3各模块功能设计······················································62.3.1各模块功能····················································62.3.2各文本框功能设计··············································6三、详细系统设计····························································63.1界面设计····························································63.1.1MFC框架界面设计···············································63.2数据库设计··························································73.3模块功能说明························································73.3.1控件的通知消息机制············································73.3.2各按钮功能····················································8四、调试与测试·····························································94.1调试分析与讨论······················································94.2实际完成情况说明····················································104.3本设计改进建议·····················································11五、源程序清单····························································12六、总结···································································23七、主要参考文献···························································243一、设计目的和要求1.1设计目的随着计算机技术的飞速发展,计算机的普及,利用计算机实现通讯管理已经是这一趋势的必然要求。计算机管理具有无法比拟的检索迅速、可靠性高、存储量大、低成本、方便快捷的巨大优势。这给人们带来极大的方便,尤其是商务人士,免去了人们记忆大量信息的痛苦。而一个高效地信息管理系统可以为人们的生活带来极大的便利。1.通过这次课程设计,实际掌握面向对象程序设计方法,了解C++面向对象程序设计的方法与技巧,有效地、深刻地理解课程设计的内容,体会理论、方法和设计原则,培养自己分析思考和解决问题的能力,使学生具备面向对象程序设计开发工具设计实际系统的能力。2.VC++6.0是Microsoft公司推出的一个功能强大的可视化软件开发工具,它是目前为止在Windows环境下进行大型软件开发的首选。通过这次课程设计,在熟练掌握C++面向对象设计的程序设计基础上,掌握VC++6.0软件的使用,通过自学MFC,完成简单的二维平面的绘画,增强学生软件开发能力。3.通过这次课程设计,尝试利用所学的知识解决实际问题,学以致用。MFC是建立自C++的基础上的,所以C/C++语言的重要性不言而喻。在进行课程设计中,深入的理解C++语言的封装性、派生性、重载性的优势,理解MFC的消息处理机制,提高学生工程实践能力。1.2设计要求1.设计一个简单的电话薄管理系统,并使用VC++6.0做出可视化界面,该电话薄默认存储了一些联系人信息,该系统能显示联系人的姓名、电话、邮编和地址。2.具有信息删除和添加功能,能够添加和删除联系人,当选中某个联系人姓名时,点击“删除”,就可以删除该联系人和与之相关的信息。当点击“添加”时,可以向电话薄中添加新的联系人,并编辑联系人姓名、电话、地址和邮编,点击“更新信息”时,就成功添加了新的联系人。3.具有查询信息的功能,可以按电话查找或按姓名查找通讯录中的联系人。输入联系人姓名,并点击“按姓名查找”,就能显示该联系人的信息,包括同名的联系人。输入联系人电话,并点击“按电话查找”,就能显示该联系人信息。4.在进行程序设计时,定义相关的类,为相应控件添加时间响应函数。4二、总体方案设计该系统基于VC++6.0开发环境,利用MFC做出电话薄系统的可视化界面。首先要设计出电话薄的总体框架,设计其功能:添加、删除、更新信息、姓名、电话、地址、邮编。并为其添加相应控件,建立数据库,链接数据库。最后为其控件添加响应的响应函数,并完成程序设计。2.1系统分析2.1.1系统设计意义管理信息系统是一个将企业生产和经营中的各种内、外信息进行收集、整理、传递,并有序地存储,以用于经营和决策,是企业增强效率的信息系统。它能够使企业更加及时、准确、全面、详细地了解所需哟的信息数据。同时管理信息系统对各种信息数据的进一步加工,能使企业领导层的生产、经营、管理决策依据更加充分,具有合理性、科学性,从而方便人们管理各种信息。随着社会的发展、关系广泛,人们之间采用电话沟通越来越多,电话号码也就越来越多。要求查找一个电话号码也要节省时间和精力,要快捷方便。因此,这次课程设计设计了一款低成本、可靠性好、管理方便的电话薄管理系统。2.1.2系统设计需求分析话薄是日常工作生活中常用的记录工具,主要是对个人的人脉通讯信息的管理,使个人信息管理更加科学化、便捷化。要能实现通讯录的信息管理,基本信息包括:姓名、电话号码、邮编和地址;利用数据库的强大的管理功能,可以大大提高个人查找所需基本信息的效率。本系统应该满足以下几点:(1)操作界面友好,信息查询灵活、方便、快捷、准确、数据存储安全可靠;(2)对联系人的操作简单,可以方便地进行建立、修改和删除;(3)可以根据需要修改联系人的基本信息,并实现系统的易维护性和易操作性。2.1.3MFC简介MFC,微软基础类(MicrosoftFoundationClasses),同VCL类似,是一种应用程序框架,随微软VisualC++开发工具发布,该类库提供一组通用的可重用的类库供开发人员使用。大部分类均从CObject直接或间接派生,只有少部分类例外。MFC应用程序的总体结构通常由开发人员从MFC类派生的几个类和一个CWinApp类对象(应用程5序对象)组成。MFC提供了MFCAppWizard自动生成框架。Windows应用程序中,MFC的主包含文件为Afxwin.h。此外MFC的部分类为MFC/ATL通用,可以在Win32应用程序中单独包含并使用这些类。由于它的易用性,初学者常误认为VC++开发必须使用MFC。这种想法是错误的。作为ApplicationFramework,MFC的使用只能提高某些情况下的开发效率,只起到辅助作用,而不能替代整个Win32程序设计。2.2系统组成框图电话薄管理系统的功能结构见下图:包含查询记录模块、更新记录模块、输出信息模块、数据库模块等。电话薄管理系统功能模块图2.3各模块功能设计2.3.1各模块功能1.查询记录模块:可以实现多种方式的模糊查询,可以通过姓名、电话等查询结果,可在列表中显示出来,其分别对应相关函数。2.个人信息模块:为便于通讯记录的管理,本系统能通过操作界面进行添加、修改、删除记录。要实现应用程序对数据库的操作,还须向应用程序添加相关的操作代码。电话薄信息管理系统查询记录模块输出信息模块个人信息模块按姓名查找按电话查找添加个人信息删除个人信息找更新信息清除信息关于63.输出信息模块:用户可以通过人机界面,对数据库中的记录进行逐条查询,通过最前、向前、向后、最后按钮,逐次显示电话薄中记录的信息,还可通过成员列表显示所有记录。4.数据库模块:系统中的数据通过数据库模块存入数据库,当进行记录的查询、修改、删除、添加等操作时,数据库模块从数据库中读取相应记录供给用户进行相应操作。2.3.2各文本框功能(1)静态文本框静态文本框一般都是对话框或其他窗口的子窗口,而且是可见的,用于显示文字说明。本系统中的静态文本框有姓名、电话、邮编、地址、请输入查找内容、查找记录和个人信息等。(2)编辑框编辑框是可以编辑的,在系统中,我们可以往其中输入相关信息,最后可以通过控件来对其进行修改。三、系统详细设计3.1界面设计3.1.1MFC框架界面设计在进行界面设计时,用到了一些控件,主要有静态文本框、编辑框、按钮、列表框等,并为相应控件添加了响应函数,实现其相应的功能。最后生成的界面如图所示:73.2数据库设计系统中的数据通过数据库模块存入数据库,当进行记录的查询、修改、删除、添加等操作时,数据库模块从数据库中读取相应记录供给用户进行相应操作。本系统中通过voidCPhoneBookDlg::DataInit()函数来对该系统进行初始化,并建立文件,存储数据。在进行数据库的操作流程设计时,操作流程图如下:添加记录流程图3.3模块功能说明3.3.1控件的通知消息机制当控件有事件发生时,它会向父窗口发送通知消息。最常发生的事件就是鼠标单击了,此时控件会向父窗口发送BN_CLICKED消息,实际上也就是给父窗口发送WM_COMMAND消息,在wParam参数中包含有通知消息码(鼠标单击时的通知消息码就是BN_CLICKED)和控件ID,lParam参数中包含了控件的句柄。在MFC消息映射机制概述中,鸡啄米讲过,消息就是由三个部分组成:消息值、wParam参数和添加录入基本信息确定查询数据库检验数据是否合法是否有通条记录取消按钮单击单击单击返回提交否添加数据库否提交是8lParam参数。控件的消息映射宏