***********就是功能1和功能2的实现************
#include
#include
#include
#include
//定义全局变量
int isEmpty=0;//标志,判断链表是否为空
//!!!定义单链表结构体!!!
typedef struct Node{
int NUM;//类型总数
char NAME[100];//各类型名称
int num; //各类型下的货物总数
struct Node*next;
}Node;
//函数声明
Node*create(int n,Node*L);
Node* delet(Node*L,int del_n);
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(int n,Node*L);
//========新增加的函数========
Node*append(Node*L);
//主函数
void main()
{
//创建文件
FILE*fp;
fp = fopen("storehouse.txt","w");
int x;
int n;//初次输入的大小
int del_n;//删除的货物类型编号
Node *L;
if(!(L=(Node *)malloc(sizeof(Node)))) //分配空间
{
printf("\n");
exit(1);
}
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:printf("请输入最初的货物类型数量:\n");
scanf("%d",&n);
create(n,L);
break;
case 2:
break;
case 3:printf("******请输入要删除货物类型的编号:******\n");
scanf("%d",&del_n);
printf("删除成功!\n");
delet(L,del_n);
break;
case 4:;break;
case 5:;break;
case 6:display(n,L);break;
case 7:printf("bye!see you next time!\n");
exit(0);
break;
default:printf("input error!\nplaese input1-7");
}
}
}
//函数
//1.创建链表节点
Node*create(int n,Node*L)
{
Node*pTail=L;
L->next=NULL;
Node*p;
//利用尾插建立单链表
int i;
for(i=1;i<=n;i++)
{
p=(Node*)malloc(sizeof(Node));
if(p==NULL)
{
printf("申请内存空间失败!\n");
}
printf("请输入第%d种类型编号:",i);
scanf("%d",&p->NUM);
printf("请输入第%d种类型名称:",i);
scanf("%s",&p->NAME);
printf("请输入第%d种类型库存:",i);
scanf("%d",&p->num);
putchar('\n');
pTail->next=p;
pTail=p;
}
p->next=NULL;
return L;
}
//货物显示函数
void display(int n,Node*L)
{
Node*p;
p=(Node*)malloc(sizeof(Node));
p=L->next;;
int i=0;
for(i=0;i
//{
//while(p!=NULL)
{
printf("第%d种类型名称:",p->NUM);
printf("%s\n",p->NAME);
printf("第%d种类型库存:",p->NUM);
printf("%d\n",p->num);
putchar('\n');
p=p->next;
//}
}
}
//删除货物类型
Node*delet(Node*L,int del_n)
{
Node *del_p,*p;
p = L;
del_p = L;
if(del_n==1)
{
L=p->next;
free(del_p);
}
int i;
for(i=1;i
{
p=p->next;
}
del_p=p->next;
p->next=del_p->next;
free(del_p);
return L;
}