#include "../include/commodity.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
//常量定义
#define SIZE 20
enum judge
{
ERROR = -1,
OK,
};
//类型定义
struct goods
{
char name [SIZE];//货物名
int count;//货物数量
//float price;//货物价格
};
typedef struct goods dataType;
//定义一个结构体
typedef struct list
{
dataType data;
struct list *pNext;
}LIST;
LIST lis;
/*
函数名:creation
函数功能:创建一个空结点
函数参数:无
函数返回值:创建成功返回结点的地址,失败返回NULL
*/
LIST * creation ( )
{
//定义指针变量
LIST *pList = NULL;
//申请空间
pList = ( LIST * ) malloc ( sizeof ( LIST ) );
//判断,初始化
if ( NULL == pList )
{
return NULL;
}
memset ( pList, 0, sizeof ( LIST ) );
return pList;
}
/**
* 增加商品
* @param name 商品名
* @param count 数量
* @param p 节点
* @return 成功则返回true
*/
bool add_goods(char name[],int count,LIST *p){
if ( NULL == p )
{
return false;
}
//赋值
strcpy(p->data.name,name);
p->data.count = count;
return true;
}
/*
函数名:insert
函数功能:添加商品信息
函数参数:
LIST *pList 链表的首地址
函数返回值:添加成功返回0,失败返回-1
*/
int insert ( LIST * pList )
{
//判断链表是否存在
if ( NULL == pList )
{
return ERROR;
}
LIST *p = creation ( );
char name[20];
int count=0;
printf("请输入商品名:\n");
scanf("%s",&name);
printf("请输入商品数量:\n");
scanf("%d",&count);
if(add_goods(name,count,p)){
//头插法插入节点
p->pNext = pList->pNext;
pList->pNext = p;
printf ( "商品 %s 已经添加成功\r\n", p->data.name );
return OK;
}
}
/*
函数名:delDate
函数功能:删除商品信息
函数参数:LIST *pList 链表的首地址
函数返回值:删除成功返回0,失败返回-1
*/
int delete_from_list ( LIST * pList )
{
//判断链表是否存在,是否为空
if ( NULL == pList
|| NULL == pList->pNext )
{
printf ( "数据库数据为空,请先添加商品信息\r\n" );
return ERROR;
}
//定义一个数组
char str[SIZE] = {
0};
printf( "请输入需要删除的商品名称\r\n" )
仓库管理系统-C语言实现
最新推荐文章于 2022-09-23 20:45:18 发布
本文详细介绍了使用C语言设计并实现一个仓库管理系统的全过程,涵盖了数据结构设计、库存管理、入库出库操作以及相关算法的应用。
摘要由CSDN通过智能技术生成