函数void in(Book book[],int n)的功能是输入n本图书信息存储到book数组里,输入的图书信息依次包括图书编号、图书名称、存书量
时间: 2024-03-10 21:46:58 浏览: 36
函数void in(Book book[],int n)的功能是输入n本图书信息存储到book数组里,输入的图书信息依次包括图书编号、图书名称、存书量。
具体实现可以用循环来输入每一本图书的信息,例如:
```
void in(Book book[], int n) {
for (int i = 0; i < n; i++) {
cout << "请输入第" << i+1 << "本图书的信息:" << endl;
cin >> book[i].id >> book[i].name >> book[i].quantity;
}
}
```
在上面的代码中,我们用循环逐一输入每一本图书的信息,每次输入完一个图书的信息之后,就将该图书的信息存储到数组中。这样,在函数执行完毕之后,数组 book 中就存储了 n 本图书的信息。其中,book[i].id、book[i].name 和 book[i].quantity 分别表示第 i 本图书的编号、名称和存书量。
相关问题
③实现输出图书信息列表的函数并调用 voidPrintBooks(Bookbooks[],intn){...}
在`printBooks`函数中,我们通常会遍历传入的`Book`数组,并将每个元素的信息打印出来。这是一个简单的实现例子,它假定数组直接包含了所有图书的信息:
```c
void printBooks(Book books[], int n) {
for (int i = 0; i < n; i++) {
printf("第%d本书 - ", i + 1); // ID
printf("名称: %s, ", books[i].name);
printf("作者: %s, ", books[i].author->name); // 通过作者指针获取名字
printf("类别号: %d, ", books[i].category);
printf("出版社: %s, ", books[i].publisher);
printf("出版时间: %s, ", ctime(&books[i].publish_date));
printf("价格: %.2f元\n", books[i].price);
}
}
// 调用函数
printBooks(books, sizeof(books) / sizeof(books[0]));
```
这个函数会按照数组中书本的顺序依次显示它们的信息。如果数组不是连续存储,而是通过其他数据结构连接起来,那么函数的实现可能会涉及到链表遍历或其他复杂操作。
(1)定义结构体类型book,使之包含每本图书的属性,成员包括书号(bookID,字符串)、书名(name,字符串)和价格(price,double型数值)。 (2)编写函数void input(book bs[], int n); 输入n本图书的价格。 (3)编写函数double average(book bs[], int n); 计算并返回n本图书的平均价格。 (4)编写函数int findMax(book bs[], int n),找出价格最高的图书下标并返回。 (5)编写函数void print(book bs[], int n); 以上述表格形式输出n本图书信息。 (6)编写函数void sort(book bs[], int n); 将n本图书按照价格排成升序。 提示:本函数中实现排序算法时,比较的是图书价格,交换的是结构体元素。 (7)在主函数中定义一个类型为book的具有4个元素的结构体数组books[],用上述列表的前两列中的数据初始化该数组(即初始化数组部分数据),价格将在input()函数中输入。 (8)在主函数中依次调用input()函数输入所有图书的价格,调用print()函数输出所有图书的完整信息,调用average()函数计算所有图书的平均价格然后在主函数中输出该平均价格,调用findMax()求出价格最高的图书的下标然后在主函数中输出该图书的书号、书名和价格,调用sort()函数将图书按照价格升序排序,最后再次调用print()函数输出排序后的所有图书信息。
```c++
#include <iostream>
#include <string>
using namespace std;
struct book {
string bookID;
string name;
double price;
};
void input(book bs[], int n) {
for(int i=0; i<n; i++) {
cout << "请输入第" << i+1 << "本书的价格:";
cin >> bs[i].price;
}
}
double average(book bs[], int n) {
double sum = 0;
for(int i=0; i<n; i++) {
sum += bs[i].price;
}
return sum/n;
}
int findMax(book bs[], int n) {
int maxIndex = 0;
for(int i=1; i<n; i++) {
if(bs[i].price > bs[maxIndex].price) {
maxIndex = i;
}
}
return maxIndex;
}
void print(book bs[], int n) {
cout << "书号\t\t书名\t\t价格" << endl;
for(int i=0; i<n; i++) {
cout << bs[i].bookID << "\t\t" << bs[i].name << "\t\t" << bs[i].price << endl;
}
}
void sort(book bs[], int n) {
for(int i=0; i<n-1; i++) {
for(int j=0; j<n-i-1; j++) {
if(bs[j].price > bs[j+1].price) {
swap(bs[j], bs[j+1]);
}
}
}
}
int main() {
book books[4] = {{"001", "C++ Primer", 78.9}, {"002", "Java核心技术", 65.4}, {"003", "Python编程从入门到实践", 49.8}, {"004", "数据结构与算法", 55.2}};
int n = 4;
input(books, n);
print(books, n);
cout << "平均价格为:" << average(books, n) << endl;
int maxIndex = findMax(books, n);
cout << "价格最高的图书为:" << books[maxIndex].bookID << " " << books[maxIndex].name << " " << books[maxIndex].price << endl;
sort(books, n);
cout << "排序后的图书信息为:" << endl;
print(books, n);
return 0;
}
```
阅读全文