6. 使用数组保存书、CD、磁带等信息,实现插入、删除、查找功能。输入、删除时,要显示操作正确与否的信息;查找时按关键字值进行查找,并显示查找结果
时间: 2023-07-10 20:13:15 浏览: 49
好的,这是一个非常常见的数据结构问题,我可以给你提供一个简单的实现思路。首先,我们可以定义一个结构体来表示一本书、一张CD、一盘磁带等信息,如下所示:
```c++
struct Item {
string name; // 物品名称
string type; // 物品类型(书、CD、磁带等)
string author; // 作者(仅针对书籍)
string artist; // 艺术家(仅针对CD和磁带)
int year; // 出版年份
};
```
接下来,我们可以使用一个动态数组来存储所有物品的信息:
```c++
vector<Item> items;
```
这个数组中的每个元素都是一个 `Item` 结构体。接下来,我们可以实现插入、删除和查找等功能。
1. 插入功能
插入功能可以使用 `push_back` 方法,将一个新的 `Item` 结构体添加到数组的末尾即可:
```c++
void insertItem(Item item) {
items.push_back(item);
cout << "插入成功!" << endl;
}
```
2. 删除功能
删除功能可以使用 `erase` 方法,将数组中指定位置的元素删除即可:
```c++
void deleteItem(int index) {
if (index < 0 || index >= items.size()) {
cout << "删除失败,下标越界!" << endl;
return;
}
items.erase(items.begin() + index);
cout << "删除成功!" << endl;
}
```
需要注意的是,这里需要判断输入的下标是否越界。
3. 查找功能
查找功能可以使用循环遍历整个数组,按照关键字值进行查找,找到后返回找到的位置即可:
```c++
int searchItem(string name) {
for (int i = 0; i < items.size(); i++) {
if (items[i].name == name) {
return i;
}
}
return -1; // 没有找到,返回 -1
}
```
需要注意的是,这里返回的是找到的位置,如果没有找到则返回 -1。
以上是一个简单的实现思路,你可以根据需求进行修改、完善。
阅读全文