用c语言实现设计一个实用的小型物流地址查询程序,具有添加,查询和删除功能。由地点的名称,地点的位置,联系电话1,电话号码2,电子邮箱组成,地点名称可以由字符和数字混合编码。电话号码可由字符和数字组成。实现功能: (1)系统以菜单方式工作 (2)信息录入功能 (3)信息浏览功能 (4)信息查询功能 (5)信息修改功能 (6)系统退出功能
时间: 2024-02-26 17:52:36 浏览: 21
好的,我会根据您的要求,为您解答这个问题。
以下是一个简单的小型物流地址查询程序的 C 语言代码,具有添加、查询和删除功能。
```c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX_SIZE 100
struct Address {
char name[20];
char location[40];
char phone1[20];
char phone2[20];
char email[30];
};
struct AddressBook {
struct Address addresses[MAX_SIZE];
int count;
};
void menu() {
printf("\n");
printf("1. 添加地址\n");
printf("2. 查询地址\n");
printf("3. 删除地址\n");
printf("4. 修改地址\n");
printf("5. 退出程序\n");
printf("\n");
}
void addAddress(struct AddressBook *book) {
if (book->count >= MAX_SIZE) {
printf("地址簿已满,无法添加地址!\n");
return;
}
struct Address newAddress;
printf("请输入地址名称:");
scanf("%s", newAddress.name);
printf("请输入地址位置:");
scanf("%s", newAddress.location);
printf("请输入联系电话1:");
scanf("%s", newAddress.phone1);
printf("请输入联系电话2:");
scanf("%s", newAddress.phone2);
printf("请输入电子邮箱:");
scanf("%s", newAddress.email);
book->addresses[book->count] = newAddress;
book->count++;
printf("地址添加成功!\n");
}
void searchAddress(struct AddressBook book) {
char name[20];
printf("请输入要查询的地址名称:");
scanf("%s", name);
int found = 0;
for (int i = 0; i < book.count; i++) {
if (strcmp(book.addresses[i].name, name) == 0) {
printf("地址名称:%s\n", book.addresses[i].name);
printf("地址位置:%s\n", book.addresses[i].location);
printf("联系电话1:%s\n", book.addresses[i].phone1);
printf("联系电话2:%s\n", book.addresses[i].phone2);
printf("电子邮箱:%s\n", book.addresses[i].email);
found = 1;
break;
}
}
if (!found) {
printf("未找到该地址!\n");
}
}
void deleteAddress(struct AddressBook *book) {
char name[20];
printf("请输入要删除的地址名称:");
scanf("%s", name);
int found = 0;
for (int i = 0; i < book->count; i++) {
if (strcmp(book->addresses[i].name, name) == 0) {
for (int j = i; j < book->count - 1; j++) {
book->addresses[j] = book->addresses[j + 1];
}
book->count--;
found = 1;
printf("地址删除成功!\n");
break;
}
}
if (!found) {
printf("未找到该地址!\n");
}
}
void modifyAddress(struct AddressBook *book) {
char name[20];
printf("请输入要修改的地址名称:");
scanf("%s", name);
int found = 0;
for (int i = 0; i < book->count; i++) {
if (strcmp(book->addresses[i].name, name) == 0) {
printf("请输入新的地址名称(或输入 ! 保持不变):");
scanf("%s", book->addresses[i].name);
printf("请输入新的地址位置(或输入 ! 保持不变):");
scanf("%s", book->addresses[i].location);
printf("请输入新的联系电话1(或输入 ! 保持不变):");
scanf("%s", book->addresses[i].phone1);
printf("请输入新的联系电话2(或输入 ! 保持不变):");
scanf("%s", book->addresses[i].phone2);
printf("请输入新的电子邮箱(或输入 ! 保持不变):");
scanf("%s", book->addresses[i].email);
found = 1;
printf("地址修改成功!\n");
break;
}
}
if (!found) {
printf("未找到该地址!\n");
}
}
int main() {
struct AddressBook book = { 0 };
int choice = 0;
while (1) {
menu();
printf("请输入菜单选项:");
scanf("%d", &choice);
switch (choice) {
case 1:
addAddress(&book);
break;
case 2:
searchAddress(book);
break;
case 3:
deleteAddress(&book);
break;
case 4:
modifyAddress(&book);
break;
case 5:
printf("谢谢使用!\n");
exit(0);
default:
printf("无效的菜单选项!\n");
break;
}
}
return 0;
}
```
这个程序包含一个 `Address` 结构体,它表示一个物流地址,包含名称、位置、联系电话1、联系电话2、电子邮箱等信息。`AddressBook` 结构体表示一个地址簿,包含多个物流地址。
程序中包含一个 `menu()` 函数,它打印菜单选项。在主函数中,使用一个 `while` 循环来重复显示菜单并等待用户输入选项。根据用户的选择,调用相应的函数来执行添加、查询、删除和修改操作。
函数 `addAddress()` 允许用户输入一个新的地址,并将其添加到地址簿中。函数 `searchAddress()` 允许用户输入一个地址名称,并在地址簿中查找该地址。如果找到该地址,函数将打印出其详细信息。函数 `deleteAddress()` 允许用户输入一个地址名称,并从地址簿中删除该地址。函数 `modifyAddress()` 允许用户输入一个地址名称,并允许用户修改该地址的详细信息。
这个程序使用 C 语言的结构体和函数来实现一个简单的物流地址查询系统,具有添加、查询和删除功能。