#include
#include
#include
#include
//定义全局变量
int isEmpty=0;//标志,判断链表是否为空
//!!!定义单链表结构体!!!
typedef struct Node{
int NUM;//类型总数
int NAME;//各类型名称
int num; //各类型下的货物总数
struct Node*next;
}Node;
//函数声明
Node*create(Node*L);
Node*input(Node*L);
Node*output(Node*L);
Node*outnum(Node*L);
Node*outname(Node*L);
Node*current(Node*L);
void search(Node*L);
void print(Node*L);
void searchnum(Node*L);
void searchname(Node*L);
void display(Node*L);
//========新增加的函数========
Node*append(Node*L);
//主函数
void main()
{
printf("欢迎使用我的仓库管理系统!\n");
while(1);
{
//主菜单开始
printf("==========================\n");
printf("1.显示货物类型列表\n");
printf("2.增加货物类型\n");
printf("3.删除货物类型\n");
printf("4.货物入库\n");
printf("5.货物出库\n");
printf("6.库存显示\n");
printf("7.退出\n");
printf("==========================\n");
//主菜单结束
printf("选择1-7:");
scanf("%d",&x);
switch(x)
{
case 1:;break;
case 2:append(L);break;
case 3:;break;
case 4:;break;
case 5:;break;
case 6:;break;
case 7:;break;
default:printf("input error!\nplaese input1-7");
}
}
}
//函数
//1.创建链表节点
Node*create(Node*L)
{
Node*pTail=L;
L->next=NULL;
Node*p;
p=(Node*)malloc(sizeof(Node));
if(p==NULL)
{
printf("申请内存空间失败!\n");
}
//利用尾插建立单链表
pTail->next=p;
p->next=NULL;
pTail=p;
}
//2.增加货物类型
Node*append(Node*L)
{
}
/*-----------------------------创建链表---------------------------------*/
/*在链表的末端插入新的节点,建立链表*/
Node *create(int n)
{
Node *head;//指向头结点指针
Node *p,*pre;
int i;
head=(Node *)malloc(sizeof(Node));//为头节点分配内存空间
head->next=NULL;//将头结点的指针域清空
pre=head;//先将头结点首地址赋给中间变量pre
for(i=1;i<=n;i++)//通过for循环不断加入新的结点
{
printf("input name of the %d student:",i);//打印出第几个人的名字
p=(Node *)malloc(sizeof(Node));//为要插入的节点分配
//内存空间p指向新插入结点的首地址
scanf("%s",&p->name);//输入姓名
printf("input score of the %d student:",i);
scanf("%d",&p->score);//输入分数
pre->next=p;//将p指向新结点插入链表也就是头结点指针域指向
//下个结点
//第一个结点就是p指向的,因为头结点内容为空
pre=p;//这个起着指向下一个结点的作用
}
p->next=NULL;//最后将最后一个结点的指针域清空了
return head;//返回这个链表的首地址
}