图书管理系统c语言

创建一个图书管理系统是一个涉及数据结构和文件操作的项目。在C语言中,你可以使用结构体来表示图书信息,使用函数来实现系统的各项功能。以下是一个简单的图书管理系统的示例,包括基本的添加、显示、查找和删除图书的功能。

1. 定义图书结构体

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX_BOOKS 1000

typedef struct {
    char title[100];
    char author[50];
    char isbn[20];
    int quantity;
} Book;

Book books[MAX_BOOKS];
int totalBooks = 0;

2. 添加图书

void addBook(Book *book) {
    if (totalBooks < MAX_BOOKS) {
        books[totalBooks++] = *book;
        printf("Book added successfully.\n");
    } else {
        printf("Bookshelf is full.\n");
    }
}

3. 显示所有图书

void displayBooks() {
    if (totalBooks == 0) {
        printf("No books available.\n");
        return;
    }
    printf("List of books:\n");
    for (int i = 0; i < totalBooks; i++) {
        printf("%d. %s by %s, ISBN: %s, Quantity: %d\n", i + 1, books[i].title, books[i].author, books[i].isbn, books[i].quantity);
    }
}

4. 查找图书

int findBookByISBN(const char *isbn) {
    for (int i = 0; i < totalBooks; i++) {
        if (strcmp(books[i].isbn, isbn) == 0) {
            return i;
        }
    }
    return -1;
}

5. 删除图书

void deleteBook(const char *isbn) {
    int index = findBookByISBN(isbn);
    if (index != -1) {
        for (int i = index; i < totalBooks - 1; i++) {
            books[i] = books[i + 1];
        }
        totalBooks--;
        printf("Book deleted successfully.\n");
    } else {
        printf("Book not found.\n");
    }
}

6. 主函数

int main() {
    Book newBook;

    // 示例:添加图书
    strcpy(newBook.title, "C Programming");
    strcpy(newBook.author, "Nuha Ali");
    strcpy(newBook.isbn, "123-456-789");
    newBook.quantity = 5;
    addBook(&newBook);

    // 显示图书
    displayBooks();

    // 删除图书
    deleteBook("123-456-789");

    // 再次显示图书
    displayBooks();

    return 0;
}

这个示例展示了一个简单的图书管理系统的基本功能。在实际应用中,你可能需要添加更多的功能,比如编辑图书信息、按不同标准排序、保存到文件系统等。此外,错误检查和用户界面也是需要考虑的重要方面。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/607989.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AlibabaCloud微服务下的链路追踪系统实战详解

&#x1f680; 作者 &#xff1a;“二当家-小D” &#x1f680; 博主简介&#xff1a;⭐前荔枝FM架构师、阿里资深工程师||曾任职于阿里巴巴担任多个项目负责人&#xff0c;8年开发架构经验&#xff0c;精通java,擅长分布式高并发架构,自动化压力测试&#xff0c;微服务容器化k…

拼多多投产比和成交出价哪个好

拼多多推广可以使用3an推客。3an推客&#xff08;CPS模式&#xff09;给商家提供的营销工具&#xff0c;由商家自主设置佣金比例&#xff0c;激励推广者去帮助商家推广商品链接&#xff0c;按最终有效交易金额支付佣金&#xff0c;不成交不扣费。是商家破零、积累基础销量的重要…

2024年大学生三下乡社会实践活动投稿注意事项

随着2024年夏季的热浪一同涌来的,是我校一年一度的“大学生三下乡”社会实践活动。作为一名积极参与其中的大学生,我满怀激情地投身于这项旨在促进农村发展的公益行动中。然而,当活动圆满落幕,轮到我承担起向各大媒体投稿、传播实践成果的重任时,却遭遇了一系列意想不到的挑战,…

拼多多投产比怎么计算?

拼多多投产比&#xff08;ROI&#xff09;的计算公式为&#xff1a;ROI 成交金额 / 花费 100%。也可以简单理解为&#xff1a;ROI 点击量 * 转化率 * 客单价 / (点击量 * 平均点击花费)。 拼多多推广可以使用3an推客。3an推客&#xff08;CPS模式&#xff09;给商家提供的营…

Kubernetes概述及其组件/核心组件

目录 前言&#xff1a; 一、简介 1.Kubernetes 概述 2.为什么要用 K8S? 3.k8s特性 3.1自我修复 3.2弹性伸缩 3.3自动部署和回滚 3.4服务发现和负载均衡 3.5机密和配置管理 3.6存储编排 3.7批量处理 4.Kubernetes 集群架构与组件 4.1核心组件 4.2架构 4.3配置存…

【2024版】最新6款漏洞扫描工具来了!(附下载)看完这一篇就够了

目录 一、Nessus 二、AWVS 三、ZAP 四、w3af 五、北极熊 六、御剑 七、网络安全学习路线 &#xff08;2024最新整理&#xff09; 八、学习资料的推荐 1.视频教程 2.SRC技术文档&PDF书籍 3.大厂面试题 特别声明&#xff1a; 渗透测试收集信息完成后&#xf…

Linux-笔记 uboot修改设备树

1. FDT介绍 扁平设备树&#xff08;Flattened Device Tree&#xff0c;FDT&#xff09;&#xff0c;也叫平坦设备树&#xff0c;是设备树的一种二进制表示形式&#xff0c;提高了在嵌入式系统中的传输和解析效率&#xff1b; 2. 在U-Boot中使用FDT 2.1. 进入U-Boot 开发板上…

