C语言通讯录管理系统设计
1. 课程设计的目的
运用数据结构中的算法思想作数据结构,结合C语言基本知识,编写一个通讯录管理系统。通过完成本课题,进一步熟悉C语言的基本知识,并掌握数据结构的一些基本算法思想,掌握C语言的文件操作(包括从磁盘读入和向磁盘写入内容),进一步熟悉指针的用法,数组的建立运用和函数的调用等。
加深对数据结构的理解,提高算法设计的能力,锻炼编程的能力
用C语言编写一个通讯录管理系统软件,要求能实现通讯录管理系统中增加新记录, 删除记录, 显示通讯录的所有信息, 按名字查询信息, 保存通讯录,保存于文件供输出或打印。
其中,输入的每条记录包括有姓名(name )、街道(street)、城市(city)、邮编(eip)、国家(state)五项。
2. 设计方案论证及源程序清单
2.1 设计思路
2.1.1 数据结构的选择
选取动态数据结构,本系统是通过双向链表来完成的。
动态存储分配与释放:
① 申请存储空间函数malloc( )
函数首部原型为
void * malloc(unsigned int size)
② 释放存储空间函数free( )
函数首部原型为
void free(void*p)
可排序表的抽象数据类型定义为:
ADT Orderablelist
{
数据对象:D={A[i] | A[i] ∈Integer,i=1,2,…,n, n>=0}
数据关系:R={<A[i-1],A[i]>|A[i-1],A[i]∈D,i=1,2,…,n}
动态数据结构——单向链表
2.1.2数据类型的选择
struct address{
char name[20];
char street[20];
char city[10];
char state[10];
char eip[7];
struct address *next;
struct address *prior;
}list_entry;
2.1.3 主要函数原型
menu_select(); /*主菜单函数*/
add();/*输入记录*/
display();/*浏览记录*/
delete();/*按名字删除记录*/
search();/*按姓名查找显示记录*/
save();/*记录保存为文件*/
load();/*加载文件*/
list();/*显示所有记录*/
2.1.4 调用到的函数:
通过
switch(表达式)
{
case 常量表达式1:语句1
case 常量表达式2:语句2
case 常量表达式n:语句n
}
调用
add()
delete()
list()
display(struct address *info)
search()
save()
load()
七个函数。
2.2 设计说明
2.2.1 功能模块图
通信录管理系统的模块连接结构如下图:688