我D图书馆账号

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言图书馆管理系统通常包含以下模块:读者管理、图书管理、借阅管理和系统管理。其中,读者管理模块包括读者信息的添加、查询、修改和删除等功能;图书管理模块包括图书信息的添加、查询、修改和删除等功能;借阅管理模块包括借书和还书等功能;系统管理模块包括管理员账号的管理、系统设置等功能。 下面是一个简单的C语言图书馆管理系统代码示例: ``` #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX 100 // 读者结构体 typedef struct Reader{ char name[20]; // 姓名 char id[10]; // 学号/工号 char book[10][20]; // 已借图书 int book_num; // 已借图书数量 }Reader; // 图书结构体 typedef struct Book{ char name[20]; // 书名 char author[20]; // 作者 char ISBN[10]; // ISBN号 int total_num; // 总数量 int left_num; // 剩余数量 }Book; Reader reader[MAX]; Book book[MAX]; int reader_num = 0; int book_num = 0; // 添加读者信息 void add_reader(){ if(reader_num >= MAX){ printf("已达到最大读者数量,无法添加!\n"); return; } printf("请输入姓名:"); scanf("%s", reader[reader_num].name); printf("请输入学号/工号:"); scanf("%s", reader[reader_num].id); reader[reader_num].book_num = 0; printf("读者信息添加成功!\n"); reader_num++; } // 查询读者信息 void search_reader(){ char id[10]; printf("请输入要查询的学号/工号:"); scanf("%s", id); for(int i=0; i<reader_num; i++){ if(strcmp(reader[i].id, id) == 0){ printf("姓名:%s\n", reader[i].name); printf("学号/工号:%s\n", reader[i].id); printf("已借图书:\n"); for(int j=0; j<reader[i].book_num; j++){ printf("%s\n", reader[i].book[j]); } return; } } printf("未找到该读者信息!\n"); } // 添加图书信息 void add_book(){ if(book_num >= MAX){ printf("已达到最大图书数量,无法添加!\n"); return; } printf("请输入书名:"); scanf("%s", book[book_num].name); printf("请输入作者:"); scanf("%s", book[book_num].author); printf("请输入ISBN号:"); scanf("%s", book[book_num].ISBN); printf("请输入总数量:"); scanf("%d", &book[book_num].total_num); book[book_num].left_num = book[book_num].total_num; printf("图书信息添加成功!\n"); book_num++; } // 查询图书信息 void search_book(){ char ISBN[10]; printf("请输入要查询的ISBN号:"); scanf("%s", ISBN); for(int i=0; i<book_num; i++){ if(strcmp(book[i].ISBN, ISBN) == 0){ printf("书名:%s\n", book[i].name); printf("作者:%s\n", book[i].author); printf("ISBN号:%s\n", book[i].ISBN); printf("总数量:%d\n", book[i].total_num); printf("剩余数量:%d\n", book[i].left_num); return; } } printf("未找到该图书信息!\n"); } // 借阅图书 void borrow_book(){ char id[10], ISBN[10]; int reader_index, book_index; printf("请输入学号/工号:"); scanf("%s", id); for(int i=0; i<reader_num; i++){ if(strcmp(reader[i].id, id) == 0){ reader_index = i; break; } if(i == reader_num-1){ printf("未找到该读者信息!\n"); return; } } printf("请输入要借阅的ISBN号:"); scanf("%s", ISBN); for(int i=0; i<book_num; i++){ if(strcmp(book[i].ISBN, ISBN) == 0){ book_index = i; break; } if(i == book_num-1){ printf("未找到该图书信息!\n"); return; } } if(book[book_index].left_num == 0){ printf("该图书已全部借出,无法借阅!\n"); return; } for(int i=0; i<reader[reader_index].book_num; i++){ if(strcmp(reader[reader_index].book[i], book[book_index].name) == 0){ printf("该读者已借阅该图书,无法重复借阅!\n"); return; } } strcpy(reader[reader_index].book[reader[reader_index].book_num], book[book_index].name); reader[reader_index].book_num++; book[book_index].left_num--; printf("借阅成功!\n"); } // 归还图书 void return_book(){ char id[10], ISBN[10]; int reader_index, book_index; printf("请输入学号/工号:"); scanf("%s", id); for(int i=0; i<reader_num; i++){ if(strcmp(reader[i].id, id) == 0){ reader_index = i; break; } if(i == reader_num-1){ printf("未找到该读者信息!\n"); return; } } printf("请输入要归还的ISBN号:"); scanf("%s", ISBN); for(int i=0; i<book_num; i++){ if(strcmp(book[i].ISBN, ISBN) == 0){ book_index = i; break; } if(i == book_num-1){ printf("未找到该图书信息!\n"); return; } } for(int i=0; i<reader[reader_index].book_num; i++){ if(strcmp(reader[reader_index].book[i], book[book_index].name) == 0){ strcpy(reader[reader_index].book[i], ""); reader[reader_index].book_num--; book[book_index].left_num++; printf("归还成功!\n"); return; } } printf("该读者未借阅该图书,无法归还!\n"); } int main(){ int choice; while(1){ printf("\n1. 添加读者信息\n"); printf("2. 查询读者信息\n"); printf("3. 添加图书信息\n"); printf("4. 查询图书信息\n"); printf("5. 借阅图书\n"); printf("6. 归还图书\n"); printf("7. 退出系统\n"); printf("\n请选择功能:"); scanf("%d", &choice); switch(choice){ case 1: add_reader(); break; case 2: search_reader(); break; case 3: add_book(); break; case 4: search_book(); break; case 5: borrow_book(); break; case 6: return_book(); break; case 7: exit(0); break; default: printf("请输入正确的选项!\n"); break; } fflush(stdin); // 清空缓存区,避免输入错误影响下一次输入 } return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值