77范文网 - 专业文章范例文档资料分享平台

基于C++的通讯录管理系统课程设计(2)

来源:网络收集 时间:2018-12-29 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

3.输出信息模块:用户可以通过人机界面,对数 据库中的记录进行逐条查询,通过最前、向前、向后、最后按钮,逐次显示电话薄中记录的信息,还可通过成员列表显示所有记录。

4.数据库模块:系统中的数据通过数据库模块存入数据库,当进行记录的查询、修改、删除、添加等操作时,数据库模块从数据库中读取相应记录供给用户进行相应操作。

2.3.2各文本框功能

(1)静态文本框

静态文本框一般都是对话框或其他窗口的子窗口,而且是可见的,用于显示文字说明。本系统中的静态文本框有姓名、电话、邮编、地址、请输入查找内容、查找记录和个人信息等。

(2)编辑框

编辑框是可以编辑的,在系统中,我们可以往其中输入相关信息,最后可以通过控件来对其进行修改。

三、系统详细设计

3.1界面设计

3.1.1 MFC框架界面设计

在进行界面设计时,用到了一些控件,主要有静态文本框、编辑框、按钮、列表框等,并为相应控件添加了响应函数,实现其相应的功能。最后生成的界面如图所示:

6

3.2数据库设计

系统中的数据通过数据库模块存入数据库,当进行记录的查询、修改、删除、添加等操作时,数据库模块从数据库中读取相应记录供给用户进行相应操作。本系统中通过void CPhoneBookDlg::DataInit()函数来对该系统进行初始化,并建立文件,存储数据。

在进行数据库的操作流程设计时,操作流程图如下:

返回

取消按钮 单击

3.3模块功能说明

3.3.1控件的通知消息机制

当控件有事件发生时,它会向父窗口发送通知消息。最常发生的事件就是鼠标单击了,此时控件会向父窗口发送BN_CLICKED消息,实际上也就是给父窗口发送WM_COMMAND消息,在wParam参数中包含有通知消息码(鼠标单击时的通知消息码就是BN_CLICKED)和控件ID,lParam参数中包含了控件的句柄。在MFC消息映射机制概述中,鸡啄米讲过,消息就是由三个部分组成:消息值、wParam参数和

7

添加 单击 否 录入基本信息 单击 提交 检验数据是否合法 确定 是 查询数据库 提交 是否有通条记录 否 添加数据库 添加记录流程图

lParam参数。

控件的消息映射宏的格式大致是:ON_通知消息码(nID, memberFun),nID参数是控件的ID,memberFun参数是消息处理函数名。例如,ON_BN_CLICKED(IDC_BUTTON1, &CDlg::OnBnClickedButton1)。此消息映射宏应添加到BEGIN_MESSAGE_MAP和END_MESSAGE_MAP之间。消息处理函数声明的语法形式为:afx_msg void memberFun()。

3.3.2各按钮功能

(1)处理“添加”按钮

点击“添加”按钮后,在void CPhoneBookDlg::OnAdd()函数中,在链表的结尾添加一条记录,并将默认将新记录的姓名置为“新名字”,其它项为空。输入输出均为空,这只是一个过程。之后,我们可以添加联系人的相关信息。

(2)处理“删除”按钮

点击“删除”按钮后,在void CPhoneBookDlg::OnDelete()函数中,通过m_NameList.GetCurSel()得到所选记录在列表框中的序列号,最后确认要删除后,通过m_NameList.DeleteString(sel)在列表框中删除记录。删除完成后,并在结尾调用void CPhoneBookDlg::OnSelchangeNamelist()函数,移动指针到指定结点的位置。

(3)处理“更新信息”按钮

点击“更新信息”按钮后,在void CPhoneBookDlg::OnUpdate()函数中,完成修改当前记录的操作。首先通过m_NameList.GetCurSel()得到所选择记录在列表框中的序号,然后调用strcpy(char *, const char *)函数,将更新的数据从文本输入框复制到结点,最后完成信息更新的操作。

(4)处理“全部清除”按钮

