设计一个电子通讯录程序课程设计.docx
- 文档编号:2935401
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:25
- 大小:108.47KB
设计一个电子通讯录程序课程设计.docx
《设计一个电子通讯录程序课程设计.docx》由会员分享,可在线阅读,更多相关《设计一个电子通讯录程序课程设计.docx(25页珍藏版)》请在冰豆网上搜索。
设计一个电子通讯录程序课程设计
长沙学院
课程设计说明书
题目
设计一个电子通讯录程序
系(部)
计算机科学与技术系
专业(班级)
姓名
学号
指导教师
起止日期
2010年1月4日到2010年1月8日
程序设计基础课程设计任务书
一、题目:
设计一个电子通讯录程序
二、目的与要求
1.目的:
(1)使学生更加系统地理解和掌握C++语言的基本概念、语言特点和编程技巧。
(2)使学生应用C++语言在程序设计方面得到系统锻炼,为将来VC进行软件开发打下良好基础。
(3)提高学生建立程序文档、归纳总结的能力。
2.基本要求:
(1)要求用C++模块化设计的思想来完成程序的设计;
(2)培养上机动手能力,巩固分支结构和循环结构,应用函数和数据结构的知识。
(3)在VC++6.0环境中,学会调试程序的方法,及时查究错误,独立调试完成。
(4)程序调试通过后,完成程序文档的整理,加必要的注释。
3.创新要求
在基本达到题目要求外,进行创新设计,如界面优美、功能更加完善(如增加按生日先后排序的功能),用不同的cpp文件来实现等。
4.书写设计报告的要求
设计报告中包含以下几个方面:
1、设计题目
2、总体设计
1)用自顶而下或自底而上的方法,划分功能模块。
2)确定各模块的算法
3、根据算法画出流程图
4、列出程序清单,并加以必要的注释
5、写出调试程序的方法
6、指出所设计问题的不足和改进方案
5.课程设计材料的装订顺序为:
1)设计说明书封面
2)课程设计任务书
3)课程设计鉴定表
4)目录
5)设计报告书正文
三、设计内容及其基本原理和设计方法
1.问题描述:
电子通讯录功能如下:
1.Read
2.Append
3.Delete
4.Search
5.Isert。
说明:
上图是电子通讯录的主菜单,利用它,将能够轻松地录入一个朋友的性别、出生日期、通讯地址、电话号码,而且它还提供了浏览、删除、检索和插入功能。
1)添加:
在原有数据资料的基础上按顺序增加记录;2)删除:
给出删除位置,执行删除后,查询是否被删除,显示通讯录的内容;3)查询:
给出姓名,列出该记录的信息。
4)插入:
给出插入位置,执行插入后,查询是否被插入,显示通讯录的内容;
2.解决方案:
用线性表顺序表设计电子通讯录的结构,为了表示较为复杂的数据内容,一般用结构这种数据类型,第一步就是在结构中定义所需要的各项信息。
一般的通讯录都包括姓名,性别,出生年月,通讯地址和联系电话这几项,而在这几项中,出生年月又包括年份,月份和日期三项,通讯地址包括邮编和家庭地址二项,我们把这些联系较为紧密的内容又用单独的结构表示,这样就产生了电子通讯录的基本结构。
四、主要技术问题的描述
对于电子通讯录这样一张线性表来说,内容的录入和显示是必不可少的操作。
可构造函数Data_Input()完成了信息的录入工作:
可以构造Data_Show()完成信息的显示工作。
五、课程设计时间:
18周
六、课程设计的考核方式及评分方法
1.考核方式
课程设计结束时,在机房当场验收。
1)教师提供测试数据,检查运行结果是否正确。
2)回答教师提出的问题。
3)学生提交课程设计文档(A4纸打印)
2.评分方法
上机检查:
书面报告=7:
3,没有通过上机检查的其成绩直接记录不及格
指导教师签名:
日期:
教研室主任签名:
日期:
系主任签名:
日期:
长沙学院课程设计鉴定表
姓名
学号
专业
班级
设计题目
设计一个电子通讯录程序
指导教师
指导教师意见:
评定等级:
教师签名:
日期:
答辩小组意见:
评定等级:
答辩小组长签名:
日期:
教研室意见:
教研室主任签名:
日期:
系(部)意见:
系主任签名:
日期:
说明
课程设计成绩分“优秀”、“良好”、“及格”、“不及格”四类;
摘要
本程序是一个电子通讯录。
用于实现对好友通讯信息的记录以及基本的管理。
本程序在完美实现改程序应有的功能的同时还增加了很多的人性化设计,比如温馨的提示。
本程序在界面上改变了程序执行时的单一色彩的缺陷,做到了丰富多彩,美观大方!
关键词:
电子通讯录;人性化设计;美观
目录
1设计内容与要求…………………………………………………………………………………5
2.设计说明…………………………………………………………………………………………7
2.1问题描述与功能设计…………………………………………………………………………7
2.2算法与数据结构………………………………………………………………………………7
2.3函数定义………………………………………………………………………………………10
2.4界面设计………………………………………………………………………………………10
2.5编码……………………………………………………………………………………………10
2.6测试……………………………………………………………………………………………10
3总结…………………………………………………………………………………………………12
参考文献……………………………………………………………………………………………13
附录A源代码………………………………………………………………………………………14
附录B流程图………………………………………………………………………………………27
1设计内容与要求
我设计的是一个电子通讯录程序,用于管理通讯信息。
本程序的要求分为“基本要求”和“创新要求”部分,具体如下:
基本要求:
(1)要求用C++模块化设计的思想来完成程序的设计;
(2)培养上机动手能力,巩固分支结构和循环结构,应用函数和数据结构的知识。
(3)在VC++6.0环境中,学会调试程序的方法,及时查究错误,独立调试完成。
(4)程序调试通过后,完成程序文档的整理,加必要的注释。
创新要求
在基本达到题目要求外,进行创新设计,如界面优美、功能更加完善(如增加按生日先后排序的功能),用不同的cpp文件来实现等。
2.设计说明
2.1问题描述与功能设计
本程序是一个电子通讯录,主要实现对朋友的通讯信息的记录和管理。
能够轻松地录入一个朋友的性别、出生日期、通讯地址、电话号码,而且它还提供了浏览、删除、检索和插入功能。
1)添加:
在原有数据资料的基础上按顺序增加记录;2)删除:
给出删除位置,执行删除后,查询是否被删除,显示通讯录的内容;3)查询:
给出姓名,列出该记录的信息。
4)插入:
给出插入位置,执行插入后,查询是否被插入,显示通讯录的内容。
对于该问题我用线性表顺序表设计电子通讯录的结构,为了表示较为复杂的数据内容,一般用结构这种数据类型,第一步就是在结构中定义所需要的各项信息。
一般的通讯录都包括姓名,性别,出生年月,通讯地址和联系电话这几项,而在这几项中,出生年月又包括年份,月份和日期三项,通讯地址包括邮编和家庭地址二项,我们把这些联系较为紧密的内容又用单独的结构表示,这样就产生了电子通讯录的基本结构。
该通讯录功能如下清单
1.建立通讯录
对通讯录进行录入,实现通讯录最基本的功能建立一个通讯录,进行信息的记忆。
2.查看通讯录
对已有的通讯信息进行查看,读取信息。
3.查找联系人
当通讯录中信息太多时,用户可以使用该功能进行对联系人的查找。
方便快捷!
4.修改联系人
当联系人的信息有所更改、变动。
用户可以使用该功能进行更改联系人信息。
5.删除联系人
如果联系人的信息因某种原因,用户不再需要,可以使用该功能删除!
6.增加联系人
该功能用于解决在建立通讯录后,要增加新的联系人信息。
2.2算法与数据结构
本程序的算法可以根据程序要实现功能进行算法说明。
1.建立通讯录
建立通讯录是在函数person*create(int)中实现的。
本质上是一个链表的建立。
首先我们需要三个指针person*head,*tail=NULL,*temp=NULL进行链表数据的保存。
建立表头对指针head分配内存,head=newperson。
对分配内存是否成功进行判断if成功,进行数据的输入。
else内存分配不成功,结束程序!
然后进行表体的建立,因为要输入多次,而且次数是清楚地,所以我用for循环为主体结构,进行表体的建立及朋友信息的录入。
2.查看通讯录
查看通讯录实质是对链表的遍历。
并且是在函数voidoutPut(person*curPer)中实现。
循环次数不确定,我选择while循环对数据进行输出。
while(curPer)及当curPer不为空(NULL)时,一直循环。
当当前指针为空(curPer==NULL)时,跳出循环体。
这样就实现了通讯录的查看功能。
3.查找联系人
本功能的实质就是传入一个关键词(及朋友姓名),然后在链表中进行查找。
找到后对该节点进行输出。
具体算法是:
同时传入两个参数进入person*search(person*curPer,charx[20])函数。
如果curPer不为空,就进入while循环,if(strcmp(x,curPer->name)==0)就对curPer保存的数据进行输出。
如果直到curPer==NULL还没有得到(strcmp(x,curPer->name)==0),那么就输出“无此朋友信息!
”
该功能算法解说完毕!
!
4.修改联系人
本功能的实质和“查找联系人”的功能相同。
就是传入一个关键词(及朋友姓名),然后在链表中进行查找。
找到后对相应数据进行修改!
图2-2-1
首先传入两个参数到函数voidrevise(person*curPer,charx[20])中。
当curPer不为空时进入while循环体。
if(strcmp(x,curPer->name)==0)就对curPer储存的信息进行编码如图2-2-1。
当输入相应的代码,在if语句的控制下,就可以进行相应的数据的修改。
5.删除联系人
删除联系人,查找到该联系人,链表调整,删除指定节点!
把删除联系人的姓名和表头同时传入函数person*del(person*head,charx[20]),用while循环对链表进行条件遍历。
当当前节点的姓名等于传入姓名,跳出循环体。
然后对当前节点和前节点进行判断。
如果当前节点为空。
无此朋友信息。
如果前节点为空,删除的是表头。
其他情况删除为表体。
最后返回head到主函数即可。
6.增加联系人
在增加联系人这一模块中,因为通讯录是无序的没必要排序,我利用的是加在链表的表尾的方法。
把表头传入函数person*insert(person*head),然后定义三个指针person*newPer,*prePer=NULL,*curPer=head,用while循环找到表尾,再为newPer分配内存空间,if分配成功进行数据的输入。
else不成功,返回主函数。
7.桌面输出
本模块就是一个简单的cout语句,但经过输出控制做出了漂亮的桌面。
8.退出系统
本功能的算法很简单。
适用于用户确认退出此程序的界面。
If-else语句控制。
当用户输入相应的代码。
程序执行退出系统还是返回!
数据结构表
struct
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 设计 一个 电子 通讯录 程序 课程设计