C语言 通讯录

实现一个通讯录;

通讯录可以用来存储1000个人的信息,每个人的信息包括:

姓名、性别、年龄、电话、住址

提供方法:

1. 添加联系人信息

2. 删除指定联系人信息

3. 查找指定联系人信息

4. 修改指定联系人信息

5. 显示所有联系人信息

6. 清空所有联系人

main.c

#include "contact.h"

//查找联系人,返回下标;
int find(pCon pcon,char *name)
{
	int i=0;
	while(i < pcon->num)
	{
		if(strcmp(name,pcon->telbook[i].name) == 0)
		{
			return i;
		}
		i++;
	}
	return -1;
}

/****************添加联系人****************/
void add_peo(pCon pcon)
{
	if(pcon->num==NUM_MAX)
	{
		printf("电话本已满,无法存储!");
		return ;
	}
	printf("姓名:");
	scanf("%s",pcon->telbook[pcon->num].name);
	printf("性别:");
	scanf("%s",pcon->telbook[pcon->num].sex);
	printf("年龄:");
	scanf("%d",&(pcon->telbook[pcon->num].age));
	printf("电话:");
	scanf("%s",pcon->telbook[pcon->num].tel);
	printf("住址:");
	scanf("%s",pcon->telbook[pcon->num].addr);
	pcon->num++;
	printf("添加成功,请按任意键继续...");
	getch();
}

/****************删除联系人****************/
void del_peo(pCon pcon)
{
	char delname[NAME_MAX];
	int ret = 0;
	printf("请输入要删除的联系人姓名:");
	scanf("%s",delname);
	ret = find(pcon,delname);
	if(0 == ret)
	{
		int j;
		for(j=ret;j<pcon->num-1;j++)
		{
			pcon->telbook[j]=pcon->telbook[j+1];
		}
		pcon->num--;
		printf("删除成功!\n");
	}
	else
	{
		printf("未找到此联系人!\n");
	}
	printf("请按任意键继续...");
	getch();
}

/****************查找联系人****************/
void serach_peo(pCon pcon)
{
	char sername[NAME_MAX];
	int ret = 0;
	printf("请输入要查找的联系人姓名:");
	scanf("%s",sername);
	ret = find(pcon,sername);
	if(0 == ret)
	{
		printf("%s\t%s\t%d\t%s\t%s\n",pcon->telbook[ret].name,pcon->telbook[ret].sex,pcon->telbook[ret].age,pcon->telbook[ret].tel,pcon->telbook[ret].addr);
		printf("查找完成!");
	}
	else
	{
		printf("未找到此联系人!\n");
	}
	printf("请按任意键继续...");
	getch();
}

/****************修改联系人****************/
void modify_peo(pCon pcon)
{
	char modname[NAME_MAX];
	int ret = 0;
	printf("请输入要修改的联系人姓名:");
	scanf("%s",modname);
	ret = find(pcon,modname);
	if(0 == ret)
	{
		printf("姓名:");
		scanf("%s",pcon->telbook[ret].name);
		printf("性别:");
		scanf("%s",pcon->telbook[ret].sex);
		printf("年龄:");
		scanf("%d",&(pcon->telbook[ret].age));
		printf("电话:");
		scanf("%s",pcon->telbook[ret].tel);
		printf("住址:");
		scanf("%s",pcon->telbook[ret].addr);
		printf("修改成功!");
	}
	else
	{
		printf("无此联系人信息,无法修改。\n");
	}
	printf("请按任意键继续...");
	getch();
}

/****************显示联系人****************/
void show_peo(pCon pcon)
{
	int i;
	if(pcon->num == 0)
	{
		printf("电话本为空!");
	}
	else
	{
		for(i=0;i<pcon->num;i++)
		{
			printf("%s\t%s\t%d\t%s\t%s\n",pcon->telbook[i].name,pcon->telbook[i].sex,pcon->telbook[i].age,pcon->telbook[i].tel,pcon->telbook[i].addr);
		}
	}
	printf("请按任意键继续...");
	getch();
}

/****************清空联系人****************/
void clear_peo(pCon pcon)
{
	pcon->num = 0;
	printf("清空完成,请按任意键继续...");
	getch();
}

test.c

#include "contact.h"

