该程序使用结构体`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语言实现图书馆管理系统相关推荐

  1. c语言图书馆管理程的运行截图,基于C语言的图书馆管理系统(10页)-原创力文档...

    毕业论文范文模板 职业技术学院 编号 本科生毕业论文设计 题目 基于 C 语言的图书馆管理系统 作者姓名 指导教师 所在学院 职业技术学院 专业(系) 班级(届) 完成日期 2016 年 5 月 4 ...

  2. C语言图书馆如何添加图书,如何使用C语言编写图书馆管理系统?

    全部展开 图书管理系统是在Windows系统下运行的应用程序软件,主要用于添加,删除,更改和检查库中的图书信息,并且还可以登录和密码使用该图书的用户. 系统. 管理等. 系统为用户提供了简单的人机界面 ...

  3. 图书馆管理系统利用c语言编写,图书馆管理系统 c语言编写.doc

    图书馆管理系统 c语言编写 #include "stdio.h"#include "stdlib.h"#include "conio.h"# ...

  4. 用c语言写图书馆程序,用c语言写图书馆管理系统

    满意答案 p68634193 2017.01.12 采纳率:54%    等级:12 已帮助:7180人 你不觉得给的悬赏少了点么 新建一个下面的文件 讲这个文件和下面的代码放在一个目录下 表示你的图 ...

  5. C语言模拟图书馆管理系统

    这道题是我自己一个个码出来的,中间完全没有参考别人的代码,所以可能看起来并不美观.因为要求也不是很明确,所以我的密码功能就基本敷衍了事了,直接用人员编号来代替密码验证,反正题目也没要求.但是感觉不加点 ...

  6. 社团管理系统用c语言1000,图书馆管理系统C语言啊1000行啊,哪位老哥有啊??...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 bookfile.flush(); //调用sale.h函数 obj.setqtysold(n); obj.calctax(); obj.calcsubt ...

  7. [源码和文档分享]基于C语言的图书馆管理系统

    一 需求分析 主要实现以下功能: 分管理员和学生两种身份,不同身份操作不同 管理员 进购书籍 决定某本书是由被借阅 查看借阅情况 学生 借书,限制每人5本 还书 图书分类展示 搜索 不能重复借阅同一本 ...

  8. 图书馆管理系统C语言代码

    图书馆管理系统C语言代码,直接copy可用.本文实例为大家分享C语言实现图书馆管理系统的具体代码,供大家参考. 1.图书馆管理系统C语言代码如下: #include <stdio.h>#i ...

  9. C语言 共享单车管理系统(读取、写入、删除文件中数据)

    代码在Dev Cpp中编译未出现错误,如果无法运行,请考虑不同编译器之间的差别适当改正代码(使用.cpp格式) 大一小学期学校要求制作不少于1000行的C语言代码程序,学习一年下来属实懵了,因为教学课 ...

最新文章

  1. Linux 使用本地yum源及软件包管理
  2. boost::spirit模块实现自定义karma计数器的测试程序
  3. 使用 Solid 私有化存储 IPFS 文件哈希值
  4. 中如何拉取git代码_git使用教程4pycharm拉取git仓库项目代码
  5. 一道微软Python面试题(文末附python教程丶电子书资料分享)
  6. 毕业四年换了3份软件测试工作,我为何仍焦虑?
  7. 【鲲鹏HCIA考试】随堂习题卷六
  8. 三款免费实用的本地文件夹同步/备份软件推荐 (SyncToy/FreeFileSync/Compare Advance)
  9. 计算机科技想象作文600字,科技想象作文600字四篇
  10. python中θ符号怎么打出来_Python打印特殊符号及对应编码解析
  11. php期末作业总结,期末考试总结与反思(精选6篇)
  12. 描写计算机教室的词语,形容教室环境布置的句子
  13. 【chrome不能扩展程序怎么办】4步搞定安装导入扩展
  14. 【第五周】新蜂团体贡献分
  15. 无符号整数与有符号整数相加问题
  16. 【Swift编程基础】P41-50
  17. 关于高德地图问题总结 (二)地理围栏的使用
  18. W3Shool学习 - 初级教程
  19. 联想r720安装固态_联想拯救者R720-15IKBN笔记本加装SSD不识别的案例
  20. 【观看直播有礼】第三届云原生实战峰会正式官宣启动

热门文章

  1. php中css样式两端对齐,CSS两端对齐
  2. 网站的护眼模式和夜间模式
  3. CentOS 7 离线安装配置 erlang
  4. CGA建模教程——形状语法(建筑群)
  5. js时间函数getTime() 在苹果手机上返回NaN的问题
  6. java switch商品优惠_switch用法_switch
  7. Vue — 详解mixins混入使用
  8. 牛客网 2018年全国多校算法寒假训练营练习比赛(第一场) 题解
  9. python爬虫学习之淘宝模拟登录
  10. 成都拓嘉辰丰:拼多多草稿箱怎样删除商品,草稿箱在哪