欢迎来到天天文库
浏览记录
ID:9860403
大小:682.00 KB
页数:11页
时间:2018-05-12
《数据结构课程设计--通讯录管理》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、《数据结构课程设计》实验报告实验课程名称数据结构课程设计专业班级11级计科(2)班学生姓名王琦学号6指导教师冯韵实验时间:2013年9月5日2013至2014学年第1学期第1至9周11目录1概述31.1现状分析31.2实现意义32系统分析33概要设计33.1算法的设计33.2通讯录系统图44详细设计44.1主菜单模块设计44.2通讯录建立模块设计44.3通讯录插入模块设计54.4通讯录查询模块设计64.5通讯录删除模块设计74.6通讯录输出模块设计85运行与测试95.1通讯录链表的建立95.2通讯录链表的插入95.3按编号查找通讯录105.4按编
2、号删除通讯录105.5通讯录链表的输出116总结与心得11111概述1.1现状分析课程设计是实践教学中的重要环节,它以某一门课程为基础,涉及和课程相关的各方面知识,是一门独立于课程外的特殊课程。课程设计就是让所有同学对课程更全面的应用。本次实验项目“通讯录管理”就是针对数据结构的一门应用较为广泛的系统管理方法。1.2实现意义本次实验应用性能好,结构清楚,能随时添加、删除、查找联系人;并且可以用姓名、编号两种方式;操作更精确,以人性化的方式展现出来,效果十分突出。2系统分析编程完成通讯录的一般性管理工作如通讯录中记录的增加、修改、查找、删除、输出等
3、功能。每个记录包含姓名、电话号码、住址等个人基本信息。用《数据结构》中的链表做数据结构结合c语言基本知识编写一个通讯录管理系统。本程序为使用方便,几乎不用特殊的命令,只需按提示输入即可,适合更多的用户使用。对于建立通讯录管理系统,则需了解并掌握数据结构与算法的设计方法,提高综合运用所学的理论知识和方法独立分析和解决问题的能力。3概要设计3.1算法的设计本实验从整体上分为七大模块:(1)输入联系人信息;(2)查找联系人信息;(3)显示联系人信息;(4)增加联系人信息;(5)删除联系人信息;(6)存储联系人信息;(7)退出通讯录管理。113.2通讯录
4、系统图通讯录的建立通讯录的插入通讯录的查询通讯录的删除通讯录的输出通讯录的管理4详细设计4.1主菜单模块设计编写一个主控菜单驱动程序,输入0—5以进入相应选择项。1.实现循环和功能选择假设输入选择用变量sn储存,它作为menu_select函数的返回值提供给switch语句。使用for循环实现重复选择,并在主函数main()中实现。2.得到ri的合理值设计一个函数用来输出提示信息和处理信息输入,这个函数应该返回一个数值ri,以便供给switch语句使用。假设函数名为menu_select。对于ri输入值,在switch中case语句对应数字0—5
5、,对于不符合要求的输入,提示输入错误并要求重新输入。4.2通讯录建立模块设计我们知道的建立链表有两种方法,一种为头插入法,一种为尾插入法。头插入法是每次将新插入的结点插在链表的表头,而尾插入法是将新插入的结点插入在链表的尾部。我们这里用尾插入法描述算法。11(1)使链表的头尾指针head、rear指向新生成的头结点(也是尾结点);(2)置结束标志为0(假);(3)while(结束标志不为真){P指向新生结点;读入一个通讯者数据至新结点的数据域;将新结点链接到尾结点之后;使为指针指向新结点;提示:是否结束建表,读入一个结束标志;}(4)尾结点指针域
6、置空值NULL。具体算法如下:/************************************//*用尾插入法建立通讯录链表函数*//************************************/LinkListCreateList(void){//尾插入法建立带头结点的通讯录链表算法LinkListhead=(ListNode*)malloc(sizeof(ListNode));//申请头结点ListNode*p,*rear;intflag=0;//结束指标置0rear=head;//尾指针初始化指向头结点while(fl
7、ag==0){p=(ListNode*)malloc(sizeof(ListNode));//申请新结点printf("编号(1)姓名(2)性别电话(4)地址(5)");printf("-----------------------------------------------------------");scanf("%s%s%s%s%s",p->data.num,p->data.name,p->data.sex,p->data.phone,p->data.addr);rear->next=p;//新结点连接到尾结点之后rear=p;
8、//尾指针指向新结点printf("结束建表吗?(1/0):");scanf("%d",&flag);//读入一个标志数据}rear->
此文档下载收益归作者所有