数据设计2.docVIP

  • 6
  • 0
  • 约2.64千字
  • 约 12页
  • 2017-06-03 发布于河南
  • 举报
数据设计2

概述 1 系统分析 2 2.1要求 2 设计一个实用的小型通讯录,用双向链表做数据结构,编写一个通讯录管进行查找、删除信息等功能。每条信息包含:姓名、性别、电话、地址。 2 2.2各功能模块分析 2 概要设计 3 3.1功能流程图(调用关系图) 3 详细设计 3 4.1设计内容 3 4.2为了实现通讯录管理的集中操作功能,设计一个含有多个菜单项的主控菜单程序,再为这些菜单配上相应的功能。 4 4.3主界面设计 6 4.4菜单内容 6 运行与测试 7 5.1程序编译运行后建表: 7 5.2通讯链表的插入: 7 5.3通讯者的查询: 8 5.4通讯者结点的删除: 8 5.5通讯录链表的输出: 9 5.6退出系统: 9 总结与心得: 9 7.1.调试分析: 9 7.2调试中遇到的问题: 10 参考文献: 11 附代码: 11 概述 1.用〈〈数据结构〉〉中的双向链表作数据结构,结合C语言基本知识。编写一个通讯录管 理系统。了解并掌握数据结构与算法 的设计方法,具备初步的独立分析和设计能力;初步掌握软件开发过程的问题分析、系 统设计、程序编码、测试等基本方法和技能; 2.本课程设计可加深对课堂理论学习的理解,增强动手能力,以培养学生合作的能力,系统是常见的计算机信息管理系统。它的主要任务是对信息进行管理,如信息的输入、查询、修改、增加、删除,迅速准确地完成各种信息的统计 详细设计 4.1设计内容 现假设链表结点仅含有一个数据域和一个指针域,数据域是为了描述通讯者的相关信息,定义通讯者的结点类型: Typedef struct{ Char num[5]; Char name[9]; Char sex[3]; Char phone[13]; Char addr[31]; }DataType; 因此,线性表的链式存储结构定义如下: Typedef struct node{ DataType data; Struct node*next;}ListNode; Typedef ListNode*LinkList; ListNode*p; LinkList head; 4.2为了实现通讯录管理的集中操作功能,设计一个含有多个菜单项的主控菜单程序,再为这些菜单配上相应的功能。 #includestdio.h #includestring.h void main() {for(;;){ switch(menu_select()){ case 1: printf(通讯录链表的建立\n); break; case 2: printf(通讯者结点的插入\n); Break; case 3: printf(通讯者结点的查询\n); break; case 4: printf(通讯者结点的删除\n); break; case 5: printf(通讯录链表的输出\n); break; case 0: printf(再见\n); return; } } 设计一个函数menu_select()来输出提示信息和处理输入。 设计五个功能函数。 *建立通讯录链表的函数 LinkList CreateList(void) *通讯者信息的插入函数 void InsertNode(LinkList head,LinkNode *p) *通讯者信息查找的函数 LinkNode * ListFind(LinkList head) *通讯者记录的删除函数 void DelNode(LinkList head) *通讯链表的输出函数 4.3主界面设计 通过switch语句调用各种函数,实现各种操作。然后把switch嵌套到无限的for循环(for(;;))中,使完成每一步操作都回到到选择操作的主界面。 4.4菜单内容 程序运行后,给出6个菜单的输入内容和输入 提示: 1通讯录链表的建立 2通讯者结点的插入 3通讯者结点的查询 4通讯者结点删除 5通讯录链表的输出 0退出管理系统 选择0--5: 运行与测试 5.1程序编译运行后输入如下:建表 5.2通讯链表的插入如下: 5.3通讯者的查询如下: 5.4通讯者结点的删除: 5.5通讯录链表的输出如下: 5.6退出系统: 总结与心得 7.1.调试分析 经过反复测试,最终提供了一个较为友好的界面和操作模式,而且容错能力较好,稳定性很强。下面做一些简单的说明: (1)2级菜单只是作为一种尝试,并非必须! 在界面排版上,我学习了互联网上部分程序的界面编排,其中以格式控制方式显示提 高了界面显示的稳定性,较为理想。 在文件读取和保存方面,该程序做到了实时保存保存和读取,操作非常简便。 在

文档评论(0)

1亿VIP精品文档

相关文档