用c语言设计一个通信录,设定包含姓名和电话号码两个成员的结构体类型,存储通信信息,以“#”结束输入,并且可对输入的数据进行查找(按姓名或电话号码)。
时间: 2023-05-21 10:04:34 浏览: 60
通信录”为主菜单,包括添加联系人、删除联系人、查找联系人、显示所有联系人和退出系统五个功能选项,并使用文件储存相关数据。
设计思路:
1. 定义结构体类型,包含姓名和电话号码两个成员。
2. 设计主菜单,可以通过输入数字选择相应的功能。
3. 对于添加联系人功能,先通过输入来获取用户输入的姓名和电话号码,再将其存入文件中。
4. 对于删除联系人功能,先读取文件中所有联系人信息,再通过输入要删除的联系人姓名,将目标联系人的信息从文件中删除。
5. 对于查找联系人功能,先读取文件中所有联系人信息,再通过输入要查找的联系人姓名,将目标联系人的信息显示在屏幕上。
6. 对于显示所有联系人功能,直接读取文件中所有联系人信息,并将其显示在屏幕上。
7. 对于退出系统功能,直接退出程序。
综上所述,可以通过上述设计思路实现一个简单的通信录系统。
相关问题
用c语言设计一个通信录,设定包含姓名和电话号码两个成员的结构体类型,存储通信信息,以“#”结束输入,并且可对输入的据进行查找(按姓名或电话号码)
通信录”为标题,提供菜单选项,包括添加、删除、查找、修改、显示通信录和退出等功能,并使用文件读写操作将通信录信息保存到磁盘上。
要设计一个通信录,首先需要定义一个通信信息的结构体,包含姓名和电话号码两个成员。可以使用如下定义:
```
struct contact {
char name[30];
char phone_number[20];
};
```
接下来,要考虑如何实现通信录的功能。一个基本的实现可以提供以下菜单选项:
```
===========================
通信录管理系统
===========================
1、添加通信信息
2、删除通信信息
3、查找通信信息
4、修改通信信息
5、显示通信录
6、退出
===========================
请选择操作:
```
选项1:添加通信信息,可以通过让用户输入姓名和电话号码,并将它们保存到一个 contact 结构体中,再将这个结构体保存到一个数组中来实现。
选项2:删除通信信息,可以让用户输入要删除的联系人的姓名或电话号码,并遍历通信录数组,找到匹配的项并删除它。
选项3:查找通信信息,可以让用户输入要查找的联系人的姓名或电话号码,并遍历通信录数组,找到匹配的项并显示它。
选项4:修改通信信息,可以让用户输入要修改的联系人的姓名或电话号码,并遍历通信录数组,找到匹配的项后,让用户输入新的姓名和电话号码,并更新结构体中的成员。
选项5:显示通信录,可以遍历通信录数组,显示所有联系人的姓名和电话号码。
选项6:退出,就是结束程序。
最后,为了将通信录信息保存到磁盘上,可以使用文件读写操作。在程序启动时,可以从文件中读取通信录信息,并在程序结束时将修改后的通信录信息写回文件中。这里可以使用 fopen、fread、fwrite 和 fclose 等函数实现。
用c语言,设计一个通信录,设定包含姓名和电话号码两个成员的结构体类型,存储通信信息,以“#”结束输入,并且可对输入的数据进行查找(按姓名或电话号码)。
通信录”的形式展现出来。
要设计一个通信录,需要先定义一个结构体类型,包含姓名和电话号码两个成员:
```c
struct contact {
char name[20];
char phone[15];
};
```
接着,需要定义一个数组,用于存储多个联系人的信息:
```c
#define MAX_CONTACTS 100
struct contact contacts[MAX_CONTACTS];
int num_contacts = 0;
```
然后,需要实现几个函数,用于添加联系人、删除联系人、查找联系人和展示通信录:
```c
void add_contact() {
if (num_contacts == MAX_CONTACTS) {
printf("通信录已满,无法添加联系人。\n");
return;
}
struct contact c;
printf("请输入联系人姓名:");
scanf("%s", c.name);
printf("请输入联系人电话号码:");
scanf("%s", c.phone);
contacts[num_contacts++] = c;
printf("联系人已添加。\n");
}
void delete_contact() {
char name[20];
int i, found = 0;
printf("请输入要删除的联系人姓名:");
scanf("%s", name);
for (i = 0; i < num_contacts; i++) {
if (strcmp(contacts[i].name, name) == 0) {
found = 1;
break;
}
}
if (found) {
for (; i < num_contacts - 1; i++) {
contacts[i] = contacts[i + 1];
}
num_contacts--;
printf("联系人已删除。\n");
} else {
printf("未找到该联系人。\n");
}
}
void find_contact() {
char name[20];
int i, found = 0;
printf("请输入要查找的联系人姓名:");
scanf("%s", name);
for (i = 0; i < num_contacts; i++) {
if (strcmp(contacts[i].name, name) == 0) {
printf("姓名:%s,电话:%s\n", contacts[i].name, contacts[i].phone);
found = 1;
}
}
if (!found) {
printf("未找到该联系人。\n");
}
}
void show_contacts() {
int i;
printf("当前通信录中共有 %d 个联系人:\n", num_contacts);
for (i = 0; i < num_contacts; i++) {
printf("%d. 姓名:%s,电话:%s\n", i + 1, contacts[i].name, contacts[i].phone);
}
}
```
最后,需要实现一个主函数,用于调用这些函数:
```c
int main() {
int choice;
while (1) {
printf("请选择要执行的操作:\n");
printf("1. 添加联系人\n");
printf("2. 删除联系人\n");
printf("3. 查找联系人\n");
printf("4. 展示通信录\n");
printf("5. 退出程序\n");
printf("请选择:");
scanf("%d", &choice);
switch (choice) {
case 1:
add_contact();
break;
case 2:
delete_contact();
break;
case 3:
find_contact();
break;
case 4:
show_contacts();
break;
case 5:
return 0;
default:
printf("无效选项,请重新输入。\n");
}
}
}
```
这样,一个简单的通信录就完成了。用户可以在程序中添加、删除、查找和展示多个联系人的信息,方便管理和使用。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)