用c语言实现 一个通讯录(实现 增加、删除、查找、修改、显示、清空功能)

源程序头文件contact.h

#ifndef _CONTACT_H__

#define _CONTACT_H__
#define NAME_MAX 20
#define SEX_MAX 5
#define TELE_MAX 15
#define ADDR_MAX 50
#define PEO_MAX 1000

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

typedef struct people
{
	char name[NAME_MAX];
	char sex[SEX_MAX];
	int age;
	char tele[TELE_MAX];
	char addr[ADDR_MAX];
}*pPeople;

typedef struct contact
{
	struct people dhb[PEO_MAX];
    int count;
}*pCon;

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

#endif
</pre>源程序函数段实现<p></p><p></p><p></p><pre name="code" class="cpp">#include "contact.h"

int find(pCon pcon,char * name)
{
	int i=0;
	while(i<pcon->count)
	{
		if(strcmp(name,pcon->dhb[i].name)==0)//查找到匹配的姓名就输出i
			return i;
		i++;
	}
		return -1;

}

void add_peo(pCon pcon)//增加存储人函数
{
	//判断
	if(pcon->count==PEO_MAX)
	{
		printf("存储空间已满\n");
		return ;
	}
	printf("name:>");
	scanf("%s",(pcon->dhb[pcon->count]).name);
	printf("sex:>");
	scanf("%s",(pcon->dhb[pcon->count]).sex);
	printf("age:>");
	scanf("%d",&((pcon->dhb[pcon->count]).age));
	printf("tele:>");
	scanf("%s",(pcon->dhb[pcon->count]).tele);
	printf("addr:>");
	scanf("%s",(pcon->dhb[pcon->count]).addr);
	pcon->count++;
}
void del_peo(pCon pcon)//删除函数
{
	char tmpName[NAME_MAX];
	int ret=0;
	printf("请输入你所要删除的姓名:>");
	scanf("%s",tmpName);
	ret=find(pcon,tmpName);
	if(-1 != ret)
	{
		int j=ret;
		for(;j<pcon->count-1;j++)
		{
			pcon->dhb[j]=pcon->dhb[j+1];//用后面的数据覆盖所要删除的数据
		}
		pcon->count--;//存储人数减少一位
	}
	else
	{
		printf("找不到所要删除的信息\n");
	}
}
void search_peo(pCon pcon)//查找函数
{
	char tmpName[NAME_MAX];
	int ret=0;
	printf("请输入你所要查找的姓名:>");
	scanf("%s",tmpName);
	ret = find(pcon,tmpName);
	if(ret != -1)
	{
		printf("%s\t%s\t%d\t%s\t%s\t\n",
			pcon->dhb[ret].name,
			pcon->dhb[ret].sex,
			pcon->dhb[ret].age,
			pcon->dhb[ret].tele,
			pcon->dhb[ret].addr);

	}
	else
	{
		printf("不存在所要查找的信息\n");
	}
}
void modify_peo(pCon pcon)//修改数据函数
{
	char tmpName[NAME_MAX];
	int ret=0;
	printf("请输入你所要修改的姓名:>");
	scanf("%s",tmpName);
	ret = find(pcon,tmpName);
	if(-1 != ret)//找到修改姓名之后重新赋值
	{
		printf("name:>");
			scanf("%s",(pcon->dhb[ret]).name);
			printf("sex:>");
			scanf("%s",(pcon->dhb[ret]).sex);
			printf("age:>");
			scanf("%d",&((pcon->dhb[ret]).age));
			printf("tele:>");
			scanf("%s",(pcon->dhb[ret]).tele);
			printf("addr:>");
			scanf("%s",(pcon->dhb[ret]).addr);
	}
}
void show_peo(pCon pcon)//显示函数
{
	int i;
	for(i=0;i<pcon->count;i++) //显示并打印说有联系人信息
	{
		printf("%s\t%s\t%d\t%s\t%s\t\n",
			pcon->dhb[i].name,
			pcon->dhb[i].sex,
			pcon->dhb[i].age,
			pcon->dhb[i].tele,
			pcon->dhb[i].addr);
	}
}
void clear_peo(pCon pcon)//清除所有联系人信息
{
	pcon->count = 0;
}
</pre><p></p><p>源程序主函数调用段</p><p></p><p></p><pre name="code" class="cpp">#include "contact.h"

