c语言实现的通讯录系统

这个博客介绍了一个使用C语言编写的通讯录系统,利用链表数据结构动态存储和管理联系人信息,包括添加、显示、查找、删除、更新和保存等功能。系统通过文件读写保存数据,支持malloc动态内存分配。
摘要由CSDN通过智能技术生成
#include <stdio.h>
#include <stdlib.h>
#include <string.h> //包含字符串函数 使用memest 来对变量进行初始化
//采用define 来定义常量
#define  MAX_NAME 11   //名字最大长度
#define  MAX_SEX 3     //性别
#define  MAX_BIRTHDAY  9  //生日
#define  MAX_TEL   21    //电话
#define MAX_MOBILE  21  //手机
#define  MAX_FAX   21    //传真
#define  MAX_ADDRESS 101    //地址
#define  MAX_POSTAL_CODE 7   //邮编
//定义一个结构体
typedef struct   _person
{
	char  name[MAX_NAME];
	char  sex[MAX_SEX];
	char  birthday[MAX_BIRTHDAY];
	char tel[MAX_TEL];
	char  mobile[MAX_MOBILE];
    char fax[MAX_FAX];
	char address[MAX_ADDRESS];
	char postal_code[MAX_POSTAL_CODE];
} person; 
//定义一个_person结构体,并把结构体struct _person重命名为person.
//定义链表结构 用来动态存入 存出信息
typedef struct  _addr_book
{
	person per;
	struct  _addr_book *next;//定义一个struct _addr_book结构体的指针next,用来指向下一个结构体
}addr_book;//同理定义  结构体的重命名 

addr_book *first=NULL;
//定义一个头结点指针并赋值为空,作为链表头

//函数声明
 void  add(); //添加联系人
 void   show(); //显示联系人
 void search();//查找联系人
 //void  delete(); //删除联系人
 void delete_person();//删除联系人
 void save();//保存联系人
 void quit();//退出系统
 void update();
 int print_menu();//打印菜单函数
 addr_book *get_last(addr_book *from);//取得链表的最后一个值
 void print_person(person *p);//显示一个联系人
 void input_person(person *p);//提示输入一个联系人的具体信息
 char menu[]="通讯录管理系统  | \n | 1 添加联系人 \n | 2 显示所有联系人 \n | 3 查找联系人 \n | 4 删除联系人 \n | 5 更新联系人 \n | 6 保存 \n | 7 退出系统 \n   ";
int main()
{

// printf("yes");
  //printf(menu);
int flag=1;
while(flag)
 {
	 switch(print_menu())
	 {
	 case 1:
		 add();
		 break;
	 case 2:
		 show();
		 break;
	 case 3:
		 search();
		 break;
	 case 4:
		 delete_person();
		 break;
	 case 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值