设计一个计算机管理系统完成图书管理基本业务。 【基本要求】 1) 每种书的登记内容包括书号、书名、著作者、现存量和库存量; 2) 对书号建立索引表(线性表)以提高查找效率; 3) 系统主要功能如下: *采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加; *借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量; *归还:注销对借阅者的登记,改变该书的现存量。 二、 涉及的主要知识点 1. C语言知识:结构体,函数,指针等。 2. 线表的顺序及链式存储结构。
时间: 2024-01-21 18:20:20 浏览: 80
图书管理系统 包括图书查询,借书,还书等
下面是一个简单的图书管理系统的设计实现:
1. 定义书的结构体:
```c
struct Book {
char id[20]; // 书号
char name[50]; // 书名
char author[30]; // 著作者
int stock; // 现存量
int total; // 库存量
};
```
2. 定义线性表存储图书信息,使用数组实现,同时建立书号索引表,使用数组实现。
```c
#define MAX_BOOKS 1000
struct Book books[MAX_BOOKS]; // 存储所有书的信息
int bookIndex[MAX_BOOKS]; // 存储书号对应的书在books数组中的下标
int bookCount = 0; // 已录入的图书数量
```
3. 定义相关函数实现系统主要功能:
```c
// 录入图书信息
void addBook() {
printf("请输入书号:");
scanf("%s", books[bookCount].id);
printf("请输入书名:");
scanf("%s", books[bookCount].name);
printf("请输入著作者:");
scanf("%s", books[bookCount].author);
printf("请输入库存量:");
scanf("%d", &books[bookCount].total);
books[bookCount].stock = books[bookCount].total; // 新录入的图书现存量等于库存量
bookIndex[bookCount] = bookCount; // 将新录入的图书的下标存放到书号索引表中
bookCount++; // 图书数量加1
}
// 根据书号查找图书在books数组中的下标
int findBookIndex(char* id) {
for (int i = 0; i < bookCount; i++) {
if (strcmp(id, books[i].id) == 0) {
return i;
}
}
return -1;
}
// 借阅图书
void borrowBook() {
char id[20];
printf("请输入书号:");
scanf("%s", id);
int index = findBookIndex(id);
if (index == -1) {
printf("未找到该图书!\n");
return;
}
if (books[index].stock == 0) {
printf("该图书已全部借出!\n");
return;
}
books[index].stock--; // 现存量减1
printf("请输入借阅者的书证号:");
char card[20];
scanf("%s", card);
printf("请输入归还期限(格式:yyyy-mm-dd):");
char date[20];
scanf("%s", date);
printf("借阅成功!\n");
}
// 归还图书
void returnBook() {
char id[20];
printf("请输入书号:");
scanf("%s", id);
int index = findBookIndex(id);
if (index == -1) {
printf("未找到该图书!\n");
return;
}
books[index].stock++; // 现存量加1
printf("请输入借阅者的书证号:");
char card[20];
scanf("%s", card);
printf("归还成功!\n");
}
```
4. 编写主函数,实现图书管理系统的菜单界面和功能调用。
```c
int main() {
while (1) {
printf("欢迎使用图书管理系统!\n");
printf("1. 录入图书信息\n");
printf("2. 借阅图书\n");
printf("3. 归还图书\n");
printf("4. 退出\n");
printf("请选择:");
int choice;
scanf("%d", &choice);
switch (choice) {
case 1:
addBook();
break;
case 2:
borrowBook();
break;
case 3:
returnBook();
break;
case 4:
printf("谢谢使用!");
return 0;
default:
printf("无效的选项!\n");
break;
}
}
}
```
以上是一个简单的图书管理系统的设计实现,可以根据实际需求进行修改和完善。
阅读全文