void show_menu()
{
	printf("***************************\n");
	printf("*   1>add       2>del     *\n");
	printf("*   3>search    4>modify  *\n");
	printf("*   5>show      6>clear   *\n");
	printf("***************************\n");
}
int main()
{
	struct contact my_contact;
	int input=1;
	my_contact.count = 0;

	while(input)
	{
		show_menu();
		printf("please input:>");
		scanf("%d",&input);
		switch(input)//判断并调用函数
		{
		case 1:
			{
				add_peo(&my_contact);
				system("cls");//调用清屏函数
			    break;
			}
		case 2:
			{
				del_peo(&my_contact);
				system("cls");//调用清屏函数
				break;
			}
		case 3:
			search_peo(&my_contact);
			break;
		case 4:
			{
				modify_peo(&my_contact);
				system("cls");//调用清屏函数
				break;
			}
		case 5:
			show_peo(&my_contact);
			break;
		case 6:
			clear_peo(&my_contact);
			break;
		default:
			break;
		}
	}
	return 0;
}

增加联系人函数

void add_peo(pCon pcon)//增加存储人函数
{
	//判断
	if(pcon->count==PEO_MAX)
	{
		printf("存储空间已满\n");
		return ;
	}
	printf("name:>");
	scanf("%s",(pcon->dhb[pcon->count]).name);
	printf("sex:>");
	scanf("%s",(pcon->dhb[pcon->count]).sex);
	printf("age:>");
	scanf("%d",&((pcon->dhb[pcon->count]).age));
	printf("tele:>");
	scanf("%s",(pcon->dhb[pcon->count]).tele);
	printf("addr:>");
	scanf("%s",(pcon->dhb[pcon->count]).addr);
	pcon->count++;
}

删除联系人函数

void del_peo(pCon pcon)//删除函数
{
	char tmpName[NAME_MAX];
	int ret=0;
	printf("请输入你所要删除的姓名:>");
	scanf("%s",tmpName);
	ret=find(pcon,tmpName);
	if(-1 != ret)
	{
		int j=ret;
		for(;j<pcon->count-1;j++)
		{
			pcon->dhb[j]=pcon->dhb[j+1];//用后面的数据覆盖所要删除的数据
		}
		pcon->count--;//存储人数减少一位
	}
	else
	{
		printf("找不到所要删除的信息\n");
	}
}

查找联系人函数段

void search_peo(pCon pcon)//查找函数
{
	char tmpName[NAME_MAX];
	int ret=0;
	printf("请输入你所要查找的姓名:>");
	scanf("%s",tmpName);
	ret = find(pcon,tmpName);
	if(ret != -1)
	{
		printf("%s\t%s\t%d\t%s\t%s\t\n",
			pcon->dhb[ret].name,
			pcon->dhb[ret].sex,
			pcon->dhb[ret].age,
			pcon->dhb[ret].tele,
			pcon->dhb[ret].addr);

	}
	else
	{
		printf("不存在所要查找的信息\n");
	}
}

修改联系人函数段

void modify_peo(pCon pcon)//修改数据函数
{
	char tmpName[NAME_MAX];
	int ret=0;
	printf("请输入你所要修改的姓名:>");
	scanf("%s",tmpName);
	ret = find(pcon,tmpName);
	if(-1 != ret)//找到修改姓名之后重新赋值
	{
		printf("name:>");
			scanf("%s",(pcon->dhb[ret]).name);
			printf("sex:>");
			scanf("%s",(pcon->dhb[ret]).sex);
			printf("age:>");
			scanf("%d",&((pcon->dhb[ret]).age));
			printf("tele:>");
			scanf("%s",(pcon->dhb[ret]).tele);
			printf("addr:>");
			scanf("%s",(pcon->dhb[ret]).addr);
	}
}

显示联系人函数段

