ImageVerifierCode 换一换
格式:DOCX , 页数:50 ,大小:307.36KB ,
资源ID:21360862      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/21360862.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构课程设计报告 手机个人通讯录信息管理系统正文终稿Word下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构课程设计报告 手机个人通讯录信息管理系统正文终稿Word下载.docx

1、3.3 函数原型设计 83.4 主算法设计 93.5 用户界面设计 104 方案实现 114.1 开发环境与工具 114.2 程序设计关键技术 114.3 个人设计实现(按组员分工)4.3.1 黄红清设计实现 114.3.2 邢伟设计实现 264.3.3 王帅设计实现 285 测试与调试 315.1 个人测试(按组员分工) 325.1.1 黄红清测试 315.1.2 邢伟测试 315.1.3 王帅测试 315.2 组装与系统测试 325.3 系统运行 326 课题总结 386.1 课题评价 386.2 团队协作 386.3 个人设计小结(按组员分工) 396.3.1 黄红清设计小结 396.3

2、.2 邢伟设计小结 396.3.3 王帅设计小结 397 附录A 课题任务分工 40A-1 课题程序设计分工 40A-2 课题报告分工 43 附录B 课题设计文档(光盘) 44B-1课程设计报告(电子版) 44B-2源程序代码(*.H,*.CPP) 44B-3工程与可执行文件) 44B-4屏幕演示录像文件(可选) 44附录C 用户操作手册(可选) 45C.1 运行环境说明 45C.2 操作说明 451 课题概述1.1 课题任务【问题描述】【设计要求】1.2 课题原理利用数据结构中的顺序表或链表对手机通讯录的联系人信息进行存储,同时通过图形界面的设计制作对手机通讯录的各个功能进行模拟。1.3相关

3、知识(1)顺序表或链表的基本结构;(2)顺序表和链表的基本操作,如:插入、删除、查找;(3)C+ MFC可视化程序设计的基本知识;2 需求分析2.1 课题调研我们的课题是手机通讯录的模拟,我们对身边同学手机通讯录进行了基本的调查,发现这些通讯录的基本功能大致相同:(1)均带有分组功能。将联系人可以分为多个组存储。(2)可以直观地展示各组联系人以及每个联系人的详细信息。点击每个条目后,自动展开分组或者直接显示出联系人的详细信息。(3)可以对分组进行修改、删除、添加等操作。(4)可以对联系人进行添加、删除、修改、移动等操作。(5)可以进行姓名和号码的查询。(6)拥有人性化的操作界面。所以我们便以此

4、为设计目标,进行手机通讯录的模拟程序设计。2.2 用户需求分析如今手机越来越成为人们生活、学习和工作中不可缺少的一员,但其最基本的功能是通话,通讯录的存在是及其必要和重要的,一个合理的手机通讯录能够更方便地对用户进行服务,用户使用它可以更便捷地查找和添加联系人,修改其信息等等,因此需求十分巨大。在计算机还未普及之前通讯管理都是由联系人采用名片,笔录手工记帐的方式来操作的.现在一般的通讯录管理都是采用计算机作为工具的实用的计算机通讯录管理程序来帮助人们进行更有效的通讯录信息管理。通讯录管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。要求应用程序功

5、能完备,易使用等特点。功能上,需要实现通讯录管理系统的基本功能,如课题调研中所述的功能。性能上,应当考虑更多的更快捷的查找操作,保证程序的运行速度。3 方案设计3.1 总体功能设计(1)新建联系人、新建组功能(2)删除、编辑联系人和组的功能(3)移动联系人到其他分组的功能(4)按姓名查询联系人功能(5)按号码查询联系人功能(6)显示联系人和组的详细信息功能(7)联系人数量、分组数的基本统计功能(8)帮助功能3.2 数据结构设计为了方便文件存储操作,整个程序数据结构采用顺序表来设计。class Contact/最基本单位为联系人类,其中有每个联系人的具体信息条目public: Contact()

