1 Star 0 Fork 0

李勇震/c语言每日练习

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
test_1_9(通讯录实现增删查改) 3.44 KB
一键复制 编辑 原始数据 按行查看 历史
函数实现
//初始化通讯录
void InitContact(contact* pc)
{
pc->sz = 0;
memset(pc->data, 0, sizeof(pc->data));
}
//添加联系人函数
void AddContact(contact* pc)
{
//判断是否满了 满了不能添加
if (pc->sz == MAX)
{
printf("通讯录已满,无法添加\n");
return;
}
//添加
printf("请输入姓名:>");
scanf("%s", pc->data[pc->sz].name);
printf("请输入性别:>");
scanf("%s", pc->data[pc->sz].sex);
printf("请输入年龄:>");
scanf("%d", &(pc->data[pc->sz].age));
printf("请输入电话:>");
scanf("%s", pc->data[pc->sz].tele);
printf("请输入地址:>");
scanf("%s", pc->data[pc->sz].addr);
pc->sz++;
printf("添加完毕\n");
}
//实现打印通讯录
void PrintContact(const contact* pc)
{
int i = 0;
//打印目录
printf("%-20s %-5s %-5s %-12s %-10s\n", "姓名", "性别", "年龄", "电话", "地址");
//打印数据
for (i = 0; i < pc->sz; i++)
{
printf("%-20s %-5s %-5d %-12s %-10s\n", pc->data[i].name, pc->data[i].sex, pc->data[i].age, pc->data[i].tele, pc->data[i].addr);
}
}
//查找联系人
static int FindContact(contact* pc, char name[])
{
int i = 0;
for (i = 0; i < pc->sz; i++)
{
if (strcmp(pc->data[i].name, name) == 0)
{
return i;
}
}
return -1;
}
//删除联系人
void DelContact(contact* pc)
{
if (pc->sz == 0)
{
printf("通讯录为空,无法删除\n");
return;
}
char name[MAX_NAME] = { 0 };
printf("请输入名字:>");
scanf("%s", name);
int pos = FindContact(pc, name);
if (pos == -1)
{
printf("找不到此联系人\n");
return;
}
int i = 0;
for (i = pos; i < pc->sz - 1; i++)
{
pc->data[i] = pc->data[i + 1];
}
pc->sz--;
printf("删除完成\n");
}
//查找联系人
void SearchContact(const contact* pc)
{
if (pc->sz == 0)
{
printf("通讯录为空,无法查找\n");
return;
}
char name[MAX_NAME] = { 0 };
printf("请输入名字:>");
scanf("%s", name);
int pos = FindContact(pc, name);
if (pos == -1)
{
printf("找不到此联系人\n");
return;
}
else
{
//打印目录
printf("%-20s %-5s %-5s %-12s %-10s\n", "姓名", "性别", "年龄", "电话", "地址");
//打印数据
printf("%-20s %-5s %-5d %-12s %-10s\n", pc->data[pos].name, pc->data[pos].sex, pc->data[pos].age, pc->data[pos].tele, pc->data[pos].addr);
}
}
//修改联系人
void ModifyContact(contact* pc)
{
if (pc->sz == 0)
{
printf("通讯录为空,无法修改\n");
return;
}
char name[MAX_NAME] = { 0 };
printf("请输入名字:>");
scanf("%s", name);
int pos = FindContact(pc, name);
if (pos == -1)
{
printf("找不到此联系人\n");
return;
}
else
{
printf("请输入姓名:>");
scanf("%s", pc->data[pos].name);
printf("请输入性别:>");
scanf("%s", pc->data[pos].sex);
printf("请输入年龄:>");
scanf("%d", &(pc->data[pos].age));
printf("请输入电话:>");
scanf("%s", pc->data[pos].tele);
printf("请输入地址:>");
scanf("%s", pc->data[pos].addr);
printf("修改完毕\n");
}
}
函数定义
//初始化通讯录
void InitContact(contact* pc);
//添加联系人
void AddContact(contact* pc);
//打印通讯录
void PrintContact(const contact* pc);
//删除联系人方式
void DelContact(contact* pc);
//查找联系人
void SearchContact(const contact* pc);
//修改联系人
void ModifyContact(contact* pc);
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/liyongzhen2004/2022.10.24.git
git@gitee.com:liyongzhen2004/2022.10.24.git
liyongzhen2004
2022.10.24
c语言每日练习
master

搜索帮助