点击“全部清除”按钮后,在void CPhoneBookDlg::OnClear()函数中,完成清除文本框中所有内容的操作。

(5)处理“按姓名查找”按钮

在“请输入查找内容”栏输入联系人姓名后,点击“按姓名查找”按钮,在void CPhoneBookDlg::OnSearchbyname()函数中,完成对联系人查找的操作。直接调用FindString函数查找并得到序号,若查找不到,则提示找不到,最后调用SetCurSel(sel)函数选中查找到的记录。

(6)处理“按电话查找”按钮

8

在“请输入查找内容”栏输入联系人电话号码后,点击“按电话查找”按钮,在void CPhoneBookDlg::OnSearchbyphone()函数中,完成对联系人查找的操作。通过m_NameList.GetCurSel()得到当前记录的序号,然后判断是否匹配成功,最后选中找到的记录。

(7)处理“×”按钮

当点击右上角的“×”按钮时,便退出系统。调用void CPhoneBookDlg::OnClose()函数,在程序结束时,能够将数据保存到系统中。通过fwrite(const void *, size_t, size_t, FILE *)函数将数据写入文件中,同时将指向节点的指针后移。最后在退出时保存数据。

四、调试与测试

4.1调试分析与讨论

我们组做的是“电话薄管理系统”,在进行程序设计时,犯过一些错误。刚开始,对MFC的界面不太熟悉,花了几天时间来学习MFC的相关知识。刚开始犯的错误是建错了工程,以至于在建立类时总出错,浪费了几个小时才发现要建立基于对话框的程序。最后在完成程序设计后,肯定是不可能一下子就成功的,程序会出现各种各样的错误,导致不能编译通过。刚开始出现的第一个错误是:

后来通过查阅资料才知道,是因为计算机丢失补丁,去网上下载了相关补丁就好了,接下来就是调试代码了。刚开始由于自己的粗心,代码中的类名敲错了,结果发现一直报错,找了好久才发现是自己不细心敲错了字母导致的。

刚开始我和曾鹏讨论系统的功能,要调用那些函数,曾鹏想用ACCess中的数据库来做,我后来想到我们之前学过的C语言知识,有fopen()、fread()等函数,可以实现文件和信息的管理。经过讨论,我们决定用这种方式来建立数据库,省去了再弄Access的精力。

9

这个程序讲的是信息管理,我们要管理手机联系人的信息,能够实现多种功能,说起来简单,做起来时不容易。在犯错误时,真的很后悔自己的编程功底不牢固,现在就需要付出更多的时间来弥补在做课程设计时,每一次的错误对我来说都是一次进步,只有把程序的错误解决了,才能理解程序的作用,自己动脑解决了每一个bug,都是很有成就感的事。有些人可以随口说出常用的函数,走了一条捷径,而不知道的人就要花时间去找那个函数,或者说自己花时间来写代码实现那个函数的功能。所以,在后面的调试过程中,我们都是认真分析思考每一个错误,直到成功编译通过为止。

4.2实际完成的情况说明

经过调试,最终能够实现对联系人信息的管理,可方便地进行建立、修改、删除,查找联系人;也可以根据需要修改联系人的基本信息,并实现系统的易维护性和易操作性。

4.3本设计改进建议

该系统可以实现预期的功能,但是为了体现智能化,可以在设计中加入打印、拨号等功能,当我们需要统计手机电话薄的信息时,点击“打印”按钮就可以将电话薄中的联系人信息打印出来。同时,我们可以选中打印部分我们想要的联系人信息,实现多功能。也可以在联系人信息中可以再详细一些,加入邮箱、公司等信息,还可以进行分组,方便日后管理。

在进行程序设计时,可以对重要部分代码进行注释,在对每一个控件添加响应函数时,可以对其命名更加规范,使用相应的英文代替,方便阅读。另外,也要养成良好的代码风格,对重要部分代码

10

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于C++的通讯录管理系统课程设计(2)在线全文阅读。

基于C++的通讯录管理系统课程设计(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/400936.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: