iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言链表实现商品库存管理系统
  • 664
分享到

C语言链表实现商品库存管理系统

2024-04-02 19:04:59 664人浏览 安东尼
摘要

本文实例为大家分享了C语言链表实现商品库存管理系统的具体代码,供大家参考,具体内容如下 代码: #include <stdio.h> #include <stdli

本文实例为大家分享了C语言链表实现商品库存管理系统的具体代码,供大家参考,具体内容如下

代码:

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

//定义一个商品结构体
typedef struct sp
{
    char no[12];     //商品编号
    char name[40];   //名称
    int workload;    //库存量
    struct sp *next; //指向下一节点的指针
} SP;

//函数声明放在这里
void ListCreate(SP *L, int n); //创建商品链表节点
void LIstSearch(SP *L);        //查找商品信息
void ListModify(SP *L);        //修改商品信息
void ListInsert(SP *L);        //插入商品信息
void ListDelete(SP *L);        //删除商品信息
void Input(SP *p, int i);      //输入商品信息
void SumSp(SP *L);             //统计商品的库存总量
void Sort(SP *L);              //对每类商品的库存量进行排名
void Menu();                   //考试报名管理系统的菜单

//商品库存管理系统的主函数入口
int main()
{
    int item, n;                  //item用于接收输入的命令,n用于接收输入的商品人数
    SP *L = NULL;                 //初始化一个头节点
    L = (SP *)malloc(sizeof(SP)); //为头节点开辟内存空间
    L->next = NULL;               //将头节点的指针域置空
    do
    {
        Menu(); //菜单
        printf("请输入相应的数字,进行相应的操作:\n");
        scanf("%d", &item);
        system("cls");
        switch (item)
        {
        case 1:
            printf("请输入您要录入的商品数目:");
            scanf("%d", &n);
            ListCreate(L, n); 
            getchar();
            printf("\n请按任意键返回主菜单\n");
            getchar();
            system("cls");
            break;
        case 2:
            LIstSearch(L); //查找商品信息
            getchar();
            printf("\n请按任意键返回主菜单\n");
            getchar();
            system("cls");
            break;
        case 3:
            ListModify(L); //修改商品库存信息
            getchar();
            printf("\n请按任意键返回主菜单\n");
            getchar();
            system("cls");
            break;
        case 4:
            ListDelete(L); //删除商品信息
            getchar();
            printf("\n请按任意键返回主菜单\n");
            getchar();
            system("cls");
            break;
        case 5:
            ListInsert(L); //插入商品信息
            getchar();
            printf("\n请按任意键返回主菜单\n");
            getchar();
            system("cls");
            break;
        case 6:
            SumSp(L);
            getchar();
            printf("\n请按任意键返回主菜单\n");
            getchar();
            system("cls");
            break;
        case 7:
            Sort(L);
            getchar();
            printf("\n请按任意键返回主菜单\n");
            getchar();
            system("cls");
            break;
        case 0: //退出商品库存管理系统
            printf("即将退出商品库存管理系统.....");
            exit(0);
        default:
            printf("您输入的指令不正确,请重新输入");
        }
        printf("\n\n");
    } while (item);
    return 0;
}

//创建链表,将新生成的节点插入到链表的表头
void ListCreate(SP *L, int n)
{
    int i;
    for (i = 0; i < n; i++)
    {
        SP *p;
        //将新生成的节点插入到链表中
        p = NULL;
        p = (SP *)malloc(sizeof(SP));
        Input(p, i);
        p->next = L->next;
        L->next = p;
    }
    printf("录入成功!");
}

//查找商品库存量
void LIstSearch(SP *L)
{
    char n[40];
    SP *p = L->next;
    if (p == NULL)
        printf("数据为空,无法查找!");
    else
    {
        printf("请输入您要查找的商品名称:");
        scanf("%s", n);
        while (strcmp(p->name, n) != 0)
        {
            p = p->next;
            if (p == NULL)
            {
                printf("没有找到相关信息\n");
                return;
            }
        }
        printf("%s的库存量为%d\n",p->name,p->workload);
    }
}

//修改商品的库存量
void ListModify(SP *L)
{
    int a;
    char nam[40];
    SP *p = L->next;
    if (p == NULL)
        printf("数据为空,无法修改!");
    else
    {
        printf("请输入您修改的商品名称:");
        scanf("%s",nam);
        while(strcmp(p->name, nam) != 0)
        {
            p = p->next;
            if (p == NULL)
            {
                printf("没有找到相关信息\n");
                return;
            }
        }
        printf("请输入您修改后的库存量:");
        scanf("%d",&p->workload);
        printf("修改成功");
    }
}

