用c语言写一个代码,这个代码用于查询图书馆书籍的信息:isbn号、图书名称、作者、出版社、价格、库存数量。并且以上信息会随图书的增加而增加、更新,随图书的减少而删除。其中包含了三本书的基础信息
时间: 2024-01-01 15:05:28 浏览: 538
好的,以下是一个用C语言编写的简单的图书馆管理系统,可以实现查询、添加、删除、修改图书信息的功能。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_BOOKS 100 // 最大书籍数量
#define MAX_LEN 50 // 字符串最大长度
// 书籍结构体
typedef struct Book {
char isbn[MAX_LEN];
char name[MAX_LEN];
char author[MAX_LEN];
char publisher[MAX_LEN];
float price;
int count;
} Book;
Book books[MAX_BOOKS]; // 书籍数组
int bookCount = 3; // 数组中初始的书籍数量
// 查找书籍
void searchBook(char isbn[]) {
int i;
for (i = 0; i < bookCount; i++) {
if (strcmp(books[i].isbn, isbn) == 0) {
printf("ISBN号:%s\n", books[i].isbn);
printf("书名:%s\n", books[i].name);
printf("作者:%s\n", books[i].author);
printf("出版社:%s\n", books[i].publisher);
printf("价格:%.2f元\n", books[i].price);
printf("库存数量:%d\n", books[i].count);
return;
}
}
printf("对不起,没有找到该书籍!\n");
}
// 添加书籍
void addBook(Book book) {
if (bookCount >= MAX_BOOKS) {
printf("对不起,书籍库已满,无法添加!\n");
return;
}
books[bookCount] = book;
bookCount++;
printf("书籍添加成功!\n");
}
// 删除书籍
void deleteBook(char isbn[]) {
int i, j;
for (i = 0; i < bookCount; i++) {
if (strcmp(books[i].isbn, isbn) == 0) {
for (j = i; j < bookCount - 1; j++) {
books[j] = books[j + 1];
}
bookCount--;
printf("书籍删除成功!\n");
return;
}
}
printf("对不起,没有找到该书籍!\n");
}
// 修改书籍
void modifyBook(char isbn[], Book newBook) {
int i;
for (i = 0; i < bookCount; i++) {
if (strcmp(books[i].isbn, isbn) == 0) {
books[i] = newBook;
printf("书籍修改成功!\n");
return;
}
}
printf("对不起,没有找到该书籍!\n");
}
int main() {
// 初始化三本书籍
Book book1 = {"9787115545067", "C程序设计语言", "Brian W. Kernighan, Dennis M. Ritchie", "机械工业出版社", 49.00, 10};
Book book2 = {"9787111600771", "算法导论", "Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein", "机械工业出版社", 108.00, 5};
Book book3 = {"9787115387102", "UNIX网络编程", "W. Richard Stevens", "机械工业出版社", 139.00, 3};
books[0] = book1;
books[1] = book2;
books[2] = book3;
// 菜单
int choice;
char isbn[MAX_LEN];
Book newBook;
while (1) {
printf("\n欢迎使用图书馆管理系统!\n");
printf("1. 查询书籍信息\n");
printf("2. 添加书籍\n");
printf("3. 删除书籍\n");
printf("4. 修改书籍信息\n");
printf("0. 退出系统\n\n");
printf("请选择操作:");
scanf("%d", &choice);
switch (choice) {
case 0:
return 0;
case 1:
printf("请输入要查询的书籍的ISBN号:");
scanf("%s", isbn);
searchBook(isbn);
break;
case 2:
printf("请输入要添加的书籍的信息:\n");
printf("ISBN号:");
scanf("%s", newBook.isbn);
printf("书名:");
scanf("%s", newBook.name);
printf("作者:");
scanf("%s", newBook.author);
printf("出版社:");
scanf("%s", newBook.publisher);
printf("价格:");
scanf("%f", &newBook.price);
printf("库存数量:");
scanf("%d", &newBook.count);
addBook(newBook);
break;
case 3:
printf("请输入要删除的书籍的ISBN号:");
scanf("%s", isbn);
deleteBook(isbn);
break;
case 4:
printf("请输入要修改的书籍的ISBN号:");
scanf("%s", isbn);
printf("请输入新的书籍信息:\n");
printf("ISBN号:");
scanf("%s", newBook.isbn);
printf("书名:");
scanf("%s", newBook.name);
printf("作者:");
scanf("%s", newBook.author);
printf("出版社:");
scanf("%s", newBook.publisher);
printf("价格:");
scanf("%f", &newBook.price);
printf("库存数量:");
scanf("%d", &newBook.count);
modifyBook(isbn, newBook);
break;
default:
printf("输入错误,请重新输入!\n");
break;
}
}
return 0;
}
```
这个程序使用了一个书籍结构体来保存每本书的信息,包括ISBN号、书名、作者、出版社、价格和库存数量。程序中使用一个全局的书籍数组来保存所有的书籍信息,以及一个变量来记录当前书籍数量。
程序主要分为四个模块:查找书籍、添加书籍、删除书籍和修改书籍。在菜单中,用户可以选择相应的操作。每个模块都会根据用户的输入来执行相应的操作。
在查找书籍模块中,程序会遍历书籍数组,寻找与用户输入的ISBN号相同的书籍。如果找到了相应的书籍,程序会输出书籍信息;否则,程序会输出“对不起,没有找到该书籍!”的提示信息。
在添加书籍模块中,程序会提示用户输入新书的信息,包括ISBN号、书名、作者、出版社、价格和库存数量。如果书籍数组已经满了,程序会输出“对不起,书籍库已满,无法添加!”的提示信息。
在删除书籍模块中,程序会遍历书籍数组,寻找与用户输入的ISBN号相同的书籍。如果找到了相应的书籍,程序会将该书籍从数组中删除;否则,程序会输出“对不起,没有找到该书籍!”的提示信息。
在修改书籍模块中,程序会先查找到用户要修改的书籍,然后提示用户输入新的书籍信息。程序会将该书籍的信息更新为用户输入的信息。如果没有找到要修改的书籍,程序会输出“对不起,没有找到该书籍!”的提示信息。
以上就是一个简单的图书馆管理系统的实现,可以根据需要进行扩展和改进。
阅读全文