C语言实现图书馆管理系统
该程序使用结构体`Book`来表示图书,其中包含书名、作者、出版商、出版年份和可用性信息。`bookList`数组存储所有图书,`numBooks`变量存储当前图书数量。
程序实现了以下功能:
- 添加书籍:向数组中添加一本书籍,输入书名、作者、出版商和出版年份;
- 搜索书籍:根据书名查找图书,并显示该书的详细信息;
- 显示所有书籍:显示所有图书的列表,包括书名、作者、出版商、出版年份和可用性信息;
- 借书:根据书名查找图书,并将其标记为不可用;
- 还书:根据书名查找图书,并将其标记为可用。
当添加的书籍超过数组大小时,程序将提示图书馆已满。当搜索到的书籍不存在或已经借出时,程序将相应提示。
该程序使用循环菜单,用户可以重复执行上述操作,直到选择退出。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>#define MAX_BOOKS 100typedef struct Book {char title[50];char author[50];char publisher[50];int year;int available;
} Book;Book bookList[MAX_BOOKS];
int numBooks = 0;void displayMenu() {printf("Library Management System\n");printf("=========================\n");printf("1. Add a book\n");printf("2. Search for a book\n");printf("3. Display all books\n");printf("4. Borrow a book\n");printf("5. Return a book\n");printf("6. Exit\n");printf("Enter your choice: ");
}void addBook() {if (numBooks >= MAX_BOOKS) {printf("Library is full.\n");return;}printf("Enter book title: ");scanf("%s", bookList[numBooks].title);printf("Enter book author: ");scanf("%s", bookList[numBooks].author);printf("Enter book publisher: ");scanf("%s", bookList[numBooks].publisher);printf("Enter book publication year: ");scanf("%d", &bookList[numBooks].year);bookList[numBooks].available = 1;numBooks++;printf("Book added successfully.\n");
}void searchBook() {char title[50];printf("Enter book title: ");scanf("%s", title);for (int i = 0; i < numBooks; i++) {if (strcmp(title, bookList[i].title) == 0) {printf("Title: %s\n", bookList[i].title);printf("Author: %s\n", bookList[i].author);printf("Publisher: %s\n", bookList[i].publisher);printf("Publication Year: %d\n", bookList[i].year);printf("Availability: %s\n", bookList[i].available ? "Yes" : "No");return;}}printf("Book not found.\n");
}void displayBooks() {printf("Title\tAuthor\tPublisher\tPublication Year\tAvailability\n");for (int i = 0; i < numBooks; i++) {printf("%s\t%s\t%s\t%d\t%s\n", bookList[i].title, bookList[i].author, bookList[i].publisher, bookList[i].year, bookList[i].available ? "Yes" : "No");}
}void borrowBook() {char title[50];printf("Enter book title: ");scanf("%s", title);for (int i = 0; i < numBooks; i++) {if (strcmp(title, bookList[i].title) == 0) {if (bookList[i].available) {bookList[i].available = 0;printf("Book borrowed successfully.\n");} else {printf("Book not available.\n");}return;}}printf("Book not found.\n");
}void returnBook() {char title[50];printf("Enter book title: ");scanf("%s", title);for (int i = 0; i < numBooks; i++) {if (strcmp(title, bookList[i].title) == 0) {if (!bookList[i].available) {bookList[i].available = 1;printf("Book returned successfully.\n");} else {printf("Book already available.\n");}return;}}printf("Book not found.\n");
}int main() {int choice;do {displayMenu();scanf("%d", &choice);switch (choice) {case 1:addBook();break;case 2:searchBook();break;case 3:displayBooks();break;case 4:borrowBook();break;case 5:returnBook();break;case 6:printf("Goodbye.\n");break;default:printf("Invalid choice.\n");break;}} while (choice != 6);return 0;
}
C语言实现图书馆管理系统相关推荐
- c语言图书馆管理程的运行截图,基于C语言的图书馆管理系统(10页)-原创力文档...
毕业论文范文模板 职业技术学院 编号 本科生毕业论文设计 题目 基于 C 语言的图书馆管理系统 作者姓名 指导教师 所在学院 职业技术学院 专业(系) 班级(届) 完成日期 2016 年 5 月 4 ...
- C语言图书馆如何添加图书,如何使用C语言编写图书馆管理系统?
全部展开 图书管理系统是在Windows系统下运行的应用程序软件,主要用于添加,删除,更改和检查库中的图书信息,并且还可以登录和密码使用该图书的用户. 系统. 管理等. 系统为用户提供了简单的人机界面 ...
- 图书馆管理系统利用c语言编写,图书馆管理系统 c语言编写.doc
图书馆管理系统 c语言编写 #include "stdio.h"#include "stdlib.h"#include "conio.h"# ...
- 用c语言写图书馆程序,用c语言写图书馆管理系统
满意答案 p68634193 2017.01.12 采纳率:54% 等级:12 已帮助:7180人 你不觉得给的悬赏少了点么 新建一个下面的文件 讲这个文件和下面的代码放在一个目录下 表示你的图 ...
- C语言模拟图书馆管理系统
这道题是我自己一个个码出来的,中间完全没有参考别人的代码,所以可能看起来并不美观.因为要求也不是很明确,所以我的密码功能就基本敷衍了事了,直接用人员编号来代替密码验证,反正题目也没要求.但是感觉不加点 ...
- 社团管理系统用c语言1000,图书馆管理系统C语言啊1000行啊,哪位老哥有啊??...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 bookfile.flush(); //调用sale.h函数 obj.setqtysold(n); obj.calctax(); obj.calcsubt ...
- [源码和文档分享]基于C语言的图书馆管理系统
一 需求分析 主要实现以下功能: 分管理员和学生两种身份,不同身份操作不同 管理员 进购书籍 决定某本书是由被借阅 查看借阅情况 学生 借书,限制每人5本 还书 图书分类展示 搜索 不能重复借阅同一本 ...
- 图书馆管理系统C语言代码
图书馆管理系统C语言代码,直接copy可用.本文实例为大家分享C语言实现图书馆管理系统的具体代码,供大家参考. 1.图书馆管理系统C语言代码如下: #include <stdio.h>#i ...
- C语言 共享单车管理系统(读取、写入、删除文件中数据)
代码在Dev Cpp中编译未出现错误,如果无法运行,请考虑不同编译器之间的差别适当改正代码(使用.cpp格式) 大一小学期学校要求制作不少于1000行的C语言代码程序,学习一年下来属实懵了,因为教学课 ...
最新文章
- Linux 使用本地yum源及软件包管理
- boost::spirit模块实现自定义karma计数器的测试程序
- 使用 Solid 私有化存储 IPFS 文件哈希值
- 中如何拉取git代码_git使用教程4pycharm拉取git仓库项目代码
- 一道微软Python面试题(文末附python教程丶电子书资料分享)
- 毕业四年换了3份软件测试工作,我为何仍焦虑?
- 【鲲鹏HCIA考试】随堂习题卷六
- 三款免费实用的本地文件夹同步/备份软件推荐 (SyncToy/FreeFileSync/Compare Advance)
- 计算机科技想象作文600字,科技想象作文600字四篇
- python中θ符号怎么打出来_Python打印特殊符号及对应编码解析
- php期末作业总结,期末考试总结与反思(精选6篇)
- 描写计算机教室的词语,形容教室环境布置的句子
- 【chrome不能扩展程序怎么办】4步搞定安装导入扩展
- 【第五周】新蜂团体贡献分
- 无符号整数与有符号整数相加问题
- 【Swift编程基础】P41-50
- 关于高德地图问题总结 (二)地理围栏的使用
- W3Shool学习 - 初级教程
- 联想r720安装固态_联想拯救者R720-15IKBN笔记本加装SSD不识别的案例
- 【观看直播有礼】第三届云原生实战峰会正式官宣启动