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++ 如何实现顺序栈(使用模板类)

    C++如何实现顺序栈(使用模板类) 什么是顺序栈? 顺序栈是一种使用数组存储数据的栈。在顺序栈中,栈顶指针指向存储栈顶元素的位置,栈顶指针的下标为 0 时表示栈为空。 如何实现顺序栈? 1.定义模板类 顺序栈可以通过 C++ 中的模板类来实现,这样可以使其具备更好的可扩展性和复用性。下面是一个使用模板类实现顺序栈的示例代码: template <cla…

    C 2023年5月22日
    00
  • FFmpeg开发笔记(二)搭建Windows系统的开发环境

    由于Linux系统比较专业,个人电脑很少安装Linux,反而大都安装Windows系统,因此提高了FFmpeg的学习门槛,毕竟在Windows系统搭建FFmpeg的开发环境还是比较麻烦的。不过若有已经编译好的Windows版本FFmpeg开发包,那就免去了繁琐的Windows编译过程,所以直接安装已编译的FFmpeg开发包,还是相对容易的。在Windows系…

    C 2023年4月30日
    00
  • win10系统激活失败提示错误代码0xc004f074的故障原因及解决方法

    win10系统激活失败提示错误代码0xc004f074的故障原因及解决方法 当用户在升级或重新安装Windows 10操作系统时,可能会遇到系统激活失败的问题,并显示错误代码0xc004f074,这个错误代码表示激活密钥无法验证。以下是可能导致这个问题的原因和解决方法。 原因 无法连接到激活服务器:如果无法连接到激活服务器,那么激活失败的问题就会发生。可能是…

    C 2023年5月23日
    00
  • 查找算法之二分查找的C++实现

    查找算法之二分查找的C++实现 什么是二分查找? 二分查找(Binary Search),也叫折半查找,是一种在有序数组中查找某一特定元素的查找算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为…

    C 2023年5月22日
    00
  • python多线程下信号处理程序示例

    下面我将为大家详细讲解“python多线程下信号处理程序示例”的完整攻略。 1. 什么是信号处理程序 信号处理程序(Signal handler)是一个特殊的函数,用于响应特定的信号。在操作系统中,信号是异步事件,将被进程内或进程外触发。Linux操作系统支持很多不同的信号,如SIGUSR1,SIGUSR2,SIGTERM,SIGKILL等,每个信号都有自己…

    C 2023年5月22日
    00
  • C语言实现停车场管理系统

    C语言实现停车场管理系统攻略 1.需求分析 停车场管理系统是为了方便管理车辆的进出和收费等问题,我们需要先了解用户的需求和业务流程。具体来说,停车场管理系统需要具备以下功能: 可以添加和删除停车位,查看车辆状态和收费情况。 能够对停车位进行分配和管理,包括添加和删除车辆记录,收费等。 实时监测停车位的占用情况,及时更新空闲停车位的数量。 提供相应的数据统计和…

    C 2023年5月23日
    00
  • 深入理解C++中常见的关键字含义

    深入理解C++中常见的关键字含义 C++ 是一门功能强大的编程语言,拥有众多的关键字,每个关键字都有其特定的含义和用途。本文将对其中常见的关键字进行讲解,帮助读者更好的理解和应用C++语言。 auto 关键字 auto 的含义是自动类型推导。它可以让编译器自动推导出变量的类型,简化代码书写,同时不会影响程序的性能。 示例1: auto x = 5; // 推…

    C 2023年5月23日
    00
  • C语言中双链表的基本操作

    下面是C语言中双链表的基本操作的完整攻略。 双链表的基本操作 什么是双链表 双向链表(Doubly linked list)是链表的一种,它同样由一系列的节点组成,每个结点分别含有指向前驱和后继结点的两个指针。这种结构允许双向遍历。常见的操作有前插、后插、删除、查找等,下面详细介绍其基本操作。 双链表的结构 双链表的结构如下所示: struct node{ …

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