6、; Contact(); int Create(char *n, char *p, char *c, char *r); char name25;/姓名 char phonenumber12;/号码 char city25;/城市 char remarkMAX_REMARK;/备注 int numberofcalls;/通话次数 struct record struct date int year; int month; int day; int hour; int minute; date;/通话日期时间 struct talktime int second; talktime;/通话时长

7、recordMAX_RECORD;/通话记录;class Group/组类包含联系人类数组,每组包含一定数目的联系人 Group(); Group(); int Create(char *groupname); int AddContact(char *n,char *p,char *c,char *r); int SearchContactName(char *key); int SearchContactPhonenumber(char *key); int DeleteContact(int c); void HeapAdjust(int s, int m); int Order();

8、char nameMAX_GROUPNAME;/组名 int numberofmenber;/成员数 Contact contactMAX_NUMBEROFMENBER;/联系人数组class PhoneBook/通讯录类包含组数组,只有一个通讯录,其下包含多个组 PhoneBook(); PhoneBook(); int AddGroup(char *groupname); int SearchGroup(char *key); int DeleteGroup(char *key); int SearchContactName(char * key, int &g, int &c); int

9、 SearchContactPhonenumber(char * key, int & int DeleteContact(char *key); int order(); int numberofgroup;/组数 Group groupMAX_NUMBEROFGROUP;/组数组3.3 函数原型设计Contact:Contact();/联系人类的构造函数Contact();/联系人类的析构函数int Contact:Create(char *n, char *p, char *c, char *r);/联系人对象的创建函数Group:Group();/组类的构造函数Group();/组类的

10、析构函数int Group:Create(char *groupname);/组类的创建函数,创建一个组AddContact(char *n, char *p, char *c, char *r);/当前组添加一个联系人SearchContactName(char * key);/搜索当前组指定姓名的联系人SearchContactPhonenumber(char * key);/搜索当前组指定号码联系人DeleteContact(int c);/删除当前组指定序号为c的联系人void Group:HeapAdjust( int s, int m); /HeapAdjust() sub-fun

11、ctionOrder();/当前组按联系人姓名堆排序函数int PhoneBook:order();/当前通讯录下对组进行排序PhoneBook:PhoneBook();/通讯录构造函数,包含读文件数据的操作PhoneBook();/通讯录析构函数,包含数据写入文件操作AddGroup(char *groupname);/为当前通讯录添加一个组SearchGroup(char *key);/在当前通讯录搜索指定组名DeleteGroup(char *key);/删除当前通讯录中的指定组SearchContactName(char * key, int &c);/在整个通讯录中搜索指定姓名的联系

12、人,并将其组号和联系人号保存在g和c中SearchContactPhonenumber(char * key, int &/在整个通讯录中搜索指定号码的联系人,并将其组号和联系人号保存在g和c中DeleteContact(char *key);/搜索通讯录中指定联系人并删除void CPhoneBookDlg:UpdateTree();/更新Tree Control列表OnBnClickedButton1();/新建组按钮OnBnClickedButton2();/新建联系人按钮OnCbnDropdownCombo1();/下拉列表选择框动态刷新OnBnClickedButton4();/删除

13、联系人按钮OnBnClickedButton5();/删除组按钮OnTvnSelchangedTree1(NMHDR *pNMHDR, LRESULT *pResult);/单击树控件中具体联系人或组显示对应信息OnBnClickedButton3();/保存修改OnBnClickedButton6();/编辑按钮OnBnClickedButton7();/按姓名查询OnBnClickedButton8();/按电话查询OnBnClickedButton9();/关于OnBnClickedButton10();/帮助OnCbnDropdownCombo2();/动态刷新下方下拉列表OnBnCl

14、ickedButton11();/移动功能OnBnClickedButton12();/删按钮功能3.4 主算法设计3.5 用户界面设计说明:中央上方为通讯录显示区,右上侧为联系人信息显示区,其余部分为功能区,整个界面紧凑而不拥挤,方便用户的操作。4 方案实现4.1 开发环境与工具采用VS2013进行C+编程与MFC可视化程序设计。4.2 程序设计关键技术(1)对顺序表的基本操作技术;(2)折半查找技术;(3)堆排序技术;(4)MFC可视化程序开发技术;(5)前端与后台的结合技术;(6)联系人信息存储文件与读取文件技术; 4.3.1 黄红清设计实现(1)我设计了由联系人到组、由组到通讯录的顺序

15、表数据结构。采用顺序表原因有二:其一,用户使用手机通讯录主要是为了查找和存储联系人信息,需要进行较多的查找操作,用顺序表效率更高;其二,顺序表存储到文件与从文件读取到顺序表的操作易于设计完成,简化了文件的存取操作。整个结构示意图:通讯录组一组二组三联系人一联系人二顺序表的结构实现:class Contactclass Groupclass PhoneBook(2)我进行了程序的可视化界面设计,包括界面的分布美化、每个按钮、编辑框、下拉框、树框功能的实现,以及其他人性化功能的添加。其间将所有后台函数进行必要的修改以适合MFC设计的需要,从而设计出人性化的图形界面,使程序更为直观地执行。各个控件功

16、能的实现:OnBnClickedButton1() / TODO: 在此添加控件通知处理程序代码 char groupnameMAX_GROUPNAME; CEdit_groupname.GetWindowTextA(groupname, MAX_GROUPNAME); if (groupname0 != 0) if (phonebook.AddGroup(groupname) phonebook.order(); CEdit_groupname.SetWindowTextA(); UpdateTree(); MessageBox(新建组成功! else组数已达上限! else Message

17、Box(请输入组名!OnBnClickedButton2() char n25, p12, c25, rMAX_REMARK; CEdit_n.GetWindowTextA(n, 25); CEdit_p.GetWindowTextA(p, 12); CEdit_c.GetWindowTextA(c, 25); CEdit_r.GetWindowTextA(r, MAX_REMARK); if (n0 ! if (Combo1.GetCurSel() + 1 !=0) if (phonebook.groupCombo1.GetCurSel() + 1.AddContact(n, p, c, r

18、) phonebook.groupCombo1.GetCurSel() + 1.Order(); CEdit_n.SetWindowTextA( CEdit_p.SetWindowTextA( CEdit_c.SetWindowTextA( CEdit_r.SetWindowTextA( UpdateTree();新建联系人成功!该组联系人已满!请先选择一个组!请输入联系人姓名!OnCbnSelchangeCombo1()OnCbnDropdownCombo1() Combo1.ResetContent(); for (int i = 0; i phonebook.numberofgroup;

19、 i+) Combo1.InsertString(i, phonebook.groupi+1.name);OnEnChangeEdit1() 如果该控件是 RICHEDIT 控件,它将不 / 发送此通知,除非重写 CDialogEx:OnInitDialog() / 函数并调用 CRichEditCtrl().SetEventMask(), / 同时将 ENM_CHANGE 标志“或”运算到掩码中。OnBnClickedButton4() char key25; CEdit_delcontact.GetWindowTextA(key, 25); if (key0 ! if (phonebook

20、.DeleteContact(key) CEdit_sn.SetWindowTextA( CEdit_sp.SetWindowTextA( CEdit_sc.SetWindowTextA( CEdit_sr.SetWindowTextA( CEdit_sg.SetWindowTextA( CEdit_delcontact.SetWindowTextA(删除成功!没有找到该联系人!请输入要删除的联系人姓名!OnBnClickedButton5() char keyMAX_GROUPNAME; CEdit_delgroup.GetWindowTextA(key, MAX_GROUPNAME); if (phonebook.DeleteGroup(key) CEdit_sn.SetWindowTextA( CEdit_sp.SetWindowTextA(

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1