C语言图书管理系统实验

下面是关于“C语言图书管理系统实验”的完整攻略:

一、实验目的

本次实验主要目的是让学生掌握 C 语言的基本语法,进一步了解结构体的使用,以及熟悉文件操作,实现一个简单的图书管理系统。

二、实验过程

  1. 首先,我们需要定义图书结构体,包括书名(name)、作者(author)、价格(price) 和库存(stock) 四个成员变量。

    struct Book {
    char name[64];
    char author[32];
    double price;
    int stock;
    };

  2. 接下来,我们需要编写菜单函数,向用户展示对图书进行的操作,包括添加(add)、删除(delete)、查找(search)、修改(update) 和显示所有图书(display) 五个选项。

    void menu() {
    printf("======== 图书管理系统 ========\n");
    printf("请选择需要进行的操作:\n");
    printf("[a] 添加一本图书\n");
    printf("[d] 删除一本图书\n");
    printf("[s] 查找图书信息\n");
    printf("[u] 修改图书信息\n");
    printf("[l] 显示所有图书\n");
    printf("[q] 退出系统\n");
    printf("==============================\n\n");
    }

  3. 接下来,我们需要定义函数实现各个选项的功能。比如添加图书函数:

    void add_book(struct Book *book, int *count) {
    printf("请输入书名:");
    scanf("%s", book[*count].name);
    printf("请输入作者:");
    scanf("%s", book[*count].author);
    printf("请输入价格:");
    scanf("%lf", &book[*count].price);
    printf("请输入库存:");
    scanf("%d", &book[*count].stock);
    printf("添加图书成功!\n\n");
    *count += 1; // 更新图书数量
    }

  4. 对于删除图书、查找图书、修改图书信息和显示所有图书等选项,我们也需要实现相应的函数。

  5. 在主函数中,我们需要不断地显示菜单、等待用户输入,并根据用户的选择进行相应的操作。

    ```
    int main() {
    struct Book books[100];
    int count = 0; // 记录图书数量

    while (1) {
        menu();
    
        char choice;
        printf("请输入选项:");
        scanf(" %c", &choice);
    
        switch (choice) {
            case 'a':
                add_book(books, &count);
                break;
            case 'd':
                delete_book(books, &count);
                break;
            case 's':
                search_book(books, count);
                break;
            case 'u':
                update_book(books, count);
                break;
            case 'l':
                display_books(books, count);
                break;
            case 'q':
                printf("谢谢使用,再见!\n");
                return 0;  // 退出程序
            default:
                printf("输入有误,请重新输入!\n\n");
                break;
        }
    }
    
    return 0;
    

    }
    ```

三、示例说明

示例 1:查找图书信息

假设需要查找图书《C程序设计语言》的信息,可以选择菜单中的“查找图书信息”选项,然后输入对应的书名。程序将会遍历所有图书,找到书名为《C程序设计语言》的图书,并输出其作者、价格和库存信息。

请选择需要进行的操作:
[a] 添加一本图书
[d] 删除一本图书
[s] 查找图书信息
[u] 修改图书信息
[l] 显示所有图书
[q] 退出系统

请输入选项:s
请输入要查找的书名:C程序设计语言

查找结果如下:
《C程序设计语言》  作者:Brian W. Kernighan 价格:49.98 库存:13

示例 2:修改图书信息

假设需要将书名为《C++ Primer Plus》的图书的库存信息从 5 改成 10,可以选择菜单中的“修改图书信息”选项,然后按照提示输入对应的书名和将要修改的库存信息。程序将会遍历所有图书,找到书名为《C++ Primer Plus》的图书,并修改其库存信息。

请选择需要进行的操作:
[a] 添加一本图书
[d] 删除一本图书
[s] 查找图书信息
[u] 修改图书信息
[l] 显示所有图书
[q] 退出系统

