定义一个包含图书信息(书号、书名、价格)的顺序表,读入相应的图书数据来完成图书信息表的创建。然后,统计图书表中的图书个数,实现插入删除排序的功能
时间: 2024-06-13 21:04:49 浏览: 118
数据结构:定义一个包含学生信息(学号、姓名、成绩)的顺序表_数据结构
5星 · 资源好评率100%
定义一个包含图书信息(书号、书名、价格)的顺序表,读入相应的图书数据来完成图书信息表的创建,可以按照以下步骤进行:
```C++
//定义结构体
struct Book{
int bookNum; //书号
string bookName; //书名
double price; //价格
};
//定义顺序表
const int MAXSIZE = 100; //最大容量
struct SeqList{
Book data[MAXSIZE]; //存储数据的数组
int length; //当前长度
};
//创建图书信息表
void createList(SeqList &L){
cout << "请输入图书个数:";
cin >> L.length;
for(int i=0; i<L.length; i++){
cout << "请输入第" << i+1 << "本书的信息(书号 书名 价格):";
cin >> L.data[i].bookNum >> L.data[i].bookName >> L.data[i].price;
}
}
```
统计图书表中的图书个数,可以按照以下步骤进行:
```C++
//统计图书个数
int countBook(SeqList L){
return L.length;
}
```
实现插入删除排序的功能,可以按照以下步骤进行:
```C++
//插入图书信息
bool insertBook(SeqList &L, int pos, Book b){
if(pos<1 || pos>L.length+1 || L.length==MAXSIZE){
return false;
}
for(int i=L.length-1; i>=pos-1; i--){
L.data[i+1] = L.data[i];
}
L.data[pos-1] = b;
L.length++;
return true;
}
//删除图书信息
bool deleteBook(SeqList &L, int pos){
if(pos<1 || pos>L.length){
return false;
}
for(int i=pos-1; i<L.length-1; i++){
L.data[i] = L.data[i+1];
}
L.length--;
return true;
}
//按书号排序
void sortBook(SeqList &L){
for(int i=0; i<L.length-1; i++){
for(int j=0; j<L.length-i-1; j++){
if(L.data[j].bookNum > L.data[j+1].bookNum){
Book temp = L.data[j];
L.data[j] = L.data[j+1];
L.data[j+1] = temp;
}
}
}
}
```
相关问题:
阅读全文