C语言 设计一个图书馆信息结构体,包括有,书号,书名,作者,出版社,出版日期,定价等信息。通过键盘键入结构体信息,并实现所有信息的输出。
时间: 2023-08-17 17:05:11 浏览: 589
好的,这是一个简单的 C 语言程序,可以实现你的需求:
```c
#include <stdio.h>
#define MAX_BOOKS 50
// 定义图书馆信息结构体
struct Book {
int book_id;
char book_name[50];
char author[50];
char publisher[50];
char publish_date[20];
float price;
};
int main() {
struct Book books[MAX_BOOKS];
int num_books, i;
// 从键盘读取图书数量
printf("请输入图书数量(最多 %d 本):", MAX_BOOKS);
scanf("%d", &num_books);
// 从键盘读取每本书的信息
for (i = 0; i < num_books; i++) {
printf("请输入第 %d 本书的信息:\n", i + 1);
printf("书号:");
scanf("%d", &books[i].book_id);
printf("书名:");
scanf("%s", books[i].book_name);
printf("作者:");
scanf("%s", books[i].author);
printf("出版社:");
scanf("%s", books[i].publisher);
printf("出版日期:");
scanf("%s", books[i].publish_date);
printf("定价:");
scanf("%f", &books[i].price);
}
// 输出所有图书信息
printf("图书馆信息如下:\n");
for (i = 0; i < num_books; i++) {
printf("第 %d 本书信息:\n", i + 1);
printf("书号:%d\n", books[i].book_id);
printf("书名:%s\n", books[i].book_name);
printf("作者:%s\n", books[i].author);
printf("出版社:%s\n", books[i].publisher);
printf("出版日期:%s\n", books[i].publish_date);
printf("定价:%.2f\n", books[i].price);
}
return 0;
}
```
在程序中,我们使用了 `struct Book` 来定义了一个图书馆信息结构体,包含了书号、书名、作者、出版社、出版日期和定价等信息。在 `main` 函数中,我们首先定义了一个大小为 `MAX_BOOKS` 的 `books` 数组,用于存储所有的图书信息。然后,从键盘读取图书数量 `num_books`,并使用 `for` 循环读取每本书的信息,并将其存储到 `books` 数组中。最后,再使用 `for` 循环输出所有的图书信息。
需要注意的是,程序中使用了 `scanf` 函数来从键盘读取数据,但是这种方式并不安全,容易导致缓冲区溢出等问题。更好的做法是使用 `fgets` 函数来读取字符串,并使用 `sscanf` 函数来解析数据。
阅读全文