C语言实现通讯录

<span style="font-size:18px;">#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<malloc.h>
#include<conio.h>
#define LEN sizeof(struct ab)
#define ZIP 7
#define PHONE 7
#define MAX 100
struct ab
{
	char name[10];
	char addr[10];
	char zip[ZIP];
	char phone[PHONE];
	struct ab *next;
};
struct ab *head;
void search(struct ab *head);
struct ab *add(struct ab *head);
struct ab *del(struct ab *head);
void alter(struct ab *head);
void print(struct ab *head);
void thefirst();
int n;</span>
<span style="font-size:18px;">#include"head.h"
void main()
{
	n=0;
	head=(struct ab *)malloc(LEN);
	thefirst();
}
void thefirst()
{
	char c;
	system("CLS");
	puts("**************************************");
	puts("                 通讯录               ");
	puts("                1、查询               ");
	puts("                2、添加               ");
	puts("                3、删除               ");
	puts("                4、修改               ");
	puts("                5、显示               ");
	puts("                6、返回               ");
	puts("**************************************");
	c=getch();
	system("CLS");
	switch(c)
	{
		case '1':search(head);break;
		case '2':head=add(head);thefirst();break;
		case '3':head=del(head);thefirst();break;
		case '4':alter(head);break;
		case '5':print(head);break;
		case '6':printf("BYE BYE!\n");
	}
}</span>
<span style="font-size:18px;">#include"head.h"
void search(struct ab *head)
{
	char str[10];
	struct ab *p;
	p=head;
	printf("please input the name you want to search!\n");
	scanf("%s",str);
	if(p==NULL)
	{
		printf("please input the information first!press any key to thefirst \n");
		getch();
		thefirst();
	}
	system("CLS");
	for(;p&&strcmp(str,p->name);p=p->next);
	if(p)
		printf("%10s\n%10s\n%10s\n%10s\n",p->name,p->addr,p->zip,p->phone);
	else
		printf("there is no information about the people you want!\n");
	getch();
	thefirst();
}</span>
<span style="font-size:18px;">#include"head.h"
struct ab *add(struct ab *head)
{
	struct ab *p1,*p2,*p3;
	char c[10];
	printf("please input the name!\n");
	scanf("%s",c);
	p1=head;
	if(n==0)
	{
		strcpy(p1->name,c);
		printf("please input the address!\n");
		scanf("%s",p1->addr);
		printf("please input the zip!\n");
		scanf("%s",p1->zip);
		printf("please input the phone!\n");
		scanf("%s",p1->phone);
		printf("%s\n",p1->phone);
		p1->next=NULL;
		n++;
	}
	else
	{
		p3=(struct ab *)malloc(LEN);
		strcpy(p3->name,c);
		printf("please input the address!\n");
		scanf("%s",p3->addr);
		printf("please input the zip!\n");
		scanf("%s",p3->zip);
		printf("please input the phone!\n");
		scanf("%s",p3->phone);
		if(strcmp(c,p1->name)<0)
		{
			head=p3;
			p3->next=p1;
		}
		else
		{
			for(;p1&&strcmp(c,p1->name)>0;p2=p1,p1=p1->next);
			if(p1==NULL)
			{
				p2->next=p3;
				p3->next=NULL;
			}
			else
			{
				p2->next=p3;
				p3->next=p1;
			}
			n++;
		}
	}
	return head;
}</span>
<span style="font-size:18px;">#include"head.h"
struct ab *del(struct ab *head)
{
	struct ab *p1,*p2;
	char c[10];
	p1=head;
	printf("please input the name you want to delete\n");
	scanf("%s",c);
	for(;p1&&strcmp(c,p1->name);p2=p1,p1=p1->next);
	if(p1==NULL)
	{
		printf("not find!press any key to thefirst \n");
		getch();
	}
	else if(p1==head)
		head=p1->next;
	else
		p2->next=p1->next;
	return head;
}</span>
<span style="font-size:18px;">#include"head.h"
void alter(struct ab *head)
{
	char str[10];
	struct ab *p;
	p=head;
	printf("please input the name you want to search!\n");
	scanf("%s",str);
	for(;p&&strcmp(str,p->name);p=p->next);
	if(p)
	{
		printf("please input the address!\n");
		scanf("%s",p->addr);
		printf("please input the zip!\n");
		scanf("%s",p->zip);
		printf("please input the phone!\n");
		scanf("%s",p->phone);
	}
	else
	{
		printf("not find!press any key to thefirst \n");
		getch();
	}
	thefirst();
}
</span>
<span style="font-size:18px;">#include"head.h"
void print(struct ab *head)
{
	struct ab *p;
	for(p=head;p;p=p->next)
	{
		printf("%10s%10s%10s%10s\n",p->name,p->addr,p->zip,p->phone);
	}
	getch();
	thefirst();
}</span>