void show_peo(pCon pcon)//显示函数
{
	int i;
	for(i=0;i<pcon->count;i++) //显示并打印说有联系人信息
	{
		printf("%s\t%s\t%d\t%s\t%s\t\n",
			pcon->dhb[i].name,
			pcon->dhb[i].sex,
			pcon->dhb[i].age,
			pcon->dhb[i].tele,
			pcon->dhb[i].addr);
	}
}

清空联系人函数段

void clear_peo(pCon pcon)//清除所有联系人信息
{
	pcon->count = 0;
}

时间: 2024-11-08 22:49:57

用c语言实现 一个通讯录(实现 增加、删除、查找、修改、显示、清空功能)的相关文章

c语言制作一个通讯录

我的通讯录包括添加.查找.显示.修改.删除.清空.排序,这几项功能.成员信息包括:姓名.性别.年龄.电话.住址. 程序代码: #include<stdio.h> #include<string.h> #include<stdlib.h> #define MAX 1000//通讯录中最大存储人数 //功能 enum OP { EXIT, ADD, FIND, SHOW, MODIFY, DELE, EMPTY, SORT }; //个人信息 typedef struct

python3之对本地TXT文件进行增加,删除,修改,查看功能。

由于是初学,代码如有不足,欢迎指出! 本博客记录我的编程之路,记录所学到的知识,分享所学心得! 这是我的一个作业. 首先分析要求: 创建一个TXT文件用于存储账号与密码 实现对文件进行增加,删除,修改,查看的功能 分析思路: 先写一个选择的菜单 列出我们要写的自定义函数 实现增加,删除,修改,查看功能的主要方法是读取文件返回一个列表,然后对列表进行增加,删除,修改,查看最后又把列表写入文件. 1 def jia(LIST): #1增加函数 2 print('空格加回车退出!') 3 while

jquery 表格的增加删除和修改及设置奇偶行颜色

最近一周在学了一点点HTML, CSS, javascript,用javascript的jquery完成了一个简单的表格操作,有增加.删除和修改功能. 表格分三列,第一列是学生编号(ID号),第二列是学生姓名,第三列为学生年龄.在姓名和年龄框内输入数据,再点"Add"就可以增加数据(ID号会自动递增的生成),输入ID号再输入新的姓名和年龄点"Edit"就可以修改,删除的话输入ID号就点"Delete"就可以删除指定行. 表格最上面会及时更新当前表

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>

C语言链表总结(创建,排序,增加,删除)

#include <stdio.h>#include <stdlib.h> typedef struct NODE{ int data ; struct NODE * pNext ;} * PNODE , NODE ; PNODE create_list(void) ;void traverse_list(PNODE phead);int length_list(PNODE pHead) ;void sort_list(PNODE pHead);bool insert_list(P

一个java创建,删除,构建Jenkins等功能的JenkinsUtil工具类

package com.vip.webpagetest.utils; import java.io.InputStream; import java.io.UnsupportedEncodingException; import java.util.List; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.UsernamePasswordCredentials; impo

iptables中增加/删除/查询/修改的基本操作

虽然在Ubuntu使用了UFW来简化iptables的操作,但是UFW只针对防火墙方面,转发方面没有涉及,所以要弄懂其中的原理,还是必须回归到iptables中.CentOS也是如此.下面是针对iptables的基本操作,无论CentOS还是Ubuntu都是一致的. 前提:先熟悉iptables的基本命令参数:http://www.cnblogs.com/EasonJim/p/6847874.html 说明:经过测试,一些OUTPUT的规则使用下面命令是查看不到的,但是可以通过sudo ipta

C语言利用结构体实现一个通讯录

实现一个通讯录: 通讯录可以用来存储1000个人的信息,每个人的信息包括: 姓名.性别.年龄.电话.住址 提供以下方法: 1. 添加联系人信息 2. 删除指定联系人信息 3. 查找指定联系人信息 4. 修改指定联系人信息 5. 显示所有联系人信息 6. 以名字排序所有联系人 7. 清空所有联系人 student.h: #ifndef __CRT #define _CRT_SECURE_NO_WARNINGS 1 #endif #ifndef __STUDENT #ifndef __STDIO_H

【c语言】实现一个通讯录

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