//删除商品信息
void ListDelete(SP *L)
{
    char n[40];
    SP *p = L->next, *pre = L; //定义p指针指向头节点的指向,定义pre指向头节点,pre始终指向p的前驱节点
    if (p == NULL)
        printf("数据为空,无法删除!");
    else
    {
        printf("请输入您要删除的商品名称:");
        scanf("%s", n);
        while (strcmp(p->name, n) != 0)
        {
            pre = p;
            p = pre->next;
            if (p == NULL)
            {
                printf("没有找到相关信息,无法删除\n");
                return;
            }
        }
        pre->next = p->next;
        free(p);
        printf("删除成功");
    }
}

//插入商品库存的相关信息
void ListInsert(SP *L)
{
    SP *s = NULL; //生成一个新节点s
    s = (SP *)malloc(sizeof(SP));
    printf("请输入商品的商品编号:");
    scanf("%s", s->no);
    printf("请输入商品的名称:");
    scanf("%s", s->name);
    printf("请输入商品的库存量:");
    scanf("%d", &s->workload);
    s->next = L->next;
    L->next = s;
    printf("插入成功!");
}

//统计商品的库存总量
void SumSp(SP *L)
{
    int sum=0;
    SP *p=L->next;
    while(p!=NULL)
    {
        sum+=p->workload;
        p=p->next;
    }
    printf("商品的库存总量为%d\n",sum);    
}

//对每类商品的库存量进行排名
void Sort(SP *L)
{
    SP *p,*q,*tail,*l;
    tail=NULL;
    while((L->next->next) != tail)
    {
        p = L;
        q = L->next;
        while(q->next != tail)
        {
            if((q->workload) > (q->next->workload))
            {
                p->next = q->next;
                q->next = q->next->next;
                p->next->next = q;
                q = p->next;
            }
            q = q->next;
            p = p->next;
        }
        tail = q;
    }
    printf("商品库存量从小到大结果如下:\n");
    l=L->next;
    while(l!=NULL)
    {
        if(l->next!=NULL)
            {
                printf("%s(%d)->",l->name,l->workload);
                l=l->next;
            }
        else
        {
            printf("%s(%d)",l->name,l->workload);
            l=l->next;
        }
    }
}
//输入商品库存的相关信息
void Input(SP *p, int i)
{
    printf("请输入第%d个商品的商品编号:", i + 1);
    scanf("%s", p->no);
    printf("请输入第%d个商品的名称:", i + 1);
    scanf("%s", p->name);
    printf("请输入第%d个商品的库存量:", i + 1);
    scanf("%d", &p->workload);
}

//商品库存管理系统的菜单
void Menu()
{
    printf("\n\n");
    printf("\t\t\t===================商品库存管理系统======================\n");
    printf("\t\t\t* 作者:XXX  班级:XXXXXXXXXXX  学号:XXXXXXXXXX           *\n");
    printf("\t\t\t*                                                       *\n");
    printf("\t\t\t*          1>. 录入商品库存信息                         *\n");
    printf("\t\t\t*          2>. 查找某个商品的库存量                     *\n");
    printf("\t\t\t*          3>. 修改某个商品的库存量                     *\n");
    printf("\t\t\t*          4>. 删除某个商品库存相关信息                 *\n");
    printf("\t\t\t*          5>. 插入某个商品的相关信息                   *\n");
    printf("\t\t\t*          6>. 统计商品的库存总量                       *\n");
    printf("\t\t\t*          7>. 对每类商品的库存量排名                   *\n");
    printf("\t\t\t*          0>. 退出管理系统                             *\n");
    printf("\t\t\t*                                        欢迎使用本系统!*\n");
    printf("\t\t\t========================================================\n");
    printf("\t\t\t输入选项,按回车进入选项:                                 \n");
}

部分运行结果截图

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: C语言链表实现商品库存管理系统

