用c语言写一个手机通讯录系统加一个菜单函数
时间: 2024-10-10 13:09:45 浏览: 29
C语言实现一个简易通讯录
在C语言中编写一个简单的手机通讯录系统,我们首先需要创建一个数据结构来存储联系人信息,然后设计一个菜单函数,让用户可以选择添加、查看、删除或编辑联系人。下面是一个基础的示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义一个联系人结构体
typedef struct {
char name[50];
char phone_number[20];
} Contact;
// 联系人数组
Contact contacts[100];
// 添加联系人的函数
void add_contact() {
Contact new_contact;
printf("请输入联系人名字:");
fgets(new_contact.name, sizeof(new_contact.name), stdin);
printf("请输入联系电话:");
fgets(new_contact.phone_number, sizeof(new_contact.phone_number), stdin);
// 清除换行符
new_contact.phone_number[strlen(new_contact.phone_number) - 1] = '\0';
int index = 0; // 标记添加的位置
while (index < 100 && contacts[index].name != NULL) {
index++;
}
if (index == 100) {
printf("联系人列表已满,无法添加更多。\n");
} else {
contacts[index] = new_contact;
printf("联系人添加成功!\n");
}
}
// 查看联系人的函数
void view_contacts() {
for (int i = 0; i < 100; i++) {
if (contacts[i].name != NULL) {
printf("%s - %s\n", contacts[i].name, contacts[i].phone_number);
} else {
printf("空位...\n");
}
}
}
// 删除联系人的函数
void delete_contact() {
// 这里只是一个基本的示例,你需要输入索引来删除实际项目中
int index;
printf("请输入你要删除的联系人的索引:");
scanf("%d", &index);
if (index >= 0 && index < 100) {
if (contacts[index].name != NULL) {
contacts[index] = contacts[99]; // 将最后一个元素移到当前位置
contacts[99].name = NULL; // 清空最后一个元素
printf("联系人删除成功!\n");
} else {
printf("无效索引,没有找到联系人。\n");
}
} else {
printf("无效索引!\n");
}
}
// 主菜单函数
void menu() {
while (true) {
printf("\n手机通讯录菜单:\n");
printf("1. 添加联系人\n");
printf("2. 查看联系人\n");
printf("3. 删除联系人\n");
printf("4. 退出\n");
int choice;
printf("请选择操作:");
scanf("%d", &choice);
switch (choice) {
case 1:
add_contact();
break;
case 2:
view_contacts();
break;
case 3:
delete_contact();
break;
case 4:
printf("感谢使用!\n");
return;
default:
printf("无效选择,请重新选择。\n");
}
system("cls"); // 对于Windows,清空屏幕
}
}
int main() {
menu();
return 0;
}
```
在这个例子中,`menu()`函数包含了所有核心功能,并通过用户输入引导交互。请注意,这个程序没有处理输入验证,实际项目中需要对用户的输入做适当的错误检查。
阅读全文