用c语言编程实现设计一个实用的小型物流地址查询程序,具有添加,查询和删除功能。由地点的名称,地点的位置,联系电话1,电话号码2,电子邮箱组成,地点名称可以由字符和数字混合编码。电话号码可由字符和数字组成。实现功能: (1)系统以菜单方式工作 (2)信息录入功能 (3)信息浏览功能 (4)信息查询功能 (5)信息修改功能 (6)系统退出功能
时间: 2024-02-23 14:57:43 浏览: 20
好的,我可以帮你解答这个问题。这是一个比较复杂的程序,需要设计多个函数和数据结构来实现。以下是一个简单的实现思路:
1. 设计数据结构
我们可以设计一个结构体来存储每一个地点的信息,例如:
```c
struct Address {
char name[50]; // 地点的名称
char location[100]; // 地点的位置
char phone1[20]; // 联系电话1
char phone2[20]; // 电话号码2
char email[50]; // 电子邮箱
};
```
2. 实现添加功能
添加功能可以让用户输入每一个地点的信息,然后将其存储到一个数组中。可以使用一个变量来记录数组中已经存储了多少个地点。
```c
void add_address(struct Address addresses[], int *count) {
printf("请输入地点名称:");
scanf("%s", addresses[*count].name);
printf("请输入地点位置:");
scanf("%s", addresses[*count].location);
printf("请输入联系电话1:");
scanf("%s", addresses[*count].phone1);
printf("请输入电话号码2:");
scanf("%s", addresses[*count].phone2);
printf("请输入电子邮箱:");
scanf("%s", addresses[*count].email);
(*count)++;
printf("添加成功!\n");
}
```
3. 实现查询功能
查询功能可以根据地点名称或者电话号码来查找对应的地点信息。可以使用一个循环来遍历数组,找到匹配的地点并打印出来。
```c
void search_address(struct Address addresses[], int count) {
char keyword[50];
printf("请输入查询关键字:");
scanf("%s", keyword);
printf("查询结果如下:\n");
for (int i = 0; i < count; i++) {
if (strcmp(addresses[i].name, keyword) == 0 || strcmp(addresses[i].phone2, keyword) == 0) {
printf("地点名称:%s\n", addresses[i].name);
printf("地点位置:%s\n", addresses[i].location);
printf("联系电话1:%s\n", addresses[i].phone1);
printf("电话号码2:%s\n", addresses[i].phone2);
printf("电子邮箱:%s\n", addresses[i].email);
}
}
}
```
4. 实现删除功能
删除功能可以让用户输入要删除的地点名称或者电话号码,然后找到对应的地点并将其从数组中删除。注意,删除一个元素后,需要将后面的元素向前移动一个位置。
```c
void delete_address(struct Address addresses[], int *count) {
char keyword[50];
printf("请输入要删除的地点名称或电话号码:");
scanf("%s", keyword);
for (int i = 0; i < *count; i++) {
if (strcmp(addresses[i].name, keyword) == 0 || strcmp(addresses[i].phone2, keyword) == 0) {
for (int j = i; j < *count - 1; j++) {
addresses[j] = addresses[j+1];
}
(*count)--;
printf("删除成功!\n");
return;
}
}
printf("未找到匹配的地点!\n");
}
```
5. 实现修改功能
修改功能可以让用户输入要修改的地点名称或者电话号码,然后找到对应的地点并让用户输入新的信息。注意,修改操作和添加操作类似,也需要使用数组下标来定位要修改的元素。
```c
void modify_address(struct Address addresses[], int count) {
char keyword[50];
printf("请输入要修改的地点名称或电话号码:");
scanf("%s", keyword);
for (int i = 0; i < count; i++) {
if (strcmp(addresses[i].name, keyword) == 0 || strcmp(addresses[i].phone2, keyword) == 0) {
printf("请输入新的地点名称:");
scanf("%s", addresses[i].name);
printf("请输入新的地点位置:");
scanf("%s", addresses[i].location);
printf("请输入新的联系电话1:");
scanf("%s", addresses[i].phone1);
printf("请输入新的电话号码2:");
scanf("%s", addresses[i].phone2);
printf("请输入新的电子邮箱:");
scanf("%s", addresses[i].email);
printf("修改成功!\n");
return;
}
}
printf("未找到匹配的地点!\n");
}
```
6. 实现菜单和主函数
最后,我们需要编写一个菜单函数,让用户可以选择要执行的操作。主函数中可以定义一个数组来存储所有的地点信息,然后循环等待用户输入操作。
```c
void menu() {
printf("1. 添加地点\n");
printf("2. 查询地点\n");
printf("3. 删除地点\n");
printf("4. 修改地点\n");
printf("5. 退出程序\n");
}
int main() {
struct Address addresses[100];
int count = 0;
int choice;
while (1) {
menu();
printf("请输入要执行的操作:");
scanf("%d", &choice);
switch (choice) {
case 1:
add_address(addresses, &count);
break;
case 2:
search_address(addresses, count);
break;
case 3:
delete_address(addresses, &count);
break;
case 4:
modify_address(addresses, count);
break;
case 5:
printf("程序已退出!\n");
return 0;
default:
printf("无效的选择!\n");
}
}
}
```
以上就是一个简单的物流地址查询程序的实现。当然,这只是一个基础的实现,实际应用中可能需要更严谨的输入检查和错误处理,还需要考虑数据存储的方式和数据量的大小等问题。
相关推荐
![c](https://img-home.csdnimg.cn/images/20210720083646.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)