char show_menu()
{
	printf("***************************************\n");
	printf("*                 菜单                *\n");
	printf("*    1.添加联系人      2.删除联系人   *\n");
	printf("*    3.查找联系人      4.修改联系人   *\n");
	printf("*    5.显示联系人      6.清空联系人   *\n");
	printf("*               0.退出                *\n");
	printf("***************************************\n");
	return 0;
}
int main()
{
	struct contact my_contact;
	int input;
	my_contact.num=0;
	do
	{
		system("cls");
		show_menu();
		printf("请选择你所需的操作:");
		x:
		scanf("%d",&input);
		if(input>=0 && input <=6)
		{
			switch(input)
			{
			case 0:
					return 0;
			case 1:
				{
					add_peo(&my_contact);
					break;
				}
			case 2:
				{
					del_peo(&my_contact);
					break;
				}
			case 3:
				{
					serach_peo(&my_contact);
					break;
				}
			case 4:
				{
					modify_peo(&my_contact);
					break;
				}
			case 5:
				{
					show_peo(&my_contact);
					break;
				}
			case 6:
				{
					clear_peo(&my_contact);
					break;
				}
			default:
				break;
			}
		}
		else
		{
			printf("输入有误,请重新输入:");
			goto x;
		}
	}while(input>=0 && input<=6);
	return 0;
}

contact.h

#ifndef __CONTACT_H__
#define __CONTACT_H__

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>

#define NAME_MAX 20
#define SEX_MAX 5
#define TEL_MAX 12
#define ADDR_MAX 20
#define NUM_MAX 1000

typedef struct people
{
	char name[NAME_MAX];
	char sex[SEX_MAX];
	int age;
	char tel[TEL_MAX];
	char addr[ADDR_MAX];
}pPeople;

typedef struct contact
{
	int num;
	struct people telbook[NUM_MAX];

}*pCon;

void add_peo(pCon pcon);
void del_peo(pCon pcon);
void serach_peo(pCon pcon);
void modify_peo(pCon pcon);
void show_peo(pCon pcon);
void clear_peo(pCon pcon);

#endif

程序运行结果截图:

时间: 2024-11-10 18:07:57

C语言 通讯录的相关文章

c 语言 通讯录 写入文本文件(含读取,删除某行,修改某行)

/*   实现一个通讯录: 通讯录可以用来存储1000个人的信息,每个人的信息包括: 姓名.性别.年龄.电话.住址   提供方法: 1.  添加联系人信息 2.  删除指定联系人信息 3.  查找指定联系人信息 4.  修改指定联系人信息 5.  显示所有联系人信息 6.  清空所有联系人  7.  显示文本电话簿信息  */ //头文件 #ifndef __PHONE_BOOK_H__ #define __PHONE_BOOK_H__ typedef struct phone_book { c

C语言通讯录系统——C语言单向链表实现

实现的通讯录功能有:查看通讯录.添加联系人.删除联系人.查询联系人.保存并退出. 通过txt文件保存和读取通讯录数据. #include <stdio.h> #include <string.h> #include <Windows.h> void showMenu(); void initL(); void addPerson(); void displayPersons(); void deletePerson(); void saveList(); void se

C语言做一个通讯录程序(在console里面运行)

最近复习C语言的时候看到网上有个C语言通讯录的小项目,于是看了下那个程序实现的大概的功能,然后自己也跟着做了个.代码还算简洁,贴上来给有需要的人. 1 // 2 // main.m 3 // AdressBook 4 // 5 // Created by bestkayle on 15/8/8. 6 // Copyright (c) 2015年 bestkayle. All rights reserved. 7 // 8 9 #import <Foundation/Foundation.h>

最新动态:开源项目 ionic3-awesome — 实现iframe嵌入外部网页

项目地址:https://github.com/alex-0407/ionic3-awesome 从零开始搭建一个ionic3 app,集成更多通用功能,通用组件. 让ionic开发more and more easy! 项目预览: ionic3-awesome 已完成内容: 基本框架搭建 页面懒加载 页面跳转 带logo的二维码生成组件,支持变换样式 多主题 九宫格 iframe嵌入外部网页 Todo: 多语言 通讯录 自定义扫一扫(二维码) 更多组件 更多功能 项目地址:https://gi

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

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

【简易通讯录】——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语言写郑州大学校友通讯录

1 #include <stdio.h> 2 #include <string.h> 3 #include <stdlib.h> 4 #define LEN sizeof(struct address_list) 5 6 /* 7 *************************通讯录结构体*********************************** 8 */ 9 10 struct address_list 11 { 12 char name[30]; /

关于通讯录C语言版

一 题目简介:关于通讯录,主要记录了姓名,性别,名字: 性别:年龄邮编:  地址:手机号码:家庭电话号码:公司名称:电子邮件:QQ 号码:等 二 源码的github链接    https://github.com/marry1234/test/tree/maste 三.所设计的模块测试用例.测试结果截图 用例名称:验证输入的邮件地址是否正确 测试项:用户的电话号码 环境要求:Wingdos8和Microsoft C++ 优先级:高 层次:1 步骤:打开Microsoft C++; 开始运行程序后