1、 数据结构数据结构课程设计课程设计 题题 目目 通讯录管理系统 1 通讯录管理系统通讯录管理系统 1 1 引言引言 本程序是非数值计算型算法设计,我设计出了通讯录管理系统的基本功能,并设计了简单的界面。本 程序主要考察对自定义函数的熟悉程度,本程序主要使用的是数组的相关操作,包括结构体数组的输入、 输出、查找、删除等。我设计的这个通讯录系统也初步实现了人员信息的显示、删除、查找、修改、添加 等必要的功能。 记录通讯录内的人员的姓名、地址、邮编、电话号码。 显示所有人员的信息。 通过输入姓名查找人员信息。 通过输入姓名查找到要删除的人员信息,然后可以进行删除。 通过输入姓名查找到要修改的人员信息
2、,然后可以进行修改。 添加人员信息。 2 2 系统设计系统设计 2.1 需求分析 本通讯录系统是在学校常见的计算机信息管理系统。它的主要任务是对学生信息进行管理,如学生信 息的输入、查询、修改、增加、删除,迅速准确地完成各种学生信息的统计和查询。该系统可分为 7 个模 块,它们分别是: 开始模块:显示主界面可让用户选择用系统的哪个功能,从而去连接到相应的子函数; 显示模块:用户通过查找可显示所有人员名单; 删除模块:删除通讯录里已保存的数据; 查找模块:通过用户输入需要找的名字来找到相关资料; 添加模块:添加新用户; 退出模块:退出界面; 系统功能模块结构图如下: 2 图 1 系统功能模块图
3、2.2 总体设计 本系统首先设计出了主函数,然后根据去要实现的功能分别设计,显示、删除、查找、修改、添加功 能的子函数。在显示的函数设计过程中首先运用拉文件的读取等必要的知识通过把文件的内容读取到内存 然后打印出来。删除函数的设计是首先从文件内找到要删除的人,然后通过写一个实现删除目的的 FOR 循 环将该人从内存里删除,然后再用写的方式打开文件,将内存内的信息写入文件,实现删除。查找也是先 打开文件,用一个字符串对比的方法找出用户要查找的人,然后打印出来。修改也大体和删除相同,添加 函数在设计时通过申请一片空间,然后通过指针将需要添加的信息添加进去,从而实现添加功能。 2.2.1 总的程序流
4、程图: 主函数 显 示 模 块 删 除 模 块 查 找 模 块 添 加 模 块 退 出 模 块 3 图 2 总程序流程图 a!=1.2.3.4.5.6 开始 进入主函数 int 执行 printf()函数 输入指令(a) 调 用 outp ut() 函数 调用 del() 函数 调用 foun d()函 数 调用 inser t() 函数 执行 print f() 退出 系统 4 2.2.2 void output()函数流程图: 图 3 void output()函数流程图 2.2.3 void void del() ()函数流程图: 开始 If 语句判断 执行 printf() 结束 执行
5、 while()循环 执行 for()循环 结束 5 图 4 void del()函数流程图 开始 执行 if() 执行 printf() 结束 执行 dowhile()循环语 句 执行 scanf() 执行 while()循环 执行 printf() 执行 if() 执行 for()循环 结束 执行 printf() 结束 6 2.2.4 void found()函数流程图 图 5 void found()函数流程图 开始 执行 if() 执行 printf() 执行 scanf() 执行 while() 结束 执行 printf() 结束 7 2.2.5 void insert()函数流程
6、图 图 6 void insert()函数流程图 2.3 详细设计 2.3.1 定义主函数: #include #include #include #include struct record char name20; /定义代号 char street20; char city20; char eip20; char xuehao20; 开始 执行 if() 执行 printf() 结束 申请空间 执行 printf() 执行 scanf() 写入文件 结束 8 char state20; student500; struct slnode record date; struct slnode *next; struct slnode *prior; ; typedef slnode * linklist; linklist l;/定义指针 int num=0;/初始化数字 FILE *fp; /定义文件指针 void