现有3本图书,每本图书的信息包括:书号、书名、作者、价格。 (1)编写input函数,实现从键盘输入若干本图书信息,存放在结构体数组中。 (2)编写output函数,遍历结构体数组,输出所有图书信息。 (3)编写findBookByID函数,实现按书号检索图书。 (4)编写findBookByName函数,实现按书名检索图书。 目前,已编写完成main函数、input函数和findBookByName函数,请编程实现output函数和findBookByID函数。程序结构及具体要求如下
时间: 2023-08-01 22:11:06 浏览: 166
程序结构:
```
#include <stdio.h>
#include <string.h>
#define MAX_BOOKS 100 // 最多存储100本图书
struct Book {
char id[20]; // 书号
char name[50]; // 书名
char author[20]; // 作者
float price; // 价格
};
struct Book books[MAX_BOOKS]; // 存储图书信息的结构体数组
int bookCount = 0; // 已经输入的图书数量
void input(); // 输入图书信息的函数
void output(); // 输出图书信息的函数
struct Book* findBookByID(char* id); // 按书号查找图书的函数
struct Book* findBookByName(char* name); // 按书名查找图书的函数
int main() {
input(); // 输入图书信息
output(); // 输出图书信息
char id[20];
printf("请输入要查找的书号:");
scanf("%s", id);
struct Book* book = findBookByID(id);
if (book == NULL) {
printf("没有找到该书号对应的图书!\n");
} else {
printf("找到了该书号对应的图书,书名:%s,作者:%s,价格:%.2f。\n", book->name, book->author, book->price);
}
char name[50];
printf("请输入要查找的书名:");
scanf("%s", name);
book = findBookByName(name);
if (book == NULL) {
printf("没有找到该书名对应的图书!\n");
} else {
printf("找到了该书名对应的图书,书号:%s,作者:%s,价格:%.2f。\n", book->id, book->author, book->price);
}
return 0;
}
void input() {
// 略
}
void output() {
printf("所有图书信息如下:\n");
for (int i = 0; i < bookCount; i++) {
printf("书号:%s,书名:%s,作者:%s,价格:%.2f。\n", books[i].id, books[i].name, books[i].author, books[i].price);
}
}
struct Book* findBookByID(char* id) {
for (int i = 0; i < bookCount; i++) {
if (strcmp(books[i].id, id) == 0) {
return &books[i];
}
}
return NULL;
}
struct Book* findBookByName(char* name) {
for (int i = 0; i < bookCount; i++) {
if (strcmp(books[i].name, name) == 0) {
return &books[i];
}
}
return NULL;
}
```
要求:
1. 在output函数中,使用for循环遍历books数组,输出所有图书信息,格式为“书号:%s,书名:%s,作者:%s,价格:%.2f。”,其中%s和%.2f分别表示字符串和浮点数的输出格式。
2. 在findBookByID函数中,使用for循环遍历books数组,查找id与参数id相等的图书,如果找到了,返回该图书的地址;否则返回NULL。
3. 在main函数中,先调用findBookByID函数查找书号为id的图书,如果找到了,输出该图书的信息;否则输出“没有找到该书号对应的图书!”;然后调用findBookByName函数查找书名为name的图书,如果找到了,输出该图书的信息;否则输出“没有找到该书名对应的图书!”