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

C语言实现简易通讯录

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

C语言实现简易通讯录

  • 文章目录
  • 前言
  • 一、通讯录的总体思路。
    • 模块化编程
      • 1."tcst.c"
      • 2."contact.h"
      • 3."contact.c"
  • 二、通讯录功能的实现
    • 1.添加一位联系人
    • 2.删除一位联系人
    • 3.修改联系人
    • 4.在屏幕上打印联系人
    • 5.寻找联系人
    • 6.通讯录初始化
  • 总结


前言

在c语言的学习中,我们学习了结构体。结构体,是C语言学习过程中重要的部分,常用于实现对数据库的管理。学完结构体后,相信大家对结构体有了一定的了解,下面就用C语言实现简易的通讯录吧!


一、通讯录的总体思路 模块化编程

此次的通讯录我用了3大模块实现,分别是"test.c","contact.c",以及"contact.h"。

 1."tcst.c"

          包括简易菜单以及主函数的实现思路,整体是这样:

 

            (1).简易菜单

//打印菜单
void menu()
{
	printf("****************************n");
	printf("*****0.Exit the program*****n");
	printf("*****1. Add   a contact*****n");
	printf("*****2. Del   a contact*****n");
	printf("*****3.Modife a contact*****n");
	printf("*****4.printf a contact*****n");
	printf("****************************n");

}

        (2).主函数   

int main()
{
	int input = 0;//输入数组
	contact con;  //创建对象
	ContactInit(&con);
	do 
	{
		menu();               //打印菜单
		scanf("%d", &input);  //输入选项
		switch (input)        //选择功能
		{
		case ADD:             //增加一位联系人
			Add(&con); break;
		case DEL:             //删除一位联系人
			Del(&con); break;
		case MODIFE:          //修改联系人
			Modife(&con); break;
		case EXIT:            //退出程序 
			printf("退出程序");
			return 0;
		case PRINT:           //打印联系人
			print(&con); break;
		default:
			printf("输入错误,请重新输入!n"); break;
		}
	} while (input);
	return 0;
}
2."contact.h"

创建结构体,通讯录中每个人都有不一样的数据类型,信息种类多样,使用结构体来存放联系人的信息。创建枚举类型,在主函数便以代码的理解。整体是这样:

(1).枚举

//枚举,方便代码阅读
enum option
{
	EXIT,
	ADD,
	DEL,
	MODIFE,
	PRINT,
};

(2).创建结构体

//创建结构体
typedef struct PeoInfo
{
	char nane[NAME_MAX];     //名字
	char sex[SEX_MAX];       //性别
	int age;                 //年龄
	char tele[TELE_MAX];     //电话号码
	char addr[ADDR_MAX];     //地址
}People;

//将1000个联系人的信息存入contact
typedef struct contact
{
	People data[MAX];  //存1000人的信息
	int sz;             //记录通讯录中保存的信息个数
}contact;

(3).声明函数

//初始化函数
void ContactInit(contact* p);

//增加一位联系人
void Add(contact* ps);

//删除一位联系人
void Del(contact* ps);

//打印联系人
void print(contact* ps);
3."contact.c"

各个功能的实现,包含通讯录菜单需要的功能。整体是这样:


 

 

 

二、通讯录功能的实现 具体实现我用注释标明了哈~~ 1.添加一位联系人
void Add(contact* ps)
{
	assert(ps);
	if (ps->sz == MAX)
	{
		printf("存储已满");
		return;
	}
	printf("请输入名字:");
	scanf("%s",(ps->data)[ps->sz].nane);
	printf("请输入性别:");
	scanf("%s",(ps->data)[ps->sz].sex);
	printf("请输入年龄:");
	scanf("%d", &(ps->data)[ps->sz].age);
	printf("请输入电话:");
	scanf("%s", &(ps->data)[ps->sz].tele);
	printf("请输入地址:");
	scanf("%s",(ps->data)[ps->sz].addr);
	ps->sz++;
	printf("添加成功!n");
}

2.删除一位联系人
//删除一位联系人
void Del(contact* ps)
{
	assert(ps);
	char arr[20];
	printf("请输入要删除的联系人的名字:");
	scanf("%s", arr);
	int tmp = Fine_contact(ps,arr);
	if (tmp == -1)
	{
		printf("没有找到,返回n");
		return;
	}
	int i = 0;
	for (i = tmp; i < ps->sz; i++)
	{
		ps->data[i] = ps->data[i + 1];
	}
	ps->sz--;
	printf("删除成功!n");
}
3.修改联系人
//修改联系人
void Modife(contact* ps)
{
	assert(ps);
	int arr[20] = { 0 };
	printf("请输入需要修改的联系人:n");
	scanf("%s", arr);
	int tmp = Fine_contact(ps,arr);
	if (tmp == -1)
	{
		printf("没有找到联系人!n");
		return;
	}
	printf("请输入名字:");
	scanf("%s", (ps->data)[tmp].nane);
	printf("请输入性别:");
	scanf("%s", (ps->data)[tmp].sex);
	printf("请输入年龄:");
	scanf("%d", &(ps->data)[tmp].age);
	printf("请输入电话:");
	scanf("%s", &(ps->data)[ps->sz].tele);
	printf("请输入地址:");
	scanf("%s", (ps->data)[tmp].addr);
	printf("修改成功!n");
}
4.在屏幕上打印联系人
//打印联系人
void print(contact* ps)
{
	printf("%-12s %-5s %-5s %-12s %-12s n","姓名","性别","年龄","电话号码","地址");
	for (int i = 0; i < ps->sz; i++)
	{
		printf("%-12s %-5s %-5d %-12s %-12sn", (ps->data)[i].nane, (ps->data)[i].sex, (ps->data)[i].age,( ps->data)[i].tele,(ps->data)[i].addr );
	}
}
5.寻找联系人
//寻找联系人
int Fine_contact(contact* ps,char* arr)
{
	assert(ps);
	int i = 0;
	for (i = 0; i < ps->sz; i++)
	{
		if (0==strcmp(arr,(ps->data)[i].nane))
		{
			return i;
		}
	}
	return -1;
}
6.通讯录初始化
//初始化函数
void ContactInit(contact* p)
{
	p->sz = 0;
	memset(p->data, 0, sizeof(p->data));
}

总结

 

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

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

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