请输入选项:u
请输入要修改的书名:C++ Primer Plus
请输入新的库存数:10
修改图书信息成功!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言图书管理系统实验 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • C++11如何实现无锁队列

    下面是详细讲解C++11如何实现无锁队列的完整攻略。 简介 无锁队列(Lock-Free Queue)是一种高并发数据结构,它可以在不使用锁(synchronization primitive)的情况下实现并发访问。无锁队列的实现需要使用到C++11标准引入的一些特性,如原子操作和memory fences等。在接下来的攻略中,我们会使用C++11的标准库来…

    C 2023年5月23日
    00
  • C++ move()函数案例详解

    C++ move()函数案例详解 什么是move()函数? move()函数是C++11中提供的一种对于对象进行右值引用(Rvalue Reference)的操作。该函数能够将对象转换成右值引用,实现对象的移动(Move)而非拷贝(Copy)。 为什么需要move()函数? 在C++的编程过程中,我们经常需要对于对象进行拷贝操作,以便进行如参数传递、返回值传…

    C 2023年5月22日
    00
  • 对C语言编程标准以及声明的基本理解

    当你开始学习C语言编程时,了解并遵守C语言编程标准是非常重要的。下面将向你介绍C语言编程标准以及如何正确声明变量和函数。 C语言编程标准 为什么需要编程标准 C语言编程标准可以帮助你: 提高代码的可读性,使其易于理解和维护。 提高代码的可移植性,使其可以在不同的平台和操作系统上运行。 减少编译器产生意外行为的可能性。 最终,编程标准可以让你编写更高效,更健壮…

    C 2023年5月22日
    00
  • MySQL与PHP的基础与应用专题之数据完整性

    MySQL与PHP的基础与应用专题之数据完整性攻略 1. 数据完整性的概念 数据完整性是指数据的准确性、合法性、一致性和有效性等方面。 在数据库中,可以通过设置约束条件来保证数据的完整性,包括以下几种类型的约束: 主键约束 外键约束 唯一约束 非空约束 默认约束 检查约束 2. 主键约束 主键是唯一标识一张表中某一行数据的字段或字段组合,主键的值必须唯一且不…

    C 2023年5月23日
    00
  • C程序 打印180度旋转的简单左半边金字塔

    下面是关于“C程序 打印180度旋转的简单左半边金字塔”的完整使用攻略。 题目描述 要求编写一个C程序,能够打印一个180度旋转的简单左半边金字塔,并且能够输入金字塔的高度。 解决方案 首先,我们需要知道如何打印一个简单左半边金字塔。下面是一个简单的实现方法: #include <stdio.h> int main() { int height;…

    C 2023年5月9日
    00
  • C++实现图书管理系统源码

    C++实现图书管理系统源码攻略 简介 图书管理系统是一种基于计算机技术的图书管理系统。它通过自动化操作,帮助管理人员实现对图书的分类、存储、借阅、归还等管理工作。本文主要介绍如何使用 C++ 编程语言实现一个基本的图书管理系统,让用户在控制台上完成管理图书的操作。 实现步骤 实现一个图书管理系统包括以下主要步骤: 1. 定义数据结构 为了管理图书,需要定义一…

    C 2023年5月23日
    00
  • 如何用C语言编写PHP扩展的详解

    如何用C语言编写PHP扩展的详解 一个PHP扩展是由C语言写的动态链接库,它可以用来扩展PHP的功能,提高PHP代码的性能。编写PHP扩展可以让我们在PHP代码中使用C语言提供的高效、强大的功能,并且可以与PHP代码无缝集成。 编写PHP扩展的详细流程如下: 准备环境 在开始编写PHP扩展之前,需要准备好下面的环境: PHP源代码(需要与扩展编写的PHP版本…

    C 2023年5月23日
    00
  • Android实现城市选择三级联动

    Android实现城市选择三级联动攻略 在Android开发中,有时会需要实现城市选择功能,而且还需要支持三级联动,即选择省份后展示该省份下的市区列表,选择城市后展示该城市下的县区列表。这里提供一份Android实现城市选择三级联动的攻略。 一、搭建数据源 实现城市选择三级联动首先需要有一个完整的城市数据源,可以采用第三方库提供的数据,也可以自己搭建。以下是…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部