通讯录(纯代码-c)

头文件部分

因为最近很忙,所以就不细写讲解了,直接上代码了,
学业方面补上后可能会出一篇讲解

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
#define max_count 101
typedef struct phone
{
	char name[10];
	int age;
	char sex[3];
	char address[30];
	char number[20];
}contact;

typedef struct list
{
	contact lalala[max_count];
	int count;
}MailList;

void init_contact(MailList* pc);
void add_contact(MailList* pc);
void serch_contact(MailList* pc);
void print_contact(MailList* pc);
void motify_contact(MailList* pc);
void del_contact(MailList* pc);
void sort_contact(MailList* pc);

函数实现部分

#include"RU.h"
void init_contact(MailList* pc)
{
	pc->count = 0;
	memset(pc->lalala, 0, sizeof(pc->lalala));
}


void add_contact(MailList* pc)
{
	if (pc->count >= 100)
	{
		printf("通讯录已满,请删除\n");
		return;
	}
	else
	{
		printf("请输入姓名\n");
		scanf("%s",pc->lalala[pc->count].name);
		printf("请输入年龄\n");
		scanf("%d", &pc->lalala[pc->count].age);
		printf("请输入性别\n");
		scanf("%s", &pc->lalala[pc->count].sex);
		printf("请输入地址\n");
		scanf("%s", pc->lalala[pc->count].address);
		printf("请输入号码\n");
		scanf("%s", &pc->lalala[pc->count].number);
		++pc->count;
	}
}

void serch_contact(MailList* pc)
{
	int order = 0;
	char la[10] = "";
	printf("请输入要查找的联系人名字\n");
	scanf("%s", la);
	for (int i = 0; i < pc->count; i++)
	{
		if (strcmp(la, pc->lalala[i].name)==0)
		{
			printf("姓名:\n%s\n", la);
			printf("年龄:\n%d\n",pc->lalala[i].age);
			printf("性别:\n%s\n", pc->lalala[i].sex);
			printf("地址:\n%s\n", pc->lalala[i].address);
			printf("号码:\n%s\n", pc->lalala[i].number);
			printf("已为您查到第%d号联系人", i);
			break;
		}
	}
	printf("未找到\n");
}


void print_contact(MailList* pc)
{
	for (int i = 0; i < pc->count; i++)
	{
		printf("第%d位联系人\n",i+1);
		printf("姓名:%s\n", pc->lalala[i].name);
		printf("年龄:%d\n", pc->lalala[i].age);
		printf("性别:%s\n", pc->lalala[i].sex);
		printf("地址:%s\n", pc->lalala[i].address);
		printf("号码:%s\n", pc->lalala[i].number);
	}
}


void motify_contact(MailList* pc)
{
	int z= 0;
	printf("请输入你要修改的联系人序号>:");
	scanf("%d", &z);
	printf("请输入姓名\n");
	scanf("%s", pc->lalala[z-1].name);
	printf("请输入年龄\n");
	scanf("%d", &pc->lalala[z - 1].age);
	printf("请输入性别\n");
	scanf("%s", &pc->lalala[z - 1].sex);
	printf("请输入地址\n");
	scanf("%s", pc->lalala[z - 1].address);
	printf("请输入号码\n");
	scanf("%s", &pc->lalala[z - 1].number);
	printf("修改成功\n", z);
	printf("姓名:%s\n", pc->lalala[z-1].name);
	printf("年龄:%d\n", pc->lalala[z-1].age);
	printf("性别:%s\n", pc->lalala[z-1].sex);
	printf("地址:%s\n", pc->lalala[z-1].address);
	printf("号码:%s\n", pc->lalala[z-1].number);
}


void del_contact(MailList* pc)
{
	int i = 0;
	printf("请输入你要删除的联系人序号\n");
	scanf("%d", &i);
	for (; i < pc->count-1; ++i)
	{
		pc->lalala[i] = pc->lalala[i + 1];
	}
	pc->count--;
	printf("删除成功");
}
void sort_contact(MailList* pc)
{
	for (int i=0;i<pc->count-1;i++)
	{
		for (int u=0;u<pc->count-i-1;u++)
		{
			if (strcmp(pc->lalala[u].name, pc->lalala[u + 1].name) == 1)
			{
				pc->lalala[100] = pc->lalala[u];
				pc->lalala[u] = pc->lalala[u + 1];
				pc->lalala[u + 1] = pc->lalala[100];
			}
		}
	}
	printf("排序成功\n");

}

整合部分

#include"RU.h"
MailList con;
int main()
{
	int i = 0;
	init_contact(&con);
	do 
	{
		printf("****1:ADD***2:DEL*********\n");
		printf("****3:SERCH*4:MODIFY******\n");
		printf("****5:PRINT**6:SORT*******\n");
		printf("****0:quit****************\n");
		printf("**************************\n");
		scanf("%d", &i);
		printf("请选择>:\n");
		switch (i)
		{
		case 1:
		{
			add_contact(&con);
			break;
		}
		case 2:
		{
			print_contact(&con);
			del_contact(&con);
			break;
		}
		case 3:
		{
			serch_contact(&con);
			break;
		}
		case 4:
		{
			print_contact(&con);
			motify_contact(&con);
			break;
		}
		case 5:
		{
			print_contact(&con);
			break;
		}
		case 6:
		{
			sort_contact(&con);
			break;
		}
		case 0:
			break;
		default:
			printf("请重新输入\n");
			break;
		}
	} while (i);

}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想学c啊啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值