栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

(C语言小项目)通讯录的实现

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

(C语言小项目)通讯录的实现

目录

前言

实现功能

test.c

Contanct.h 

Contanct.c

实现效果


前言

我们用三个文件C语言文件来实现通讯录,分别为 Contanct.h    Contanct.c    test.c

test.c: 实现通讯录的逻辑。

Contanct.c:分装多个函数,是通讯录的主要实现方法。

Contanct.h:放对结构体,自定义函数的声明。

实现功能

1.存放1000个好友信息 名字 电话 性别 住址 年龄
2.增加好友信息
3.删除指定名字的好友信息
4.查找好友信息
5.修改好友信息
6.打印好友信息

test.c
#include"contanct.h"
void menu()
{
	printf("*********************************************n");
	printf("***********1.add             2.del **********n");
	printf("***********3.search          4.modify *******n");
	printf("***********5.show            0.exit *********n");
	printf("*********************************************n");
	printf("*********************************************n");
}
int main()
{
	int input;
	//创建通讯录
    struct Contanct con;
	//初始化通讯录
	InitContact(&con);
	do 
	{
		menu();
		printf("请选择:>");
		scanf("%d", &input);
		switch (input)
		{
		case ADD:
		    AddContact(&con);
			break;
		case DEL:
		    DelContact(&con);
			break;
		case SEARCH:
			SEARCHContanct(&con);
			break;
		case MODIFY:
			MODIFYContanct(&con);
			break;
		case SHOW:
			ShowContanct(&con);
			break;
		case EXIT:
			printf("退出通讯录n");
			return 0;
		default:
			printf("选择错误!n");
		}
	} while (1);
}

Contanct.h 
#define _CRT_SECURE_NO_WARNINGS 1
#define MAX 1000
#define MAX_NAME 20
#define MAX_SEX 5
#define MAX_TELE 12
#define MAX_ADDR 30
#include
#include
#include
struct PeoInfo
{
	char name[MAX_NAME];
	int age;
	char sex[MAX_SEX];
	char tele[MAX_TELE];
	char addr[MAX_ADDR];
};
enum Option
{
	EXIT,
	ADD,
	DEL,
	SEARCH,
	MODIFY,
	SHOW,
};
//通讯录类型
struct Contanct
{
	struct PeoInfo date[MAX];//存放一个信息
	int size;//记录当前已有元素个数
};
//初始化通讯录的函数
void InitContact(struct Contanct* ps);
//增加一个信息到通讯录
void AddContact(struct Contanct* ps);
//打印通讯录的信息
void ShowContanct(const struct Contanct* ps);
//删除指定的联系人
void DelContact(struct Contanct* ps);
//查找指定的联系人
void SEARCHContanct(struct Contanct* ps);
//修改指定联系人
void MODIFYContanct(struct Contanct* ps);

Contanct.c
#include"contanct.h"
//通过名字查找它在数组中对应下标的函数
int Findby_name(struct Contanct *ps,char name[MAX_NAME])
{
	int i;
	for (i = 0; i < ps->size; i++)
	{
		if (0 == strcmp(ps->date[i].name, name))
			return i;//找到了
	}
	return -1;//找不到
}
//初始化通讯录的函数
void InitContact(struct Contanct* ps)
{
	memset(ps->date, 0, sizeof(ps->date));
	ps->size = 0;//设置通讯录最初只有0个元素
}
void AddContact(struct Contanct* ps)
{
	system("cls");
	if (ps->size == MAX)
	{
		printf("通讯录已满,无法增加");
	}
	else
	{
		printf("请输入修改后名字:");
		scanf("%s",ps->date[ps->size].name);
		printf("请输入修改后年龄:");
		scanf("%d",&(ps->date[ps->size].age));
		printf("请输入修改后性别:");
		scanf("%s", ps->date[ps->size].sex);
		printf("请输入修改后电话:");
		scanf("%s", ps->date[ps->size].tele);
		printf("请输入修改后地址:");
		scanf("%s", ps->date[ps->size].addr);
		ps->size++;
		system("cls");
		printf("添加成功!n");

	}
}
//打印通讯录的信息
void ShowContanct(const struct Contanct* ps)
{
	system("cls");
	if (ps->size == 0)
	{
		printf("通讯录为空n");
	}
	else
	{
		printf("%-20st%4st%-5st%-12st%-20sn", "名字", "年龄", "性别", "电话", "地址");
		int i = 0;
		for (i = 0; i < ps->size; i++)
		{
			printf("%-20st%-4dt%-5st%-12st%-20sn",
				ps->date[i].name,
				ps->date[i].age,
				ps->date[i].sex,
				ps->date[i].tele,
				ps->date[i].addr);
		}
	}
}
//删除指定的联系人
void DelContact(struct Contanct* ps)
{
	system("cls");
	char name[MAX_NAME];
	printf("请输入要删除人的名字:");
	scanf("%s", name);
	int pos = Findby_name(ps, name);
	if (pos == -1)
		printf("要删除的人不存在n");
	else
	{
		int j = 0;
		for (j = pos; j < ps->size - 1; j++)
		{
			ps->date[j] = ps->date[j + 1];
		}
		ps->size--;
		printf("删除成功!n");
	}
	
}
//查找指定的联系人
void SEARCHContanct(struct Contanct* ps)
{
	system("cls");
	char name[MAX_NAME];
	printf("请输入查找人的名字:");
	scanf("%s", name);
	int pos =Findby_name(ps, name);
	if (pos == -1)
	{
		printf("要查找的人不存在n");
	}
	else
		printf("%-20st%-4dt%-5st%-12st%-20sn",
			ps->date[pos].name,
			ps->date[pos].age,
			ps->date[pos].sex,
			ps->date[pos].tele,
			ps->date[pos].addr);
}
//修改指定联系人
void MODIFYContanct(struct Contanct* ps)
{
	system("cls");
	char name[MAX_NAME];
	printf("请输入要修改联系人的名字n");
	scanf("%s", name);
	int pos = Findby_name(ps, name);
	if (pos == -1)
	{
		printf("要修改的联系人不存在n");
	}
	else
	{
		printf("请输入名字:");
		scanf("%s", ps->date[pos].name);
		printf("请输入年龄:");
		scanf("%d", &(ps->date[pos].age));
		printf("请输入性别:");
		scanf("%s", ps->date[pos].sex);
		printf("请输入电话:");
		scanf("%s", ps->date[pos].tele);
		printf("请输入地址:");
		scanf("%s", ps->date[pos].addr);
		ps->size++;
		printf("修改完成!n");
	}
	

}

实现效果

初始界面:

 添加成员:选择1

打印联系人信息:选择5

 删除联系人:选择2

 再将联系人打印出来:

 查找联系人:

 修改联系人:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/510655.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号