c语言实现的货物管理系统实例代码(增加删除 查找货物信息等功能)

一、简介

货物管理系统可以帮助企业更好地管理其货品,是一套非常实用的管理系统。本文将介绍使用c语言实现的一套货物管理系统,包括增加、删除、查找货物信息等功能。

二、实现步骤

  1. 设计数据结构

首先,我们需要设计合适的数据结构用于存储货物信息。可以使用结构体来定义货物信息,例如:

struct goods {
    int id;
    char name[50];
    int quantity;
    float price;
};
  1. 实现增加功能

货物的创建是系统中非常重要的一个功能,我们需要先定义一个函数用于输入货物信息,然后再将其添加到货物信息列表中。例如:

void addGoods(struct goods goodsList[], int *count) {
    // 输入货物信息
    struct goods goods;
    printf("Input goods id: ");
    scanf("%d", &goods.id);
    printf("Input goods name: ");
    scanf("%s", goods.name);
    printf("Input goods quantity: ");
    scanf("%d", &goods.quantity);
    printf("Input goods price: ");
    scanf("%f", &goods.price);
    // 将货品加入货物信息列表中
    goodsList[*count] = goods;
    (*count)++;
}
  1. 实现删除功能

货品管理系统还需要支持删除货品的功能,为此,可以通过货物id来删除货品。例如:

void deleteById(struct goods goodsList[], int *count) {
    // 输入货物id
    int id;
    printf("Input goods id to delete: ");
    scanf("%d", &id);
    // 查找该货物并删除
    for(int i=0; i<*count; i++) {
        if (goodsList[i].id == id) {
            for(int j=i; j<*count-1; j++) {
                goodsList[j] = goodsList[j+1];
            }
            (*count)--;
            printf("Delete goods success!\n");
            return;
        }
    }
    printf("Goods not found!\n");
}
  1. 实现查找功能

货物管理系统还需要支持按货物id或名称查询功能。例如:

void searchById(struct goods goodsList[], int *count) {
    // 输入货物id
    int id;
    printf("Input goods id to search: ");
    scanf("%d", &id);
    // 查找该货物并输出信息
    for(int i=0; i<*count; i++) {
        if (goodsList[i].id == id) {
            printf("Goods id=%d, name=%s, quantity=%d, price=%.2f\n",
                    goodsList[i].id, goodsList[i].name, goodsList[i].quantity, goodsList[i].price);
            return;
        }
    }
    printf("Goods not found!\n");
}

void searchByName(struct goods goodsList[], int *count) {
    // 输入货物名称
    char name[50];
    printf("Input goods name to search: ");
    scanf("%s", name);
    // 查找该货物并输出信息
    for(int i=0; i<*count; i++) {
        if (strcmp(goodsList[i].name, name) == 0) {
            printf("Goods id=%d, name=%s, quantity=%d, price=%.2f\n",
                    goodsList[i].id, goodsList[i].name, goodsList[i].quantity, goodsList[i].price);
        }
    }
}

三、示例说明

下面展示两个示例,一个是添加货品,另一个是查找货品。

示例1:添加货品

int main() {
    struct goods goodsList[100];
    int count = 0;
    // 添加货物
    addGoods(goodsList, &count);
    return 0;
}

运行结果:

Input goods id: 1001
Input goods name: Apple
Input goods quantity: 10
Input goods price: 5.5

示例2:查找货品

int main() {
    struct goods goodsList[100];
    int count = 1;
    // 添加货物
    struct goods goods = {1001, "Apple", 10, 5.5};
    goodsList[0] = goods;
    // 查找货物
    searchByName(goodsList, &count);
    return 0;
}

运行结果:

Input goods name to search: Apple
Goods id=1001, name=Apple, quantity=10, price=5.50

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c语言实现的货物管理系统实例代码(增加删除 查找货物信息等功能) - Python技术站

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

相关文章

  • C 标准库 signal.h

    signal.h 是 C 标准库中用于处理信号(signal)的头文件。在 Unix 系统中,信号是一种异步事件,可以致使进程中断正常的执行流程,从而在特定的时间点触发特殊的处理程序,实现与系统的交互和控制。 下面是完整的 signal.h 使用攻略: signal 函数 #include <signal.h> typedef void (*si…

    C 2023年5月10日
    00
  • c++ 如何在libuv中实现tcp服务器

    C++ 中通常使用 libuv 库来实现 TCP 服务器。下面是使用 libuv 库实现 TCP 服务器的完整攻略。 准备工作 首先需要做的是安装 libuv 库,并配置好 C++ 项目使其能够使用该库。Windows 操作系统可以直接下载预编译的库,然后在项目设置中配置库的路径和头文件路径。Linux 操作系统可以通过包管理器进行安装。 创建 TCP 服务…

    C 2023年5月23日
    00
  • DEVC++实现推箱子小游戏

    DEVC++实现推箱子小游戏攻略 推箱子小游戏是一款非常经典的益智游戏,玩家需要在限定步数内将箱子推到指定位置才能过关。本文将介绍如何使用DEVC++实现推箱子小游戏。 第一步:框架搭建 首先,我们需要创建一个控制台应用程序项目。 打开DEVC++软件,选择“文件”-“新建”-“项目”,进入“新建项目”界面。 在“项目类型”中选择“控制台应用程序”,在“基于…

    C 2023年5月24日
    00
  • C语言拼接字符串

    C语言中可以使用strcpy和strcat函数来拼接字符串。 使用strcpy函数拼接字符串: #include <stdio.h> #include <string.h> int main() { char str1[20] = "Hello, "; char str2[] = "world!&quot…

    C 2023年5月9日
    00
  • C语言中如何获取函数内成员的值你知道吗

    C语言中获取函数内成员的值需要通过指针或者引用的方式来实现。下面提供两种方法: 方法一:使用指针来获取函数内部数据 在函数参数中传递指向结构体的指针,在函数内部通过指针来访问结构体成员,具体步骤如下: 在函数参数中定义一个指向结构体的指针; 在函数内部使用指针来访问结构体的成员,通过“->”符号访问结构体成员。 以下是示例代码: #include &l…

    C 2023年5月23日
    00
  • 在线管理数据库 类

    在线管理数据库类 在线管理数据库类是一种用于在网站中对数据库进行 CRUD 操作的工具类,可以提高网站开发的效率和代码复用性。本篇攻略将详细介绍如何使用在线管理数据库类,包括以下内容: 引入在线管理数据库类 初始化在线管理数据库类 实现增删改查操作 示例说明 1. 引入在线管理数据库类 要使用在线管理数据库类,需要先将其引入到项目中。可通过以下方式引入: &…

    C 2023年5月22日
    00
  • 原生js调用json方法总结

    当我们需要使用JSON格式的数据时,使用JavaScript原生的JSON API来处理数据是非常常见的。在本篇文档中,我们将会全面介绍如何原生JS调用JSON方法。 JSON简介 JSON (JavaScript对象表示法) 是一种用于将数据存储和交换的文本格式。JSON 派生自JavaScript语言,但是JSON 格式是语言无关的。 JSON是一种非常…

    C 2023年5月23日
    00
  • 简单了解C语言中主线程退出对子线程的影响

    了解 C 语言中主线程退出对子线程的影响,需要掌握以下知识点:多线程,同步和互斥机制,线程的生命周期等。 首先,我们需要了解一个线程的生命周期。一个线程的生命周期通常包含如下阶段:创建、就绪、运行、阻塞、终止。 在 C 语言中,我们通常使用 pthread_create() 函数来创建线程,使用 pthread_join() 函数来等待线程的终止,使用 pt…

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