C手机通讯录课程设计.doc

上传人:大张伟 文档编号:6178871 上传时间:2020-09-18 格式:DOC 页数:15 大小:170.50KB
返回 下载 相关 举报
C手机通讯录课程设计.doc_第1页
第1页 / 共15页
C手机通讯录课程设计.doc_第2页
第2页 / 共15页
C手机通讯录课程设计.doc_第3页
第3页 / 共15页
C手机通讯录课程设计.doc_第4页
第4页 / 共15页
C手机通讯录课程设计.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《C手机通讯录课程设计.doc》由会员分享,可在线阅读,更多相关《C手机通讯录课程设计.doc(15页珍藏版)》请在三一文库上搜索。

1、学 号天津城建大学高级程序设计语言C+课程设计设计说明书通讯录管理系统起止日期: 2013 年 12月 5 日 至 2013 年 12 月 12 日学生姓名路江飞班级11卓越七班成绩指导教师(签字)计算机与信息工程学院2013年12月12日天津城建大学课程设计任务书20132014学年第一学期 计算机与信息工程 学院 11卓越 专业 11卓越七班 班级课程设计名称: 高级程序设计语言C+课程设计 设计题目: 通讯录管理系统 完成期限:自 2013年12月5日至2013 年12 月 12 日共 1 周设计依据、要求及主要内容(可另加附页):设计依据:c+程序设计设计要求:通过这次课程设计,需要对

2、C+的各个环节知识形成一个有结构的整体,可以熟练的对C+知识进行综合应用,同时达到对已学知识的全面复习。主要内容:一、 通讯录信息包括:姓名、地址、手机(支持多个手机)、电子邮箱二、 支持以下功能:l 添加联系人l 按姓名查找并修改或删除联系人l 支持模糊查询n 输入姓名中的一个字,显示所有匹配联系人信息指导教师(签字): 系(教研室)主任(签字): 批准日期: 2013年6 月30 日课程设计进度计划表序号起止日期计划完成内容实际完成情况检查日期检查人签名12013-12-5完成课程设计任务书22013-12-6 初步完成程序设计,调试程序32013-12-7-2013-12-11 继续修改

3、调试程序以及完善程序设计42013-12-12课程设计答辩,完成并提交指导教师批准,并签名: 2013年6月30日目 录1、设计目的12、总体设计13、详细设计:2、程序具体功能2、调试分析24、源程序和运行结果4、源程序4、运行结果17、心得体会20通讯录管理系统1、 设计目的通过实验实现对通讯录系统的管理操作;进一步掌握和利用C+进行程设计的能力;进一步理解和运用结构化程序设计的思想和方法;初步掌握开发一个小型实用系统的基本方法;学会利用流程图或N-S图表示算法;掌握书写程设计开发文档的能力(书写课程设计报告);2、总体设计通讯录管理系统按照姓名排序添加联系人模糊查询按姓名删除联系人信息按

4、姓名修改联系人信息统计联系人个数保存联系人到文件浏览所有联系人信息3、详细设计: 、程序具体功能:1、排序 利用冒泡排序,根据链表中的联系人的姓名进行排序。主要用于修改联系人,修改的可能是联系人的名字,为保证链表中的联系人是按姓名排序,需要对联系人进行整体排序;添加联系人时,为降低代码的时间复杂度,将联系人插入到合适位置来实现链表的有序。2、添加联系人 将要插入的联系人的姓名和链表中联系人的姓名依次进行比较,将联系人姓名插入到合适的位置,插入后保存联系人到文件并提示添加成功。3、查找 从键盘上输入联系人名字中的字(一个或多个),根据输入的字,将通讯录中所有联系人姓名和该字进行匹配,从而输出所有

5、包含该字的联系人的信息。4、删除 根据要删除的姓名,和链表中的联系人姓名一一比较,找到后提示是否确定将联系人的信息删除,选择确定则删除联系人信息并提示删除成功,否则放弃删除操作。删除后保存剩下的联系人到文件。5、修改将要修改的姓名和链表中的联系人姓名一一比较,找到要修改的联系人后,显示修改的选项,包括修改姓名,修改地址,修改手机号,修改邮箱和修改完毕选项。修改完毕后对将联系人进行排序,保证链表中的联系人按姓名有序排列,同时保存联系人到文件并提示修改成功。6、统计 统计联系人的个数。7、保存 将链表里的联系人保存到文件里。8、浏览 将保存在文件里的联系人读取出来,带有相应的界面,实现联系人信息的

6、遍历。、调试分析调试前先初始化一个链表,链表包含5个联系人记录。1.调试排序用冒泡排序法将链表按照姓名进行排序,运行程序,观察链表是否排序成功。 2.添加联系人调试根据联系人的姓名进行插入,调试包括将联系人添加到开始位置,中间位置和最后位置,添加后将所有联系人信息输出,运行程序,观察是否调试成功。 3.查找调试输入要查找联系人姓名的一部分,看能不能将所有包含该输入字符串的联系人输出来。 4.删除调试首先遍历所有联系人信息,分别调试删除开始位置,中间位置,最后位置的联系人,观察是否将联系人正确删除。 5.修改调试修改调试包括修改姓名、手机号、地址、邮箱的调试以及同时修改多个属性的调试,修改后遍历