本文链接: https://www.lsjlt.com/news/140642.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言链表实现商品库存管理系统
    本文实例为大家分享了C语言链表实现商品库存管理系统的具体代码,供大家参考,具体内容如下 代码: #include <stdio.h> #include <stdli...
    99+
    2022-11-13
  • 怎么用C语言链表实现商品库存管理系统
    这篇文章主要为大家展示了“怎么用C语言链表实现商品库存管理系统”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么用C语言链表实现商品库存管理系统”这篇文章吧。具体内容如下代码:#include&...
    99+
    2023-06-29
  • C语言实现商品管理系统开发
    本程序为大家分享了C语言实现商品管理系统的具体代码,供大家参考,具体内容如下 程序介绍 商品管理系统主要是对商品的基本信息进行增、删、改、查以及商品的插入的操作,以便用户可以快速地对...
    99+
    2022-11-13
    C语言商品管理系统 C语言商品管理 C语言商品系统
  • C语言链表实现销售管理系统
    本文实例为大家分享了C语言链表实现销售管理系统的具体代码,供大家参考,具体内容如下 源码 #include<stdio.h> #include<stdlib.h&g...
    99+
    2022-11-13
  • C语言链表实现工资管理系统
    本文实例为大家分享了C语言链表实现工资管理系统的具体代码,供大家参考,具体内容如下 自己的作业,分享一下,自己为了调试方便,又多加入了一些功能 题目:建立工资管理系统,对职工工资的相...
    99+
    2022-11-13
  • python实现库存商品管理系统
    本文实例为大家分享了python实现库存商品管理系统的具体代码,供大家参考,具体内容如下 题目要求: 请设计一个商品管理系统,程序要求根据用户输入的选项进入相应的功能模块,并显示相应...
    99+
    2022-11-13
  • C语言单链表实现图书管理系统
    本文实例为大家分享了C语言单链表实现图书管理系统的具体代码,供大家参考,具体内容如下 单链表实现的图书管理系统相比于结构体实现的管理系统,可以随时开辟新的空间,可以增加书的信息 单链...
    99+
    2022-11-13
  • C语言单链表实现通讯录管理系统
    本文实例为大家分享了C语言单链表实现通讯录管理系统的具体代码,供大家参考,具体内容如下 本人前几天刚刚自学了单链表,趁热打铁,赶紧写一个小小的项目练练手。 单链表的实现在本人之前的博...
    99+
    2022-11-12
  • C语言实现学生信息管理系统(链表)
    目录1.头文件和预处理2.定义学生结构体的数据结构3.定义每条记录或节点的数据结构4.函数接口代码.1).定义提示菜单2).增加学生记录3).输入学号接口·4).遍历表...
    99+
    2022-11-13
  • C语言链表实现学生成绩管理系统
    目录一、课程设计题目及内容二、主要设计思路三、程序源码及具体注释(1)预处理指令(2)类型定义(3)函数原型(4)main函数定义(5)其他函数定义 四、运行示例五、注意事...
    99+
    2022-11-13
  • C语言链表实现简单图书管理系统
    本文实例为大家分享了C语言链表实现图书管理系统的具体代码,供大家参考,具体内容如下 实现功能: 用C语言制作图书管理系统,实现图书进行登记书籍,浏览书籍,借阅书籍,归还书籍,书籍排序...
    99+
    2022-11-13
  • 如何用C语言链表实现工资管理系统
    本篇内容介绍了“如何用C语言链表实现工资管理系统”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!题目:建立工资管理系统,对职工工资的相关信息进...
    99+
    2023-06-29
  • 怎么用C语言链表实现销售管理系统
    这篇文章主要介绍“怎么用C语言链表实现销售管理系统”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用C语言链表实现销售管理系统”文章能帮助大家解决问题。源码#include<stdio.h&...
    99+
    2023-06-29
  • C语言使用链表实现学生籍贯管理系统
    本文实例为大家分享了C语言用链表实现学生籍贯管理系统的具体代码,供大家参考,具体内容如下 源码 #include<stdio.h> #include<stdlib....
    99+
    2022-11-13
  • C语言嵌套链表实现学生成绩管理系统
    C语言嵌套链表实现学生成绩管理系统,供大家参考,具体内容如下 链表A,每个节点存放一个新的链表B1,B2,B3,B4,B5的头结点。 场景: 一个年级,相当链表A 该年级5个班,每个...
    99+
    2022-11-13
  • C语言利用链表实现学生成绩管理系统
    链表是一种常见的基础数据结构,结构体指针在这里得到了充分的利用。 链表可以动态的进行存储分配,也就是说,链表是一个功能极为强大的数组,他可以在节点中定义多种数据类型,还可以根据需要随...
    99+
    2022-11-21
    C语言 链表 学生成绩管理系统 C语言 学生成绩管理系统 C语言 成绩管理系统
  • C语言动态链表实现学生学籍管理系统
    本文实例为大家分享了C语言利用动态链表实现学生学籍管理系统的具体代码,供大家参考,具体内容如下 #include <stdio.h> #include <s...
    99+
    2022-11-13
  • C语言中单链表如何实现图书管理系统
    小编给大家分享一下C语言中单链表如何实现图书管理系统,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体内容如下单链表实现的图书管理系统相比于结构体实现的管理系统,...
    99+
    2023-06-29
  • C语言单链表如何实现通讯录管理系统
    这篇文章将为大家详细讲解有关C语言单链表如何实现通讯录管理系统,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。通讯录管理系统保存人的信息有: 名字   name电话 ...
    99+
    2023-06-15
  • 怎么用python实现库存商品管理系统
    这篇文章主要介绍了怎么用python实现库存商品管理系统的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用python实现库存商品管理系统文章都会有所收获,下面我们一起来看看吧。题目要求:请设计一个商品管理系...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作