




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
大连科技学院软件综合课程设计(Z)题 目 基于MFC的通讯录管理系统的开发 学生姓名 专业班级 计算机(Z)13-1 指导教师 职 称 讲师 所在单位 信息科学系软件工程教研室 教学部主任 完成日期 2016年11月25日大连科技学院软件综合课程设计任务书专业:计算机(Z) 年级:2013级 题 目: 基于MFC的通讯录管理系统的开发 姓 名: 同 组 人: 指导老师: 日下发日期 2016年 11月14 日软件综合课程设计评分标准姓名专业班级计算机(Z)13-1考 核 项 目评分备注1平时工作态度及遵守纪律情况(10分)2掌握基本理论、关键知识、基本技能的程度和阅读参考资料的水平(10分)3独立工作能力、综合运用所学知识分析和解决问题能力及实际工作能力提高的程度(20分)4完成课程设计说明书及软件的情况与水平(小组分工情况、规范性、叙述完整性、思路清晰程度、工作量及实际运行情况和创新性)(30分)5答辩小组综合进一步审查学生作者对专业知识掌握的程度,审查学生论文独立完成情况,审查课程设计说明书及软件的情况。(30分)总评成绩综 合 评 定:(优、良、中、及格、不及格) 指导教师签字:2016年11月28日目 录1.绪 论11.1 课题简介11.2 设计目的11.3 设计内容12.需求分析32.1 需求概述32.2 功能需求32.3 非功能性需求53.系统设计63.1 系统包含的函数63.2 函数间的关系73.3 软件结构图73.4 增加联系人83.5 插入联系人83.6 删除联系人93.7 保存联系人113.8 查找联系人124.程序的运行与调试134.1 新建联系人134.2 修改联系人144.3 删除联系人154.4 查找联系人15总 结17参考文献18附录19 1.绪 论MFC(Microsoft Foundation Classes),是一个微软公司提供的类库(class libraries),以C+类的形式封装了Windows的API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。1.1 课题简介随着计算机技术的飞速发展,计算机在人民群众中应用的普及,利用计算机实现个人通讯录管理势在必行。对于广大群众来说,利用计算机支持个人通讯录管理的日常事务可以推动个人通讯录管理走向科学化、规范化的必要条件;计算机管理所无法比拟的优点检索迅速、查找方便、可靠性高、存储量大、保密性好、成本低等。通讯录管理系统是一个数据库应用系统,员工的所有信息都是保存在数据库中。本案例将主要实现如下一些功能:增加记录功能、修改记录功能、删除记录功能以及刷新记录功能等等。作为通讯录管理系统,我们将它作为一个数据库应用系统来进行开发制作。数据库应用系统开发的前提是首先开发数据库和数据库中的数据表,数据库和数据表是数据库应用系统中进行不可缺少的工具,一切的开发工作都是围绕数据库和数据表的操作进行的,数据表可被VC+的数据工程和其他工程进行引用。1.2 设计目的管理信息系统(Management Information System,以下简称为MIS),是一个将企业生产和经营中的各种内、外部信息进行收集、加工、整理、传递,并有序地存储,以用于管理和决策,是企业增效的信息系统。它能够使企业更加及时、准确、全面、详实的了解所需的信息数据。同时管理信息系统对各种信息数据的进一步加工,能使企业领导层的生产、经营、管理决策依据更加充分,更具有合理性、科学性;从而为社会创造出更多的价值,为企业的发展创造出更多的机会。对于企、事业单位的通讯录管理系统来说,不需要大型的数据库系统。只需要一个操作方便,功能实用,能满足本中心对数据的管理及需求的系统,能够提高通讯录管理的效率。1.3 设计内容我所设计的内容是一个简易通讯录。通讯录作为录通讯地址的书本,当今的通讯录可以涵盖多项内容。如:姓名、电话号码、单位电话、移动电话、传真号、电子邮件、QQ、MSN、个人主页、公司、街道、邮编、生日、大头帖、车牌、银行帐号、俱乐部名称、爱好等等。系统的目标是制作一个简易的电子通讯,用来编辑记录联系人信息。意义是提高查阅资料、独立分析问题和解决问题的能力。(1)录入成员信息。基本信息:姓名、联系电话、家庭住址、电子邮箱。(2)删除一个成员信息。(3)修改成员信息并保存。(4)能够按姓名对成员信息进行检索并将检索结果显示在屏幕上。(5)能够按电话对成员信息进行检索并将检索结果显示在屏幕上。(6)显示所有成员信息。(7)利用功能按钮的形式进行管理。2.需求分析2.1 需求概述通讯录管理系统主要是对个人的人脉通讯信息的管理,使个人的人脉通讯信息管理更加科学化、便捷化;为个人的人脉通讯信息管理水平跨上新台阶;为个人的人脉发展奠定坚实基础。进行通讯录管理系统需要Windows2000以上的操作系统及Visual C+6.0语言环境。2.2 功能需求现在各个大学都面临着通讯录管理的需求。本系统设计开发的基本目的是为了帮助大学中的教师管理通讯录信息。因为本系统使用的人群并非全都是计算机专业的,所以系统界面的设计应该尽量做到简洁友好,方便用户的使用。基本功能:添加个人信息查询个人信息删除个人信息修改个人信息输出全部信息拓展功能:采用文件形式对通讯录进行操作,包括:写入文件读取文件创新(自拟)功能:程序实现的其它功能由个人自拟。通讯录至少应该有以下数据项:姓名,家庭住址,手机号码,E-mail。输入信息时要检查数据项手机、邮编、E-mail的合法性,手机号码:11位数字;邮编:6位数字;E-mail:包含字符,且两边都非空。对通讯录应该包含有以下操作(包括基本功能和拓展功能):向通讯录中添加信息;在通讯录中按姓名或手机号查找个人信息;删除通讯录中的个人信息;修改通讯录中的个人信息,并保存入文件;按不同数据项排序后列表输出通讯录中所有人的信息。通讯录中记录的数量没有限制。写入文件和从文件读将通讯录中的数据入数据。程序启动时先从文件读入数据,如果文件中没有数据则给出提示;写入文件时有两种方式,一为覆盖所有原有的内容; 二为只将本次操作所修改的个人信息写入文件程序启动时先从文件读入数据,如果文件中没有数据则给出提示退出程序。本程序有三大主要特点:本程序功能比较强大,建立了一个比较健全的通讯录系统;本程序秉着人文主义的原则,使用了大量人性化的语句,能够给使用者提供一个温馨的使用环境,能够让使用者感觉到人性化关怀;本程序结构清晰,能够很方便的添加功能,将来能很方便的对其进行改进!安排本程序的目的及意义:这样安排本程序是为了方便程序的模块化及将来的改进。设计本程序的目的在于:编写一个比较完美的C程序;考验一个人的聪明才智;考察一个人的思维的敏锐程度及缜密程度;考察一个人的编程能力及对事情的专注程度。它的意义在于:锤炼思维,通过本程序的编写来提高思维的敏锐度;加深对教材内容的理解和提高对教材知识的掌握程度;使学生掌握一定的编程技巧及提高学生的认知力(1)增加记录的数据流程图如图2-1所示确认对数据库的任何修改自己保存获取指向数据库获取新的Name值添加新记录,并保存更新记录把游标移到最后一记录图2-1增加记录数据流程图(2)删除记录的数据流程图游标移到最后一条记录删除记录yes游标移到下一条记录记录内容为空更新表单游标在文件尾游标在文件头noyesno图2-2删除记录数据流程图2.3非功能性需求用户界面需求:简洁、易用、易懂、友好的用户界面。硬件要求:装有Visual studio 2012的计算机。可靠性需求:保证用户在正常使用本系统时,用户的操作或误操作不会产生数据的丢失。3.系统设计系统设计包括概要设计及详细设计,其主要任务就是把需求分析得到的数据流图转换成软件结构,设计模块的算法及设计数据库。3.1 系统包含的函数类class:CmyDlg该类的成员函数及功能如下:函数原型:void DataInit()功能:完成从文件读取数据的操作,如果文件不存在则只建立链表函数原型:void OnFirst()功能:让链表的当前指针返回开头,并在编辑框中显示第一个记录函数原型:void OnNext()功能:让链表的当前指针向后移一个位置,并在编辑框中显示出来.函数原型:void OnPrior()功能:让链表的当前指针向前移一个位置,并在编辑框中显示出来函数原型:void OnLast()功能:让链表的当前指针跳到结尾,并在编辑框中显示出来函数原型:void OnAdd()功能:在链表结尾添加一个结点并在用户列表中显示函数原型:void OnInsert()功能:在链表当前结点和下一结点间添加一个结点并在用户列表中显示函数原型:void OnDelete()功能:删除链表和用户列表的当前结点函数原型:void OnSave()功能:将编辑框中输入的信息存储到链表和用户列表中去函数原型:void OnExit()功能:关闭程序并将链表信息存入文件persondata.txt函数原型:void OnSearchway1()功能:完成按姓名查找用户信息的功能并在编辑框和用户列表中显示出来函数原型:void OnSearchway2()功能: 完成按电话号码查找用户信息的功能并在编辑框和用户列表中显示出来函数原型:void OnSelchangeNamelist()功能: 完成在列表框点击某项时将该项信息在编辑框中显示出来函数原型:void LoadInfo(struct persondata *p)功能:将结点中存放的数据信息显示在文本框中输入为当前结点的地址值,输出为空。函数原型:void OnClose()功能: 关闭程序并将链表信息存入文件persondata.txt3.2 函数间的关系进入程序调用DataInit()从硬盘读取数据,并将信息放入链表中。通过OnSave()把信息保存到链表中,当退出程序时自动存盘。用函数OnDelete()删除链表和用户列表的当前结点,可用函数OnAdd()在链表结尾添加一个结点并在用户列表中显示 OnSearchway1()和OnSearchway2()可实现按不同方式进行联系人查询。函数OnSelchangeNamelist()完成在列表框点击某项时将该项信息在编辑框中显示出来。函数LoadInfo(struct persondata *p)将结点中存放的数据信息显示在文本框中。以上这些函数各自有各自的功能,是通讯录管理系统的基本功能的实现,缺一不可。其它函数OnLast() 和 OnPrior() 和 OnNext() 和 OnFirst()是额外添加的一些辅助功能,仅仅是为了方便使用。3.3 软件结构图通讯录管理系统退出保存联系人查找联系人修改联系人删除联系人增加联系人按电话查找按姓名查找图3-1 软件结构图3.4增加联系人 新建联系人的功能描述(如图3-2所示):启用增加联系人按钮功能-启用文本框空件-每一个字符数组的每一元素都赋值为空格再初始化-在列表框中插入新名字并选中-总结点数加1,在尾结点后插入新结点-启用按钮控件,在文本框显示个人信息。启用按钮控件,在文本框显示个人信息总结点数加1,在尾结点后插入新结点在列表框中插入新名字并选中每一个字符数组的每一元素都赋值为空格再初始化启用文本框控件增加联系人图3-2 新建联系人3.5插入联系人插入记录的功能描述(如图3-3所示):获取指向数据库的指针-确认对数据库的任何修改均已保存-获取新的NAME值-通过AddNew函数来添加新记录-把新的NAME值设置为新增记录中的NAME字段值-调用Requery函数更新记录-游标移到最后一条记录。将默认的数据复制到当前结点在列表框中插入新名字并选中总结点数加1新建临时指针p启用文本框控件插入联系人cur-next-pre=p;p-next=cur-next;cur-next=p;p-pre=cur;cur=p;当前结点是不是尾结点cur-next=p;p-pre=cur;p-next=NULL;cur=p;启用按钮控件,在文本框显示个人信息否是图3-3 插入联系人3.6删除联系人删除记录的功能描述(如图3-4所示):删除记录-得到所选记录在列表框中的序号-新建临时指针P-弹出确认对话框:是否删除联系人?-进行选择-在列表框中删除记录-总用户信息数减一。图3-4删除联系人删除联系人否cur=cur-next; cur-pre=p-pre; p-pre-next=cur;m_namelist.SetCurSel(sel+1);cur=cur-pre;cur-next=NULL;last=cur;m_namelist.SetCurSel(sel-1);否是是弹出确认对话框:是否删除联系人?当前节点是否为尾节点得到所选记录在列表框中的序号新建临时指针P在列表框中删除记录总用户信息数减一结束3.7 保存联系人保存联系人功能实现如图3-5所示。首先保存好原有的数据记录,讲编辑框输入的信息传递给变量,之后检查输入是否合法,如果不合法无法继续,并获取列表框记录的位置,用于修改列表框中的记录,将编辑框中信息存入当前结点,将编辑框信息存入链表,更新列表框信息。最后,保存联系人信息。保存联系人将编辑框输入的信息传递给变量获取列表框记录的位置,用于修改列表框中的记录将编辑框中信息存入当前结点将编辑框信息存入链表,更新列表框信息检查输入是否合法,不合法无法继续保存成功图3-5 保存联系人3.8查找联系人查找联系人分按姓名和电话查找即可,只是方式不同而已查找方式如图3-6所示。查找联系人,遍历链表,是否存在该联系人,如果不存在则不显示其联系人,如果存在,将找到的信息输入编辑框内,并显示出来。提示框:查无记录!将找到的信息输入编辑框,在用户列表中显示存在查找联系人遍历链表,是否存在该联系人不存在图3-6 查找联系人4.程序的运行与调试本软件是基于Windows的编程开发,所以,软件调试必须在Windows环境下进行。调试前须做好准备工作:需要安装Visual StudioVC+6.0的计算机一台;配置好之后,在Visual StudioVC+6.0环境下进行软件的调试。(1)测试数据:联系人信息输入:在“添加”模块中,点击“添加”会新建一个名字初始化为“新姓名”,其它信息为空的联系人信息,可添加信息。 联系人信息修改:点击需要修改的联系人,在编辑框内即可修改信息,修改后点击保存即修改成功。联系人信息删除:点击需要修改的联系人,点击删除,再次确认后即可删除。联系人的查询:按姓名进行查询、按电话号进行查询这两个功能模块在具体编程实现上基本上是一样的,因为都是针对联系人信息的查询。因此我们仅以“按姓名进行查询”为例来说明一下这两个个功能模块的详细实现过程。输入需要查询的姓名,点击按姓名查找,如果存在该联系人就跳到该联系人,并且显示详细信息。值得注意的是,两种查找方式当存在信息相同的情况,比如具有相同的姓名的有多个,则显示的是第一个人的信息。(2)算法改进设想:在程序设计前期,我们并没有用txt文件来保存学生信息。经过我不断的修改以及调试后,该程序总算可以进行txt文本的读出与写入,并且添加学生信息后可以直接将信息保存在txt文本文件中。4.1 新建联系人新建七名联系人,并录入者七个人的信息。如图4-1和图4-2所示。这七个人分别为,此次课程设计开发的小组成员,通过启动“新建联系人”按钮后,根据文本框前的信息,对应其信息,填写各个人的信息。依次录入:姓名,电话号,邮箱号,家庭地址。录入完信息后,点击添加联系人按钮,进行添加。图4-1 新建联系人信息录入图4-2 小组信息录入4.2 修改联系人将“姓名”为“姚伟奇”的家庭地址改为“阳光家园”。修改后点击“修改”即为修改成功。修改过程如图4-3所示。图4-3 修改信息4.3 删除联系人点击想要删除的“姓名”,例如删除“姚伟奇”和“赵梓淳”。点击名字后点击“删除联系人”按钮即可。删除后显示如图4-4所示。图4-4 删除联系人4.4 查找联系人查找“姓名”为“侯方”的联系人的信息。点击“查找联系人”按钮,输入在“姓名”文本框内输入“侯方”点击查找联系人即可查找如图4-5所示。图4-5 查找联系人总 结本次软件综合课程设计是培养我们综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程。随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学生来说掌握程序开发技术是十分重要的,而MFC编程又是最常见,功能最强大的一种基础类库,因此做好和MFC编程课程设计是十分必要的。回顾起此次课程设计,至今我们仍感慨颇多。的确,自从拿到题目到完成整个编程,从理论到实践,在整整两周里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,开始的时候并没有一个好的设计思路,就是按照自己的想法逐一实现软件的功能而已,后来在慢慢写的过程中发现自己在开始写软件的时候想的还是太少了,最后很多内容都是临时想起来然后查资料又加上去的。我想在以后设计软件的时候还是要多多的思考,尽量在写软件之前把可能用到的功能和内容都考虑完全了之后在进行设计,这样就算以后再添加什么内容相对来说也会随心一点,不会出现那么多的错误通过这次课程设计,使我对MFC编程有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,我也发现我的好多不足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;再有对MFC编程的一些封装函数不太了解,还有对MFC编程中经常出现的错误也不了解,通过实践的学习,我认识到学好计算机要重视实践操作,在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。在课程设计中不断和解决自己的编程问题和帮助同学解决他们遇到的问题,对一些自己遇不到的问题,都有了一些新思路和新的收获。在解决问题的时候,自己忙得不可开交,但是也使自己有不一般的收获,使自己的编程经验和能力又有了一大步的提升。参考文献1孙鑫.余安萍编著.VC+深入详解.北京.电子工业出版社.2007.112谭浩强.C+程序设计.北京.清华大学出版社.2004.063刘春辉.徐建飞编著.Visual C+程序设计学习笔记.北京.电子工业出版社.2008.05附录/ Ex_List.cpp : Defines the class behaviors for the application./#include stdafx.h#include Ex_List.h#include Ex_ListDlg.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CEx_ListAppBEGIN_MESSAGE_MAP(CEx_ListApp, CWinApp)/AFX_MSG_MAP(CEx_ListApp)/ NOTE - the ClassWizard will add and remove mapping macros here./ DO NOT EDIT what you see in these blocks of generated code!/AFX_MSGON_COMMAND(ID_HELP, CWinApp:OnHelp)END_MESSAGE_MAP()/ CEx_ListApp constructionCEx_ListApp:CEx_ListApp()/ TODO: add construction code here,/ Place all significant initializatio
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025安徽工程大学部分专业技术岗位招聘2人模拟试卷完整答案详解
- DB12-T 1215-2023 轨道交通综合票务服务终端技术要求
- 滑雪保险知识培训总结课件
- 2025赤峰市中心医院招聘8控制数人员模拟试卷及答案详解参考
- 祖国我的骄傲课件
- 2025春季中国融通农业发展有限集团有限公司社会招聘模拟试卷有答案详解
- 滑轮指导员培训课件
- 2025年福建省泉州市晋江安海职业中专学校招聘若干人模拟试卷有完整答案详解
- 疼痛课件综述
- 2025内蒙古鄂尔多斯市天安公交集团招聘20人模拟试卷含答案详解
- 农林毛竹基地林业贴息贷款项目建设可行性研究报告
- 初三生涯规划
- DB21T 3199-2019 人民防空工程标识
- 《中外美术史》课件
- 锅炉培训课件
- 部编版(2024)三年级道德与法治上册第二单元《学科学 爱科学》知识清单
- 中华人民共和国标准设计施工总承包招标文件(2012年版)
- 供应商审核报告QSA+QPA(连接器行业)
- 《民航客舱设备操作与管理》课件-项目二 客舱服务设备
- 运动安全与健康智慧树知到期末考试答案章节答案2024年浙江大学
- 美术教师指导青年教师计划方案
评论
0/150
提交评论