7、所有联系人,观察是否修改成功。如果修改了姓名,还要观察修改后是否进行了相应的排序。 6.统计调试数一下遍历输出的联系人,观察是否和统计出来的相同。同时还要测试删除、添加后统计出的数是不是正确的。 7.保存调试运行程序后,打开保存联系人的文件夹,观察文件的内容是否正确。 8.浏览调试运行程序,观察是不是文件中的联系人正确读出。 9.界面调试 运行程序,观察界面是否满意,如果不满意,一直调试到满意为止。 10.异常处理调试 运行程序,从键盘上随便输入数据,观察程序是否出现bug。11.通讯录为空调试 当通讯录为空时,对于执行查询操作、修改操作、删除操作、浏览所有联系人操作、以及查看联系人个数操作,

8、系统均提示“通讯录为空!”。4、源程序和运行结果、源程序头文件:#includeusing namespace std;template struct NodeDataType data;Node *next;class Personpublic:char name10;显示主菜单*endl;cout*2.增加联系人*endl;cout*3.删除联系人*endl; cout*4.浏览联系人*endl;cout*5.修改联系人*endl;cout*6.查看联系人的个数 *endl;cout*7.查询*endl;cout*0.退出*endl;cout*endl;改姓名 *endl;cout* 2.

9、修改地址 *endl;cout* 3.修改手机号 *endl; cout* 4.修改邮箱 *endl;cout* 0.修改完毕 *endl;cout*endl; template void Telebook : delete_menu()cout*endl;cout* 您确定要删除该记录吗? *endl;cout* 1.确定 *endl;cout* 2.取消 *endl;cout*endl; template void Telebook :sort()ame,(q-data).name)0)DataType temp;temp=p-data;p-data=q-data;q-data=temp;

10、p=q;q=q-next;end=p;ame,nam)=0)set_menu();while(flag)coutt)ame,na);break;case 2:coutaddr;strcpy(p-data).address,addr);break;case 3:coutph;(p-data).phone=ph;break;case 4:coutma;(p-data).mail=ma;break;case 0:flag=false;cout修改成功!endl;sort();ame,next;elses-data=a;s-next=p;q-next=s;cout添加成功!endl;return;if

11、(p=NULL)ame;string:size_type pos=(nam,0);ame| setw(15)data).address| setw(20)data).phone| setw(20)data).mail| endl;cout-next;if(m=false)cout未找到任何联系人!endl; template void Telebook :delet()ame,nam)=0)first-next=p-next;cout删除成功!data).name,nam)=0)q-next=p-next;cout删除成功!next;if(p=NULL)cout删除的联系人不存在!endl;r

12、eturn;case 2:return ;default:cout输入错误!endl;break; template void Telebook : printdata()ame| setw(15)data).address| setw(20)data).phone| setw(20)data).mail| next;cout-endl;template void Telebook : save()ame data).address data).phone data).mail;ame data).address data).phone data).mailnext;();源文件():#inc

13、lude#includeusing namespace std;void main() bool flag=true; Telebook telebook;示主菜单3.添加联系人4.删除联系人5.查看联系人的个数6.修改联系人信息7.模糊查询8.异常处理9.保存联系人的文件内容、心得体会 写代码之前应该对通讯录系统的功能及其实现方法做一个详细的思考,完成准备工作之后,将系统的功能依次实现,完成一个功能就对其进行测试,在实现功能的同时,为提高代码的可读性,还应该有必要的注释,同时注意程序的设计风格和命名规范,当把系统的功能都完成后,就要考虑代码的优化,简单界面的设计以及异常情况的处理,保证程序在

14、运行过程中不会因为输入数据的错误而不能运行或者导致系统崩溃 。 在设计的过程中,经常将java的用法和C+搞混,比如Java中String类型的变量可以直接定义,但C+中,定义string类型的变量应加string头文件。因此,要想熟练的掌握C+,必须进行大量的写代码。 当我看到我的题目时,我瞬间就想到用链表和结构体实现,但在我写代码时才发现出现了在自己预料之外的错误,查看了很多资料后才把第一个功能完成,完成一个功能之后其他的功能实现起来感觉就比较容易了。在实现模糊查询时,刚开始是根据自己的想法将链表中每个联系人的姓名和键盘输入的字符串进行匹配,但这样有一个问题就是:用户可以从键盘输入一个或多

15、个字,就需要对每种情况进行处理,最后我查找了相关资料,发现string类有一函数可以实现模式匹配。 实现文件的读出和写入的功能,写入时如果没有目标文件,则系统会自动在目标文件夹里生成一个文件用来储存用户数据,该文件类型可以按用户要求生成,如txt文本文档或doc文档等。编写这次代码,在如何进行姓名排序上费了些力气,虽然老师讲过冒泡排序和选择排序,可是运用到单链表上就着实感到困难了,参考了老师PPT上的插入排序和冒泡排序实现了。自己的代码还有很多不足,比如修改联系人信息时没有实现模糊查询到修改联系人,再进行修改;删除联系人是还可以实现批量删除以及代码优化方面等。通过这次的课程设计,我感觉自己写代码的水平还有待提高,要想精通一门编程语言,写大量的代码是必不可少的。以后我将更加努力学习专业知识,努力提高写代码的能力。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1