基于顺序存储结构的图书信息表的创建和输出c语言
时间: 2023-12-19 15:06:23 浏览: 96
代码如下:
```c
#include <stdio.h>
#include <string.h>
#define MAX_BOOKS 100 // 最多存储100本书籍信息
// 图书信息结构体
typedef struct BookInfo {
char title[50]; // 书名
char author[30]; // 作者
char publisher[30]; // 出版社
int year; // 出版年份
double price; // 价格
} BookInfo;
// 存储图书信息的数组
BookInfo books[MAX_BOOKS];
// 当前存储的书籍数量
int bookCount = 0;
// 添加图书信息
void addBook()
{
if (bookCount == MAX_BOOKS) {
printf("已达到最大存储量,无法继续添加!\n");
return;
}
BookInfo book;
printf("请输入书名:");
scanf("%s", book.title);
printf("请输入作者:");
scanf("%s", book.author);
printf("请输入出版社:");
scanf("%s", book.publisher);
printf("请输入出版年份:");
scanf("%d", &book.year);
printf("请输入价格:");
scanf("%lf", &book.price);
books[bookCount++] = book; // 存储图书信息
printf("添加成功!\n");
}
// 显示所有图书信息
void showBooks()
{
if (bookCount == 0) {
printf("当前没有存储任何书籍信息!\n");
return;
}
printf("书名\t\t作者\t\t出版社\t\t出版年份\t价格\n");
printf("------------------------------------------------------------\n");
for (int i = 0; i < bookCount; i++) {
printf("%s\t\t%s\t\t%s\t\t%d\t\t%.2lf\n", books[i].title, books[i].author, books[i].publisher, books[i].year, books[i].price);
}
}
int main()
{
int option;
do {
printf("请选择操作:\n");
printf("1. 添加图书信息\n");
printf("2. 显示所有图书信息\n");
printf("0. 退出\n");
scanf("%d", &option);
switch (option) {
case 1:
addBook();
break;
case 2:
showBooks();
break;
case 0:
printf("谢谢使用,再见!\n");
break;
default:
printf("无效操作,请重新输入!\n");
break;
}
} while (option != 0);
return 0;
}
```
该代码实现了基于顺序存储结构的图书信息表的创建和输出,可以通过添加图书信息和显示所有图书信息两个操作来实现。其中,图书信息使用结构体来存储,每次添加图书信息时将其存储在数组中,显示所有图书信息时遍历数组输出即可。
阅读全文