时间: 2024-10-17 14:19:00

C语言实现通讯录的相关文章

【C语言】通讯录代码(一个文件下实现)

//[C语言]通讯录(一个文件实现) #include <stdio.h> #include <string.h> #define NAME_MAX 20 #define SEX_MAX 5 #define TEL_MAX 11 #define ADDR_MAX 20 #define PERSON_MAX 1000 typedef struct person { char name[NAME_MAX]; char sex[SEX_MAX]; int age; char tel[TE

C语言编写—通讯录(小项目)

C语言的练习-通讯录,该通讯录主要实现最大存储1000个人信息,对通讯录中的个人信息能够进行增.删.查.改等基本功能,通过用c语言编写,能够极大程度上锻炼编程能力.程序主要使用数组的知识,创建1000大小的静态数组,在极端情况下,通讯录中元素较少,对空间的使用率较低,使得空间浪费.该程序能够再次进行改进,可以通过动态开辟数组,减少空间的浪费,也可以通过链表来实现. --下面程序主要是利用静态数组的方式,该程序有待改进. #define _CRT_SECURE_NO_WARNINGS 1 #inc

C语言-《通讯录》

黑白的通讯录 ---------------------- --1-- 需求分析 1.1 需求 1.2 原型展示 1.3 功能分析 --2-- 代码实现 2.1 外部声明.变量.宏 2.2 模块实现 ---------------------- [写在开头:] 『在不用UI界面操作的时候,用一个命令行版的通讯录也是很有个性的...』 --1-- 需求分析 1.1 需求 实现简单计算器的计算功能,用命令行的方式选择具体的操作 1.2 原型展示 欢迎界面: 1)添加联系人: 2)删除联系人: 3)修

【C语言疯狂讲义】(十六)C语言简易通讯录(未优化版)

<通讯录>开发用到得知识点 常量.变量的使用 全局变量 分支语句 函数 宏 循环语句 scanf和printf 数据 结构体 文件 指针* <通讯录>中解决的经典问题 数组元素如何删除(不使用链表) 开发调试环境:Mac os x10.10 + xcode6.1 通讯录主界面: 添加联系人界面 删除联系人界面 修改联系人界面 搜索联系人 #include <stdio.h> #include <string.h> /****** 宏定义 *******/ #

(C语言)通讯录

问题描述: 实现一个通讯录: 通讯录可以用来存储个人的信息,每个人的信息包括: 姓名.性别.年龄.电话.住址.实现增,删,查,找,清空这几个功能. 程序分析: (1)基本思路:学完了结构体,我们必须通过不断地应用才能真正的掌握.这个通讯录是以两个结构体作为框架搭建的一个小型工程.如下所示: typedef struct Peo { char name[NAME_LEN]; int age; char sex[SEX_LEN]; char tele[TELE_LEN]; char addr[ADD

【C语言】通讯录制作

//此部分为该通讯录头部(head.h) #ifndef _CONTACT__ #define _CONTACT__ #define NAME_MAX 20 #define SEX_MAX 5 #define TEL_MAX 11 #define ADDR_MAX 20 #define PERSON_MAX 1000 #include <stdio.h> #include <string.h> typedef struct person { char name[NAME_MAX];

【C语言】通讯录实现。

实现一个通讯录: 通讯录用来存放1000个人的信息,每个人的信息包括: 姓名.性别.年龄.电话.住址 提供方法: (1)添加联系人信息 (2)删除指定联系人信息 (3)查找指定联系人的信息 (4)修改指定联系人信息 (5)显示所有联系人信息 (6)清空所有联系人 实现方法: #include <stdio.h> #include <string.h> #define MAX 1000 #define NAME_LEN 10 #define SEX_LEN 5 #define PHO

2、C语言实现通讯录

main函数入口: //test.c #include<stdio.h> #include<stdlib.h> #include<string.h> #include "address.h" //显示界面 void Interface_Display() { printf("**********通讯录**********\n"); printf("****1.添加联系人信息******\n"); printf(

(一〇一)集成静态库RHAddressBook实现OC访问通讯录

使用官方的AddressBook框架仅能使用C语言访问通讯录,十分不便,这里介绍集成第三方框架RHAddressBook的方法,该框架可以通过OC访问和操作通讯录. 该框架是一个静态库,集成比较复杂. 首先下载该框架:RHAddressBook,下面有关于集成的一些介绍,下面简单的介绍一下集成的过程. ①首先把静态库工程直接拖入自己的工程: ②选中自己的工程,工程配置中选择Build Phases,按照下图导入两个文件,点击左侧的加号添加即可. ③选择Build Settings,搜索Heade