编程实现图书信息查询,要求从键盘录入书名,作者名,价格(最多30本,具体人数由键盘输入确定)请用数组编程,实现对图书按照书名查询,并输出查询后的书名,作者和价格信息,如果没有找到该信息请输出:“无此图
时间: 2023-05-31 07:17:56 浏览: 817
### 回答1:
书信息”。
可以使用以下代码实现:
#include <stdio.h>
#include <string.h>
#define MAX_BOOKS 30
#define MAX_NAME 50
#define MAX_AUTHOR 30
struct Book {
char name[MAX_NAME];
char author[MAX_AUTHOR];
float price;
};
int main() {
struct Book books[MAX_BOOKS];
int num_books;
char search_name[MAX_NAME];
int i;
printf("请输入图书数量(最多%d本):", MAX_BOOKS);
scanf("%d", &num_books);
printf("请依次输入每本书的书名、作者和价格(用空格隔开):\n");
for (i = ; i < num_books; i++) {
scanf("%s %s %f", books[i].name, books[i].author, &books[i].price);
}
printf("请输入要查询的书名:");
scanf("%s", search_name);
for (i = ; i < num_books; i++) {
if (strcmp(books[i].name, search_name) == ) {
printf("书名:%s,作者:%s,价格:%.2f\n", books[i].name, books[i].author, books[i].price);
break;
}
}
if (i == num_books) {
printf("无此图书信息\n");
}
return ;
}
### 回答2:
这道题目需要用到数组来储存图书信息,同时还要使用循环语句和判断语句来实现查询功能。我们可以分步骤来完成这道题目。
第一步,先从键盘获取需要记录的图书数量,然后初始化一个大小为该数量的数组,用于存储图书信息。代码如下:
```python
n = int(input("请输入要记录的图书数量: "))
book_list = [None] * n # 初始化一个大小为n的数组
```
第二步,循环获取每本书的书名,作者和价格,并将其存储到数组中,代码如下:
```python
for i in range(n):
title = input("请输入第{0}本书的书名: ".format(i+1))
author = input("请输入{0}的作者名: ".format(title))
price = float(input("请输入{0}的价格: ".format(title)))
book_list[i] = [title, author, price] # 将书名,作者和价格存储到数组中
```
第三步,利用循环语句实现按照书名查询,并输出查询后的书名,作者和价格信息。具体操作是,从键盘输入需要查询的书名,然后在数组中查找是否有该书名,如果有则输出该书的作者和价格,如果没有则输出"无此图"。代码如下:
```python
while True:
query_title = input("请输入要查询的书名(输入q退出): ")
if query_title == 'q':
break
else:
found = False # 标记变量,判断是否找到该书
for book in book_list:
if book[0] == query_title:
found = True
print("查询结果:书名:{0},作者:{1},价格:{2}".format(book[0], book[1], book[2]))
break
if not found:
print("无此图")
```
综上所述,通过以上三个步骤,我们就可以编写出一个简单的图书信息查询程序。在实际编写过程中,还可以加入一些容错处理,比如输入的价格不是合法数值等情况。
### 回答3:
图书信息查询是一个常见的功能,我们可以使用数组来存储图书的相关信息。在该程序中,我们需要使用一个二维数组来存储每一本书的信息,数组的第一维表示每一本书,第二维表示每一本书的信息,包括书名,作者和价格。
首先,我们需要从键盘上输入图书信息,包括书名,作者和价格。我们可以使用一个for循环来实现,循环次数由键盘输入确定,根据循环次数动态分配数组大小,然后依次输入每一本书的信息,并存储在数组中。具体代码如下:
```c
#include<stdio.h>
#include<string.h>
#define MAX 30
struct book {
char name[50];
char author[50];
double price;
};
int main() {
int n;
printf("请输入图书的数量:");
scanf("%d", &n);
struct book books[MAX][3];
for (int i = 0; i < n; i++) {
printf("请输入第%d本书的书名:", i + 1);
scanf("%s", books[i][0].name);
printf("请输入第%d本书的作者:", i + 1);
scanf("%s", books[i][1].author);
printf("请输入第%d本书的价格:", i + 1);
scanf("%lf", &books[i][2].price);
}
return 0;
}
```
接下来,我们需要实现按照书名查询图书信息的功能。我们可以利用一个for循环遍历整个数组,查找是否有与输入书名相同的书,并输出该书的作者和价格信息。如果没有找到该书,则输出“无此图”信息。具体代码如下:
```c
int found = 0;
char bookname[50];
printf("请输入您要查询的书名:");
scanf("%s", bookname);
for (int i = 0; i < n; i++) {
if (strcmp(books[i][0].name, bookname) == 0) {
printf("书名:%s 作者:%s 价格:%lf\n", books[i][0].name, books[i][1].author, books[i][2].price);
found = 1;
break;
}
}
if (!found) printf("无此图\n");
```
在这段代码中,我们使用了strcmp函数来比较两个字符串是否相等,如果相等,则表示找到了该书,并输出该书的相关信息。如果没有找到该书,则found的值为0,经过判断后,输出“无此图”的信息。
综上所述,我们可以使用数组来实现图书信息查询的功能,并能够根据输入的书名查询图书信息。这样的程序可以方便用户快速查找图书信息,提高办公效率。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![application/x-zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)