课程设计通讯录系统Word下载.docx
《课程设计通讯录系统Word下载.docx》由会员分享,可在线阅读,更多相关《课程设计通讯录系统Word下载.docx(18页珍藏版)》请在冰豆网上搜索。
C++;
MFC编程
完成期限:
2015年11月14日至2015年12月4日
指导教师签名:
课程负责人签名:
2015年12月4日
前言
日益繁多的人际交往使得我们很难记住与每个人之间的联系方式,通讯录能够便捷的给我们带来所需要的相关信息。
而随着计算机的普及,人们的生活摆脱了传统式的记事本、电话簿,越来越多的靠计算机或者手机中的电话簿程序来帮助人们记住这些事情极其简便。
这就需要有一个使用的通讯录管理系统,用户可以方便的通过自己电脑的通讯录管理系统,来随时查阅自己所需要的信息,而不必再大费周折去翻开那繁琐的记事本。
21世纪是IT普及的世界,到处都存在IT的身影,身处其中,实时通讯已是占据它不可或缺的地位。
因此,一个好的、强大的通讯录系统已成为企业、个人通讯工作的好坏不但可以直接影响到企业、个人人际关系,而且会间接的影响到企业、个人经济利益和社会地位。
随着社会的发展,科技的进步,计算机的应用在社会各领域中都得到了普及越来越多的人都感受到利用计算机进行各类管理的科学和便捷;
认识到通讯信息系统对于通讯工作的重要性。
利用计算机进行通讯管理是必然趋势,通讯录系统是各类工作中不可缺少的。
所以在这次课程设计中,我选择开发通讯录管理系统。
通讯录管理系统的功能主要有增加记录,删除记录。
这就要求它应该能够为用户提供有好美观的窗口界面、充足可靠的信息数据、简单方便的维护手段和灵活多变的查询方式以及快捷而准确的查询结果。
所以,对于通讯录管理系统的设计主要包括数据库的建立、维护以及应用程序的开发两个方面。
对于前者而言要求建立起数据一致性及完整性强、数据安全性好
的数据库。
对于后者而言则要求具备应用程序功能全易使用等,运行稳定等特点。
因此,拟选用的开发软件是Microsoft公司出品的VisualC++6.0MFC平台进行系统的开发。
目录
前言……………………………………………………………………1
第一章课程设计的目的和要求……………………………………3
1.1课程设计目的………………………………………………3
1.2课程设计要求………………………………………………3
第二章课程设计任务内容…………………………………………4
2.1系统实现方案………………………………………………4
2.2系统实现环境………………………………………………4
2.3具体的开发方法……………………………………………4
第三章总体设计思路………………………………………………5
3.1面对的问题…………………………………………………5
3.2解决问题的关键技术等……………………………………5
3.3通讯录系统管理分析………………………………………5
3.4涉及的基础知识……………………………………………5
3.4.1MFC简介………………………………………………5
3.4.2AppWizard向导开发应用程序………………………5
第四章功能模块框图………………………………………………10
4.1通讯录管理涉及……………………………………………10
4.2部署链接……………………………………………………10
4.3算法描述……………………………………………………11
4.4详细流程图…………………………………………………11
第五章程序测试……………………………………………………12
第六章课程设计遇到的问题与体会………………………………15
参考文献……………………………………………………………16
附录…………………………………………………………………17
第一章课程设计目的和要求
1.1课程设计目的
学习了了C++语言后,通过编写程序基本掌握面向过程程序设计的基本思路和方法,达到熟练掌握C++语言的基本知识和技能,使自己能够利用所学的基本知识和技能,解决简单的程序设计问题。
1.2课程设计要求
基本要求
在编写程序的过程中,要利用C++语言面向过程的编程思想来完成系统的设计,特别是要突出C语言的函数特征,以多个函数实现每一个子功能,其中还包括灵活运用指针、画出功能模块图、用文件流实现数据的保存和读取。
整个程序要进行简单界面设计,能够实现友好的交互,具有清晰的程序流程图和数据结构的详细定义。
创新要求
软件要有自己的特点,要有很好的可移植性,做到尽量完善程序
总体方案
使用在基础知识中数据库的设计先设计数据库和数据表。
用MFC设计应用程序框架,在创建MFC时,进入框架设计的第2步,应选择“查看数据库而不使用文件支持”,在“DataSource”里添加已经创建的数据库和数据表,即可完成。
然后制作通讯录管理主窗体,在里面最主要的是进行控件与数据表字段的绑定。
最后为系统实现增加、删除、刷新与查询功能。
第二章课程设计内容
用C++语言编写一个通讯簿软件实现以下功能:
1.管理个人的联系人信息,可以方便地通过该软件对联系人进行相应的功能操作;
2.联系人信息可以根据需要全部显示,默认为按字母顺序显示;
3.联系人信息查询可以通过输入姓名查询或输入号码查询
4.新建联系人,填写联系人信息,包括姓名、地址、邮箱、联系方式、备注等;
5.支持对联系人信息的修改;
6.能够删除不再需要的联系人;
7.能够通过文件的方式浏览联系人的信息。
2.1系统实现方案:
为实现系统功能,本程序主要分为五个模块。
它们分别为:
输入一个信息、删除一个信息、查询一个信息、插入一个信息、列出所有的信息、退出该程序。
这五个函数再通过主函数调用分别得以实现。
主函数,首先提供了程序运行时的友好界面,列出了清单,提供用户做出选择,以便
决定使用通讯录的哪种功能。
然后,通过执行多分支选择语句——switch语句,分别实现其它各个函数的调用功能。
2.2系统实现环境:
通过VC++6.0用C++语言对程序进行编写设计
在windows界面下用DOS访问
2.3具体的开发方法:
用面向对象的程序设计方法,运用C++语言编写程序进行该学生考勤管理系统的详细设计,使之能提供录入、显示、查找、删除、修改的功能。
最后在VC++6.0
环境下编写和调试程序,进而完成系统的实现。
第三章总体设计思路
根据课程设计任务编写了相应的程序。
程序简单的分为了八个模块,以下对八个模块进行说明,包括模块间的关系、函数、函数间的关系以及系统的测试、运行等都会加以说明。
3.1面对的问题
这次课题主要的问题就是数据库的结构设计。
这里所说的数据库结构设计是指数据库中各个表结构的设计,包括信息保存在哪些表格中,各个表的结构如何以及各个表之间的关系。
通讯录管理虽然只有一个数据表,但仍然要进行数据链接,这其中也就带来了各成员之间的绑定问题。
3.2解决问题的关键技术等
通讯录管理系统需解决的关键技术是与数据源进行链接,MicrosoftAccess的使用以及MFC的使用等。
3.3通讯录管理系统分析
通讯录管理系统主要是对个人的人脉通讯信息的管理,使个人的人脉通讯信息管理更加科学化、便捷化;
为个人的人脉通讯信息管理水平跨上新台阶;
为个人的人脉发展奠定坚实基础。
进行通讯录管理系统需要Windows2000以上的操作系统及VisualC++6.0语言环境。
3.4涉及的基础知识
3.4.1MFC简介
MFC是MicrosoftFoundationClassLibrary(微软基础类库)的缩写形式。
它是C++的类集,提供面向对象框架,利用这个框架,程序员可以轻松地创建Windows应用程序。
MFC还提供应用程序开发模型。
此模型被称为文档/视图模型。
文档/视图模型是将应用程序数据与用户界面元素分离的一种应用程序方法。
它允许这两部分程序独立存在,这样一来,程序员在更改其中一部分时,就无须大量更改另一部分。
MFC为程序员提供了更友好的C++类,使之更易于使用。
在很多情况下,MFC在幕后执行一些复杂操作,而向开发人员提供更简单的编程界面,并可以掩盖WindowsAPI的一些缺点。
3.4.2AppWizard向导开发应用程序
从File菜单中单击New(新建),显示New对话框的Projects(项目)选项卡,其中列出了VisualC++中的向导。
选择标有MFCAppWizard(exe)的图标,如图,为项目输入一个名字。
在Location文本框中指定一个路径。
直到选择列表中的一个图标,并输入一个项目名后,OK按钮才能用。
单击OK。
步骤1
AppWizard的第一步要求用户指定应用程序的类型,选择单文档界面(SDI)多文档界面(MDI)或基于对话框的界面。
要创建不需要文档对象从磁盘文件中读取数据的简单的Windows应用程序,把标为Document/ViewArchitectureSupport(文档/视图结构支持)复选项禁用即可
步骤2
在图中所在的AppWizard的第二步中,要求提供项目所需要的数据库支持种类。
我们选择None,有使用数据库,Next(下一步)按钮跳过这一步,进到步骤3。
步骤3
在AppWizard的第三步中,设置程序的OLE和ActiveX支持类型。
对话框上半部分的五个单选按钮控制着AppWizard添加到程序中的复合文档支持的类型。
我们仍然选择None,单击Next按钮进到步骤4。
步骤4
在图中所示的AppWizard的第四步中,可以控制AppWizard为程序创建
哪些用户界面元素。
AppWizard自动为程序主窗口的菜单系统、工具栏及状态栏生成代码和数据。
Normal(常规)InternetExplorerRebars单选按钮为应用程序的工具栏提供两种不同的风格。
激活Context-SensitiveHelp(上下文相关)复选项,会告诉AppWizard希望所创建的程序提供在线帮助。
这些说明清晰完整不需要再做更多的工作只需要说明那些自己添加到程序中的命令以加强帮助文件。
在AppWizard第四步的对话框的右下角有一个Advanced(高级)按钮,单击它,将显示一个标题为AdvancedOptions(高级选项)的包含两个选项卡的对话框。
步骤5
所示的AppWizard的第五步询问想创建的程序的风格、是否需要附加的源代码注释,及希望程序如何链接到MFC库。
步骤6
AppWizard的第六步列举了AppWizard将为项目创建的类
单击Finish按钮后,AppWizard显示一个摘要表,其中列出了所选的项目特征。
单击OK会使AppWizard在摘要表底部所列的目录下创建项目。
第四章功能模块框图
根据系统功能的要求,可以将系统分解成几个功能模块,它如图2—12所示。
4.1通讯录管理系统设计
通讯录管理系统设计主要进行四个功能:
增加记录、删除记录、修改记录。
4.2部署链接
4.3算法描述
增加记录的功能描述(如图3-2所示):
获取指向数据库的指针->
确认对数据库的任何修改均已保存->
获取新的NAME值->
通过AddNew函数来添加新记录->
把新的NAME值设置为新增记录中的NAME字段值->
调用Requery函数更新记录->
游标移到最后一条记录。
删除记录的功能描述(如图3-3所示):
删除记录->
游标移到下一条记录->
如果游标在文件尾,将它移到最后一条记录->
如果游标在文件头,则内容为空->
更新表单。
4.4详细流程图
第五章程序测试
编译并连接源程序,执行程序后
1)初始界面
2)增加记录的运行图
3)删除记录的运行图
第六章课程设计遇到的问题与体会
实验过程中遇到的问题:
1、始时对mfc的一些控件的使用不是很熟悉,
通过查阅相关资料了解了树形、列表控件的使用方法。
2、按照教程上的方法在删除记录时无法删除相应的数据经过自己的调试和修改,得到了自己想要的结果。
3、实现添加记录到树中的功能时,开始并没有得到想要的结果,总会插入重复的数据,后经过自己的分析,发现了算法的错误之处,并加以改动,实现了所需的功能。
体会:
本程序基本完成了报告上要求的添加、修改、删除、分类显示、查询这些要求。
分类显示实现了多级显示。
但本程序只能添加本学校的学生信息,如果输入学院、专业、班级为空,树形控件的显示也为空。
分类显示应该像qq这类聊天工具一样,可以自己定义分组,然后向每个分组中插入学生信息。
本程序还进行了打包,方便其他同学安装使用,但只能安在默认目录下,安装在其它目录下会提示用户选择数据源。
课程设计是十分有意义,而且是十分必要的。
编写程序的过程就是自我提高的过程。
通过编写程序能够巩固自己所学,发现自己编程中的问题,改正自己的错误,锻炼自己的思维,掌握更多的新知识。
其实,编程也可以看作是一种智力游戏。
它要求编程者思路清晰,语言严谨,算法科学、正确,对问题的处理要干净、简洁。
当然,在这次课程设计作业的过程中由于在设计方面我们没有经验,理论基础知识掌握得不牢固,在设计中难免会出现这样那样的问题,但是方法总是比问题多,有问题才会有进步,所以我在完成这次作业的过程中我总是不怕出现问题,希望发现问题、解决问题。
本次的课程设计,培养了我综合应用C++程序设计课程及其他课程的理论知识和理论联系实际的能力,在今后的学习过程中我们会更加努力和团结。
程设计可以说要告一段落了,这期间虽然很忙碌、很疲劳,但是收获很大。
希望这次课程设计作业能够得到老师的评点和指教。
参考文献:
1谭浩强.C++程序设计(第一版).[m].北京:
清华大学出版社,2004
2Decoder.C/C++程序设计.[m].北京:
中国铁道出版社,2002
3[美]WalterSavitch著,周靖译.C++面向对象程序设计——基础、数据结构与编程思想.[m].北京:
清华大学出版社,2004
4刁成嘉.面向对象C++程序设计.[m].北京:
机械工业出版社,2004
附录:
部分程序(带有较详细的注释)
增加记录的代码
voNameCOdbcDlg:
:
OnBtnadd()
{
//TODO:
AddyourcontrolnotificationhandlercodeherecharstrSql[1024];
this->
UpdateData(TRUE);
sprintf(strSql,"
insertintoempvalues(%d,'
%s'
'
)"
atoi(m_strName),m_strSex,m_strPhone);
icePub_databaseExeSQLDirect(m_hdbc,strSql,&
hStmt);
//执行sql语句
ShowData();
deletefromempwhere姓名=%s"
m_strName);
//刷新CListCtl的显示数据
m_strName="
"
;
m_strSex="
m_strPhone="
UpdateData(FALSE);
}
刷新记录的代码
OnBtnrefresh()
Addyourcontrolnotificationhandlercodehere
}
修改记录的代码
OnItemchangedList2(NMHDR*pNMHDR,LRESULT*pResult)
NM_LISTVIEW*pNMListView=(NM_LISTVIEW*)pNMHDR;
if(pNMListView->
uNewState&
LVIS_SELECTED)
charpContent[50];
intiCurrent=pNMListView->
iItem;
m_ListCtrl.GetItemText(iCurrent,0,pContent,50);
m_strIName=Format("
%s"
pContent);
m_ListCtrl.GetItemText(iCurrent,1,pContent,50);
m_strSex=CString(pContent);
m_ListCtrl.GetItemText(iCurrent,2,pContent,50);
m_strPhone=CString(pContent);
*pResult=0;
课程设计成绩评定表
评定项目
内容
满分
评分
总分
学习态度
学习认真,态度端正,遵守纪律。
10
设计情况
认真查阅资料,勤学好问,提出的问题有一定的深度,分析解决问题的能力较强。
40
说明书质量
设计方案正确、表达清楚;
设计思路、实验(论证)方法科学合理;
达到课程设计任务书规定的要求;
图、表、文字表达准确规范,上交及时。
回答问题情况
回答问题准确,基本概念清楚,有理有据,有一定深度。
总成绩
采用五级分制:
优、良、中、及格、不及格
指导教师评语:
签名:
年月日