我C语言设计一个通讯录管理系统1)设计适合的数据结构用于存储通讯录的各种相关信息:学号,姓名,分数等。 (2)查找功能:按照关键字查找需要的通讯录,查找成功后可以修改记录的相关项。 (3)增加与删除功能:根据某个关键字增加通讯录信
时间: 2024-12-23 17:18:21 浏览: 8
在C语言中设计一个通讯录管理系统,你可以采用以下几个步骤:
1) 数据结构设计:
- 使用结构体(struct)作为基本数据单元,定义名为`Contact`的结构体,包含如下的字段:
```c
typedef struct {
int id; // 学号
char name[50]; // 姓名
float score; // 分数
} Contact;
```
这样可以方便地存储每个联系人的信息。
2) 查找功能:
- 实现一个函数`find_contact(char* keyword, Contact contacts[], int count)`,该函数接收一个关键词和一个通讯录数组,通过遍历数组,找到匹配关键词的联系人,如果找到则返回对应的索引,找不到则返回-1。如果找到并要修改记录,可以提供另一个修改函数`update_contact(int index, Contact* updated_contact)`。
```c
int find_contact(char* keyword, Contact contacts[], int count) {
for (int i = 0; i < count; i++) {
if (strstr(contacts[i].name, keyword)) return i;
}
return -1;
}
void update_contact(int index, Contact* contact) {
/* 修改特定索引处的联系人信息 */
// 如:contact[index].score = new_score;
}
```
3) 增加与删除功能:
- `add_contact(Contact* contacts, int* count, Contact new_contact)` 函数接受通讯录数组、当前元素计数和新添加的联系人,将新联系人插入到适当位置并将计数更新。
- `delete_contact(int index, Contact contacts[], int* count)` 删除指定索引的联系人,并调整后续元素的索引以及计数。
```c
void add_contact(Contact* contacts, int* count, Contact new_contact) {
*count += 1;
contacts[*count] = new_contact;
}
void delete_contact(int index, Contact contacts[], int* count) {
memmove(&contacts[index], &contacts[index + 1], (*count - index - 1) * sizeof(Contact));
*count--;
}
```
阅读全文