1、 目录 1 绪论 2 1.1 任务目的 2 1.2 需求分析 2 1.3 详细功能 2 2 概要设计 . 3 2.1 通讯录各模块调用关系 . 3 2.2 结构体函数 . 3 2.3 主函数与各函数的调用 . 3 3 详细设计 . 5 3.1 各个算法的实现 5 4 调试结果 . 13 5 运行结果 . 14 6 总结 15 7 参考文献 . 16 1 绪论 1.1 任务目的 用数据结构中的链表做数据结构,结合 c 语言基本知识,编写一个通讯录管理系统,以 把所学知识应用到实际软件开发中去。 了解并掌握数据结构与算法的设计方法, 具备初步的 独立分析和设计能力,初步掌握软件开发过程的问题分析,
2、系统设计,程序编码,测试等基 本方法和技能: 提高综合运用所学的理论知识和方法独立分析和解决问题的能力, 训练用系 统的观点和软件开发一般规范进行软件开发, 培养软件工作者所应具备的科学的工作方法和 作风。 1.2 需求分析 设计一个实用的学生通讯录管理系统, 用双向链表做数据结构, 编写一个通讯录管理系统实 现通讯录信息的输入,添加,显示,并以姓名做关键字进行查找,删除信息等功能,输入的 信息需要包含学生的姓名,地址,电话。 1.3 详细功能 1.显示菜单 showmenu(); 2.添加信息 Appenditem(); 3.输出信息 print(); 4.按姓名查找信息 Finditem1
3、(); 5.删除信息 Removeitem(); 6.保存信息到文件 Saveandfree(); 7.打开文件 Open(); 2 概要设计 2.12.1 通讯录各模块调用关系通讯录各模块调用关系 2.22.2 结构体函数结构体函数 struct Telephone char name20; char addrass20; char telephone20; struct Telephone *next; ; typedef struct Telephone TEL; TEL *head=NULL; 2.32.3 主函数与各函数的调用主函数与各函数的调用 void main() 主程序 载入
4、文件 初始化 插入新结点 主菜单 添加信息 退出程序 保存信息 删除信息 查询信息 显示全部信息 返回主菜单 按姓名查找对象 char ch; Open(); /打开文件 while(1) showmenu(); /显示菜单 scanf(“ %c“, switch(ch) case 1:Appenditem(); /添加信息 break; case 2:print(); /输出信息 break; case 3:Finditem1(); /查找信息 1.按姓名 break; case 4: Removeitem(); /删除信息 print(); /输出删除后的结果 break; case 0:
5、Saveandfree(); /保存并释放内存 exit(0); /退出 break; default: printf(“选择错误!“); break; 3 详细设计 3.13.1 各个算法的实现各个算法的实现 1.显示菜单(图 1) : void showmenu() printf(“n请选择以下功能n“); printf(“t1.添加信息。n“); printf(“t2.输出信息n“); printf(“t3.按姓名查询n“); printf(“t4.删除信息n“); printf(“t0.保存并退出!n“); printf(“n“); printf(“t 请选择:n“); 图 1 2.添加信息(图 2) : void Appenditem() TEL *p1=NULL,*p2=NULL; p1=(TEL *)malloc(sizeof(TEL); /申请结点 printf(“输入姓名:n“); /添加信息 scanf(“%s“,p1-name); printf(“输入地址:n“); scanf(“%s“,p1-addrass); printf(“输入电话:n“); scanf(“%s“,p1-telephone); p1-next=NULL; /保存到链表 if(head=NULL) hea