汽车电子零部件(13):BMS电池管理系统

前言: 电池管理系统(BMS)确保电动汽车(EV)的能量分配安全高效。目前流行电动汽车中使用的有四种主要BMS架构,BMS与充电基础设施互为集成关系。BMS主要管理 的是电池组,电池组由很多电芯组成,比如下图是H/EV电池组的主要部件,显示了电池、连接、控制电路和包装的总体布…

TensorFlow、pytorch和python对应的版本关系

安装深度学习框架的时候需要考虑版本的关系&#xff0c;不然装了用不了就尴尬了。 深度学习首先得问题就是用CPU跑&#xff0c;还是GPU跑。。当然有英伟达显卡的都想用GPU跑&#xff0c;不然买显卡是做啥、、GPU跑得多块&#xff0c;一下就训练完了。但是有的同学没得gpu&…

Capl简单数据类型

Capl简单数据类型&#xff0c;分为三大类&#xff0c;分别是整形、浮点型、字符型。 1.整形 在数据保存到变量中的时候&#xff0c;如果超过了变量存储的范围&#xff0c;会被截断。 在capl语言中&#xff0c;系统会默认给常量分配四个字节的空间。 例如byte a255;其中255是…

EtherCAT总线速度轴控制功能块(COSESYS ST源代码)

测试环境为汇川PLC,型号 AM402-CPU1608TP、伺服驱动器为禾川X3E,具体通信配置可以参考下面文章链接: 1、使能和点动控制 汇川AM400PLC通过EtherCAT总线控制禾川X3E伺服使能和点动控制-CSDN博客文章浏览阅读31次。进行通信之前需要安装禾川X3E的XML文件,具体方法如下:1、汇…

小米SU7智能座舱揭秘:五音区语音交互,智能语音新体验

“小爱同学&#xff0c;打开右后方车门。” “小爱同学&#xff0c;前面的山是什么山&#xff1f;” “小爱同学&#xff0c;有没有离簋街和望京都比较近的川菜馆&#xff1f;” “小爱同学&#xff0c;右后视镜向外调20%&#xff0c;左后视镜往里调10%。” “小爱同学&#xf…

AI电视起风,三星电视打破“隔代飞跃”,在AI纪元再次领跑

作者 | 曾响铃 文 | 响铃说 要说什么是当下最热的话题&#xff0c;刚落下帷幕的北京车展一定是其中之一&#xff0c;除了各类让人眼花缭乱的新车&#xff0c;纷至沓来的各界行业大佬&#xff0c;也让车展话题度被不断拉高。在此之外&#xff0c;此次车展还刮起了一股“旋风”…

C++反汇编,指针和内存分配细节,面试题05

文章目录 20. 指针 vs 引用21. new vs malloc 20. 指针 vs 引用 指针是实体&#xff0c;占用内存空间&#xff0c;逻辑上独立&#xff1b;引用是别名&#xff0c;与变量共享内存空间&#xff0c;逻辑上不独立。指针定义时可以不初始化&#xff1b;引用定义时必须初始化。指针的…

通过MediaPipe+MiDaS实现人脸单目测距

MediaPipe&#xff1a;是Google开发的适用于直播和流媒体的开源、跨平台、可定制的机器学习解决方案。code地址&#xff1a;https://github.com/google/mediapipe &#xff0c;最新发布版本v0.10.11&#xff0c;license为Apache-2.0。MediaPipe Solutions提供了一套库和工具&am…

【Linux网络】HTTPS【上】{运营商劫持/加密方式/数据摘要/https的诞生}

文章目录 1.引入1.1http与https1.2SSL/TLS1.3VPN1.4认识1.5密码学1.6为什么要加密&#xff1f;运营商 1.7常见的加密方式对称加密非对称加密 2.加密与解密3.数据摘要 && 数据指纹MD5 数字 签名理解三者数据摘要&#xff08;Digital Digest&#xff09;&#xff1a;数字…

数据结构与算法之树和二叉树的一些概念和性质

目录 前言 一、树的定义 二、树的若干术语 1.结点的度 2.叶子 3.双亲与孩子 4.兄弟 5.祖先 6.树的度 7.结点的层次 8.树的深度 9.有序树和无序树 10.森林 三、树的逻辑结构 四、树的存储结构 1.顺序存储 2.链式存储 五、二叉树 1.定义 2.二叉树的五种状态 …

美食推荐网站设计

**中文摘要&#xff1a;**在当今信息化、网络化的时代背景下&#xff0c;美食文化正逐渐融入人们的日常生活&#xff0c;而网络平台成为人们获取美食信息、分享美食体验的重要途径。为了满足广大美食爱好者对美食信息的探索和推荐需求&#xff0c;本文提出了一种创新的美食推荐…

OS复习笔记ch5-3

引言 上一节我们学习了关于信号量机制的一些内容&#xff0c;包括信号量的含义&#xff0c;对应的PV操作等。 如图所示&#xff0c;上一节主要是针对信号量的互斥&#xff0c;其实信号量机制还可以做很多事情&#xff0c;比如实现进程同步和前驱关系&#xff0c;这一节我们先复…

Selenium 自动化 —— 常用的定位器(Locator)

什么是定位器 定位器&#xff08;Locator&#xff09;是识别DOM中一个或多个特定元素的方法。 也可以叫选择器 Selenium 通过By类&#xff0c;提供了常见的定位器。具体语法如下&#xff1a; By.xxx("");我们选择单个元素时可以使用findByElement&#xff1a; Web…
最新文章