用C语言写一个系统,根据需求,系统所包含的基本信息包括图书的书名,作者,ISBN 号. 系统应实现以下功能(1) 图书信息的输入(2) 图书信息的输出 (3) 图书信息的查找(根据书名、作者、ISBN 号分别查找); (4) 添加新的图书 (5) 删除图书信息;
时间: 2025-01-04 10:39:43 浏览: 11
要在C语言中编写这样一个图书管理系统,我们可以使用数组或者链表作为数据结构来存储书籍信息。以下是基于数组的简单实现:
首先,定义一个图书结构体(Book),包含书名、作者和ISBN号:
```c
typedef struct Book {
char title[100];
char author[100];
char isbn[13];
} Book;
```
接下来,我们需要几个全局变量来存储书籍信息,比如数组`books`和一些辅助计数器。
1. **图书信息输入/输出**:
- 输入:使用`scanf`从用户那里获取书名、作者和ISBN号,并添加到数组中。
- 输出:遍历数组,使用`printf`打印每本书的信息。
2. **图书信息查找**:
- 按照题目要求,可以编写三个函数分别对应三种查找方式:按书名查`searchByTitle()`, 按作者查`searchByAuthor()`, 和按ISBN查`searchByISBN()`。
3. **添加新书**:
- 创建一个新的`Book`结构体实例,然后添加到`books`数组的末尾。
4. **删除图书**:
- 需要记录当前书籍的数量,可以有一个`numBooks`变量。在删除时,如果数组未满,可以将最后一个元素移动到删除位置,然后`numBooks--`。
下面是一个简化的伪代码样例:
```c
int numBooks = 0;
Book books[MAX_BOOKS];
void inputBook() {
Book newBook;
// 输入书名、作者和ISBN
// books[numBooks++] = newBook;
}
void outputBooks() {
for (int i = 0; i < numBooks; i++) {
printf("书名: %s, 作者: %s, ISBN: %s\n", books[i].title, books[i].author, books[i].isbn);
}
}
// 略去查找函数和添加、删除函数的实现...
int main() {
while (true) {
printf("1. 输入\n2. 输出\n3. 查找\n4. 添加\n5. 删除\n6. 退出\n");
int choice;
scanf("%d", &choice);
switch (choice) {
// 实现各功能对应的代码...
}
}
}
```
阅读全文