通讯录管理系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验课程名称

专业班级

学生姓名

学号

指导教师

至学年第学期第至周

目录

1概述 (3)

1.1现状分析 (3)

1.2存在的问题 (3)

1.3实现意义 (3)

2系统分析 (4)

2.1 用户需求分析 (4)

2.2 管理者需求分析 (4)

3概要设计 (4)

3.1程序设计中的数据设计 (4)

3.2算法流程图 (6)

4详细设计 (11)

4.1 通讯录建立模块设计 (11)

4.2 通讯录插入模块设计 (11)

4.3 通讯录查找模块设计 (12)

4.4 通讯录删除模块设计 (12)

4.5 通讯录输出模块设计 (13)

4.6 通讯录数据保存模块设计 (13)

5运行与测试 (14)

5.1 执行过程中出现错误 (14)

5.2功能模块的调试 (14)

6总结和心得 (21)

参考文献 (21)

1概述

1.1现状分析

通讯录管理系统是一个非常通用的管理系统。很多地方都需要拥有自己的通讯录管理系统,以便对自己的同学、同事、朋友等信息资料的管理及使用。通讯录管理系统具有很强的实用性,使用者只要根据具体情况稍加修改,就可以把它应用到实际需求中。随着社会的发展及知识经济的到来,管理信息系统在各行各业发挥着越来越重要的作用。通讯录管理系统是典型的信息管理系统。通讯录管理系统工作繁琐,包含了大量的信息数据,因此需要一个完整的信息管理系统来实现对这些数据的管理,满足管理者的需求。通讯录管理系统的设计能推动机关单位信息管理走向科学化、规范化。通讯录管理系统易于开发、维护、使用方便。各行各业使用越来越广泛。常用于日常办公,提高办事效率。

1.2存在的问题

通讯录管理系统存在很多不足,由于自身编程能力的不足,这个系统实现的功能有限,只能实现管理系统最基本的功能,简单的添加、查询、删除、退出功能。每个模块设计也存在不足,还需要努力学习,进一步完善所学知识。编译过程中,由于自己的粗心造成输入错误,使程序不能运行,需要自己认真仔细对待。还有没有读懂某些模块函数的设计思想,理解困难,能力有限,某些功能自己不能设计完成,还需要进一步努力提升编程能力。不能完全满足用户的需求。

1.3实现意义

通讯录管理系统的设计使得对信息的管理更加方便,能够实现动态管理。检索迅速、查找方便、可靠性高、存储量大、保密性好。管理者工作起来效率高,可以不用再做大量的数据记录,从而减少了机关机关单位职员的工作量。运用数据结构中的算法思想做数据结构,结合C语言知识,编写一个通讯录管理系统。通过完成本课程,进一步熟悉C语言的基本知识,并掌握数据结构的一些基本算法思想,进一步熟悉指针的用法,数组的建立运用和函数的调用。加深对数据结构的理解,提高算法设计能力,锻炼编程能力。用C语言编写一个通讯录管理系统软件,要求能实现通讯录管理系统中增加新记录、按名字或编号删除记录、显示通讯录的所有信息、按名字或编号查询信息、保存通讯录、退出系统。

2系统分析

2.1 用户需求分析

通讯录管理系统要求能实现用户需要的功能有:增加新记录、按名字或编号删除记录、显示通讯录的所有信息、按名字或编号查询信息、保存通讯录、退出系统。

2.2 管理者需求分析

根据实际情况,使用原型法,即以少量少量代价快速地构造一个可执行的软件系统模型,使用户和开发人员可以较快的确定需求,然后采用循环进化的开发方式,对系统模型作连续化的精化,将系统需具备的性质逐渐加上去,直到所有的性质全部满足。设计为管理者提供方便的管理方式,能实现动态管理,减少管理者的工作量,提高办事效率。能够实现添加记录,删除记录,查找记录,退出管理系统等功能。

3概要设计

3.1程序设计中的数据设计

软件中使用结构体和结构体数组,分别对编码、姓名、性别、电话号码、地址进行储存,在子函数中还使用了结构体数组。还运用了头文件:

#include

#include

#include

结构体:

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; LinkList head;

ListNode *p;

3.2算法流程图

菜单函数流程图

系统功能模块图

建立通讯录记录流程图

添加通讯录记录流程图

查询通讯录记录流程图

删除通讯录记录流程图

通讯录信息输出流程图

退出管理系统流程图

4详细设计

4.1 通讯录建立模块设计

LinkList CreateList(void)

{

LinkList head=(ListNode *)malloc(sizeof(ListNode));

ListNode *p,*rear;

int flag=0;

rear=head;//尾指针初始指向头结点

while(flag==0)

{

p=(ListNode *)malloc(sizeof(ListNode));

printf("编号(4) 姓名(8) 性别电话(11) 地址(31) \n");

printf("----------------------------------------\n");

scanf("%s%s%s%s%s",p->data.num,p->,

p->data.sex,p->data.phone,p->data.addr);

rear->next=p;//新结点连接到尾结点之后

rear=p;//尾指针指向新结点

printf("结束建表吗?(1/0):");

scanf("%d",&flag);//读入一个标志数据

}

rear->next=NULL;

return head;

}

4.2 通讯录插入模块设计

void InsertNode(LinkList head,ListNode *p)

{

ListNode *p1,*p2;

p1=head;

p2=p1->next;

while(p2!=NULL && strcmp(p2->data.num,p->data.num)<0) {

p1=p2;

p2=p2->next;

}

p1->next=p;

相关文档
最新文档