# 內容
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_PETS 100
typedef struct {
int id;
char name[50];
int age;
char features[100];
} Pet;
void initializePets(Pet pets[], int *numPets) {
*numPets = 0;
// 初始化寵物陣列
}
void addPet(Pet pets[], int *numPets, int id, const char *name, int age, const char *features) {
if (*numPets >= MAX_PETS) {
printf("寵物已達到最大數量,無法新增。\n");
return;
}
pets[*numPets].id = id;
strcpy(pets[*numPets].name, name);
pets[*numPets].age = age;
strcpy(pets[*numPets].features, features);
(*numPets)++;
printf("新增寵物成功。\n");
}
void removePet(Pet pets[], int *numPets, int id) {
int i, found = 0;
for (i = 0; i < *numPets; i++) {
if (pets[i].id == id) {
found = 1;
break;
}
}
if (found) {
// 將找到的寵物從陣列中刪除
for (; i < (*numPets - 1); i++) {
pets[i] = pets[i + 1];
}
(*numPets)--;
printf("刪除寵物成功。\n");
} else {
printf("找不到編號為 %d 的寵物。\n", id);
}
}
void searchPetByName(const Pet pets[], int numPets, const char *name) {
int i, found = 0;
for (i = 0; i < numPets; i++) {
if (strcmp(pets[i].name, name) == 0) {
found = 1;
printf("找到寵物:\n");
printf("編號:%d\n", pets[i].id);
printf("名字:%s\n", pets[i].name);
printf("年齡:%d\n", pets[i].age);
printf("特徵:%s\n", pets[i].features);
break;
}
}
if (!found) {
printf("找不到名字為 %s 的寵物。\n", name);
}
}
void searchPetById(const Pet pets[], int numPets, int id) {
int i, found = 0;
for (i = 0; i < numPets; i++) {
if (pets[i].id == id) {
found = 1;
printf("找到寵物:\n");
printf("編號:%d\n", pets[i].id);
printf("名字:%s\n", pets[i].name);
printf("年齡:%d\n", pets[i].age);
printf("特徵:%s\n", pets[i].features);
break;
}
}
if (!found) {
printf("找不到編號為 %d 的寵物。\n", id);
}
}
void searchPetByAge(const Pet pets[], int numPets, int age) {
int i, found = 0;
for (i = 0; i < numPets; i++) {
if (pets[i].age == age) {
found = 1;
printf("找到寵物:\n");
printf("編號:%d\n", pets[i].id);
printf("名字:%s\n", pets[i].name);
printf("年齡:%d\n", pets[i].age);
printf("特徵:%s\n", pets[i].features);
}
}
if (!found) {
printf("找不到年齡為 %d 的寵物。\n", age);
}
}
void searchPetByFeatures(const Pet pets[], int numPets, const char *features) {
int i, found = 0;
for (i = 0; i < numPets; i++) {
if (strstr(pets[i].features, features) != NULL) {
found = 1;
printf("找到寵物:\n");
printf("編號:%d\n", pets[i].id);
printf("名字:%s\n", pets[i].name);
printf("年齡:%d\n", pets[i].age);
printf("特徵:%s\n", pets[i].features);
}
}
if (!found) {
printf("找不到具有特徵 %s 的寵物。\n", features);
}
}
int main() {
Pet pets[MAX_PETS];
int numPets = 0;
int choice, id, age;
char name[50], features[100];
initializePets(pets, &numPets);
do {
printf("\n--- 寵物店管理系統 ---\n");
printf("1. 新增寵物\n");
printf("2. 刪除寵物\n");
printf("3. 透過姓名尋找寵物\n");
printf("4. 透過編號尋找寵物\n");
printf("5. 透過年齡尋找寵物\n");
printf("6. 透過特徵尋找寵物\n");
printf("0. 離開\n");
printf("請選擇操作:");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("輸入寵物的編號:");
scanf("%d", &id);
printf("輸入寵物的名字:");
scanf("%s", name);
printf("輸入寵物的年齡:");
scanf("%d", &age);
printf("輸入寵物的特徵:");
scanf("%s", features);
addPet(pets, &numPets, id, name, age, features);
break;
case 2:
printf("輸入要刪除的寵物編號:");
scanf("%d", &id);
removePet(pets, &numPets, id);
break;
case 3:
printf("輸入要搜尋的寵物名字:");
scanf("%s", name);
searchPetByName(pets, numPets, name);
break;
case 4:
printf("輸入要搜尋的寵物編號:");
scanf("%d", &id);
searchPetById(pets, numPets, id);
break;
case 5:
printf("輸入要搜尋的寵物年齡:");
scanf("%d", &age);
searchPetByAge(pets, numPets, age);
break;
case 6:
printf("輸入要搜尋的寵物特徵:");
scanf("%s", features);
searchPetByFeatures(pets, numPets, features);
break;
case 0:
printf("程式結束。\n");
break;
default:
printf("無效的選擇。\n");
break;
}
} while (choice != 0);
return 0;
}
```
- 在此程式中使用Pet結構來表示每隻寵物的資訊,包含編號、名字、年齡和特徵,管理員可以透過不同的選單進行操作,進行管理的動作。