C语言通讯录管理系统

本文介绍了使用C语言编写的通讯录管理系统,该系统具备录入、保存、插入、删除、排序、查找及单个显示联系人信息的功能。通过完整的代码展示实现过程。
摘要由CSDN通过智能技术生成

实现了通讯录的录入信息、保存信息、插入、删除、排序、查找、单个显示等功能。。

完整的代码如下:

 

#include <stdio.h>
#include <malloc.h>  //得到指向大小为Size的内存区域的首字节的指针//
#include <string.h>
#include <stdlib.h>  //标准库函数// 
#define NULL 0
#define LEN sizeof(struct address_list)  //计算字节//
int n;
struct address_list
{
	char name[30];     //名字
	char work[30];     //职业
	char handset[30];  //手机
	char email[30];    //电子邮件
	char address[30];  //通讯地址
	struct address_list *next;
};
struct address_list *shifang(struct address_list *head); // 释放内存函数声明
//创建函数,不带头结点的链表
struct address_list *creat(void)       
{
	struct address_list *head,*p1,*p2;
	char name[20];
	n=0;
	p1=(struct address_list *)malloc(LEN);
	p2=p1;   //强制内存转换
	printf("请输入通讯录的内容!\n姓名输入为0时表示创建完毕!\n");
	printf("请输入姓名:");
	gets(name);
	if(strcmp(name,"0")!=0)
	{
		strcpy(p1->name,name);
		printf("请输入职业:");     gets(p1->work);
		printf("请输入手机:");     gets(p1->handset);
		printf("请输入电子邮件:"); gets(p1->email);
		printf("请输入通讯地址:");  gets(p1->address);
		head=NULL;
		while(1)
		{
			n=n+1;   //记录通讯录人数个数
			if(n==1)
				head=p1;
			else
				p2->next=p1;
			p2=p1;
			printf("请输入姓名:");
			gets(name);
			if(strcmp(name,"0")==0)
			{
				break;
			}
			else
			{
				p1=(struct address_list *)malloc(LEN);
				strcpy(p1->name,name);
				printf("请输入职业:"); gets(p1->work);
				printf("请输入手机:"); gets(p1->handset);
				printf("请输入电子邮件:"); gets(p1->email);
				printf("请输入通讯地址:");  gets(p1->address);
			}
		}
		p2->next=NULL;
		return head;
	}
	else
		return 0;
}
//输出函数
void print(struct address_list *head)   
{
	struct address_list *p;
	if(head!=NULL)
	{
		p=head;
		printf("本通讯录现在共有%d人:\n",n);
		printf("---姓名-------职业--------手机-------Email-------通讯地址\n");
		printf("==================================\n");
		do
		{
			printf("== %s",p->name); printf("       ");
			printf("%s",p->work); printf("       ");
			printf("%s",p->handset); printf("       ");
			printf("%s",p->email); printf("       ");
			printf("%s",p->address); printf("       \n");
			p=p->next;
		}while(p!=NULL);
		printf("======================
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值